[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}
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; ?>