Includen von Rubriken OHNE http-include

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Benutzeravatar
Feuer112
ConPresso-User
Beiträge: 56
Registriert: 02.10.2006 15:08
Hat sich bedankt: 8 Mal
Danksagung erhalten: 3 Mal

Beitrag von Feuer112 »

Hi zusammen,

das ganze hört sich recht interessant an. Ich habe wie schon mehrere hier auch das Problem, dass die Startseite sehr langsam ist. Ich binde auf der Startseite an 3 Stellen ein Profil von latest_News mittels

Code: Alles auswählen

<?php include("http://www.MYURL.de/mod_latest_news/index_php.php?profid=12"); ?>
ein. Kann man hier mit der Optimierung von MarkusR auch noch etwas drehen, auch wenn keine Rubrik sondern ein Profil eingebunden wird und das nicht als Inline??

Wenn ja wäre super wenn mir jemand sagen kann wie, denn mit PHP kenn ich mich absolut nicht aus..

Gruß Matze
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Dafür brauchst Du keine Verrenkungen machen.
Binde einfach nur die index_php.php aus dem Modulverzeichnis ein und benutze den Rubrikalias des Profils. Allerdings geht das nur mit einer Einbindung je Rubrik.
Hier habe ich was drüber geschrieben:
http://community.conpresso.de/viewtopic ... 6507#16507
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
Benutzeravatar
Feuer112
ConPresso-User
Beiträge: 56
Registriert: 02.10.2006 15:08
Hat sich bedankt: 8 Mal
Danksagung erhalten: 3 Mal

Beitrag von Feuer112 »

Hi Markus,

danke für deine flotte antwort. Wenn ich dich richtig verstanden habe soll ich weiterhin ein http: include machen indem ich aus

Code: Alles auswählen

<?php include("http://www.MYURL.de/mod_latest_news/index_php.php?profid=12"); ?>
folgedens mach

Code: Alles auswählen

<?php include("http://www.MYURL.de/mod_latest_news/index_php.php?); ?>
und dann dem Profil den Alias auf die Startseite setze. Wird dadurch die Seite schneller?

Du schreibst das geht nur für eine Einbindung je Rubrik. Bei mir wird derzeit ein Profil im _global_header sowie eines im _local_header und _local_footer einer Extra Rubrik eingebunden. Das geht dann schon mal nicht oder?

Falls ich auf dem Holzweg bin (...und dass bin ich bestimmt :cry: ) wäre super wenn du mir noch etwas mehr unter die Arme greifen könntest!

Matze
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Das hast Du falsch verstanden.

Es gilt immer noch der Thread-Titel und wenn Du dem Link folgst, dann siehst Du da kein einziges http-include.

Jedes http-include verdoppelt die Scriptlaufzeit (grob gesagt).

Also geht es um sowas

Code: Alles auswählen

include ("../mod_latest_news/index_php.php");
Und ja... ich meinte, daß es nur für ein include geht, weil ja alle den gleichen Alias benutzen würden.
Irgendwie kann man es sicher hinkriegen, das geht aber nur schwer als theoretischer Exkurs und dürfte semf am leichtesten fallen...
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
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

eine Frage noch...

Beitrag von Mr. Magpie »

... das Includen hat leider noch ein einziges Problemchen: ich würde gerne, wenn der Website-Besucher auf den "mehr-Link" des Artikels einer includeten (schlimmes Wort, gell?) Rubrik klickt, ein spezifisches Navigations-Element "aktivieren".

Beispiel:
Angenommen, ich habe eine Navi - mit printnavigation() erzeugt - mit den Rubriken "Aktuelles", "Hunde" und "Katzen". Zusätzlich habe ich eine weitere Rubrik "Tier des Monats", welche aber nicht in der Navi enthalten ist, und in die ausgewählte Artikel manuell aus "Hunde" sowie "Katzen" kopiert werden.
"Tier des Monats" include ich in "Aktuelles". Ich würde nun gerne erreichen, dass die Rubrik "Katzen" in der Navi aktiviert wird, sobald der Besucher auf den "mehr-Link" des Tiers des Monats klickt und es sich um eine Katze handelt. Bei einem Hund entsprechend die Rubrik "Hunde".

Ich fürchte, für solche Dinge bräucht's 'nen größeren Aufwand, oder? Vor allem, wenn es auch noch durch gewöhnliche Redakteure steuerbar sein soll...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Tja... ich weiß nicht ob's mit Printnavigation geht, aber mit mod_menu ist genau das beabsichtigt.

Hier ein Beispiel:
Der hier verlinkte Artikel gehört eigentlich zur Rubrik "Fördervereine", die aber nicht in der Navigation liegt.
Durch Angabe von &rubric= kann ich einen beliebigen Navipunkt highlighten
http://www.kft-online.de/_rubric/detail ... bric=Zucht
http://www.kft-online.de/_rubric/detail ... =Aktuelles
http://www.kft-online.de/_rubric/detail ... bric=Suche

Die Wahl der Rubrik kann man durch ein Dropdown via mod_text passend einschränken und den zugehöigen Platzhalter in den Link mit einbauen...

Falls man entgegen dem ConPresso-Konzept lauter verschiedene Rubrikordner verwendet kann man auch einfach den Detail-Teil über das "falsche" Verzeichnis anzeigen lassen.
http://www.tierschutz-filderstadt.de/cm ... hp?nr=1391
http://www.tierschutz-filderstadt.de/cm ... hp?nr=1391
(ich weiß, daß das keine 4er ist, aber das Prinzip bleibt das gleiche...)

Allerdings hat balu das Anzeigen eines "Fremdartikels" bei irgendeiner Version seit 4.0.4 "geblockt".
Damit das wieder funktioniert muss man in i_detail.php die Zeile

Code: Alles auswählen

        .'AND rubric_id='.(int)$cpoRubric['id'].' '
entfernen oder auskommentieren.
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
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Danke, nach Auskommentieren der besagten Zeile in i_detail.php scheint das hervorragend zu funktionieren. Zumindest bei meinen manuellen Tests.

Wenn ich den Redakteuren das Highlighten der entsprechenden Rubrik überantworten will, dann brauche ich - falls ich's richtig verstanden habe - das Modul mod_text. Oder gibt's 'ne andere, einfache Lösung?

Könntest Du mir denn bis zur Fertigstellung des Moduls eine Testlizenz für den kommerziellen Einsatz (nicht auf der Tierheim-Seite) der beta-Version zur Verfügung stellen? Nötigenfalls darf die Testlizenz auch zeitlich begrenzt sein, wenn ich sie bei Bedarf verlängern lassen kann. Der Probleme bei Einsatz einer beta-Version bin ich mir freilich durchaus bewusst und würde dich natürlich von jeglicher Verantwortung für evtl. Folgeschäden usw. frei sprechen...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Man kann auch einfach ein Textfeld "Navigation" (oder so) erstellen, der Redakteur tippt dort "Hunde" oder "Katzen" ein und im Template benutzt man im Link rubric=<!-- Text: Navigation; -->
Das reicht.

Narrensicher wird's durch
http://community.conpresso.de/viewtopic.php?t=3159
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
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Viiielen Dank,

diesen und den Artikel zu den Checkboxen kannte ich noch gar nicht!

Wenn ich Dich und Deine Modulentwicklung dennoch unterstützen darf, würde ich mich freuen, eine Testlizenz für mod_text zu erhalten (per PN bspw.). Muss auch gar nicht unentgeltlich sein :wink:
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo Markus,

ich habe soeben festgestellt, dass m.E. im Code deines Postings

http://community.conpresso.de/viewtopic ... 7765#17765

eine Zeile

Code: Alles auswählen

$pagetype = 'index';
fehlt.

Bei Einbindung zweier Rubriken (hier Nr. 21 und 22) sieht der Code vollständig so aus:

Code: Alles auswählen

      <?php $save_request = $_REQUEST;
      $save_get = $_GET;
      $save_post = $_POST;
      $save_nr = $nr;
      $save_pos = $pos;
      unset ($_REQUEST, $_GET, $_POST, $pos, $nr);

      $_REQUEST['rubric'] = 21; // Rubrik-Name oder auch Rubrik-ID
      include('../_rubric/index_php.php');
      $_REQUEST['rubric'] = 22; // Rubrik-Name oder auch Rubrik-ID
      include('../_rubric/index_php.php');

      $_REQUEST = $save_request ;
      $_GET = $save_get ;
      $_POST = $save_post ;
      $nr = $save_nr ;
      $pos = $save_pos ;
      
      $pagetype = 'index';

      require(CPO_BASEDIR.'_include/var_category.php'); ?>
Ich kam darauf, als ich am Ende einer _local_header.php zwei Rubriken eingebunden hatte und auf der Rubrikseite der Rubrik, wo die Einbindung erfolgt, nur der JS-/PHP-Teil des Templates für die Artikelausgabe verantwortlich zeichnete.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Du meinst so wie im ersten Posting des Threads als Punkt 3 beschrieben? Ja, genau so...

Der Nachtrag sollte ja nur ein Beispiel sein.
Tatsächlich sieht mein Code so aus:

Code: Alles auswählen

<!-- Start Linke Box-->
<div id="infoLeft">
<?php 
$save_request = $_REQUEST;
$save_get = $_GET;
$save_post = $_POST;
$save_nr = $nr;
$save_pos = $pos;
unset ($_REQUEST, $_GET, $_POST, $pos, $nr);
$_REQUEST['rubric'] = 2;
include('../_rubric/index_php.php'); 
?>
</div>
<!-- Ende Linke Box-->

<!-- Start Rechte Box-->
<div id="infoRight">
<?php 
$_REQUEST['rubric'] = 3;
include('../_rubric/index_php.php'); 
$_REQUEST = $save_request ;
$_GET = $save_get ;
$_POST = $save_post ;
$nr = $save_nr ;
$pos = $save_pos ;
$pagetype = 'index';
require(CPO_BASEDIR.'_include/var_category.php');
?>
</div>
<!-- Ende Rechte Box-->
Sorry, daß ich es so schlecht beschrieben habe.
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
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ja, genau, ich habe immer deine "aufgebohrte" Version aus dem genannten Posting benutzt. Solange ich die lediglich im Footer eingesetzt hab', war's ja kein Problem. Doch wenn das Include bspw. im Header erfolgt, fehlte in der aufgebohrten Version eben die $pagetype-Zeile.
Der von dir jetzt gepostete Code unterscheidet sich von meinem ja nur durch die zusätzlichen DIVs - die brauchte ich in meinem Beispiel ja nicht.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Hier nochmal eine aufgebohrte Version, die ich eben gebaut habe, nachdem ich die Funktion get_defined_vars() gefunden habe, die ALLE Variablen sichert, so daß man im Grunde nie was verlieren kann und auf keinem Fall etwas beim Wiederherstellen vergisst:

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

// was auch immer includet werden soll
$_REQUEST['rubric'] = 2; 
include(CPO_BASEDIR.'_rubric/index_php.php'); 

foreach(array_keys($arr) AS $arrkey=>$arrvalue) $$arrvalue = $arr[$arrvalue]; // alle Variablen wiederherstellen
unset($arr); // die Sicherung löschen
?> 
Das könnte man jetzt natürlich auch in eine Datei schreiben und diese als
_include/rubric2.php
speichern und dann an der/den entsprechenden Stelle/n nur noch
include(CPO_BASEDIR.'_include/rubric2.php');
einsetzen.

Testen erlaubt!

edit: nach untenstehendem Hinweis CPOBASEDIR in CPO_BASEDIR korrigiert
Zuletzt geändert von MarkusR am 13.04.2008 22:44, insgesamt 1-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
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

... natürlich muss es in obigem Code anstelle von

Code: Alles auswählen

include(CPOBASEDIR.'_rubric/index_php.php'); 
korrekt

Code: Alles auswählen

include(CPO_BASEDIR.'_rubric/index_php.php');

heißen!

Ansonsten habe ich's mit Erfolg getestet.
Zuletzt geändert von Mr. Magpie am 13.04.2008 23:39, insgesamt 1-mal geändert.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Stimmt...

bei mir benutze ich meist
include('../_rubric/index_php.php');

aber da einige Server bei relativen Angaben die Krise kriegen habe ich mir wohl beim Anpassen einen Tippfehler erlaubt... :oops:
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
Antworten