Ergebnis 1 bis 11 von 11

Thema: [gelöst] Stand MM Subpaletten?

  1. #1
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Frage [gelöst] Stand MM Subpaletten?

    Hi,

    ich experimentiere mit dem letzten Stand MM (Contao 3.2.9, metamodels/bundle_all dev-master -> dev-contao3, Stand heute), welchen ich per composer installiert habe. Ich bin gerade bei BE Eingabemasken und will dort Subpaletten nutzen. Legenden anlagen hat wunderbar geklappt, aber die Subpaletten wollen nicht.

    Ich möchte eine Checkbox machen "Galerie hinzufügen", die dann eine Mehrfach-Dateiauswahl dynamisch zeigt. Die Attribute habe ich alle angelegt (galerie_aktivieren, galerie). Nun klicke ich unter "Eingabemaske in "BE Eingabe"" auf dieses "Verwalten Sie Unterbereiche für ..." Symbol, eine neue Seite geht auf "Sub-Bereiche für "Galerie hinzufügen"", drücke auf "Neu" > Typ "Attribut" > Die erscheinende Select-Box bleibt aber leer?

    1) Wie lege ich denn Subpaletten an?!?

    2) Werden die Subpaletten dann auch aktiv im FE genutzt? Sprich - wenn mal eine Galerie angelegt wurde und ich den Block inaktiv schalte, wird dann die Galerie ausgeblendet? Oder muss ich da in ein Template eingreifen?

    ps. Bei aktiverter Fehlermeldung zeigt mir PHP folgendes, wenn ich auf "Neu" unter "Sub-Bereiche für "Galerie hinzufügen"" drücke

    Code:
    Warning: is_null() expects exactly 1 parameter, 2 given in composer/vendor/metamodels/dc_general/system/modules/generalDriver/DcGeneral/Controller/DefaultController.php on line 3114 #0 [internal function]: __error(2, 'is_null() expec...', '/Users/zzz...', 3114, Array)
    #1 composer/vendor/metamodels/dc_general/system/modules/generalDriver/DcGeneral/Controller/DefaultController.php(3114): is_null('value', Array)
    #2 composer/vendor/metamodels/dc_general/system/modules/generalDriver/DcGeneral/Controller/DefaultController.php(823): DcGeneral\Controller\DefaultController->setParent(Object(DcGeneral\Data\DefaultModel), Object(DcGeneral\Data\DefaultModel), 'self')
    #3 composer/vendor/metamodels/dc_general/system/modules/generalDriver/DcGeneral/DC_General.php(2301): DcGeneral\Controller\DefaultController->create()
    #4 composer/vendor/metamodels/core/src/system/modules/metamodels/MetaModels/BackendIntegration/Module.php(176): DcGeneral\DC_General->create()
    #5 composer/vendor/metamodels/core/src/system/modules/metamodels/MetaModels/BackendIntegration/Module.php(196): MetaModels\BackendIntegration\Module->runDC()
    #6 composer/vendor/metamodels/core/src/system/modules/metamodels/MetaModels/BackendIntegration/Module.php(210): MetaModels\BackendIntegration\Module->performNormal()
    #7 system/modules/core/classes/Backend.php(272): MetaModels\BackendIntegration\Module->generate()
    #8 contao/main.php(142): Contao\Backend->getBackendModule('metamodels')
    #9 contao/main.php(293): Main->run()
    #10 {main}
    Geändert von Cyberlussi (15.04.2014 um 17:58 Uhr) Grund: gelöst

  2. #2
    Contao-Nutzer Avatar von timbec
    Registriert seit
    22.09.2009.
    Ort
    Aachen
    Beiträge
    150
    Partner-ID
    7828
    User beschenken
    Wunschliste

    Standard

    Hallo Cyberlussi,

    hast du das Datie-Attribut schon auf der ersten Ebene der Eingabemaske hinzugefügt? Das ist ein beliebter "Fehler" bei den Subpaletten. In eine Subpalette können natürlich nur Attribute hinzugefügt werden, die noch nicht verwendet wurden.

    Und zum ausblendenden: Ja, am einfachsten prüfst du das im Template ob gallerie_aktivieren ausgewählt wurde.

    Viele Grüße
    Tim

  3. #3
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Daumen hoch

    Super ... ja.

    Im BE "Galerie" auf erster Ebene entfernt, dann erscheint es im Unterbereich zur Auswahl. Trickreich. Die Fehlermeldungen werden aber trotzdem geworfen - auch beim anschließenden Speichern. Funktioniert aber trotzdem.

    Im Template versuche ich gerade durchzublicken, wie ich auf was zugreifen kann. Denke, da schaue ich mir einfach mal alle Templates an ...

    Danke!

  4. #4
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Frage Abfrage vom checkbox Feldwert im Template - wie geht's?

    Hi,

    also so ganz durch bin ich damit noch nicht ... hat aber vielleicht nichts direkt mit Subpaletten zu tun: Wie vorgeschlagen, habe ich im Template mm_attr_file.html5 eine Abfrage gemacht ... allerdings bin ich mir nicht sicher, ob das Objekt dort korrekt ankommt. Denn ich komme an den Checkboxwert nicht ran. Ein var_dump($this) zeigt mir folgendes - ALLE checkbox felder "published" und "galerie_ja" beide "null"??? Ich hatte entweder 0/leer/null oder eben 1 erwartet. Beide stehen aber sicher auf "selected" im BE und in der DB auf "1".

    Wie frage ich denn ein checkbox Attribut ab?

    Code:
    object(MetaModels\Render\Template)[73]
      protected 'strTemplate' => string 'mm_attr_file' (length=12)
      protected 'strBuffer' => null
      protected 'arrData' => 
        array (size=7)
          'attribute' => 
            object(MetaModels\Attribute\File\File)[56]
              private 'strMetaModel' (MetaModels\Attribute\Base) => string 'mm_kurse' (length=8)
              protected 'arrData' => 
                array (size=14)
                  ...
          'settings' => 
            object(MetaModels\Render\Setting\Simple)[62]
              protected 'arrBase' => 
                array (size=11)
                  ...
              protected 'parent' => 
                object(MetaModels\Render\Setting\Collection)[44]
                  ...
          'row' => 
            array (size=13)
              'id' => string '1' (length=1)
              'pid' => string '2' (length=1)
              'sorting' => string '128' (length=3)
              'tstamp' => string '1397471911' (length=10)
              'titel' => string 'Hallo Welt' (length=10)
              'details' => string '<p>Duis Aliquet Egestas Purus<br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis.<br><br>Porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor.</p>' (length=467)
              'alias' => string 'hallo-welt' (length=10)
              'titelbild' => 
                array (size=2)
                  ...
              'galerie' => 
                array (size=2)
                  ...
              'kategorie' => 
                array (size=9)
                  ...
              'published' => null
              'galerie_ja' => null
              'termine' => 
                array (size=3)
                  ...
          'raw' => 
            array (size=2)
              'value' => 
                array (size=3)
                  ...
              'path' => 
                array (size=3)
                  ...
          'additional_class' => string '' (length=0)
          'files' => 
            array (size=3)
              0 => string 'files/demo/unsplash_52b2cfb6647f6_1_thumb.jpg' (length=45)
              1 => string 'files/demo/unsplash_52b73e0b2dee2_1_thumb.jpg' (length=45)
              2 => string 'files/demo/unsplash_52be0803ecaec_1_thumb.jpg' (length=45)
          'src' => 
            array (size=3)
              0 => 
                array (size=17)
                  ...
              1 => 
                array (size=17)
                  ...
              2 => 
                array (size=17)
                  ...
      protected 'strFormat' => string 'html5' (length=5)
    Hier mein angepasstes Template

    PHP-Code:
    <?php
    switch ($this->attribute->get('colname'))
    {
        case 
    "galerie"
            
    $active $this->row['galerie_ja'] ? true false;
            break;
        default: 
            
    $active true;
            break;
    }
    ?>
    <pre><?php var_dump($this); ?></pre>
    <?php if (is_array($this->src) && $active): ?>
    <ul>
    <?php foreach($this->src as $arrFile): 
    $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']);
    $strAlt   = ($arrFile['caption']) ? $arrFile['caption'] : '';
    ?>    
    <li class="<?php echo $arrFile['class']; ?>">
        <?php if ($this->settings->get('file_showLink')): ?>
            <?php if ($this->settings->get('file_showImage')): ?>
                <a data-lightbox="<?php echo $arrFile['lb']; ?>" title="<?php echo $strTitle?>" href="<?php echo $arrFile['file']; ?>">
            <?php else: ?>
                <a title="<?php echo $strTitle?>" href="<?php echo $arrFile['url']; ?>">
            <?php endif; ?>
        <?php endif; ?>
                    
        <?php if ($this->settings->get('file_showImage')): ?>
            <?php if ($arrFile['isGdImage']): ?>
                <?php echo $this->generateImage($arrFile['src'], $strAlt); ?>
            <?php endif; ?>
        <?php else: ?>
            <img src="<?php echo $arrFile['icon']; ?>" alt="<?php echo $strAlt?>" /> <?php echo $strTitle?> <span class="size"><?php echo $arrFile['sizetext']; ?></span>
        <?php endif; ?>
            
        <?php if ($this->settings->get('file_showLink')): ?>
            </a>
        <?php endif; ?>
    </li>
    <?php endforeach; ?>
    </ul>
    <?php else: ?>
    <!-- skipped -->
    <?php endif; ?>

  5. #5
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Wenn es darum geht, dass die veröffentlichen Daten angezeigt werden sollen,
    kannst du das über einen Filter lösen. (Lupen Icon)

    Code:
    SELECT id FROM {{table}} WHERE veroeffentlich="1"
    veroeffentlich kannst du mit dem namen deiner Checkbox ersetzen.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  6. #6
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    Zitat Zitat von Messa Beitrag anzeigen
    Wenn es darum geht, dass die veröffentlichen Daten angezeigt werden sollen,
    kannst du das über einen Filter lösen. (Lupen Icon)
    Danke, ja das weiß ich. Ich möchte aber einen Teil innerhalb (!) ausblenden.

  7. #7
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Also wenn ich bei mir mit
    PHP-Code:
    <?php print_r($this); ?>
    alle Daten ausgeben lasse.
    Sehe ich in meinem Array
    PHP-Code:
    [veroeffentlichen] => 
    und ich habe nichts an einem mm_attr_file.html5
    etwas geändert!

    PHP-Code:
    <?php 
    foreach ($this->data as $arrItem);
    if (
    $arrItem['veroeffentlichen'] == 1) {
       
    //Mach das wenn veröffentlichen 1 ist
    }
    else
    {
       
    //oder das wenn veröffentlichen nicht 1 ist
    }
    endforeach;
    Was möchtest du denn genau machen?

    lg Matthias
    Geändert von Messa (14.04.2014 um 13:38 Uhr)
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  8. #8
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard workaround gefunden.

    Ich habe mittlerweile was rausgefunden. Es werden im Template nur die Attribute aus der DB abgefragt, die in den Rendersettings als sichtbar markiert sind. Soweit gut. Dann wird "$this->row['galerie_ja']" zu "1" - super - allerdings erscheint dann auch im FE Template eine "1" mitten im Text. Das ist ja auch irgendwie doof. Ich habe gedacht, es wäre sinnvoller, wenn im Template der komplette DB Inhalt eines Items zugänglich wäre - egal ob Anzeige oder nicht. Ist das jetzt ein Bug oder ein Feature?

    Ich habe allerdings einen Workaround gefunden: in Rendersettings das Checkbox Attribut zur Ausgabe aktivieren, ein neues Template auf Basis von "mm_attr_checkbox.html5" erstellen, welches keine Ausgabe macht. Dann erscheint nichts im Template UND ich kann per "$this->row['galerie_ja']" immer zugreifen. Wenn ich jetzt eine Checkbox aber als richtiges anzuzeigendes Attribut und nicht nur als Schalter verwenden möchte, dann muss zwei templates haben z.b. "mm_attr_checkbox.html5" (Standard) und "mm_attr_checkbox_subpalette_switch.html" o.ä.

    Problem umgangen. Vielleicht könnte das MM Team mal darüber nachdenken, ob Subpaletten Aktivier-Checkboxen auch in $this->row[] erscheinen, aber im Template nach den "sichtbar" Einstellungen angezeigt wird.

  9. #9
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    Zitat Zitat von Messa Beitrag anzeigen
    Also wenn ich bei mir mit
    PHP-Code:
    <?php print_r($this); ?>
    alle Daten ausgeben lasse.
    Sehe ich in meinem Array
    PHP-Code:
    [veroeffentlichen] => 
    und ich habe nichts an einem mm_attr_file.html5
    etwas geändert!s
    Dann hast du wohl in den Rendersettings ein grünes Auge bei "veroeffentlichen", oder?


    Zitat Zitat von Messa Beitrag anzeigen
    Was möchtest du denn genau machen?
    Eine Gallerie in Form eine Subpalette ausblenden, wenn im BE der Haken "Galerie aktivieren" nicht selektiert ist.

    Ich denke, aber ich habe mein Problem schon gelöst: Durch Kombination von Rendesettings und template für die Checkbox.

  10. #10
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Cyberlussi Beitrag anzeigen
    Ich habe mittlerweile was rausgefunden. Es werden im Template nur die Attribute aus der DB abgefragt, die in den Rendersettings als sichtbar markiert sind. Soweit gut. Dann wird "$this->row['galerie_ja']" zu "1" - super - allerdings erscheint dann auch im FE Template eine "1" mitten im Text. Das ist ja auch irgendwie doof. Ich habe gedacht, es wäre sinnvoller, wenn im Template der komplette DB Inhalt eines Items zugänglich wäre - egal ob Anzeige oder nicht. Ist das jetzt ein Bug oder ein Feature?

    Ich habe allerdings einen Workaround gefunden: in Rendersettings das Checkbox Attribut zur Ausgabe aktivieren, ein neues Template auf Basis von "mm_attr_checkbox.html5" erstellen, welches keine Ausgabe macht. Dann erscheint nichts im Template UND ich kann per "$this->row['galerie_ja']" immer zugreifen. Wenn ich jetzt eine Checkbox aber als richtiges anzuzeigendes Attribut und nicht nur als Schalter verwenden möchte, dann muss zwei templates haben z.b. "mm_attr_checkbox.html5" (Standard) und "mm_attr_checkbox_subpalette_switch.html" o.ä.

    Problem umgangen. Vielleicht könnte das MM Team mal darüber nachdenken, ob Subpaletten Aktivier-Checkboxen auch in $this->row[] erscheinen, aber im Template nach den "sichtbar" Einstellungen angezeigt wird.
    Hmm ich meine mich zu erinnern, das ALLE Werte verfügbar sind, wenn man gar kein Attribute auswählt bei den Rendersettings. Dann muss man aber alles per Template ausgeben. Da finde ich die Varianten dann doch etwas besser. Im Grunde müsste es also eigentlich bei den Rendersettings eventuell noch eine Möglichkeit des Veröffentlichen geben: Parameter übergeben aber keine Template ausgabe. Hmm mach doch mal nen Ticket. Dann kommt das auch an der richtigen Stelle an ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  11. #11
    Contao-Nutzer
    Registriert seit
    20.02.2012.
    Beiträge
    123

    Standard

    Hier das Ticket für den Feature/Optimierungs-Request: https://github.com/MetaModels/core/issues/402 und hier wegen der PHP Fehlermeldung: https://github.com/MetaModels/core/issues/400

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •