Ankündigung

Einklappen
Keine Ankündigung bisher.

CE Inhaltselement auf Katalog zugreifen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CE Inhaltselement auf Katalog zugreifen?

    Hallo,

    kann man mit CE ein Inhaltselement erstellen, welches einem die Items aus einem bestimmten Katalog anzeigt und man daraus eins auswählen kann?

    LG & Danke

  • #2
    Hallo Juli_ane,

    ja, das geht. Sowie man CustomCatalog installiert hat steht ein neues Attribut (Selectfeld für Datenbank) dafür in CustomElements zur Verfügung. Damit kann man sich Einträge aus jeder beliebigen Datenbank in ein Select Feld laden.

    Schöne Grüße
    *********************
    Neu: Kostenloser Contao Installer 3.0
    *********************
    Contao und Erweiterungen in wenigen Sekunden laden, installieren und updaten - ohne Composer oder Contao Manager.

    Kommentar


    • #3
      Ah ok, das klappt, jetzt habe ich nur ein Problem mit der Ausgabe.
      Also ich habe in meinem CE ein Selectfeld wo ich das Item auswähle, das klappt. Jetzt habe ich folgendes Template, um die Daten des Items aus dem Katalog aus zu geben:

      Code:
      <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
          <?php if(!$this->empty): ?>
              <div class="card_wrapper <?php echo $this->field('box_color')->value(); ?> <?php echo $this->field('frame')->value(); ?>">
      
                      <div class="card_content">
                          <?php if($this->field('name')->value()): ?><h3><?php echo $this->field('name')->value(); ?></h3><?php endif;?>
                          <?php if($this->field('kurztext')->value()): ?><p><?php echo $this->field('kurztext')->value(); ?></p><?php endif;?>
                          <?php if($this->field('branche')->value()): ?><p><?php echo $this->field('branche')->value(); ?></p><?php endif;?>
      
                      </div>
                      <div class="clear"> </div>
      
              </div>
          <?php endif;?>
      </div>
      Wie gesagt, dass sind die Variablen aus dem Katalog aber ich bekomme nichts ausgegeben.

      Kommentar


      • #4
        Ich habe es jetzt so gelöst :

        PHP-Code:
        <?php
        $this
        ->import('Database');
        $pName $this->field('mc_element')->value();
        $result = \Database::getInstance()->prepare("SELECT * FROM media_center WHERE id=?")->execute($pName);
        ?>
        <?php 
        if($result->numRows):?>


            <?php
            
        while($result->next()) {  ?>
                
                <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
                    <?php if(!$this->empty): ?>
                        <div class="card_wrapper <?php echo $this->field('box_color')->value(); ?> <?php echo $this->field('frame')->value(); ?>">

                            <div class="card_content">
                                <?php if($this->field('mc_element')->value()): ?><p>ID: <?php echo $this->field('mc_element')->value(); ?></p><?php endif;?>
                                <h3><?php echo $result->name?></h3>
                                <p><?php echo $result->kurztext?></p>
                                <p><?php echo $result->branche?></p>

                            </div>
                            <div class="clear"> </div>

                        </div>
                    <?php endif;?>
                </div>

            <?php ?>

        <?php endif;?>
        Bei Branche bekomme ich eine ID, ich möchte aber den Text ausgegeben. Im Katalog sind das eingebundene Tags.

        Und noch eine kurze Frage, wie schaut es mit der Mehrsprachigkeit aus, bekomme ich die aus auch ausgegeben?
        Zuletzt geändert von Juli_ane; 09.08.2016, 14:52.

        Kommentar


        • #5
          Oder geht das gar nicht mit der Mehrsprachigkeit bei dieser variante?

          Kommentar


          • #6
            Zitat von Juli_ane Beitrag anzeigen
            Oder geht das gar nicht mit der Mehrsprachigkeit bei dieser variante?
            Wenn du es mit eigener DB Abfrage machst, musst du die ID des Spracheintrags selbst ermitteln.

            So, macht CC für dich die Arbeit, hier für eine Detailseite.

            PHP-Code:
            $objCC CustomCatalog::findByTableName('meineTabelle');
            $objEntry $objCC->findPublishedItemByIdOrAlias(\Input::get($GLOBALS['PCT_CUSTOMCATALOG']['urlItemsParameter']),'en');

            echo 
            $objEntry->id
            Zuletzt geändert von Tim; 17.08.2016, 14:04.
            http://www.premium-contao-themes.com

            Kommentar

            Lädt...
            X