Денис, спасибо, вопрос с этой ошибкой решён. больше не возникает.
С остальным буду тогда буду стараться разбираться.
Отправлено 20 January 2016 - 12:14
Денис, спасибо, вопрос с этой ошибкой решён. больше не возникает.
С остальным буду тогда буду стараться разбираться.
Отправлено 28 January 2016 - 16:28
Денис, хотел вам задать ещё один вопрос. Подскажите пожалуйста, как мне получить массив изображений и при этом чтобы они имели свои параметры ширины и высоты, без масштабирования?
Я знаю, что для миниатюр имеется вот такая функция, которая получает изображения из папки и ресайзит их до необходимого размера:
protected function _getThumbnails($params)
{
$thumbs = array();
$thumbnailWidth = $params->get('thumbnailWidth');
$thumbnailHeight = $params->get('thumbnailHeight');
$resize = $params->get('resize', 1);
$title = $this->_data->get('title', '');
$files = JFolder::files($this->_path, '.', false, true, array('.svn', 'CVS', '.DS_Store'));
$files = array_filter(
$files, create_function('$file', 'return preg_match("#(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$#i", $file);')
);
// set default thumbnail size, if incorrect sizes defined
$thumbnailWidth = intval($thumbnailWidth);
$thumbnailHeight = intval($thumbnailHeight);
if ($thumbnailWidth < 1 && $thumbnailHeight < 1) {
$thumbnailWidth = 100;
$thumbnailHeight = null;
}
foreach ($files as $file) {
$filename = basename($file);
$thumb = $this->app->zoo->resizeImage($file, $thumbnailWidth, $thumbnailHeight);
// if thumbnail exists, add it to return value
if (file_exists($thumb)) {
// set image name or title if exsist
$name = '';
if (isset($desc_array[$filename])) {
$name = $desc_array[$filename];
}
// get image info
list($thumb_width, $thumb_height) = @getimagesize($thumb);
$thumbs[] = array(
'name' => $name,
'filename' => $filename,
'img' => $this->_uri . $this->_getRelativePath($file),
'img_file' => $file,
'thumb' => $this->_uri . $this->_getRelativePath($thumb),
'thumb_width' => $thumb_width,
'thumb_height' => $thumb_height
);
}
}
return $thumbs;
}
А мне нужно просто получить большие изображения из папки в массив и вывести их в шаблон tmpl / jbsliderpro.php
Отправлено 29 January 2016 - 12:40
$thumb = $this->app->zoo->resizeImage($file, $thumbnailWidth, $thumbnailHeight); // заменить на $thumb = $file;
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 29 January 2016 - 12:49
Понял. То есть я создаю новую переменную, и в неё кладу все файлы из папки без ресайзинга.
Просто понимаете, в чём проблема. Получается так, что сначала все изображения складываются в массив, потом ресайзятся до миниатюр, и потом каждая миниатюра уже масштабируется, когда нужно показать большое фото. И это большое фото очень плохого качества. Поэтому я хочу большие фото выводить из другого массива.
Как мне именно большое фото из нового массива выводить в шаблоне?
Вот ссылка кстати, где можно посмотреть работу слайдера: http://clock.artcolo...-vesyolaya-sova
Отправлено 29 January 2016 - 12:58
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 29 January 2016 - 13:07
Наверное проще сделать ещё одну функцию, в которой будет храниться новый массив. Если новая функция, то если взять за основу предыдущую, что от неё необходимо оставить?
Вот этого должно думаю хватить:
protected function _getImages($params)
{
$bigImage = array();
$width = $params->get('width');
$height = $params->get('height');
$title = $this->_data->get('title', '');
$files = JFolder::files($this->_path, '.', false, true, array('.svn', 'CVS', '.DS_Store'));
$files = array_filter(
$files, create_function('$file', 'return preg_match("#(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$#i", $file);')
);
foreach ($files as $file) {
$filename = basename($file);
$bigImage = $file;
// if thumbnail exists, add it to return value
if (file_exists($thumb)) {
// set image name or title if exsist
$name = '';
if (isset($desc_array[$filename])) {
$name = $desc_array[$filename];
}
// get image info
list($thumb_width, $thumb_height) = @getimagesize($thumb);
$bigImage[] = array(
'name' => $name,
'filename' => $filename,
'img' => $this->_uri . $this->_getRelativePath($file),
'img_file' => $file
);
}
}
return $bigImage;
}
Так правильно будет?
Отправлено 29 January 2016 - 15:48
В общем, эта функция не понадобилась, вытянули нужные элементы из того массива, там оказывается большие изображения также хранятся.
Единственная проблема ещё - это подключение локализации. По вашему методу локализация подключается, но выдаёт ошибки как в админке, так и на фронте. Может можно как-то иначе подключить?
Отправлено 30 January 2016 - 13:08
Подключил сейчас локализацию всё-таки тем методом, что вы показывали, и вы знаете, всё-таки заработало!
Вот этот код вставил, что вы давали:
public function __construct($app, $type, $group)
{
parent::__construct($app, $type, $group);
JFactory::getLanguage()->load('elem_' . $this->getElementType(), $this->getPath(), null, true);
}
Теперь получается можно делать сколько угодно локализаций, они будут автоматом подключаться, как я понимаю, и выводиться в зависимости от языка админки, правильно?
Отправлено 30 January 2016 - 13:15
Так, и ещё один вопрос всё-таки.
Слайдер поддерживает также вывод видео. То есть, при сканировании папки, в массив можно также добавлять и видео. Как это можно сделать?
Вот в этой строке добавить просто расширения для видео:
$files = array_filter(
$files, create_function('$file', 'return preg_match("#(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$#i", $file);')
);
И также я думаю нужна опция, которая будет разрешать или запрещать добавлять видео в массив
Отправлено 02 February 2016 - 10:23
Верно.Теперь получается можно делать сколько угодно локализаций, они будут автоматом подключаться, как я понимаю, и выводиться в зависимости от языка админки, правильно?
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.