Денис, спасибо, вопрос с этой ошибкой решён. больше не возникает.
С остальным буду тогда буду стараться разбираться.
Отправлено 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
Верно.Теперь получается можно делать сколько угодно локализаций, они будут автоматом подключаться, как я понимаю, и выводиться в зависимости от языка админки, правильно?
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.