Modul Inline
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Was geben diese Latest-News überhaupt aus?
Gib die Links zu den Profilen doch mal an und beschreibe kurz was jedes dieser Profile macht.
Wäre da nicht "Rubric-include mal anders" bereits ausreichend und viel schneller?
http://community.conpresso.de/viewtopic.php?t=3915
Dein Include Nr.2 sieht ja aus wie der neueste Artikel aus
http://www.wichern-radelandgemeinde.de/ ... gdradeland
und die Nr. 1 wie der neueste Artikel aus
http://www.wichern-radelandgemeinde.de/ ... =gdwichern
Gib die Links zu den Profilen doch mal an und beschreibe kurz was jedes dieser Profile macht.
Wäre da nicht "Rubric-include mal anders" bereits ausreichend und viel schneller?
http://community.conpresso.de/viewtopic.php?t=3915
Dein Include Nr.2 sieht ja aus wie der neueste Artikel aus
http://www.wichern-radelandgemeinde.de/ ... gdradeland
und die Nr. 1 wie der neueste Artikel aus
http://www.wichern-radelandgemeinde.de/ ... =gdwichern
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Die Profile binden jeweils die 3 ersten Artikel von 3 Rubriken mit speziellen Templates ein (2spaltiges Layout).
Schön wäre es, wenn das mit den Platzhaltern wirklich funktionieren würde. Das könnte ich auch auf anderen Seiten anwenden...
Jedoch bringt mir die obige Datei als Postparsing auch auf anderen Rubrikseiten die gleiche Fehlermeldung, so dass ich sie erstmal wieder abgeschaltet habe...
Reicht das als Info?
Horst
Schön wäre es, wenn das mit den Platzhaltern wirklich funktionieren würde. Das könnte ich auch auf anderen Seiten anwenden...
Jedoch bringt mir die obige Datei als Postparsing auch auf anderen Rubrikseiten die gleiche Fehlermeldung, so dass ich sie erstmal wieder abgeschaltet habe...
Reicht das als Info?
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Also jeweils nur 1 Rubrik pro Einbindung?
Spezielle Templates abweichend von den im Artikel eingestellten und auch nicht das php-Template?
Mit "Rubric-include mal anders" lässt sich das ja problemlos machen, denn auch das Template lässt sich ja nach Bedarf einstellen.
Statt
könnte man einfach
schreiben und sich das Speichern und Wiederherstellen von Variabeln schenken...
Bei Problemen müsste man ggf. $db durch was anderes wie $db_latest oder so ersetzen (weil man sonst in die Abarbeitung der Artikel reinpfuscht, was in einer separaten Spalte kein Problem darstellt)
Spezielle Templates abweichend von den im Artikel eingestellten und auch nicht das php-Template?
Mit "Rubric-include mal anders" lässt sich das ja problemlos machen, denn auch das Template lässt sich ja nach Bedarf einstellen.
Statt
Code: Alles auswählen
<?php
$arr = get_defined_vars(); // alle Variablen sichern
unset($_REQUEST, $_GET, $_POST, $pos, $nr); // was auch immer stören könnte
ob_start();
$_REQUEST['rubric'] = 23; // Gottesdienste 1
include(CPO_BASEDIR.'mod_latest_news/index_php.php');
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GOTTESDIENSTE_1###",$tmpGetContent,$template_datei);
ob_start();
$_REQUEST['rubric'] = 24; // Gottesdienste 2
include(CPO_BASEDIR.'mod_latest_news/index_php.php');
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GOTTESDIENSTE_2###",$tmpGetContent,$template_datei);
ob_start();
$_REQUEST['rubric'] = 25; // Gemeinde
include(CPO_BASEDIR.'mod_latest_news/index_php.php');
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GEMEINDE###",$tmpGetContent,$template_datei);
foreach(array_keys($arr) AS $arrkey=>$arrvalue) $$arrvalue = $arr[$arrvalue]; // alle Variablen wiederherstellen
unset($arr); // die Sicherung löschen
?>
Code: Alles auswählen
<?php
ob_start();
// Die Parameter
$rubrikid = 23; // der ID der Rubrik
$artikelanzahl = 3; // maximale Anzahl der auszugebenden Artikel
$sortierung = 'idx, pub_datum desc'; // Art der Artikelsortierung
$templates_id = 4711;
// ab hier nix mehr ändern
$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);
while($db->next_record()) {
$db_template = $templates_id;
$db_nr = $db->v('nr');
$db_idx = $db->v('idx');
$db_email = $db->v('email');
$db_autor = $db->v('autor');
$db_changer = $db->v('changer');
$db_pub_datum = $db->v('pub_datum');
$db_verfallsdatum = $db->v('verfallsdatum');
$db_commentary = $db->v('commentary');
$db_titel = $db->v('titel');
$db_initial = $db->v('initial');
$db_freigabe = $db->v('freigabe');
$db_rubric_id = $db->v('rubric_id');
require(CPO_BASEDIR.'_include/select_template.php');
}
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GOTTESDIENSTE_1###",$tmpGetContent,$template_datei);
ob_start();
// das ganze nochmal für Gottesdienste 2 ...
// ...
// ...
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GOTTESDIENSTE_2###",$tmpGetContent,$template_datei);
ob_start();
// und noch einmal für die Gemeinde ...
// ...
// ...
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GEMEINDE###",$tmpGetContent,$template_datei);
?>
Bei Problemen müsste man ggf. $db durch was anderes wie $db_latest oder so ersetzen (weil man sonst in die Abarbeitung der Artikel reinpfuscht, was in einer separaten Spalte kein Problem darstellt)
Zuletzt geändert von MarkusR am 07.03.2010 22:05, insgesamt 3-mal geändert.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hallo Markus,
ich habe folgende Datei über mod_parser_enhanced eingehängt:
Diesen Code habe ich entsprechend angepasst für die zwei weiteren Rubriken eingefügt.
Dabei erhalte ich die folgende Fehlermeldung:
Horst
ich habe folgende Datei über mod_parser_enhanced eingehängt:
Code: Alles auswählen
ob_start();
// Die Parameter:
$rubrikid = 7; // der ID der Rubrik
$artikelanzahl = 1; // maximale Anzahl der auszugebenden Artikel
$sortierung = 'idx, pub_datum desc'; // Art der Artikelsortierung
$templates_id = 18; // template-id für die kurzanzeige
// ab hier nix mehr ändern
$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);
while($db->next_record()) {
$db_template = $templates_id;
$db_nr = $db->v('nr');
$db_idx = $db->v('idx');
$db_email = $db->v('email');
$db_autor = $db->v('autor');
$db_changer = $db->v('changer');
$db_pub_datum = $db->v('pub_datum');
$db_verfallsdatum = $db->v('verfallsdatum');
$db_commentary = $db->v('commentary');
$db_titel = $db->v('titel');
$db_initial = $db->v('initial');
$db_freigabe = $db->v('freigabe');
$db_rubric_id = $db->v('rubric_id');
require(CPO_BASEDIR.'_include/select_template.php');
}
$tmpGetContent = ob_get_contents();
ob_end_clean();
$template_datei = str_replace("###GDWICHERN###",$tmpGetContent,$template_datei);
Dabei erhalte ich die folgende Fehlermeldung:
Grüße vonFatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 270336 bytes) in /mnt/.../htdocs/cms/_include/parser.php on line 265
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Mir schwant da böses...
das ist eine Endlosschleife, weil dieses Codestück im Parser eingebunden
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
etc. und dann ist der Speicher verbraucht
Ich denke nochmal nach...
das ist eine Endlosschleife, weil dieses Codestück im Parser eingebunden
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
wiederum den Parser aufruft, der wieder das Codestück einbindet, das
etc. und dann ist der Speicher verbraucht
Ich denke nochmal nach...
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Nächster Versuch:
Da Du ja mod_pages benutzt schreibst Du in den header der Rubrik (nicht den Global Header) folgenden Code (den Du für die zwei anderen Rubriken wiederholst) oder erstellst eine entsprechende Datei, die Du dort im header includierst:
Damit sind die Inhalte festgelegt und in ein Array geladen.
Nun muß nur noch folgende Zeile im oder nach dem Pareser ausgeführt werden:
Das kann natürlich auch eine Datei sein, die via mod_parser eingebunden wird.
Da Du ja mod_pages benutzt schreibst Du in den header der Rubrik (nicht den Global Header) folgenden Code (den Du für die zwei anderen Rubriken wiederholst) oder erstellst eine entsprechende Datei, die Du dort im header includierst:
Code: Alles auswählen
<?php
ob_start();
// Die Parameter:
$rubrikid = 7; // der ID der Rubrik
$artikelanzahl = 1; // maximale Anzahl der auszugebenden Artikel
$sortierung = 'idx, pub_datum desc'; // Art der Artikelsortierung
$templates_id = 18; // template-id für die kurzanzeige
$inline_name = 'GDWICHERN'; // Das ist neu: Name des Platzhalters, der dann im weiteren Verlauf benutzt wird
// ab hier nix mehr ändern
$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);
while($db->next_record()) {
$db_template = $templates_id;
$db_nr = $db->v('nr');
$db_idx = $db->v('idx');
$db_email = $db->v('email');
$db_autor = $db->v('autor');
$db_changer = $db->v('changer');
$db_pub_datum = $db->v('pub_datum');
$db_verfallsdatum = $db->v('verfallsdatum');
$db_commentary = $db->v('commentary');
$db_titel = $db->v('titel');
$db_initial = $db->v('initial');
$db_freigabe = $db->v('freigabe');
$db_rubric_id = $db->v('rubric_id');
require(CPO_BASEDIR.'_include/select_template.php');
}
$inlineReplace[$inline_name] = '###'.$inline_name.'###';
$inlineContent[$inline_name] = ob_get_contents();
ob_end_clean();
// Das jetzt für die anderen wiederholen...
?>
Nun muß nur noch folgende Zeile im oder nach dem Pareser ausgeführt werden:
Code: Alles auswählen
<?php
$template_datei = str_replace($inlineReplace,$inlineContent,$template_datei);
?>
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Eigentlich ist
$pagetype = 'index';
immer Standard, bis man was anderes definiert.
Ist die Seite, in der Du das Zeug einbindest eine Index- oder Detailseite?
(durch Dein URL-rewriting kann ich das nicht nachvollziehen)
Du kannst ganz nach Bedarf
$pagetype = 'index';
oder
$pagetype = 'detail';
setzen bzw. zurücksetzen.
$pagetype = 'index';
immer Standard, bis man was anderes definiert.
Ist die Seite, in der Du das Zeug einbindest eine Index- oder Detailseite?
(durch Dein URL-rewriting kann ich das nicht nachvollziehen)
Du kannst ganz nach Bedarf
$pagetype = 'index';
oder
$pagetype = 'detail';
setzen bzw. zurücksetzen.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- hscha
- ConPresso-Experte
- Beiträge: 715
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hallo Markus,
es ist eine Detail-Seite, deshalb wird wahrscheinlich auch das Detail-Template geladen.
An welcher Stelle im obigen Code müsste ich $pagetype='index'; einfügen?
Ich habe deinen Vorschlag im Übrigen schon auf der Webseite umgesetzt und das Laden der Willkommen-Seite dauert nur noch 1-2sec (ggü. 25-60sec ein Superfortschritt!).
Grüße aus Berlin von
Horst
es ist eine Detail-Seite, deshalb wird wahrscheinlich auch das Detail-Template geladen.
An welcher Stelle im obigen Code müsste ich $pagetype='index'; einfügen?
Ich habe deinen Vorschlag im Übrigen schon auf der Webseite umgesetzt und das Laden der Willkommen-Seite dauert nur noch 1-2sec (ggü. 25-60sec ein Superfortschritt!).
Grüße aus Berlin von
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Ganz am Anfang des Codes setzt Du
$pagetype = 'index';
und am Ende zurück auf
$pagetype = 'detail';
damit Deine Detailseite dargestellt werden kann.
$pagetype = 'index';
und am Ende zurück auf
$pagetype = 'detail';
damit Deine Detailseite dargestellt werden kann.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
bessere Idee...
am Anfang:
$pagetype_page = $pagetype;
$pagetype = 'index';
am Ende:
$pagetype = $pagetype_page;
am Anfang:
$pagetype_page = $pagetype;
$pagetype = 'index';
am Ende:
$pagetype = $pagetype_page;
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle