/** * 2015-10-27 * @used-by df_fe_init() * @used-by \Dfe\Markdown\FormElement::getBeforeElementHtml() * @param string|string[] $resource * @return string */ function df_link_inline($resource) { if (1 < func_num_args()) { $resource = func_get_args(); } /** @var string $result */ if (is_array($resource)) { $result = df_cc_n(array_map(__FUNCTION__, $resource)); } else { /** * 2015-12-11 * Не имеет смысла несколько раз загружать на страницу один и тот же файл CSS. * Как оказалось, браузер при наличии на странице нескольких тегов link с одинаковым адресом * применяет одни и те же правила несколько раз (хотя, видимо, не делает повторных обращений к серверу * при включенном в браузере кэшировании браузерных ресурсов). */ /** @var string[] $cache */ static $cache; if (isset($cache[$resource])) { $result = ''; } else { /** * 2016-03-23 * Добавил обработку пустой строки $resource. * Нам это нужно, потому что пустую строку может вернуть @see \Df\Typography\Font::link() * https://mage2.pro/t/1010 */ $result = !$resource ? '' : df_tag('link', ['href' => df_asset_create($resource)->getUrl(), 'rel' => 'stylesheet', 'type' => 'text/css'], null, false); $cache[$resource] = true; } } return $result; }
/** * 2015-12-29 * Метод реализован по аналогии с @see \Magento\Framework\View\Asset\File::getSourceFile(): * https://github.com/magento/magento2/blob/2.0.0/lib/internal/Magento/Framework/View/Asset/File.php#L147-L156 * @param string $name * Обратите внимание, что в качестве $name можно передавать: * 1) короткое имя; * 2) уже собранное посредством @see df_asset_name() полное имя ассета; * @param string|null $moduleName [optional] * @param string|null $extension [optional] * @return bool */ function df_asset_exists($name, $moduleName = null, $extension = null) { return dfcf(function ($name, $moduleName = null, $extension = null) { return !!df_asset_source()->findSource(df_asset_create(df_asset_name($name, $moduleName, $extension))); }, func_get_args()); }