Mein Platzhalter will nicht!

Begonnen von gg, 03 November 2005, 16:11:39

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

gg

Hallo, Ihr Lieben,

hab schon etliche Beiträge durchgelesen, aber nicht das Passende gefunden.

Ich werkel gerade an einer neuen page auf der aktuellen PragmaMX herum und bin damit das erste mal diesen Platzhaltern und der Themeengine ausgesetzt.

Grundsätzliches hab ich schon verstanden, aber meine Dynamic_links-Datei (ist nen Modul, mit dem man ziemlich komfortabel DB-gestützt eine Linkleiste (für wenige links geeignet) bekommt, die im VKP "normal" in der Theme.php mit include eingebunden wurden, wiedersetzt sich.

Konkret:

Dies ist der bisherige include in der theme.php
Zitat
   echo "<td align=\"center\" valign=\"bottom\">";
   include("themes/$thename/links.php");
   echo "</td>";

Die Datei sieht so aus und liegt im Hauptverzeichnis des Themes - Ordners
Zitat
<?php
global $prefix, $row, $result;
$result = mysql_query ("SELECT * FROM ".$prefix."_dynamic_links ORDER BY pos ASC")
   or die ("Keine Abfrage m&ouml;glich: " . mysql_error());
      echo "<table class=\"bgnav\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\"><tr>";
         while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            echo "<td bgcolor=\"\"><a class=\"nav\" href=$row[link] target=$row[target]>&nbsp;$row[linktext]&nbsp;</a></td>";
   }
echo "</tr></table>";
?>

In der functions.php hab ich diese function eingesetzt (gleich unter den Farbdefinitionen
Zitat
function dynamic_links(){
   include("".MX_THEME_DIR."/links.php");
   }

in der function theme_replace_end ist dies hier drin gleich unter
$part[] = array("url(images/", "url(".MX_BASE_URL.MX_THEME_DIR."/images/");
Zitat
   $part[] = array("{DYNAMIC_LINKS}", dynamic_links ());   

In der theme.html ist das drin
Zitat
  <tr>
    <td height="30" colspan="2"  align="center">{DYNAMIC_LINKS}</td>
   <td><img src="images/spacer.gif" width="1" height="15" border="0" alt=""></td>
  </tr>

Und das hier passiert....

Meine funktionstüchtige Linkleiste erscheint ÜBER meinem CMS, dh. über dem Navtrail, der anzeigt, wo man sich gerade befindet..

UND

in der eigentlich eingefügten Zeile steht definitiv nichts, ist einfach leer!

So sieht auch der Quelltext der Zeile aus:
Zitat
  <tr>
    <td colspan="2" align="center" height="30"></td>
   <td><img src="MeinPfad/themes/mx-default/images/spacer.gif" alt="" border="0" height="15" width="1"></td>
  </tr>

Kann mir da bitte bitte jemand weiterhelfen?? Ich verzweifle noch!
Gabi
Herzliche Grüsse aus Berlin
Gabi
___________________________________
pragmaMX 0.1.9, 1.20.4.18
Probieren geht (manchmal) über studieren!

henne

versuchs mal mit dieser geänderten Funktion in der functions.php

function dynamic_links(){
$out =   include("".MX_THEME_DIR."/links.php");
return $out;
   }
bye Henne

don't click the blue "e" on your desktop, use Firefox

Jeden Tag verschwinden Rentner im Internet, weil sie gleichzeitig alt und entfernen drücken

Andi

Moin :)

nicht ganz Henne ;) Bisserl was fehlt...

Da die links.php ihr Ergebnis bereits über echo ausgibt, wird da nichts zwischengespeichert.
Die Zeile $out =   include("".MX_THEME_DIR."/links.php"); würde auch nicht diese Ausgabe zurückgeben, sondern nur einen logischen Wert, ob die Funktion include() erfolgreich war oder nicht, also true oder false. Dies erklärt, warum die betreffende Zeile dann leer ist ;)
Um bei Henne's Vorschlag zu bleiben, welcher ja vom Grundgedanken richtig wäre...
function dynamic_links(){
  // Ausgabepuffer starten
  ob_start();
  // Datei includen
  include(MX_THEME_DIR."/links.php");
  // Ausgabepuffer auslesen, zwischenspeichern und Pufferung beenden
  $out = ob_get_clean();
  // den zwischengespeicherten Ausgabepuffer zurückgeben
  return $out;
   }


Einfacher und "richtiger" wäre es die Ausgabe der Datei nicht per echo auszugeben, sondern direkt in eine Variable zu schreiben, die dann von der Funktion zurückgeliefert werden kann.
schön´s Grüssle, Andi

henne

Zitatnicht ganz Henne Wink Bisserl was fehlt...

ahh o.k. man lernt nie aus.. war ja knapp dran ;D ;)
bye Henne

don't click the blue "e" on your desktop, use Firefox

Jeden Tag verschwinden Rentner im Internet, weil sie gleichzeitig alt und entfernen drücken

gg

#4
Oh, Henne & Andy, ::)

...Ihr seid so gut zu mir....

Recht lieben Dank für Eure Hilfe. :-*
Gabi  :D
Herzliche Grüsse aus Berlin
Gabi
___________________________________
pragmaMX 0.1.9, 1.20.4.18
Probieren geht (manchmal) über studieren!

henne

bye Henne

don't click the blue "e" on your desktop, use Firefox

Jeden Tag verschwinden Rentner im Internet, weil sie gleichzeitig alt und entfernen drücken