本文整理汇总了PHP中AssetModel::ETag方法的典型用法代码示例。如果您正苦于以下问题:PHP AssetModel::ETag方法的具体用法?PHP AssetModel::ETag怎么用?PHP AssetModel::ETag使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AssetModel
的用法示例。
在下文中一共展示了AssetModel::ETag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: RenderMaster
/**
* Undocumented method.
*
* @todo Method RenderMaster() needs a description.
*/
public function RenderMaster()
{
// Build the master view if necessary
if (in_array($this->_DeliveryType, array(DELIVERY_TYPE_ALL))) {
$this->MasterView = $this->MasterView();
// Only get css & ui components if this is NOT a syndication request
if ($this->SyndicationMethod == SYNDICATION_NONE && is_object($this->Head)) {
// if (ArrayHasValue($this->_CssFiles, 'style.css')) {
// $this->AddCssFile('custom.css');
//
// // Add the theme option's css file.
// if ($this->Theme && $this->ThemeOptions) {
// $Filenames = GetValueR('Styles.Value', $this->ThemeOptions);
// if (is_string($Filenames) && $Filenames != '%s')
// $this->_CssFiles[] = array('FileName' => ChangeBasename('custom.css', $Filenames), 'AppFolder' => FALSE, 'Options' => FALSE);
// }
// } elseif (ArrayHasValue($this->_CssFiles, 'admin.css')) {
// $this->AddCssFile('customadmin.css');
// }
$this->EventArguments['CssFiles'] =& $this->_CssFiles;
$this->FireEvent('BeforeAddCss');
$ETag = AssetModel::ETag();
$CombineAssets = C('Garden.CombineAssets');
$ThemeType = IsMobile() ? 'mobile' : 'desktop';
// And now search for/add all css files.
foreach ($this->_CssFiles as $CssInfo) {
$CssFile = $CssInfo['FileName'];
// style.css and admin.css deserve some custom processing.
if (in_array($CssFile, array('style.css', 'admin.css'))) {
if (!$CombineAssets) {
// Grab all of the css files from the asset model.
$AssetModel = new AssetModel();
$CssFiles = $AssetModel->GetCssFiles($ThemeType, ucfirst(substr($CssFile, 0, -4)), $ETag);
foreach ($CssFiles as $Info) {
$this->Head->AddCss($Info[1], 'all', TRUE, $CssInfo);
}
} else {
$Basename = substr($CssFile, 0, -4);
$this->Head->AddCss(Url("/utility/css/{$ThemeType}/{$Basename}-{$ETag}.css", '//'), 'all', FALSE, $CssInfo['Options']);
}
continue;
}
if (StringBeginsWith($CssFile, 'http')) {
$this->Head->AddCss($CssFile, 'all', GetValue('AddVersion', $CssInfo, TRUE), $CssInfo['Options']);
continue;
} elseif (strpos($CssFile, '/') !== FALSE) {
// A direct path to the file was given.
$CssPaths = array(CombinePaths(array(PATH_ROOT, str_replace('/', DS, $CssFile))));
} else {
// $CssGlob = preg_replace('/(.*)(\.css)/', '\1*\2', $CssFile);
$AppFolder = $CssInfo['AppFolder'];
if ($AppFolder == '') {
$AppFolder = $this->ApplicationFolder;
}
// CSS comes from one of four places:
$CssPaths = array();
if ($this->Theme) {
// Use the default filename.
$CssPaths[] = PATH_THEMES . DS . $this->Theme . DS . 'design' . DS . $CssFile;
}
// 3. Application or plugin.
if (StringBeginsWith($AppFolder, 'plugins/')) {
// The css is coming from a plugin.
$AppFolder = substr($AppFolder, strlen('plugins/'));
$CssPaths[] = PATH_PLUGINS . "/{$AppFolder}/design/{$CssFile}";
$CssPaths[] = PATH_PLUGINS . "/{$AppFolder}/{$CssFile}";
} elseif (in_array($AppFolder, array('static', 'resources'))) {
// This is a static css file.
$CssPaths[] = PATH_ROOT . "/resources/css/{$CssFile}";
} else {
// Application default. eg. root/applications/app_name/design/
$CssPaths[] = PATH_APPLICATIONS . DS . $AppFolder . DS . 'design' . DS . $CssFile;
}
// 4. Garden default. eg. root/applications/dashboard/design/
$CssPaths[] = PATH_APPLICATIONS . DS . 'dashboard' . DS . 'design' . DS . $CssFile;
}
// Find the first file that matches the path.
$CssPath = FALSE;
foreach ($CssPaths as $Glob) {
$Paths = SafeGlob($Glob);
if (is_array($Paths) && count($Paths) > 0) {
$CssPath = $Paths[0];
break;
}
}
// Check to see if there is a CSS cacher.
$CssCacher = Gdn::Factory('CssCacher');
if (!is_null($CssCacher)) {
$CssPath = $CssCacher->Get($CssPath, $AppFolder);
}
if ($CssPath !== FALSE) {
$CssPath = substr($CssPath, strlen(PATH_ROOT));
$CssPath = str_replace(DS, '/', $CssPath);
$this->Head->AddCss($CssPath, 'all', TRUE, $CssInfo['Options']);
}
//.........这里部分代码省略.........