Skip to content
Code-Schnipsel Gruppen Projekte
Commit 577ae629 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

Merge branch 'dev'

Übergeordnete 7d025698 f9aaf489
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -193,8 +193,12 @@ public function fetch($resource_name)
}
}
if (isset(self::$fileCache[$resource_name])) {
$usr_resource_name = self::$fileCache[$resource_name];
$cacheName = \md5(
$resource_name.'_'.$projectName
);
if (isset(self::$fileCache[$cacheName])) {
$usr_resource_name = self::$fileCache[$cacheName];
} elseif (\strpos($resource_name, OPT_DIR) !== false) {
$usr_resource_name = \str_replace(
OPT_DIR,
......@@ -247,20 +251,20 @@ public function fetch($resource_name)
}
if (\file_exists($usr_resource_name)) {
self::$fileCache[$resource_name] = $usr_resource_name;
$tpl_resource_name = false;
self::$fileCache[$cacheName] = $usr_resource_name;
$tpl_resource_name = false;
} elseif (\file_exists($tpl_resource_name)) {
self::$fileCache[$resource_name] = $tpl_resource_name;
$usr_resource_name = false;
self::$fileCache[$cacheName] = $tpl_resource_name;
$usr_resource_name = false;
} elseif ($parent_resource_name && \file_exists($parent_resource_name)) {
// inheritance -> parent templates
self::$fileCache[$resource_name] = $parent_resource_name;
$tpl_resource_name = $parent_resource_name;
$usr_resource_name = false;
self::$fileCache[$cacheName] = $parent_resource_name;
$tpl_resource_name = $parent_resource_name;
$usr_resource_name = false;
} else {
self::$fileCache[$resource_name] = $resource_name;
$usr_resource_name = false;
$tpl_resource_name = false;
self::$fileCache[$cacheName] = $resource_name;
$usr_resource_name = false;
$tpl_resource_name = false;
}
QUI\Cache\Manager::set('smarty/engine/fetch', self::$fileCache);
......@@ -278,15 +282,15 @@ public function fetch($resource_name)
);
if (\file_exists($usr_resource_name)) {
self::$fileCache[$resource_name] = $usr_resource_name;
$tpl_resource_name = false;
self::$fileCache[$cacheName] = $usr_resource_name;
$tpl_resource_name = false;
} elseif (\file_exists($tpl_resource_name)) {
self::$fileCache[$resource_name] = $tpl_resource_name;
$usr_resource_name = false;
self::$fileCache[$cacheName] = $tpl_resource_name;
$usr_resource_name = false;
} else {
self::$fileCache[$resource_name] = $resource_name;
$usr_resource_name = false;
$tpl_resource_name = false;
self::$fileCache[$cacheName] = $resource_name;
$usr_resource_name = false;
$tpl_resource_name = false;
}
QUI\Cache\Manager::set('smarty/engine/fetch', self::$fileCache);
......
......@@ -9,6 +9,9 @@
*
* Responsible for fetching template files via Smarty.
* This overwrites the default Smarty "fetch" method!
*
* @todo globale Smarty get Filename einführen
* @todo getFilename dann nutzen
*/
class QuiqqerTemplateFetch
{
......@@ -26,7 +29,8 @@ public static function fetch($params, $Smarty)
return '';
}
$file = $params['template'];
$file = $params['template'];
$Project = QUI::getRewrite()->getProject();
if (!empty($params['Template'])
&& $params['Template'] instanceof QUI\Template
......@@ -34,7 +38,6 @@ public static function fetch($params, $Smarty)
) {
$templatePath = $params['Template']->getTemplatePath();
} else {
$Project = QUI::getRewrite()->getProject();
$templatePath = OPT_DIR.$Project->getAttribute('template').'/';
}
......@@ -62,9 +65,9 @@ public static function fetch($params, $Smarty)
$TemplateParent = $Package->getTemplateParent();
$file = OPT_DIR.
$TemplateParent->getName().
DIRECTORY_SEPARATOR.
\implode(DIRECTORY_SEPARATOR, $file);
$TemplateParent->getName().
DIRECTORY_SEPARATOR.
\implode(DIRECTORY_SEPARATOR, $file);
if (!file_exists($file)) {
QUI\System\Log::addError('Template file "'.$file.'" not found.');
......@@ -80,6 +83,7 @@ public static function fetch($params, $Smarty)
}
}
$Engine = QUI::getTemplateManager()->getEngine();
$Engine->assign($params);
......
......@@ -229,8 +229,8 @@ function smarty_function_image($params, $smarty)
return \smarty_plugin_image_assign($params, $src, $smarty);
}
// create image tag
// @todo \QUI\Projects\Media\Utils::getImageHTML
// create picture / image tag
try {
QUI::getEvents()->fireEvent('smartyImageBeforeSource', [$smarty, &$src, &$params]);
......@@ -238,103 +238,49 @@ function smarty_function_image($params, $smarty)
QUI\System\Log::writeDebugException($Exception);
}
$str = '<img src="'.$src.'"';
// if ($params['width']) {
// if (isset($params['style']) && strpos($params['style'], 'width') === false
// || isset($params['style']) === false
// ) {
// $params['style'] = 'width: ' . $params['width'] . 'px; max-width: 100%;';
// }
// }
$attributes = [];
$filter = \array_flip([
'src',
'type',
'height',
'width',
'reflection',
'image',
'assign',
'host',
'nosrcset'
]);
foreach ($params as $key => $value) {
if (!$value) {
continue;
}
if ($key == 'src'
|| $key == 'type'
|| $key == 'height'
|| $key == 'width'
|| $key == 'reflection'
|| $key == 'image'
|| $key == 'assign'
|| $key == 'host'
|| $key == 'nosrcset'
) {
continue;
if (!isset($filter[$key])) {
$attributes[$key] = $value;
}
$str .= ' '.$key.'="'.\htmlentities($value, ENT_COMPAT, 'UTF-8').'"';
}
// alt und title setzen
if (!isset($params['alt'])) {
$str .= ' alt="'.\htmlentities($Image->getAttribute('alt'), ENT_COMPAT, 'UTF-8').'"';
}
if (!isset($params['title'])) {
$str .= ' title="'.\htmlentities($Image->getAttribute('title'), ENT_COMPAT, 'UTF-8').'" ';
// missing alt / title
if (!isset($attributes['alt'])) {
$attributes['alt'] = \htmlentities($Image->getAttribute('alt'), ENT_COMPAT, 'UTF-8');
}
// src set
if (empty($params['nosrcset']) && $params['width'] && $params['width'] >= 480) {
$srcSetData = [];
$needleSizes = [480, 640, 960, 1280, 1920];
if (!\in_array($params['width'], $needleSizes)) {
$needleSizes[] = $params['width'];
}
foreach ($needleSizes as $size) {
if ($params['width'] >= $size) {
$srcSetData[] = [
'width' => $size,
'src' => $Image->getSizeCacheUrl($size)
];
}
}
// srcset
$srcset = 'srcset="';
$sizes = 'sizes="';
for ($i = 0, $len = \count($srcSetData); $i < $len; $i++) {
$data = $srcSetData[$i];
// last?
if ($i == $len - 1) {
$srcset .= "{$data['src']} {$data['width']}w";
$sizes .= "{$data['width']}px";
continue;
}
$srcset .= "{$data['src']} {$data['width']}w,";
$sizes .= "(max-width: {$data['width']}px) {$data['width']}px,";
}
$srcset .= '" ';
$sizes .= '" ';
$str .= $srcset;
$str .= $sizes;
if (!isset($attributes['title'])) {
$attributes['title'] = \htmlentities($Image->getAttribute('alt'), ENT_COMPAT, 'UTF-8');
}
$str .= ' />';
$result = QUI\Projects\Media\Utils::getImageHTML($Image->getUrl(), $attributes);
try {
QUI::getEvents()->fireEvent('smartyImageEnd', [$smarty, &$str]);
QUI::getEvents()->fireEvent('smartyImageEnd', [$smarty, &$result]);
} catch (QUI\Exception $Exception) {
QUI\System\Log::writeDebugException($Exception);
}
return \smarty_plugin_image_assign($params, $str, $smarty);
return \smarty_plugin_image_assign($params, $result, $smarty);
}
/**
* Um das Ergebniss in eine Variable zuzuweisen
* To assign the result to a variable
*
* @param array $params
* @param string $str
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren