コード例 #1
0
ファイル: html.php プロジェクト: mage2pro/core
/**
 * 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;
}
コード例 #2
0
ファイル: asset.php プロジェクト: mage2pro/core
/**
 * 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());
}