1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeau 6*04fd306cSNickeau 7*04fd306cSNickeau/** 8*04fd306cSNickeau * Implementation of a inline note 9*04fd306cSNickeau * called an alert in <a href="https://getbootstrap.com/docs/4.0/components/badge/">bootstrap</a> 10*04fd306cSNickeau * 11*04fd306cSNickeau * Quickly created with a copy of a badge 12*04fd306cSNickeau */ 13*04fd306cSNickeauclass NoteTag 14*04fd306cSNickeau{ 15*04fd306cSNickeau 16*04fd306cSNickeau 17*04fd306cSNickeau public const ATTRIBUTE_ROUNDED = "rounded"; 18*04fd306cSNickeau public const INOTE_CONF_DEFAULT_ATTRIBUTES_KEY = 'defaultInoteAttributes'; 19*04fd306cSNickeau public const TAG_INOTE = "inote"; 20*04fd306cSNickeau 21*04fd306cSNickeau const KNOWN_TYPES = [ 22*04fd306cSNickeau \syntax_plugin_combo_note::WARNING_TYPE, 23*04fd306cSNickeau \syntax_plugin_combo_note::IMPORTANT_TYPE, 24*04fd306cSNickeau \syntax_plugin_combo_note::TIP_TYPE, 25*04fd306cSNickeau \syntax_plugin_combo_note::INFO_TYPE, 26*04fd306cSNickeau ]; 27*04fd306cSNickeau 28*04fd306cSNickeau 29*04fd306cSNickeau public static function renderEnterInlineNote(TagAttributes $tagAttributes): string 30*04fd306cSNickeau { 31*04fd306cSNickeau $tagAttributes->addClassName("badge"); 32*04fd306cSNickeau 33*04fd306cSNickeau PluginUtility::getSnippetManager()->attachCssInternalStyleSheet(NoteTag::TAG_INOTE); 34*04fd306cSNickeau 35*04fd306cSNickeau $type = $tagAttributes->getValue(TagAttributes::TYPE_KEY); 36*04fd306cSNickeau 37*04fd306cSNickeau // Switch for the color 38*04fd306cSNickeau switch ($type) { 39*04fd306cSNickeau case "important": 40*04fd306cSNickeau $type = "warning"; 41*04fd306cSNickeau break; 42*04fd306cSNickeau case "warning": 43*04fd306cSNickeau $type = "danger"; 44*04fd306cSNickeau break; 45*04fd306cSNickeau } 46*04fd306cSNickeau 47*04fd306cSNickeau if ($type != "tip") { 48*04fd306cSNickeau $bootstrapVersion = Bootstrap::getBootStrapMajorVersion(); 49*04fd306cSNickeau if ($bootstrapVersion == Bootstrap::BootStrapFiveMajorVersion) { 50*04fd306cSNickeau /** 51*04fd306cSNickeau * We are using 52*04fd306cSNickeau */ 53*04fd306cSNickeau $tagAttributes->addClassName("alert-" . $type); 54*04fd306cSNickeau } else { 55*04fd306cSNickeau $tagAttributes->addClassName("badge-" . $type); 56*04fd306cSNickeau } 57*04fd306cSNickeau } else { 58*04fd306cSNickeau if (!$tagAttributes->hasComponentAttribute("background-color")) { 59*04fd306cSNickeau $tagAttributes->addStyleDeclarationIfNotSet("background-color", "#fff79f"); // lum - 195 60*04fd306cSNickeau $tagAttributes->addClassName("text-dark"); 61*04fd306cSNickeau } 62*04fd306cSNickeau } 63*04fd306cSNickeau $rounded = $tagAttributes->getValueAndRemove(NoteTag::ATTRIBUTE_ROUNDED); 64*04fd306cSNickeau if (!empty($rounded)) { 65*04fd306cSNickeau $tagAttributes->addClassName("badge-pill"); 66*04fd306cSNickeau } 67*04fd306cSNickeau 68*04fd306cSNickeau return $tagAttributes->toHtmlEnterTag("span"); 69*04fd306cSNickeau } 70*04fd306cSNickeau 71*04fd306cSNickeau public static function renderClosingInlineNote(): string 72*04fd306cSNickeau { 73*04fd306cSNickeau return '</span>'; 74*04fd306cSNickeau } 75*04fd306cSNickeau 76*04fd306cSNickeau} 77