Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

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

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Как скопировать сайт?
« : 05.05.2018, 08:00:49 »
Каким образом не сильно заморачиваясь можно было бы скопировать сайт целиком, включая все скрипты и анимацию? Просто скачал, залил себе на хостинг и редактируй код как душа пожелает.
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
Re: Как скопировать сайт?
« Ответ #1 : 05.05.2018, 09:37:47 »
Aceeba Backup
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Как скопировать сайт?
« Ответ #2 : 05.05.2018, 09:52:29 »
Aceeba Backup

Имеется в виду чужие сайты. Лендинг один мне понравился, хочу над ним поработать.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Как скопировать сайт?
« Ответ #3 : 05.05.2018, 10:11:18 »
Походу без согласования с собственником никак. Ну либо угонять))
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Как скопировать сайт?
« Ответ #4 : 05.05.2018, 10:14:18 »
Походу без согласования с собственником никак. Ну либо угонять))

Про угон речь и идет, но с учетом того, что это забугорный сайт, всем будет плевать. Да и дизайн я все равно буду корректировать под себя, так, что потом и не узнаешь.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Как скопировать сайт?
« Ответ #5 : 05.05.2018, 21:46:47 »
Есть всякие проги типа Teleport Pro, которые выкачивают скрипты\стили\картинки
Ну а банальный способ - в браузере сохранить страницу как HTML - если нет внешних подключений файлов в сайте который граббите - будет работать. Дальше уже себе на localhost настраивать пути и тд и будет работать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Akeksandr

  • Захожу иногда
  • 396
  • 12 / 0
Re: Как скопировать сайт?
« Ответ #6 : 05.05.2018, 22:49:32 »
Имеется в виду чужие сайты. Лендинг один мне понравился, хочу над ним поработать.
Поищите  парсинг сайтов
*

Progreccor

  • Захожу иногда
  • 270
  • 25 / 1
Re: Как скопировать сайт?
« Ответ #7 : 06.05.2018, 12:04:16 »
Обычно на любом хостинге есть команда wget.

С помощью wget можно скачивать сайты, включая картинки, всего лишь указав адрес сайта и определенные параметры. wget будет автоматически переходить по ссылкам на сайте и скачивать страницу за страницей. Рассмотрим несколько примеров от простых к более сложным использования wget для скачивания сайтов.
Чтобы скачать сайт целиком с помощью wget нужно выполнить команду:

Код
wget -r -k -l 7 -p -E -nc http://site.com/

После выполнения данной команды в директорию site.com будет загружена локальная копия сайта http://site.com. Чтобы открыть главную страницу сайта нужно открыть файл index.html.

Рассмотрим используемые параметры:

-r   —   указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
-k   —   используется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).
-p   —   указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, CSS и т.д.).
-l   —   определяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.
-E   —   добавлять к загруженным файлам расширение .html.
-nc   —   при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.
*

Mehanick

  • Давно я тут
  • 846
  • 5 / 0
Re: Как скопировать сайт?
« Ответ #8 : 06.05.2018, 15:22:20 »
а что мешает скопировать так - правой мышкой сохранить вебстраницу целиком - для лендинга должно получиться.

Или вы не из тех кто ищет легких путей?
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Как скопировать сайт?
« Ответ #9 : 06.05.2018, 20:11:24 »
Там скрипты, слайдеры и прочая анимация. Wget первым делом попробовал, только применял я его не к сайту, а конкретной странице, короче ничего не выкачал, ключи такие же указывал. Помог ScrapeBook под Firefox, но и он с косяками все вытянул, пришлось вручную допиливать. Не понимаю, почему нет до сих пор адекватного копира, нормально обрабатывающего все зависимости, внутри js в том числе.
*

Mehanick

  • Давно я тут
  • 846
  • 5 / 0
Re: Как скопировать сайт?
« Ответ #10 : 07.05.2018, 09:10:58 »
так чем мой метод правой кнопки для лендинга на HTML не нравится - все js по идее должны скопироваться
*

Progreccor

  • Захожу иногда
  • 270
  • 25 / 1
Re: Как скопировать сайт?
« Ответ #11 : 07.05.2018, 13:48:16 »
Там скрипты, слайдеры и прочая анимация. Wget первым делом попробовал, только применял я его не к сайту, а конкретной странице, короче ничего не выкачал, ключи такие же указывал. Помог ScrapeBook под Firefox, но и он с косяками все вытянул, пришлось вручную допиливать. Не понимаю, почему нет до сих пор адекватного копира, нормально обрабатывающего все зависимости, внутри js в том числе.
у меня wget нормально выкачал все сайты.
Что именно у вас не получилось?

Решений на самом деле куча - погуглите "оффлайн браузер".
teleport как уже говорили нормально выкачивает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модальное окно на смартфоне при попытке закрыть сайт

Автор dm-krv

Ответов: 2
Просмотров: 752
Последний ответ 12.09.2018, 10:20:31
от dm-krv
Автоматический звонок при переходе на сайт. Как лучше реализовать?

Автор dm-krv

Ответов: 11
Просмотров: 1074
Последний ответ 27.12.2017, 11:15:23
от dm-krv
Яндекс.Карту на сайт

Автор dm-krv

Ответов: 2
Просмотров: 707
Последний ответ 13.09.2017, 15:39:30
от rkron