Description für Bilderliste

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Description für Bilderliste

Beitrag von lunsen_de » Mo 17. Jul 2017, 09:23

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

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Description für Bilderliste

Beitrag von Oldperl » Mo 17. Jul 2017, 10:26

ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Description für Bilderliste

Beitrag von lunsen_de » Mo 17. Jul 2017, 10:57

Hallo, was sagt mir das, wonach soll ich schauen?

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

Gruß lunsen_de

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Description für Bilderliste

Beitrag von Oldperl » Mo 17. Jul 2017, 11:43

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
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

lunsen_de
Beiträge: 297
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Description für Bilderliste

Beitrag von lunsen_de » Mo 17. Jul 2017, 12:49

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

Antworten