Seite 1 von 1

Description für Bilderliste

Verfasst: Mo 17. Jul 2017, 09:23
von lunsen_de
Hallo, ich versuche eine Bildergalerie/Bilderliste von 4.8 in 4.9 zu übernehmen.

Die Bilder werden entsprechen ausgegeben, alledings führt die Description zu einem Fehler, meines Erachtens nach dadurch, dass die Spalte description früher in der con_upl war und jetzt in der con_upl_meta ist.

Im Moduloutput steht:

Code: Alles auswählen

...
$db->query($sql);
    while ($db->nextRecord()) {
        $sDescr = str_replace(array("\r\n", "\r", "\n"), '<br />', sitGetImageDescription($db->f('idupl')));
        $oTpl->set('d', 'URL', $sDir . $db->f('filename'));
        $oTpl->set('d', 'TITLE', $sDescr);
        $oTpl->next();
        ...
und in der am Anfang (Moduloutput) includierten Datei includes/bilder.functions.inc.php steht zur Description:

Code: Alles auswählen

...
/**
 * sitGetImageDescription()
 *
 * Liest die Bildbeschreibung aus der Datenbank
 *
 * Parameter:
 *   $idupl - ID des Bildeintrags in der Datenbank
 *
 * Liest die zum Bild gehörenden Beschreibung entweder aus der Tabelle ..._upl_meta
 * oder (falls leer) aus der Tabelle ..._upl und liefert diese zurück.
 */
function sitGetImageDescription($idupl) {
    global $cfg;
    
    $db = new cDb();
    $sDesc = '';
    $sql = 'SELECT description
            FROM ' . $cfg['tab']['upl_meta'] . '
            WHERE (idupl=' . $idupl . ')';
    $db->query($sql);
    if ($db->nextRecord()) {
        $sDesc = urldecode(str_replace(array('%0D%0A', '%0D', '%0A'), '<br />', $db->f('description')));
    }
    if (strlen(trim($sDesc)) == 0) {
        $sql = 'SELECT description
                FROM ' . $cfg['tab']['upl'] . '
                WHERE (idupl=' . $idupl . ')';
        $db->query($sql);
        if ($db->nextRecord()) {
            $sDesc = urldecode(str_replace(array('%0D%0A', '%0D', '%0A'), '<br />', $db->f('description')));
        }
    }
    return $sDesc;
}
...
Kann man den Code für 4.9 anpassen, dass die Description gefunden wird und die Errormeldung verschwindet?

PS: Errorlog:

Code: Alles auswählen

[17-Jul-2017 10:12:39 Europe/Berlin] PHP Warning:  Database failure: 1054 (Unknown column 'description' in 'field list') - /2017/contenido/external/backendedit/front_content.php?changeview=edit&client=1&lang=1&action=con_editart&idartlang=67&idart=66&idcat=54&tmpchangelang=&contenido=tgrqdetvrslmc2lgn5969klvkigml74u SELECT description
                FROM con_upl
                WHERE (idupl=114)
 in /var/www/vhosts/web39.de/httpdocs/2017/contenido/includes/functions.general.php on line 1428
[2017-07-17 10:12:39] Warning: "Database failure: 1054 (Unknown column 'description' in 'field list') - /2017/contenido/external/backendedit/front_content.php?changeview=edit&client=1&lang=1&action=con_editart&idartlang=67&idart=66&idcat=54&tmpchangelang=&contenido=tgrqdetvrslmc2lgn5969klvkigml74u next_record called with no query pending in Module ID 77.
" at reportHalt() [class.db.driver.handler.php(1005)]
	reportHalt() called in file class.db.driver.handler.php(977)
	halt() called in file class.db.driver.handler.php(716)
	nextRecord() called in file bilder.functions.inc.php(553)
	sitGetImageDescription() called in file include.con_editcontent.php(523) : eval()'d code(487)
	eval() called in file include.con_editcontent.php(523)
	include() called in file include.front_content.php(508)
	include() called in file front_content.php(41)
	
Gruß lunsen_de

Re: Description für Bilderliste

Verfasst: Mo 17. Jul 2017, 10:26
von Oldperl

Re: Description für Bilderliste

Verfasst: Mo 17. Jul 2017, 10:57
von lunsen_de
Hallo, was sagt mir das, wonach soll ich schauen?

Kannst du mir das am Code(Beispiel) erläutern?

Gruß lunsen_de

Re: Description für Bilderliste

Verfasst: Mo 17. Jul 2017, 11:43
von Oldperl
Servus,

die cApi-Klassen nutzen zum Zugriff auf die DB-Einträge. Beispiel für Upload und Upload-Meta findet man im Modul 'content_image' des Demo-Mandanten.

Gruß aus Franken

Ortwin

Re: Description für Bilderliste

Verfasst: Mo 17. Jul 2017, 12:49
von lunsen_de
Hallo, ich habe den Fehler gefunden.

In der php Datei wurde ENTWEDER in der upl_meta ODER upl nach der decription gesucht. Also einfach das ODER auskommentiert und schon sind die Errormeldungen weg.

Code: Alles auswählen

...
function sitGetImageDescription($idupl) {
    global $cfg;
    
    $db = new cDb();
    $sDesc = '';
    $sql = 'SELECT description
            FROM ' . $cfg['tab']['upl_meta'] . '
            WHERE (idupl=' . $idupl . ')';
    $db->query($sql);
    if ($db->nextRecord()) {
        $sDesc = urldecode(str_replace(array('%0D%0A', '%0D', '%0A'), '<br />', $db->f('description')));
    }
#    if (strlen(trim($sDesc)) == 0) {
#        $sql = 'SELECT description
#                FROM ' . $cfg['tab']['upl'] . '
#                WHERE (idupl=' . $idupl . ')';
#        $db->query($sql);
#        if ($db->nextRecord()) {
#            $sDesc = urldecode(str_replace(array('%0D%0A', '%0D', '%0A'), '<br />', $db->f('description')));
#        }
#   }
    return $sDesc;
}
...
Danke.

lunsen_de