Includen von Rubriken OHNE http-include

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Includen von Rubriken OHNE http-include

Beitrag von MarkusR »

Ein sehr oft gewählter Weg zum Einbinden von Rubriken in andere (z.B. als News-Liste) ist ein include mittels http

Code: Alles auswählen

include("http://meinedomain.de/_rubric/index_php.php?rubric=RUBRIKNAME")
Was mich daran stört ist, daß man mehrere Prozesse startet und doppelt so viele Abfragen benötigt und somit doppelt soviel Serverlast hat. Auch die Scriptlaufzeit erhöht sich mit jedem http-include.

Mir ist das in einem neuen Projekt unangenehm aufgefallen, bei dem 3 Rubriken eine Seite bilden und die Seiten plötzlich vor sich hin schneckten...

Lösung:
ein internes Includen mittels

Code: Alles auswählen

$_REQUEST['rubric'] = RURBIKNUMMER;
include('../_rubric/index_php.php');


Das funktioniert aber nicht auf Anhieb, da sich die Rubriken gegenseitig die Variablen abschießen. Daher ist auf folgendes zu achten:
1. Rubrik-ID absichern und für die eigentliche Seite wieder herstellen
2. Rubric-IDs für die einzubindenden Rubriken wie oben setzen
3. Pagetype nach dem Einbinden wieder auf "index" stellen
4. var_category.php erneut aufrufen, damit die eigentliche Rubrik auch ihre Einstellungen erhält (die durch die anderen Rubriken überschrieben wurden)

Das kann dann für 2 zusätzlich eingebundene Rubriken im header so aussehen:

Code: Alles auswählen

HTML-QUELLTEXT...

<?php 
$save_rubric = $_REQUEST['rubric'];
$_REQUEST['rubric'] = 2;
include('../_rubric/index_php.php'); 
?>

...HTML-QUELLTEXT...

<?php 
$_REQUEST['rubric'] = 3;
include('../_rubric/index_php.php'); 
$_REQUEST['rubric'] = $save_rubric;
$pagetype = 'index';
require(CPO_BASEDIR.'_include/var_category.php');
?>

...HTML-QUELLTEXT...
Jetzt läuft die Seite wieder um ein mehrfaches schneller :wink:
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
Gast

Beitrag von Gast »

Marcus, was du hier schreibst interessiert mich sehr, denn ich habe derzeit auch zwei Includes auf der Startseite. Doch wo genau muss ich all diese Änderungen eintragen? Ich habs mit der _local_header.php probiert - war keine gute Idee...

Michael
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 »

Zeig mir wo Du bisher arbeitest und ich zeig Dir, wie es dort (vielleicht) funktioniert.

Da Du ja sicher die Einbindung an der Stelle machst, wo Du es gerne hättest, kann ich Dir schlecht sagen, wo Du es machen sollst...
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
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mal ein Beispiel:

Die Inhalte von global_header und global_footer sehen vor der Einbindung so aus

Code: Alles auswählen

...
<div id="infoLeft">
	Hier ist eine Linke Spalte
</div>

<div id="infoRight">
	Hier ist eine rechte Spalte
</div>

<div id="main">
<!-- end of global_header.php -->

	Hier ist der eigentliche Seitentext

<!-- start of global_footer.php -->
</div>

<div id="footer">
	Fusszeile, Copyright, Impressum, etc.
</div>
...
Nun werden die Rubriken 2 und 3 für die Linke und für die rechte Spalte eingebunden:

Code: Alles auswählen

...
<div id="infoLeft">
<?php 
$save_rubric = $_REQUEST['rubric']; 
$_REQUEST['rubric'] = 2; 
include('../_rubric/index_php.php'); 
?>
</div>

<div id="infoRight">
<?php 
$_REQUEST['rubric'] = 3; 
include('../_rubric/index_php.php'); 
$_REQUEST['rubric'] = $save_rubric; 
$pagetype = 'index'; 
require(CPO_BASEDIR.'_include/var_category.php'); 
?>
</div>

<div id="main">
<!-- end of global_header.php -->

	Hier ist der eigentliche Seitentext

<!-- start of global_footer.php -->
</div>

<div id="footer">
	Fusszeile, Copyright, Impressum, etc.
</div>
...
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
Gast

Beitrag von Gast »

MarkusR hat geschrieben:Die Inhalte von global_header und global_footer sehen vor der Einbindung so aus
Ich wollte es eigentlich in der _local_header drin haben. Sollte das auch gehen?

Michael
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 »

Nochmal ganz allgemein:

Code: Alles auswählen

include("http://meinedomain.de/_rubric/index_php.php?rubric=RUBRIKNAME");
lässt sich durch

Code: Alles auswählen

<?php 
$save_rubric = $_REQUEST['rubric']; 
$_REQUEST['rubric'] = "RUBRIKNAME"; // oder auch Rubrik-ID
include('../_rubric/index_php.php'); 
$_REQUEST['rubric'] = $save_rubric; 
$pagetype = 'index'; 
require(CPO_BASEDIR.'_include/var_category.php'); 
?> 
ersetzen.
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
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Anonymous hat geschrieben:
MarkusR hat geschrieben:Die Inhalte von global_header und global_footer sehen vor der Einbindung so aus
Ich wollte es eigentlich in der _local_header drin haben. Sollte das auch gehen?

Michael
Ja.
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
mh
ConPresso-Newbie
Beiträge: 22
Registriert: 11.02.2006 18:36
Hat sich bedankt: 1 Mal

Beitrag von mh »

Danke, Markus! Natürlich geht's. Man muss nur aufpassen, dass man beim Copy/Paste auch die $$$$ Zeichen der Variablen erwischt...

Michael
Benutzeravatar
herb37
ConPresso-User
Beiträge: 50
Registriert: 22.08.2005 19:30
Wohnort: Würzburg

Oben scheint alles so schön beschrieben, aber ......

Beitrag von herb37 »

die Realität sieht bei mir anders aus.

Ich habe folgenden Code geschrieben, in die Seite, die ich anzeigen möchte:

Code: Alles auswählen

<body>

<div align="center">
  <center>
  <table border="0" cellpadding="10" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111" width="90%">
    <tr>
      <td width="100%" colspan="2">
      <p align="center"><font face="Verdana" size="6">Würzburger Seniorenforum</font></td>
    </tr>
    <tr>
      <td width="100%" colspan="2"><font size="2">1</font></td>
    </tr>
    <tr>
      <td width="50%" valign="top">
      <?php 
$save_rubric = $_REQUEST['rubric']; 
$_REQUEST['rubric'] = "Aktuelles"; // oder auch Rubrik-ID 
include('../_rubric/index_php.php'); 
$_REQUEST['rubric'] = $save_rubric; 
$pagetype = 'index'; 
require(CPO_BASEDIR.'_include/var_category.php'); 
?> 
      &nbsp;</td>
      <td width="50%" valign="top">
      <?php 
$save_rubric = $_REQUEST['rubric']; 
$_REQUEST['rubric'] = "Berichte"; // oder auch Rubrik-ID 
include('../_rubric/index_php.php'); 
$_REQUEST['rubric'] = $save_rubric; 
$pagetype = 'index'; 
require(CPO_BASEDIR.'_include/var_category.php'); 
?> 
Leider kommt eine Fehlermeldung, siehe unter:
http://stufr.de/sj/

Was habe ich übersehen?
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 »

Ist das die Datei global_header.php ???

Mir scheint, daß Du in eine Nicht-ConPresso-Seite includen willst. Da fehlen natürlich so elementare Dinge wie CPO_BASEDIR.

Wie ich darauf komme? Diese Seite müsste sonst vorhanden sein: http://stufr.de/sj/index_php.php
oder auch http://stufr.de/sj/member.php

Es geht ja um das Includen einer zweiten Rubrik in einer ConPresso-Seite...
Ein sehr oft gewählter Weg zum Einbinden von Rubriken in andere
Mit "andere" ist eine Rubrik gemeint... :wink:
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
herb37
ConPresso-User
Beiträge: 50
Registriert: 22.08.2005 19:30
Wohnort: Würzburg

Irgendwie stehe ich auf dem Schlau

Beitrag von herb37 »

Markus hat oben geschrieben, dass sich
include ("http:/ usw
ersetzen lässt und damit die Seite schneller wird.
Was ich möchte:
Auf einer Nicht-Conpresso-Seite, 2 verschiedene Rubriken, die ich mit Conpresso pflegen möchte, einbinden.

Wenn ich:

Code: Alles auswählen

<?php 
include("http://stufr.de/cm/_rubric/index_php.php?rubric=Aktuelles"); 
?> 
      </td>
      <td width="50%" valign="top">
<?php 
include("http://stufr.de/cm/_rubric/index_php.php?rubric=Berichte"); 
?> 
verwende, bekomme ich für die zweite Rubrik die folgende Fehlermeldung:
Parse error: parse error, unexpected ':' in http://stufr.de/cm/_rubric/index_php.ph ... c=Berichte on line 6


also mein Problem, wie bindet man zwei (oder mehr) Rubriken in eine normale (nicht Conpresso-Seite) ein
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Re: Irgendwie stehe ich auf dem Schlau

Beitrag von MarkusR »

herb37 hat geschrieben:also mein Problem, wie bindet man zwei (oder mehr) Rubriken in eine normale (nicht Conpresso-Seite) ein
Für diesen Standard-Fall machst Du alles richtig.

Allerdings postest Du nur, daß ein Fehler in Zeile 6 ist, fragst was falsch sein könnte, zeigst aber diese Zeile (und noch ein bißchen Code drumherum) nicht.
So kann ich nur die Meldung übersetzen und sagen: Da ist ein Doppelpunkt wo keiner hingehört...

(Und nochmal zum Hintergrund meines Postings:
Zwangsläufig wird ein System ausgebremst, wenn es eine Seite aufbauen soll, die dann aber selbst nochmal andere Seiten aufruft, die dann erst (von einem Server, der ja bereits mit einer Seite beschäftigt ist) generiert und über http gesendet und eingebunden werden müssen, um dann erst die Seite fertigstellen und senden zu können. Mit jeder weiteren Einbindung steht sich das System erneut auf den Füßen. Das muss dann übrigens auch alles durch die Firewall durch, sämtliche sonstigen Apache-Prozesse durchlaufen, obwohl die Datei doch direkt auf der gleichen Platte nebendran liegt... durch die Firewall hatte ich es auch erst gemerkt, daß ich da mit http-include murks mache, da ich vergessen hatte die eigene IP freizugeben :wink: )

Nochwas:
KEINE TEXTE AUS MS-WORD DIREKT IN DEN EDITOR KOPIEREN.
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
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Re: Irgendwie stehe ich auf dem Schlau

Beitrag von MarkusR »

MarkusR hat geschrieben:Nochwas:
KEINE TEXTE AUS MS-WORD DIREKT IN DEN EDITOR KOPIEREN.
Aus versehen habe ich damit den Übeltäter gefunden :rofl:

Dein MS-Word-Chaos-Code enthält folgendes

Code: Alles auswählen

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office"
Das <? wird als php-Tag interpretiert und ein include versucht ja den übergebenen Code auch auszuführen... was aber mit einem XML-Tag nicht geht...

also:
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
NIE WIEDER MS-WORD-TEXTE IN DEN EDITOR KOPIEREN!!!
:twisted: :mrgreen:
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
herb37
ConPresso-User
Beiträge: 50
Registriert: 22.08.2005 19:30
Wohnort: Würzburg

Ich kann ja gern mehr von dem Code posten, das ist kein Prob

Beitrag von herb37 »

Hier der komplette Code:

Code: Alles auswählen

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Würzburger Seniorenforum</title>
</head>

<body>

<div align="center">
  <center>
  <table border="0" cellpadding="10" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111" width="90%">
    <tr>
      <td width="100%" colspan="2">
      <p align="center"><font face="Verdana" size="6">Würzburger Seniorenforum</font></td>
    </tr>
    <tr>
      <td width="100%" colspan="2"><font size="2">1</font></td>
    </tr>
    <tr>
      <td width="50%" valign="top">
<?php 
include("http://stufr.de/cm/_rubric/index_php.php?rubric=Aktuelles"); 
?> 
      </td>
      <td width="50%" valign="top">
<?php 
include("http://stufr.de/cm/_rubric/index_php.php?rubric=Berichte"); 
?> 

      
      &nbsp;</td>
    </tr>
    <tr>
      <td width="100%" colspan="2"><font size="2">3</font></td>
    </tr>
    <tr>
      <td width="100%" colspan="2">&nbsp;</td>
    </tr>
    <tr>
      <td width="100%" colspan="2">&nbsp;</td>
    </tr>
  </table>
  </center>
</div>

</body>

</html>
Benutzeravatar
herb37
ConPresso-User
Beiträge: 50
Registriert: 22.08.2005 19:30
Wohnort: Würzburg

Markus meinst du mich mit dem MS-Word chaos

Beitrag von herb37 »

Nun stehe ich auf dem Schlauch, immer noch oder schon wieder.
Da telefoniert man mal friedlich, um ein ganz anderes Problem zu lösen, und dann schreibt Markus etwas, was ich nicht verstehe.
Bitte um Aufklärung.
Antworten