2011-01-12 2 views
1

Ich habe eine benutzerdefinierte PHP-Seite, die einen Feed von Bildern verarbeitet und daraus Alben erstellt. Wenn ich jedoch Bilder zu meinem Feed hinzufüge, ändert sich die Drupal-Seite erst, wenn ich die Caches lösche.Gibt es eine Möglichkeit, Drupal zu sagen, keine bestimmte Seite zwischenzuspeichern?

Gibt es eine Möglichkeit, Drupal zu sagen, diese Seite nicht zu cachen?

Danke, Blake

Edit: Drupal v6.15 Nicht ganz sicher, was Sie oswald bedeuten, team2648.com/media ist hte Seite. Ich habe das PHP-Interpreter-Modul verwendet. Hier ist der PHP-Code:

<?php 
//////// CODE by Pikori Web Designs - pikori.org /////////// 
//////// Please do not remove this title,   /////////// 
//////// feel free to modify or copy this software /////////// 
$feedURL = 'http://picasaweb.google.com/data/feed/base/user/Techplex.Engineer?alt=rss&kind=album&hl=en_US'; 


$photoNodeNum = 4; 
$galleryTitle = 'Breakaway Pictures'; 
$year = '2011'; 
?> 



<?php 
    /////////////// DO NOT EDIT ANYTHING BELOW THIS LINE ////////////////// 

$album = $_GET['album']; 
if($album != ""){ 

    //GENERATE PICTURES 
    $feedURL= "http://".$album."&kind=photo&hl=en_US"; 
    $feedURL = str_replace("entry","feed",$feedURL); 

    $sxml = simplexml_load_file($feedURL); 
    $column = 0; 
    $pix_count = count($sxml->channel->item); 

    //print '<h2>'.$sxml->channel->title.'</h2>'; 
    print '<table cellspacing="0" cellpadding="0" style="font-size:10pt" width="100%"><tr>'; 
    for($i = 0; $i < $pix_count; $i++) { 

print '<td align="center">'; 
$entry = $sxml->channel->item[$i]; 
$picture_url = $entry->enclosure['url']; 
$time = $entry->pubDate; 
$time_ln = strlen($time)-14; 
$time = substr($time,0,$time_ln); 
$description = $entry->description; 
$tn_beg = strpos($description, "src="); 
$tn_end = strpos($description, "alt="); 
$tn_length = $tn_end - $tn_beg; 
$tn = substr($description, $tn_beg, $tn_length); 
$tn_small = str_replace("s288","s128",$tn); 

$picture_url = $tn; 
$picture_beg = strpos($picture_url,"http:"); 
$picture_len = strlen($picture_url)-7; 
$picture_url = substr($tn, $picture_beg, $picture_len); 
$picture_url = str_replace("s288","s640",$picture_url); 
print '<a rel="lightbox[group]" href="'.$picture_url.'">'; 
print '<img '.$tn_small.' style="border:1px solid #02293a"><br>'; 
print '</a></td> '; 

if($column == 4){ print '</tr><tr>'; $column = 0;} 
else $column++; 
    } 
    print '</table>'; 
    print '<br><center><a href="media">Return to album</a></center>'; 
} else { 

    //GENERATE ALBUMS 
    $sxml = simplexml_load_file($feedURL); 
    $column = 0; 
    $album_count = count($sxml->channel->item); 

    //print '<h2>'.$galleryTitle.'</h2>'; 
    print '<table cellspacing="0" cellpadding="0" style="font-size:10pt" width="100%"><tr>'; 
    for($i = 0; $i < $album_count; $i++) { 

$entry = $sxml->channel->item[$i]; 

$time = $entry->pubDate; 
$time_ln = strlen($time)-14; 
$time = substr($time,0,$time_ln); 

$description = $entry->description; 
$tn_beg = strpos($description, "src="); 
$tn_end = strpos($description, "alt="); 
$tn_length = $tn_end - $tn_beg; 
$tn = substr($description, $tn_beg, $tn_length); 

$albumrss = $entry->guid; 
$albumrsscount = strlen($albumrss) - 7; 
$albumrss = substr($albumrss, 7, $albumrsscount); 

$search = strstr($time, $year); 
if($search != FALSE || $year == ''){ 
    print '<td valign="top">'; 
    print '<a href="/node/'.$photoNodeNum.'?album='.$albumrss.'">'; 
    print '<center><img '.$tn.' style="border:3px double #cccccc"><br>'; 
    print $entry->title.'<br>'.$time.'</center>'; 
    print '</a><br></td> '; 

    if($column == 3){ 
    print '</tr><tr>'; $column = 0; 
    } else { 
    $column++; 
    } 
} 
    } 
    print '</table>'; 
} 
?> 
+1

Bitte geben Sie die Version von Drupal an, die Sie verwenden. Caching wurde in Drupal 7 geändert. Wie haben Sie die Seite implementiert? – Oswald

Antwort

2

Hope this helps.

Das ist für Drupal ist 6.

+0

Es ist also nicht ein Code-Snippet, das ich am Ende der Seite platzieren kann? Das sieht so aus, als müsste ich mein eigenes Modul machen. Es wäre auch schön, das auf mehreren Seiten verwenden zu können. – TechplexEngineer

1

Dies beantwortet nicht Ihre spezifische Frage zum Caching, aber - ziehen Sie in Betracht, Drupal-native Lösungen wie das Picasa Modul für solche Dinge zu verwenden.

Wenn Sie nicht-Drupal PHP-Anwendungen in einer Drupal-Umgebung wie hier verwenden, erhalten Sie seltsame Interaktionen mit anderen Drupal-Komponenten. Drupal-Module sind mit Drupal im Auge bauen, so Dinge wie gesund Caching in der Regel in gebaut kommen

+0

Es wäre schön, ein Modul zu haben, um zu tun, was ich will, aber ich kann das Picasa-Modul nicht funktionieren lassen. Google sagt mir, dass es eine fehlerhafte Anfrage erhalten hat. – TechplexEngineer

1

schreiben diese Codezeile am oberen Rand der benutzerdefinierten Seite, die Sie nicht wollen, zwischengespeichert werden.

$GLOBALS['conf']['cache'] = FALSE; 
0

Für Drupal 6,

Wenn Sie nur eine bestimmte Seite aus dem Cache ausschließen möchten, können Sie das Cache Exclude-Modul verwenden, wo Sie nur eine URL angeben müssen.

für drupal 7 ist es auch verfügbar aber es ist in der Entwicklungsversion.

0

Ja, Sie können es programmatisch tun und der untenstehende Code gilt für Drupal 6 und 7 beide.

Referenz: http://techrappers.com/post/27/how-prevent-javascript-and-css-render-some-drupal-pages

/** 
* Implements hook_init(). 
*/ 
function MODULE_NAME_init() { 
global $conf; 
// current_path() is the path on which you want to turn of JS or CSS cache 
    if (current_path() == 'batch' || current_path() == 'library-admin') { 
    // If you want to force CSS or JS cache to turned off 
    $conf['preprocess_js'] = FALSE; 
    $conf['preprocess_css'] = FALSE; 

    // If you want normal caching to turned off 
    drupal_page_is_cacheable(FALSE); 
    } 
} 

Bitte beachten Sie, dass drupal_page_is_cacheable (FALSE); Das normale Caching kann nur deaktiviert werden. Es wird nicht erzwungen, dass JS-Caching automatisch deaktiviert wird, wenn Sie $ conf ['preprocess_js'] = FALSE verwenden.

Verwandte Themen