[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[gelöst] yform | Medialist ausgeben - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

[gelöst] yform | Medialist ausgeben

31. Mär 2016, 16:54

Liebe Redaxo-Gemeinde

Ich habe in Redaxo 5 mit yform eine Tabelle "Referenz Objekte" ertellt. In diese Tabelle habe ich ein paar Textfelder (Titel, Ort, Beschreibung usw.) und eine Medialiste.

Nun möchte ich im Frontend diese Referenzen ausgeben, wobei jede Referenz aus eben diesen Text-Informationen (also z.B. Titel, Ort, Beschreibung) und einer Bildergalerie besteht.

Die einzelnen Text-Elemente kann ich problemlos ausgeben. Jedoch habe ich mit der Bildergalerie meine Mühe.

Das ist der bisherige Ansatz:

Code: Alles auswählen

<?php
$db_table = "rex_objekt";
$sql = rex_sql::factory();
$sql->setDebug(false); 
$sql->setQuery("SELECT * FROM $db_table WHERE objekt_status = 'sichtbar' AND objekt_kategorie = '1' LIMIT 6");

if($sql->getRows()) {
while($sql->hasNext()) {

$bilderliste = $sql->getValue('objekt_bilderliste');
$beschreibung = $sql->getValue('objekt_beschreibung');      
            
echo '<p>'.$beschreibung.'</p>';

foreach ($bilderliste as $file) {
$media = rex_media::get($file);
if ($media) {
echo '<a class="lb" href="index.php?rex_media_type=galerie&rex_media_file='.$media.'" data-lightbox="lb'.rand().'">
<img src="index.php?rex_media_type=galerie&rex_media_file='.$media.'" id="img_" alt=""></a>';
}

}

$sql->next();

}
}

?>
Bei den Bildern erscheint gar nichts. So wie es aussieht, funktioniert meine foreach-Schleife überhaupt nicht. Was mache ich falsch?
Zuletzt geändert von Fanello am 1. Apr 2016, 12:06, insgesamt 1-mal geändert.

Phoebus Ryan
Beiträge: 164
Registriert: 27. Okt 2014, 15:57

Re: yform | Medialist ausgeben

1. Apr 2016, 09:02

In der Regel sind die Medialist kommagetrennt gespeichert in der Datenbank.

Somit müsstest du folgendes anpassen:

Code: Alles auswählen

if ($sql->getValue('objekt_bilderliste') != '') {
  $bilderliste = explode(',', $sql->getValue('objekt_bilderliste'));
}
... und dann durch loopen

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Re: yform | Medialist ausgeben

1. Apr 2016, 11:42

Vielen Dank für deinen Beitrag. Mein Code sieht nun folgendermassen aus:

Code: Alles auswählen

<?php
$db_table = "rex_objekt";
$sql = rex_sql::factory();
$sql->setDebug(false);
$sql->setQuery("SELECT * FROM $db_table WHERE objekt_status = 'sichtbar' AND objekt_kategorie = '1' LIMIT 6");

if($sql->getRows()) {
while($sql->hasNext()) {

  if ($sql->getValue('objekt_bilderliste') != '') {
    $bilderliste = explode(',', $sql->getValue('objekt_bilderliste'));
  }
           
foreach ($bilderliste as $file) {
$media = rex_media::get($file);
if ($media) {
echo '<a class="lb" href="index.php?rex_media_type=galerie&rex_media_file='.$media.'" data-lightbox="lb'.rand().'">
<img src="index.php?rex_media_type=galerie&rex_media_file='.$media.'" id="img_" alt=""></a>';
}
}

$sql->next();

}
}

?>
Dies generiert mir aber beim Aufruf der Seite folgenden Fehler:
"ErrorException" thrown in rex:////module/12/output/REX_VALUE/1 on line 18
Fatal error: Object of class rex_media could not be converted to string

#0 rex:////module/12/output/REX_VALUE/1(18): rex_error_handler::handleError(4096, 'Object of class...', 'rex:////module/...', 18, Array)
#1 rex:///module/12/output(3): require('rex:////module/...')
#2 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/cache/addons/structure/1.1.content(906): require('rex:///module/1...')
#3 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/lib/article_content.php(100): require('/home/httpd/vho...')
#4 rex:///template/1(24): rex_article_content->getArticle(1)
#5 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/lib/article_content_base.php(406): require('rex:///template...')
#6 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/boot.php(37): rex_article_content_base->getArticleTemplate()
#7 [internal function]: rex_package->{closure}(Object(rex_extension_point))
#8 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/lib/extension.php(45): call_user_func(Object(Closure), Object(rex_extension_point))
#9 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/frontend.php(23): rex_extension::registerPoint(Object(rex_extension_point))
#10 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/boot.php(105): require('/home/httpd/vho...')
#11 /home/httpd/vhosts/domain.ch/httpdocs/2016/index.php(9): require('/home/httpd/vho...')
#12 {main}"ErrorException" thrown in rex:////module/12/output/REX_VALUE/1 on line 18
Fatal error: Object of class rex_media could not be converted to string

#0 rex:////module/12/output/REX_VALUE/1(18): rex_error_handler::handleError(4096, 'Object of class...', 'rex:////module/...', 18, Array)
#1 rex:///module/12/output(3): require('rex:////module/...')
#2 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/cache/addons/structure/1.1.content(906): require('rex:///module/1...')
#3 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/lib/article_content.php(100): require('/home/httpd/vho...')
#4 rex:///template/1(24): rex_article_content->getArticle(1)
#5 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/lib/article_content_base.php(406): require('rex:///template...')
#6 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/addons/structure/plugins/content/boot.php(37): rex_article_content_base->getArticleTemplate()
#7 [internal function]: rex_package->{closure}(Object(rex_extension_point))
#8 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/lib/extension.php(45): call_user_func(Object(Closure), Object(rex_extension_point))
#9 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/frontend.php(23): rex_extension::registerPoint(Object(rex_extension_point))
#10 /home/httpd/vhosts/domain.ch/httpdocs/2016/redaxo/src/core/boot.php(105): require('/home/httpd/vho...')
#11 /home/httpd/vhosts/domain.ch/httpdocs/2016/index.php(9): require('/home/httpd/vho...')
#12 {main}

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Re: yform | Medialist ausgeben

1. Apr 2016, 12:06

So funktioniert es:

Code: Alles auswählen

<?php
$db_table = "rex_objekt";
$sql = rex_sql::factory();
$sql->setDebug(false);
$sql->setQuery("SELECT * FROM $db_table WHERE objekt_status = 'sichtbar' AND objekt_kategorie = '1' LIMIT 6");

if($sql->getRows()) {
while($sql->hasNext()) {

if ($sql->getValue('objekt_bilderliste') != '') {
$bilderliste = explode(',', $sql->getValue('objekt_bilderliste'));  
  
        foreach ($bilderliste as $file2) {
            $media2 = rex_media::get($file2);
            if ($media2) {

              echo '<img src="index.php?rex_media_type=galerie&rex_media_file='.$file2.'" id="img_" alt="">';
            }
        }

   
}

$sql->next();

}
}    

?>


Zurück zu „AddOns / Packages [R5]“