Fehlermeldung bei RSS-Feeds
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anmelden
ansehen
array
code
dank
fehler
fehlermeldung
grund
http
komponente
not
programmteil
schauen
stellen
string
syntax
teil
text
url
zeile
-
Hi,
so nun brauche ich mal Hilfestellung!
Ich habe eine Komponente fü Joomla "Feedbingo" installiert mit einem dazugehörigen Plugin "Sourcelink", der die einzelnen Feeds mit dem Hauptartikel verlinkt.
Dieses Plugin erzeugt folgende Fehlermeldung:
No valid database connection You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 SQL=SELECT * from jos_gbf_feeds where article_id=
Der Fehler muss sich in dieser Zeile des Plugins befinden, weiß aber nicht welcher:
function getFeedDetail($aid=0) { $db=JFactory::getDBO(); $query="SELECT * from #__gbf_feeds where article_id=$aid"; $db->setQuery($query); return $db->loadObject(); }
Das Plugin funktioniert, aber ich bekomme die Fehlermeldung nicht weg.
Ich habe das Plugin mal angehängt und den Fehler kann man auch hier ansehen.
Der Sourcecode des Plugins kann man hier downloaden.
Grüße Tom
Beitrag zuletzt geändert: 19.2.2010 15:35:12 von tom-moeller -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
czibere schrieb:
da muss man sich ja anmelden. kannst den sourcekode sonstwie zur verfügng stellen?
Habe dir ne PN geschireben.
Hier der Code, ist eh nicht viel:
<?php /** * Feedbingo Source Link Plugin * @author Alex@gobingoo.com * @date Jan 2010 * @version 1.0 * @package fbsourcelink.php * @authorurl www.gobingoo.com * @license GNU/GPL ver 3.0 * */ // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.plugin.plugin' ); /** * Feedbingo sourcelink plugin * * @package Joomla * @subpackage System */ class plgContentFbsourcelink extends JPlugin { /** * Constructor * * For php4 compatability we must not use the __constructor as a constructor for plugins * because func_get_args ( void ) returns a copy of all passed arguments NOT references. * This causes problems with cross-referencing necessary for the observer design pattern. * * @access protected * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * @since 1.0 */ function plgContentFbsourcelink(& $subject, $config) { parent::__construct($subject, $config); //load the translation $this->loadLanguage( ); } /** * Display the tracking code * */ function onPrepareContent(& $article, & $params, $limitstart) { $introlen=strlen($article->introtext); $textlen=strlen($article->text); $fulltext=strlen($article->fulltext); $bloglayout=false; if($textlen<=($introlen+$fulltext)) { $bloglayout=true; } if ($bloglayout) { if($this->params->get('intro')) { $feed=self::getFeedDetail($article->id); $linktext=self::formatLink($feed); $article->text=$article->text.$linktext; } } else { $feed=self::getFeedDetail($article->id); $linktext=self::formatLink($feed); $article->text=$article->text.$linktext; } } function formatLink($obj=null) { if(is_null($obj)) { return false; } $template=$this->params->get('template','{link}'); $linkable=$this->params->get('linkable',true); $parseval=""; $link=$obj->sourcelink; $linktext=$obj->sourcelink; if($obj->enable_shorturl) { $link=$obj->shorturl; $linktext=$obj->shorturl; } if($obj->enable_alt) { $linktext=$obj->sourcelink_alt; } if($obj->enable_sourcelink) { if($linkable) { $parseval="<a href='$link'>$linktext</a>"; } else { $parseval=$linktext; } } $pattern='/{link}/i'; return preg_replace( $pattern, $parseval, $template); } function getFeedDetail($aid=0) { $db=JFactory::getDBO(); $query="SELECT * from #__gbf_feeds where article_id=$aid"; $db->setQuery($query); return $db->loadObject(); } }
VG Tom -
ok! das einzig interessante ist der programmteil, wo die klasse 'JFactory' definiert wird. der grund sind die zeilen
(ganz unten) dort wird gezeigt, wie die query erzeugt wird. dann können wir weiter schauen. findest du diesen teil im ganzen prog?$db->setQuery($query); return $db->loadObject();
-
czibere schrieb:
ok! das einzig interessante ist der programmteil, wo die klasse 'JFactory' definiert wird. der grund sind die zeilen
(ganz unten) dort wird gezeigt, wie die query erzeugt wird. dann können wir weiter schauen. findest du diesen teil im ganzen prog?$db->setQuery($query); return $db->loadObject();
Da ist ne Menge Code und in der Komponente selber, habe ich den String nicht gefunden. Das werde ich Morgen angehen. Aber Danke erstmal.
VG Tom
Edit: Hier ist die komplette Komponente zum Download.
Beitrag zuletzt geändert: 19.2.2010 17:53:11 von tom-moeller -
tom bevor wir anfangen da gross herumzuwühlen, mir ist noch die idee gekommen in aller herrgots frühe:
direkt vor der zeile
füge bitte das ein:return $db->loadObject();
dann sehen wir was in dem db-object drinnen ist. es sollte reichen. poste mir dann bitte die ganze ausgabe. von den beiden zeilen.echo "<hr /><h1>db-object:</h1><pre>".print_r ($db->setQuery ($query),true)."</pre>"; exit ("<pre>".print_r ($db->loadObject (),true));
-
Danke czibere für Deine Hilfe. Ich verwende jetzt ein leistungfähigeres Tool und konnte das Plugin somit deaktivieren.
Thread can be clodsed!
Viele Grüße Tom -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage