Новости Joomla

joomLab Gallery - плагин галереи изображений для Joomla

👩‍💻 joomLab Gallery - плагин галереи изображений для Joomla.Плагин joomLab Gallery позволит Вам добавлять в любой материал неограниченное количество галерей, а главное удобно управлять файлами и эффектами в каждой галерее.Плагин использует популярны скрипты Swiper.js и FancyBox. Первый для крутой организации и эффектов галерей, а второй для красивого и функционального показа оригинальных изображений на Вашем сайте.На данный момент плагин имеет 10 макетов вывода - это 10 различных эффектов галерей и Вы можете совмещать все 10 в 1 материале.Плагин позволяет гибко настраивать индивидуально каждую галерею в материале. Вы можете выбрать макет, эффекты и даже можете управлять функциями всплывающего окна изображения.Недостатки.Такой вид реализации не предусматривает выбор изображения на сервере. Т.е. Вы не можете выбрать уже добавленное фото, только загружать заново. Плагин не предоставляет возможности доступа к медиа-менеджеру.Плагин бесплатный. Разработчик - участник нашего сообщества Александр Новиков (@pro-portal).Страница расширения@joomlafeed#joomla #расширения

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

0 Пользователей и 1 Гость просматривают эту тему.
  • 31 Ответов
  • 3981 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Вобщем вопрос: можно ли и как?  ::)
Создаю материал, и в папке  images автоматически создаётся папка, именем которой является alias материала.
И когда добавляешь изображения для статьи, то уже не нужно придумывать имя папки и создавать её, плюс гораздо удобнее вставлять код для вывода Simple Image Gallery.
« Последнее редактирование: 22.03.2016, 00:56:28 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
В РНР я, к сожалению, не силён. Кроме 'echo'  едва ли самостоятельно что-то напишу (частично шутка).
Нашёл такую вот функцию: 'mkdir'. Зная алиас материала (а он полюбому задаётся либо пользователем, либо самой Joomla, при создании материала), можно подставить это значение в параметр pathname.
Но вот где происходит сохранение материала не могу разобраться. В файле edit.php админского шаблона не нахожу подобного.
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Вобщем сделал частично, но пока, что называется, "через задницу".

Сначала добавил дополнительное поле — checkbox при создании/редактировании материала:

Код: xml
<fieldset name="image_folder" label="Image folder">
    <field name="create_folder"
        type="checkbox"
        label="Create automatically"
        value="1"
        default="0"
        filter="intval"
    />
</fieldset>

Дальше не придумал ничего умнее, чем написать в шаблоне материала следующее:

Код: php
//create folder for images
if ($params->get('create_folder') == 1) {
    $folder_name = $this->item->alias;
    $folder_name = substr($folder_name,0,30); //trim folder name to 30 characters
    
    $destination = JPATH_SITE.'/'."images/news";
    if (!file_exists($destination.$folder_name)) {      
        JFolder::create($destination .'/'. $folder_name, 0755);
    }
}

Собственно сам алгоритм и код работают. Папка создаётся, при условии, что чекбокс отмечен галочкой, обрезается название до нужной мне длины.
НО! Я думаю и ежу понятно, что:
1. Эта хрень выполняется каждый раз, когда загружается страница со статьёй  :o
2. Срабатывает только после того, как страницу хотя бы один раз загрузили, т.е. выполнился РНР-код.

Понимаю, что нечто похожее на мой код выше, надо добавить в какой-то из файлов administrator/com_content/ но не понимаю куда именно
Очень прошу помочь тех, у кого понимание механизмов Joomla куда глубже, чем моё  ::)
« Последнее редактирование: 22.03.2016, 00:59:29 от goga_pgasovav »
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Здесь нужно использовать плагины. И смотреть какие события удобнее использовать
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
voland, спасибо. А есть ли соображения, как сделать это без плагинов? Зачастую это громоздкие штуковины, и ради одной галочки в настройках материала крайне не хотелось бы их использовать. Кроме того, я искал плагины, позволяющие сделать это, но так и не нашёл.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Зачем ***кодить?
Проще написать плагинчик и спокойно забыть о проблеме.
А то как обновляться то будете?
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
voland сайт, для которого пытаюсь реализовать эту задумку, работает на 2.5, которая уже не поддерживается. Перейти на 3.0 нет возможности. Так что обновление, в моей ситуации, роли не играет. К тому же я сам написание плагина не осилю.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Там все просто.
Тут поискать - была пара сервисов генерации плагинов - дальше обычный PHP
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Плагин - это врезка кода в том месте, где срабатывается событие. Этот механизм придуман, чтобы можно было добавить свой код, но не терять его при обновлении расширения, а также для удобства его дальнейшего изменения. Он будет стоько громоздким, сколько ваш код. Писать плагин несложно, нужно только соблюдение некоторых правил.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Друзья, мы же не в идеальном мире живём. Когда клиент платит, я ищу фрилансера, который пишет всё, что необходимо, и получаю нормально обновляемую систему. В данном случае иемеем сайт с уже хакнутым ядром на устаревшей системе, которую никто не станет обновлять. Ресурсов для написания плагинов нет. Сам плагин написать я не в состоянии, если есть примеры, то дайте ссылку, но я не вижу смысла разводить здесь оффтоп, который совершенно не касается вопроса.

P.S.: Если вы рассматриваете вариант помощи за плату, то напишите пожалуйста в личку. Возможно мне хватит средств из собственного кармана для создания такого плагина, а разработка пригодится и на будущее. Я совершенно не против. Просто исходя из ситуации, я не рассматривал такой вариант изначально.
« Последнее редактирование: 22.03.2016, 14:35:59 от goga_pgasovav »
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 119 / 9
Когда клиент платит, я ищу фрилансера, который пишет всё, что необходимо, и получаю нормально обновляемую систему.

Так в чем проблема? Идите в коммерческий раздел
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
KKAAZZOO, Вы, видимо, читаете обрывками
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 119 / 9
Прочитал всю тему, вплоть до вашего последнего поста, где вы сами сказали как решаете проблемы. Более того вы сказали что готовы заплатить из собственного кармана. Коммерческий раздел для этого и предназначен.
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Вообщем послушал я вас, ребята, и решил попробовать самостоятельно полноценный плагин написать.
Практически всё получилось, лишь одно препятствие встало на пути! Но обо всём по порядку:

Значит имеется дополнительное поле в материале:
(о нём уже писал, ничего не изменилось тут)

Код: xml
<fieldset name="image_folder" label="Image folder">
    <field name="create_folder"
        type="checkbox"
        label="Create automatically"
        value="1"
        default="0"
        filter="intval"
    />
</fieldset>

Далее код плагина:

imgdir.php
Код: php
<?php
defined('_JEXEC') or die;
class plgContentImgDir extends JPlugin
{
    public function onContentAfterSave($context, &$article)
    {
        $articleId = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0;
        $article =& JTable::getInstance('content');
        $article->load($articleId);
        $folder_name = $article->alias;
        $folder_name = substr($folder_name,0,30);
        
        $art_attribs = new JParameter($article->attribs);
        
        if ($art_attribs->get('create_folder') == 1) {
            $destination = JPATH_SITE.'/'."images/news";
            if (!file_exists($destination.$folder_name)) {      
                JFolder::create($destination .'/'. $folder_name, 0755);
            }
        }
    }
}

?>

Вобщем при сохранении материала выдаёт ошибку: Save failed with the following error: Another article from this category has the same alias
Я пробовал менять onContentAfterSave($context, &$article) на onContentPrepare($context, &$row, &$params, $page = 0) и тогда всё работает прекрасно!
Но в этом случае я получаю решение, аналогичное тому, что было в самом начале: т.е. пока страничку один раз не загрузят директория создана не будет.
Вот такая печаль... Google ничем не помог, так что прошу помощи знатоков!  !
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
KKAAZZOO, не увидел сразу Ваше сообщение. Я говорил, что рассмотрю предложения, и тогда видно будет, смогу ли я за это заплатить. Так или иначе сам пробовать начал  :dry:
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Зачем еще раз загрузить JTableContent? Он и так уже передан. Попробуйте так
Спойлер
[свернуть]
На счет свойства $article->create_folder не уверен, если он не передан, то получите по-вашему.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
robert, это потрясающе! Спасибо огромное!
Действительно, заработало только когда убрал проверку параметра if ($article->create_folder==1) {}
Да ещё и так невероятно мой код сократили... Вобщем низкий поклон!

Да и вообще, всем кто писал спасибо! Если бы не вы, я бы не решился плагин писать, и топтался бы на месте, время от времени обходясь хаками ядра... Вобщем вопрос считаю закрытым.
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Не спится мне спокойно. Решил усложнить задачу, и создавать папки в разных каталогах, в зависимости от категории.
У меня две основных категории: "news" и "catalog".
Я тут уже задавался вопросом, как узнать ID или alias самого верхнего уровня, и на фронтэнде это срабатывает безотказно, а вот в плагине моём работать отказывается..
Делал так:

Спойлер
[свернуть]

После сохранения материала вылетает просто белая страница и ничего не происходит :/ Папка не создаётся.
Хотя после обновления списка материалов вижу, что материал создался успешно.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не хватало "/":
Спойлер
[свернуть]
Не будь паразитом, сделай что-нибудь самостоятельно!
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
robert, вы знаете, что-то не срабатывает. Пытаюсь сохранить и выбрасывает на белую страницу  :(
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спойлер
[свернуть]
Исправлен по замечанию dmitry_stas.
« Последнее редактирование: 27.03.2016, 12:44:52 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
я так на всякий случай уточню, JFolder же подключен? а то не видно по этому коду.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
я так на всякий случай уточню, JFolder же подключен? а то не видно по этому коду.
+dmitry_stas :), сам не заметил.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Во-первых, спасибо всем за помощь!
Во-вторых, надеюсь я ещё не надоел вам окончательно...
Но, к сожалению, пока что плагин не работает должным образом :/
Я попытался как можно глубже разобраться в причинах, и хотя бы найти проблемный участок кода. И таки нашёл!

Значит, для начала надо вообще удалить проверку if(!$isNew).
Объясняю почему: иногда нужно создать папку для уже существующего материала. А эта проверка не даёт это сделать (проверено!).
Кроме того, хотелось бы, чтобы плагин всё-таки работал в зависимости от опции "создавать/не создавать папку". Пока что обработку этого параметра из кода убрал, т.к. не срабатывало.

Ну и самое главное: пустая белая страница вылетает из-за этих строк:

Код: php
$categoriesModel=JCategories::getInstance('content');
$category=$categoriesModel->get($article->catid);
$parent=$category->getParent();

Когда я их удаляю, а вместо $parent->alias прописываю старое доброе 'news', всё сразу же начинает работать.
Вобщем что-то не так с проверкой главной категории...
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Да. Вот ещё что добавить хотел.
В каталоге у меня вложенность типа "Основная категория" > "Подкатегория" > Материал – тут получается определить основную категорию как "catalog"
Но у новостей структура проще: "Новости" > Материал – тут основная категория определяется уже как root.
Я понимал, что это усложнит проверку и может повлиять на работоспособность плагина, потому временно убрал 'news' из параметров в плагине.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вобщем что-то не так с проверкой главной категории...
Стоит попробовать подключить JСategories: может быть, он тоже не загружен?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Стоит попробовать подключить JСategories: может быть, он тоже не загружен?
Спасибо! Попробую. Но дело в том, что когда я ставил событие onContentPrepare, то всё работало и без JFolder и без JСategories  :dry:
Всмысле проверял вывод параметров с помощью echo
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Добавил

Код: php
jimport('joomla.application.categories');

Перестало выбрасывать на пустую страницу, но папки не создаются...
Несколько раз внимательно изучил весь код плагина, особенно ту часть, где проверяются названия категорий и подставляются для создания папок. Всё вроде правильно. Не вижу почему оно не должно работать  :(
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Аааааа! Урааа! Победа! Заработало! :)
Я просто в последней модификации кода забыл название папок в массиве поменять)
Я приводил "catalog" для примера, а на самом деле папка "collection" называется теперь (раньше я сразу поправлял, а в этот раз забыл!)
Вобщем подключение JСategories помогло!
Ещё раз благодарю robert за поддержку и помощь!

P.S.: Пока что этого вполне достаточно. В будущем было бы прекрасно расширить плагин настройками: например поле для воода ID (или alias) категорий, которые необходимо включать в обработку плагином. Ну чтоб каждый раз не поправлять этот вот массив категорий. И будет полноценное решение для всех желающих.

P.S.2: Ну и печально, что опция "создавать/не создавать" не срабатывает... Папки создаются каждый раз для любого материала из перечисленных категорий. А если, к примеру, новость без изображения, и папку создавать не нужно, то она всё равно будет создана.
« Последнее редактирование: 28.03.2016, 00:26:33 от goga_pgasovav »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Удалила папку Template

Автор Татьянаttt

Ответов: 2
Просмотров: 1460
Последний ответ 08.08.2024, 20:16:40
от Татьянаttt
Как добавить свое изображение в папку images/banner?

Автор RaIsaA

Ответов: 2
Просмотров: 1144
Последний ответ 28.11.2021, 15:54:20
от SeBun
Алиас пункта меню совпадает с именем подкаталога в каталоге с сист.файлами

Автор Andrey N.

Ответов: 14
Просмотров: 3726
Последний ответ 07.10.2021, 23:57:15
от Garrr
Блокировка материала! Что оно такое?

Автор Chebyrek

Ответов: 17
Просмотров: 16935
Последний ответ 30.06.2020, 16:33:09
от 1AZ1
Как вывести путь материала на страницу?

Автор Gromz

Ответов: 6
Просмотров: 1965
Последний ответ 14.12.2019, 20:19:21
от Gromz