χάμστερ :: :: :: :: ::
Feci, quod potui, faciant meliora potentes
Тэг для уменьшения картинки средствами системы
Понадобился тэг для уменьшения картинки, а точнее, для простого добавления на страницу превьюшки при клике на которую открывается большая картинка (типа lightbox, fancybox и тп).
С добавлением этого самого эффекта проблем нет - достаточно прикрутить соответствующую библиотеку и натравить ее на картинку (ссылку с картинкой). Проблема оказалась с генерацией картинки. Ну точнее - как средствами самой системы вывести картинку.
Покопав код вот что получилось: создадим тэг, например, 'boxImage' c содержанием, которое приводится ниже. Далее на любой странице его можно вызвать следующим образом: {boxImage src='путь к картинке относительно uploads/images' [class='дополнительные классы к ссылке'] [align='align для картинки']} - при этом, если у картинки не было превьюшки она создается.
$config = $GLOBALS['gCms']->GetConfig();
$imDir = '/lib/filemanager/ImageManager';
$root = $config['root_path'] . $imDir;
require_once($root . '/config.inc.php');
require_once($root . '/Classes/ImageManager.php');
$manager = new ImageManager($IMConfig);
$image = ltrim($params['src'], '/');
$thumb = $manager->getThumbnail($image);
if (strpos($thumb, 'thumbs.php?img') !== false) {
$thumb = $imDir . '/' . $thumb;
}
$addClass = 'agfbx';
if (isset($params['class'])) {
$addClass .= ' ' . $params['class'];
}
$addParams = '';
if (isset($params['align'])) {
$addParams .= ' align="' . $params['align'] . '"';
}
echo "<a class="{$addClass}" href="uploads/images/{$image}" target="_blank">
<img src="{$thumb}" alt="" />
</a>";
Ну а дальше, подключаем любимый скрипт (у меня fancybox) и вешаем его на картинку:
$(function(){
$('.agfbx').fancybox();
});
Новое на сайте:
- Node.js
- PHP
- Python
- Apache и другие
- Git
- Postgres и локаль
- mysqldump с удаленного сервера
- unity ios build
- Включение и просмотр логов запросов mysql
- Could not find a valid tablespace file for 'database/#sql-*'
- JavaScript, CustomEvent, dispatchevent и jquery.on()
- rabbitmq побился индекс, когда закончилось место