php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 04-03-2005, 09:13
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Question Template cachen - Ja, schon wieder...

Ich weiß, so langsam könnte das Thema nervig werden.
Aber vielleicht hat ja trotzdem jemand Lust...

Erstmal das,was funktioniert:

Ich habe Templates, die nach jeder Änderung "kompiliert" werden, so dass ich ein Datei mit PHP-Code erhalte, die dann bei jedem Aufruf des Templates abgearbeitet wird.

Schreibe ich irgendwo in ein Template
Code:
{cache_file /}
, so wird das Template kompiliert wie vorher auch, allerdings gibt es noch eine weitere Funktion, die beim ersten Aufruf des kompilierten Templates ausgeführt wird, das Template "still" (also ohne Ausgabe) prozessiert und dann das kompilierte Template so umschreibt, dass es nur noch das Ergebnis der "stillen" Ausführung zurückliefert.
Das nutze ich z. B. bei FAQ-Seiten, die online gepflegt werden können.
Da sich deren Inhalt nicht allzu oft ändert, wird nach Ändern der FAQs das kompilierte Template einfach gelöscht.
Beim nächsten Aufruf der FAQ-Seite wird es erneut kompiliert, "still" ausgeführt und das Ergebnis davon wird gespeichert, so dass ich nicht jedesmal über Arrays iterieren und ähnliches muss.

Jetzt das, was noch nicht funktioniert:
Code:
{cache_file /}
cached das komplette Template, ich hätte jetzt aber gerne noch die Möglichkeit nur bestimmte Teile eines Templates zu cachen

Beispiel:
Code:
{cache}
{loop sitemap}
  {if _first}<ul>{endif}
   <li><a href="{link_link}">{link_title escape}</a>
    {recursion sitemap /}
   </li>
  {if _last}</ul>{endif}
{endloop}
Die Sitemap ist gültig seit dem {_now date_format "d.m.Y"}
{endcache}
Hallo, heute ist der {_now date_format "d.m.Y"}
Soll mir die komplette Sitemap anzeigen und zwar nur beim ersten Aufruf des Templates, danach soll sie statisch im kompilierten Template stehen.
Das Datum soll aber immer aktuell ausgegeben werden.

Aus
PHP-Code:
$result '';
$result .= loop_sitemap($sitemapt);
$result .= 'Die Sitemap ist gültig seit dem ';
$result .= date('d.m.Y'time());
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y'time());
return 
$result
sollte dann also das hier werden:
PHP-Code:
$result 'HTML-Code der Sitemap
$result .= '
Die Sitemap ist gültig seit dem 04.03.2005';
$result .= '
Halloheute ist der ';
$result .= date('
d.m.Ytime());
return 
$result
Hat jemand einen tollen Ansatz wie ich sowas realisieren könnte?

Wenn nicht, muss ich erstmal selbst weiter überlegen und wenn mir weiterhinnichts einfällt, muss ich aus dem Sitemap-Template wohl oder übel zwei Templates machen. Eines für die Sitemap,das dann komplett gecached wird und eines für den "Hallo, heute ist..."-Teil
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 04-03-2005, 10:58
marc75
 PHP Senior
Links : Onlinestatus : marc75 ist offline
Registriert seit: Jul 2003
Ort: daheim
Beiträge: 1.366
marc75 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
//eventuell verstehe ich dich falsch


$result '';
$result .= loop_sitemap($sitemapt);
$result .= 'Die Sitemap ist gültig seit dem ';
$result .= date('d.m.Y'time());
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y'time()); 
// du müsstest deiner engine irgendwie mitteilen das 
// es die zweite Datefunktion nicht ausführen soll
//$result .= function_erhalten('date('d.m.Y', time())'); 
return $result
__________________
mfg
marc75

<Platz für anderes>
Mit Zitat antworten
  #3 (permalink)  
Alt 04-03-2005, 11:32
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Die zweite Date-Funktion soll immer ausgeführt werden

1. Aufruf
PHP-Code:
$result '';
$result .= loop_sitemap($sitemap);
$result .= 'Die Sitemap ist gültig seit dem ';
$result .= date('d.m.Y'time());
//Jetzigen Inhalt von $result an die Stelle des bisherigen Codes setzen
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y'time());
return 
$result
2. Aufruf
PHP-Code:
$result 'Das, was beim ersten Aufruf rauskam';
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y'time()); 
Mir fehlt momentan der Ansatz, wie ich an die zu cachenden Teile des Templates komme.

Mir fiele nur sowas ein:
PHP-Code:
$result '';
/* cache 35763743437 (oder ein anderer Zufallswert */
$result .= $cache35763743437 loop_sitemap($sitemap);
$result .= $cache35763743437 .= 'Die Sitemap ist gültig seit dem ';
$result .= $cache35763743437 .= date('d.m.Y'time());
store_cache('35763743437'$cache35763743437);
/* cache 35763743437 (oder ein anderer Zufallswert */
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y'time());
return 
$result
Und dann im Anschluss daran alles zwischen den Kommanteren durch den entsprechenden Block ersetzen.

Aber dann müsste ich dafür sorgen, dass sich cache-Blöcke nicht verschachteln, ich überall die Cache-Zwischenspeichervariable eintrage, meine Bedingen umprogrammieren, da die nicht mit if und elseif und ähnlichem realisiert sind, sondern mit
PHP-Code:
$result .= 'Die Bedingung ist '.(bedingung 'erfüllt' 'nicht erfüllt').'.'
Insofern hoffe ich auf einen Geistesblitz der mir oder jemand anderem noch kommen wird
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #4 (permalink)  
Alt 16-03-2005, 19:38
Floriam
 PHP Senior
Links : Onlinestatus : Floriam ist offline
Registriert seit: May 2003
Ort: Deutschland
Beiträge: 1.432
Floriam ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,


Ist es eventuell möglich das du dem Cache-Block einem Namen gibst (z.B. "sitemap")?


Wenn das Template zum ersten mal aufgerufen wird:

Die beiden Cache-Tags werden einfach ignoriert, dass ganze Template wird geparst. Danach ließt du mithilfe der beiden Cache-Tags den Bereich aus welcher gecacht werden soll, diesen Speicherst du dann in einer Cache-Datei (im Dateinamen müsste irgendwo der Name des Cache-Tags drinsein, mitsamt dem Template Namen (also theoretisch "templatename_cacheblockname.cache" o.ä.)).



Beim 2. Aufruf:

Du prüfst ob der Cache-Block schon existiert (den Namen mithilfe regulärer Ausdrücke auslesen?) und dann musst du dir wieder den Cache-Datei-Namen zusammenbasteln. Dann einfach alles zwischen den beiden Cache-Tags mit dem Inhalt aus der Cache-Datei ersetzen und das ganze Template am Ende wieder parsen..



Weiß nicht ob ich da was falsch verstanden hab, ich weiß noch nicht einmal wie leicht bzw. schwer sich das umsetzen lässt..



Floriam



Zitat:
[..]dass sich cache-Blöcke nicht verschachteln[..]
Kannst du mich darüber aufklären wieso sich die Cache-Blöcke verschachteln sollten?

Geändert von Floriam (16-03-2005 um 19:41 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 17-03-2005, 08:27
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von Floriam
Kannst du mich darüber aufklären wieso sich die Cache-Blöcke verschachteln sollten?
Z. B., weil in einem File, das per include eingebunden wird, auch so ein cacheblock ist?
Code:
{cache}Ganz viel text
{include "irgendwas.tpl"/}
{endcache}
Code von irgendwas.tpl
Code:
Etwas Text und dann ein Riesenloop
{cache}
{loop riesig}
In {_key} steht {_value}
{endloop}
{endcahce}
@Rest
Ma schauen, ich hab da schon so eine Idee, die in etwa in die Richtung geht
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:46 Uhr.