WebsiteBaker Support (2.12.x) > Hilfe & Support (deutsch)

RSS und OFA

<< < (12/23) > >>

evaki:
Dies ist keine Antwort auf die Aufgabenstellung.

Hatte noch nie OFA in Gebrauch, aber nun... - aber nur mal um reinzuschauen.
Das war's aber auch schon, nach der Meldung:

--- Code: ---Warning: require(../../index.php): failed to open stream: No such file or directory in
\html\reserviert02\august-von-der-basis.php on line 7

Fatal error: require(): Failed opening required '../../index.php' (include_path='.;\PHP\PEAR;\PHP') in
\html\reserviert02\august-von-der-basis.php on line 7
--- End code ---


--- Code: ---<?php
$page_id    = 6;
$section_id = 96;
$item_id    = 1;
$item_sid   = 96;
define("ITEM_ID",  $item_id);
require("../../index.php");
?>
--- End code ---

OFA 2.0.2.23 / WB2.12.1
Welche Anwendung nun den Fehler (Pfad zur index) verursacht - keene Ahnung.

ps. <description><![CDATA[<?php echo $description; ?></description>
      <description><![CDATA[<?php echo $description; ?>]]></description>

dbs:

--- Quote ---Woher weiß die obige Abfrage, dass es FIELD_2 nehmen soll?
--- End quote ---
Wahrscheinlich ist deine rss.php URL hinten mit &desc_id=2  oder
weiter oben im Script ist $iDescID = 2; definiert.

Diese Abfrage holt genau 1 Ergebnis wegen $database->get_one($sql). Soll es mehr holen brauchts wieder eine Schleife um alles auszugeben. Oder so.

astricia:

--- Quote from: dbs on July 02, 2019, 03:31:29 PM ---Wahrscheinlich ist deine rss.php URL hinten mit &desc_id=2  oder
weiter oben im Script ist $iDescID = 2; definiert.

--- End quote ---

Ja, genau. Die Abfrage läuft über .../rss-ofa.php?page_id=40&desc_id=2


--- Quote ---Diese Abfrage holt genau 1 Ergebnis wegen $database->get_one($sql). Soll es mehr holen brauchts wieder eine Schleife um alles auszugeben. Oder so.

--- End quote ---

Das habe ich probiert. Erst mal um das Datumsfeld mit auszugeben. So bin ich vorgegangen:
Weiter oben im Script zur Definition:

--- Code: ---    $iDescID    =  (isset($_GET['desc_id']) AND is_numeric($_GET['desc_id'])) ? $_GET['desc_id'] : '';
    $iDateID    =  (isset($_GET['date_id']) AND is_numeric($_GET['date_id'])) ? $_GET['date_id'] : '';
--- End code ---

Hinter der bereits oben zitierten Schleife noch eine wie folgt:

--- Code: ---            $sql='SELECT `value` FROM `'.TABLE_PREFIX.'mod_'.$mod_name.'_item_fields` '
              .  'WHERE `field_id` = '.(int)$iDateID.''
              .  'AND `item_id` = '.(int)$item['item_id'].' ';
            $sDateField = $database->get_one($sql);
            $date = (!$iDateID ? stripslashes($item['date']) : $sDateField);
--- End code ---

Dann gibt es danach noch ein

--- Code: ---            $description = OutputFilterApi('WbLink|ReplaceSysvar', $description);
--- End code ---
Da habe ich analog diese Zeile dahinter gesetzt:

--- Code: ---            $date = OutputFilterApi('WbLink|ReplaceSysvar', $date);
--- End code ---

Und dann die Ausgabe wie folgt gestaltet:

--- Code: ---<description><![CDATA[<?php echo $description; ?> (<?php echo $date; ?>)]]></description>
--- End code ---

Laut meiner Logik müsste ein Aufruf mit
.../rss-ofa.php?page_id=40&desc_id=2&date_id=4
jetzt das Datum in Klammern dahintersetzen.

Tut es aber nicht. Die Klammern werden aufgerufen, bleiben aber ohne Inhalt.

Was habe ich falsch gemacht?

dbs:
Das Problem ist die while Schleife durchläuft nur das Ergebnis von $result, nicht von $sDateField

--- Code: ---     //Generating the news items
     while ($item = $result->fetchRow( MYSQLI_ASSOC )) {
--- End code ---

Ich weiß leider nicht wie man das löst.

astricia:
Stimmt, so lautet der Schleifenaufruf. Aber dieses $result wird ja nie wieder verwendet..? Wie kommt denn die erste description-Schleife dann zu ihrem Inhalt?

Ich hab jetzt gedacht, vielleicht liegt es auch daran, dass ich beide Male $sql als Variable genommen habe. Habe das jetzt für das Datumsfeld umbenannt, und beide Schleifen auch direkt hintereinander gesetzt. Also


--- Code: ---        while ($item = $result->fetchRow( MYSQLI_ASSOC )) {
            // switch between group description and field description
            $sql='SELECT `value` FROM `'.TABLE_PREFIX.'mod_'.$mod_name.'_item_fields` '
              .  'WHERE `field_id` = '.(int)$iDescID.' '
              .  'AND `item_id` = '.(int)$item['item_id'].' ';
            $sql4='SELECT `value` FROM `'.TABLE_PREFIX.'mod_'.$mod_name.'_item_fields` '
              .  'WHERE `field_id` = '.(int)$iDateID.''
              .  'AND `item_id` = '.(int)$item['item_id'].' ';             
            $sDescriptionField = $database->get_one($sql);
            $description = (!$iDescID ? stripslashes($item['description']) : $sDescriptionField);
            $sDateField = $database->get_one($sql4);
            $date = (!$iDateID ? stripslashes($item['date']) : $sDateField); 

--- End code ---

Dann wieder der Aufruf mit

--- Code: ---<description><![CDATA[<?php echo $description; ?> (<?php echo $date; ?>)]]></description>
--- End code ---

Die Klammer ist leider immer noch leer. $date hat keinen Inhalt. Warum nicht???

Menno.. ich bin halt kein Programmierer. Weiß denn niemand, wie das geht?

Büddeeee....

LG,
Astrid

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version