Categories > [German] Deutscher TBS Support >

Probleme mit Cache und Subtemplates

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: goldkante
Date: 2008-04-15
Time: 16:35

Probleme mit Cache und Subtemplates

Hallo zusammen.

iich versuche gerade eine seite nach folgendem prinzip zu erstellen:

ich habe ein habe ein haupttemplate in dem ich mehrer subremplates einbinden, die jeweisl von einem script befüllt werden.

beispiel:
<!-- PAGEHEADER -->
[onload;script=[var.tmpl_main_page_header_start];subtpl]
<!-- ENDE PAGEHEADER -->

<!-- MAINCONTAINER -->
<div id="main">
<!-- 3 SPALTEN SCHWERPUNKT & INTERVIEWS -->                
    <div class="s3Spalten content">
        <!-- PANORAMA UNTEN -->
        [onload;script=[var.tmpl_start_panorama_bottom];subtpl]
        <!-- ENDE PANOARMA UNTEN -->
    </div>
    <!-- ENDE 3 SPALTEN SCHWERPUNKT & INTERVIEWS --> 
               
    <!-- 2 SPALTEN NATIONAL & INTERNATIONAL -->                
    <div class="s2Spalten_same content">
        <!-- NATIONAL / INTERNATIONAL -->
        [onload;script=[var.tmpl_start_national_international];subtpl]
        <!-- ENDE NATIONAL / INTERNATIONAL -->
    </div>
    <!-- 2 SPALTEN NATIONAL & INTERNATIONAL -->
   
</div>
<!-- ENDE MAINCONTAINER -->
                             
<!--PAGE FOOTER -->
[onload;script=[var.tmpl_main_page_footer];subtpl]

<!-- ENDE PAGE FOOTER -->

das einbinden der scripte funktioniert bestens und die ausgabe ist soweit schnell

und zuverässig.

in den eingebundenen skripten sieht es folgendermassen aus:

es handelt sich um das script das per var.tmpl_main_panorama_bottom eingebunden

wird.
<?php
//      We are under the TBS Subtemplate Mode =>
//   variables are always local, not global,
//   and the TBS object is referenced by variable $this.
global $C,$DB_1,$_cache_secs;
$TBS =& $this;


if (!$TBS->PlugIn(TBS_CACHE,"content.start.topbox",$_cache_secs))    :
    echo "Frisch!";
       
    #angezeiget zurücksetzen
    $q_displays = "UPDATE article_settings SET is_displayed_on_startpage='0' WHERE is_displayed_on_startpage='1'";
    $DB_1->execute($q_displays);
   
    // TOP NEWS STARTSEITE
    $top_entries = 3;
    // query basteln
        $C->category('news');
    $C->order("article_settings.is_fix_news DESC, article_settings.datum DESC");
    $C->where("(article_settings.category != 8 AND article_settings.category!= 11 AND article_settings.category!= 17 AND article_settings.category!= 5 AND article_settings.category!= 20 AND article_settings.category!= 22 AND is_top_redaktion='1')");
    $C->start('0');
    $C->entries($top_entries);
    $q_news_top = $C->query();
       
    $res_top =& $DB_1->execute($q_news_top);
   
    while (!$res_top->EOF)    :
        // Zeit für cache-test
        $res_top->fields['now'] = date("H.i.s");
        $data_top[] = $res_top->fields;
        $shown_ids[] = $res_top->fields['id'];
        $res_top->moveNext();
    endwhile;
   
    # angezeigte updaten
    $displayed_articles = implode(",",$shown_ids);
    $q_displays = "UPDATE article_settings SET is_displayed_on_startpage='1' WHERE id IN (".$displayed_articles.")";
    $DB_1->execute($q_displays);

    $TBS->loadTemplate(TMPL."content.start.topbox.html");
    $TBS->mergeBlock('blk_news_top',"array",$data_top);

    $TBS->PlugIn(TBS_CACHE,"content.start.topbox",TBS_CACHEONSHOW);
    $TBS->Render = TBS_OUTPUT;
    $TBS->show();
endif;
?>

Das Cachefile wird angelegt und alles ist prima.  die ausgabe findet auch statt.

Nun wird aber der moment kommt, an dem ich dieses cache file löschen muss, da sich

der inhalt ändert. wenn ich dieses cachefile dann lösche, wird beim ersten refresh brav der

frische inhalt angezeigt. lade ich die seite allerdings nochmals und das file wird aus dem cache

geladen, beinhaltet das cache file den inhalt des nächsten eingebundenen scripts. also den

inhalt von var.tmpl_main_content_national_international.

was läuft da falsch. ist das cachen von ubtemplates nicht möglich.

vielen dank für eure hilfe!!