xref: /plugin/combo/ComboStrap/Display.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
14cadd4f8SNickeau<?php
24cadd4f8SNickeau
34cadd4f8SNickeau
44cadd4f8SNickeaunamespace ComboStrap;
54cadd4f8SNickeau
64cadd4f8SNickeau
74cadd4f8SNickeauclass Display
84cadd4f8SNickeau{
94cadd4f8SNickeau
104cadd4f8SNickeau    public const DISPLAY = "display";
114cadd4f8SNickeau    public const DISPLAY_NONE_VALUE = "none";
12*04fd306cSNickeau    public const DISPLAY_NONE_IF_EMPTY_VALUE = "none-if-empty";
134cadd4f8SNickeau
144cadd4f8SNickeau    public static function processDisplay(TagAttributes &$tagAttributes)
154cadd4f8SNickeau    {
164cadd4f8SNickeau
17*04fd306cSNickeau        $display = $tagAttributes->getValueAndRemove(self::DISPLAY);
184cadd4f8SNickeau        if ($display !== null) {
19*04fd306cSNickeau            $value = strtolower($display);
20*04fd306cSNickeau            switch ($value) {
21*04fd306cSNickeau                case self::DISPLAY_NONE_VALUE:
224cadd4f8SNickeau                    $tagAttributes->addStyleDeclarationIfNotSet("display", "none");
23*04fd306cSNickeau                    return;
24*04fd306cSNickeau                case self::DISPLAY_NONE_IF_EMPTY_VALUE:
25*04fd306cSNickeau                    try {
26*04fd306cSNickeau                        $id = $tagAttributes->getId();
27*04fd306cSNickeau                    } catch (ExceptionNotFound $e) {
28*04fd306cSNickeau                        $id = $tagAttributes->getDefaultGeneratedId();
29*04fd306cSNickeau                        $tagAttributes->setId($id);
30*04fd306cSNickeau                    }
31*04fd306cSNickeau                    $css = "#$id:empty {  display: none; }";
32*04fd306cSNickeau                    ExecutionContext::getActualOrCreateFromEnv()
33*04fd306cSNickeau                        ->getSnippetSystem()
34*04fd306cSNickeau                        ->attachCssInternalStyleSheet("display-none-if-empty-$id", $css);
35*04fd306cSNickeau                    return;
36*04fd306cSNickeau
37*04fd306cSNickeau            }
384cadd4f8SNickeau        }
394cadd4f8SNickeau    }
404cadd4f8SNickeau
414cadd4f8SNickeau}
42