[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Verschachteltes Accordion - Seite 1 - 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)

Re: Verschachteltes Accordion

18. Aug 2016, 08:08

Ich stehe vor einem ganz ähnlichen Problem. Im ersten Ansatz wollte ich es so lösen, dass ich mit dem yform eine Downloadtabelle mache. Jeder Zeile in dieser Tabelle hat einen Text, eine Kategorie (aus einer anderen yform-Tabelle) und natürlich ein File.

Der Ansatz von Oliver mit dem Medienpool ist meiner Meinung nach viel eleganter.

Meine Seite ist in deutsch und englisch, wobei jede Sprache auch die entpsrechende Sprache bei den Download-Files zur Verfügung stellt. Auch mein Kunde wünscht ein verschachteltes Accordion, wobei es nur 2 Ebenen sind.

Ich würde jetzt im Medienpool ein Meta-Selectfeld hinzufügen, mit dem man für jedes File die Sprache auswählen kann. Wenn ich dann mit einem Modul die Files auselsen möchte, könnte ich ja quasi die Sprache noch als zusätzlichen Filter verwenden. Denke das sollte so gehen..

Jetzt aber... gibt es für R5 bereits ein Modul, das Dateien aus dem Medienpool holt?

Ich müsste es halt auch verschachtelt haben. Es soll also den Medienkategorie-Namen auslesen und darunter die dazugehörenden Dateien auflisten.

Wenn es eine Medienkategorie ohne Files ist aber mit weiteren Unterkategorien, dann soll es den Namen der Kategorie ausgeben, darunter dann jeweils den Namen der Unterkategorie und die dazugehörenden Files.

Das wäre mal ein erster Ansatz den ich schon mal eingesetzt habe:

Code: Alles auswählen

<?php
$media = rex_media_category::get("14");
$files = $media->getMedia(); 

if (is_array($files)) { 
  foreach ($files as $file) { 
   $fileName = $file->getFileName();
   echo $fileName;
}
}
?>

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

Re: Verschachteltes Accordion

18. Aug 2016, 08:59

Noch etwas.. idealerweise würde ich dem Kunden die Möglichkeite geben, über das Modul zu wählen welche Medienpool-Kategorie (Kategorie-Name und Files) angezeigt werden soll. Falls diese Kategorie dann Unterkategorien hat, sollen diese angezeigt werden.

mmh
Beiträge: 118
Registriert: 17. Apr 2012, 13:20

Re: Verschachteltes Accordion

18. Aug 2016, 15:52

Servus Fanello du Glücklicher ;-)
Bei einer Seite mit einer klaren Struktru und identischen Sprachen finde ich die Medienkategorien auch am elegantesten.

Bei mir funktioniert das leider nicht, weil ich teilweise eine und teilweise bis zu 5 Sprachen habe. Da der Kunde unbedingt ein Accordion mit 3 Ebenen möchte, gibt es nach meinem dafürhalten nur den umständlichen manuellen Weg. Ansonsten geht die Flexibilität verloren.

Ich habe jetzt für jedes Accordion einen Artikel angelegt. Darin gibt es dann ein Modul Dokument Download sowie Module für "Unter Accordions". Nicht schön, aber zweckmäßig und flexibel.

Grüße
Marco

Benutzeravatar
alexplus
Beiträge: 212
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: Verschachteltes Accordion

25. Nov 2016, 13:50

Mittlerweile könnte man für sowas evtl. auch search_it einsetzen als alternativen Ansatz, statt sich durch Kategorien zu klicken.

Ich hätte eine Datenbank in YForm dafür angelegt und die Ebenen gestrichen, zugunsten von Schlagwörtern.

poing
Beiträge: 67
Registriert: 26. Mai 2006, 11:52
Wohnort: Köln

Re: Verschachteltes Accordion

29. Nov 2016, 15:58

ich hatte jetzt ein accordion mit Mblock umgesetzt.
basierend auf zurb foundation.

vielleicht ist das ja ein ansatz?
Müsste man nur überlegen wie man das verschachtel.

Eingabe:
<?php
// base ID
$id = 1;

// init mform
$mform = new MForm();

// fieldset
$mform->addFieldset('Accordion Item');

// textinput
$mform->addTextField("$id.0.name", array('label'=>'Titel')); // use string for x.0 json values
$mform->addTextField("$id.0.header", array('label'=>'Überschrift')); // use string for x.0 json values
$mform->addTextAreaField("$id.0.text", array('label'=>'Fliesstext','class'=>'redactorEditor2-textbox'));

// media button
$mform->addMediaField(1, array('label'=>'Bild')); // mblock will auto set the media file as json value

// parse form
echo MBlock::show($id, $mform->show(), array('min'=>2,'max'=>40)); // add settings min and max

?>

------------------------
Ausgabe:

<?php
if (rex::isBackend()) {
echo '<p>Accordion Element</p>';
}
else {
echo '<div class="row"><div class="large-12 columns"><ul class="accordion" data-accordion role="tablist">';
$x = rex_var::toArray("REX_VALUE[1]");
$z = 0;
foreach($x as $v){
// var_dump($v);
if($z==0) $isactive = ' is-active'; else $isactive = '';
$media = $v["REX_INPUT_MEDIA_1"];
echo '
<li class="accordion-item'.$isactive.'">
<a href="#pane'.$z.'" role="tab" class="accordion-title" id="pane'.$z.'-heading" aria-controls="pane'.$z.'"><h4>
<img class="up" src="'.rex_url::base("templating/dist/assets/img/chevronright-red.svg").'">
'.$v["name"].'</h4>
</a>
<!-- The content pane needs an ID that matches the above href, role="tabpanel", data-tab-content, and aria-labelledby. -->
<div id="pane'.$z.'" class="accordion-content" role="tabpanel" data-tab-content aria-labelledby="pane'.$z.'-heading">
<div class="row">
<div class="medium-8 columns">
<h3>'.$v["header"].'</h3>
'.$v["text"].'
</div>
<div class="medium-4 columns">
<img class="shadow" alt="'.$v["name"].'" title="'.$v["name"].'" src="index.php?rex_media_type=slider5&rex_media_file=' . $media . '" alt="'.$v["name"].'">
</div>
</div>
</div>
</li>
';
$z++;
}
echo '</ul></div></div>';
}
?>

------------------------
poioioing

Zurück zu „Module/Aktionen [R5]“