Новости 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 #разработка

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

maxj

  • Новичок
  • 5
  • 0 / 0
Перенос сайта
« : 06.08.2010, 22:54:39 »
Здравствуйте!
Я перенёс свой сайт с 'mysite.com/joomla' на 'mysite.com' ,согласно описанию:

http://docs.joomla.org/Moving_the_site_among_directories/sub-directories

После переноса сайт поднялся без проблем, однако я не могу зайти в административную часть.
После ввода имени и пароля возвращается страница авторизации без какого-либо сообщения об ошибке,

Пожалуйста помогите.
Заранее спасибо
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
Re: Перенос сайта
« Ответ #1 : 07.08.2010, 02:55:44 »
проверьте права какие выставлены на папку администратора
Милый и порядочный! Верьте мне во всем!
*

maxj

  • Новичок
  • 5
  • 0 / 0
Re: Перенос сайта
« Ответ #2 : 07.08.2010, 09:59:24 »
Спасибо за совет.
Но я, честно говоря, не очень представляю, каким образом это сделать.
Через cPanel моего хостинга ? Тогда как ?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: Перенос сайта
« Ответ #3 : 07.08.2010, 10:23:11 »
Спасибо за совет.
Но я, честно говоря, не очень представляю, каким образом это сделать.
Через cPanel моего хостинга ? Тогда как ?
нет права назначаются с помощью любого ftp менеджера. Например FilleZilla.
Но у вас вряд ли проблема с правами. Если вы их изначально не переназначили.
Возможно проблема с плагинам Авторизация Joomla и Пользователь Joomla. Хотя по логике при их отключении опять же хотя бы ошибка вылазила.
Если у вас есть доступ к mysql, зайдите в phpMyAdmin найдите таблицу jos_plugins откройте, найдите плагины Авторизация Joomla и Пользователь Joomla, зайдите в них с помощью карандашика слева и посмотрите чему равно значение published, если 1 то хорошо если 0 то правьте на 1. и Сохраняйте.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

maxj

  • Новичок
  • 5
  • 0 / 0
Re: Перенос сайта
« Ответ #4 : 07.08.2010, 11:38:47 »
Спасибо за совет.
Проверил, оба значения стоят на 1.
Пока не вижу другого выхода, кроме переинсталяции Joomla! ....

Есть ещё идеи ?
Потому как переинсталяция повлечёт за собой "постройку" сайта заново.
Много сил, а времени ... , которого нет.
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
Re: Перенос сайта
« Ответ #5 : 07.08.2010, 11:48:30 »
ну установил я себе Joomla на хостинг. отключил права у администратора. и в итоге у меня точно такая же картина как и у вас. проблема в правах. включайте права. их можно и в панели переназначить:)
Милый и порядочный! Верьте мне во всем!
*

maxj

  • Новичок
  • 5
  • 0 / 0
Re: Перенос сайта
« Ответ #6 : 07.08.2010, 12:01:56 »
Извините, что туплю.
Не могли бы Вы, пожалуйста, пояснить, как это сделать через cPanel ?
Если Вы имеете ввиду опцию "Password Protect Directories", то там вообще нет защищённых паролем папок ...
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
Re: Перенос сайта
« Ответ #7 : 07.08.2010, 15:58:51 »
ммм. не знаю я как в Си панели права менять потому как пользуюсь ISP менеджером. там можно. ну тогда как вариант дейсьвительно поменять права через ftp заходите в программу подключаетсеь к своему сайту и наведя првой мышкой на сайт жмете куда нужно: изменить права.

а более подробно прочитайте в этой ветке
http://joomlaforum.ru/index.php?topic=72841.0
Милый и порядочный! Верьте мне во всем!
*

maxj

  • Новичок
  • 5
  • 0 / 0
Re: Перенос сайта
« Ответ #8 : 07.08.2010, 16:33:56 »
Цитировать
папки должны иметь права 755, файлы - 644 и configuration.php - 444.
- всё именно так, проверил.

Всем огромное спасибо !
Пошёл переустанавливать Joomla!  8)
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Re: Перенос сайта
« Ответ #9 : 28.08.2010, 00:32:40 »
А можно только часть переносить?! Т.е. к примеру что-то исправил на локалке (совсем чуть-чуть) сам сайт мегов - 100 ... Так чтоб не тратить трафик и время, можно переносить только изменения...Если да, то как. Лиди добрые подскажите!
*

denverkurt

  • Захожу иногда
  • 110
  • 25 / 0
Re: Перенос сайта
« Ответ #10 : 28.08.2010, 00:38:32 »
из файлов обычно меняются configuration.php и конфиги сторонних компонентов. Их и нужно переносить.

Если же у вас изменения по крупному: устанавливаете локально компоненты, модули, плагины - тогда нужно отслеживать какие папки создаются, какие таблицы создаются в базе данных... вобщем в этом случае геммороя больше. Если в Joomla разбираетесь не очень, то проще переносить все целиком.
https://denvera.net - бесплатные расширения для Joomla. Разработка расширений на заказ
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Re: Перенос сайта
« Ответ #11 : 28.08.2010, 00:41:50 »
denverkurt, Псибо за совет,  так и буду делать!
*

iluho

  • Давно я тут
  • 605
  • 50 / 4
  • Гламурный КабанчеГ
Re: Перенос сайта
« Ответ #12 : 28.08.2010, 00:43:00 »
А можно только часть переносить?! Т.е. к примеру что-то исправил на локалке (совсем чуть-чуть) сам сайт мегов - 100 ... Так чтоб не тратить трафик и время, можно переносить только изменения...Если да, то как. Лиди добрые подскажите!

у вас немножко неоднозначный вопрос. смотря что вам переносить надо. вы не пояснили. если контент, то это всегда дамп базы. а это текстовый файл в принципеи траффик тут минимален. если редактируете модули и компоненты, которые потом закачать надо на хост, то другое дело
Милый и порядочный! Верьте мне во всем!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос сайта на новый домен

Автор kirill-juk

Ответов: 2
Просмотров: 3010
Последний ответ 11.12.2024, 17:54:19
от Alisaaga26
Редактирование готового сайта на Joomla

Автор Oksana

Ответов: 8
Просмотров: 6825
Последний ответ 29.11.2018, 21:11:48
от robert
Ошибка после восстановления сайта из резервной копии

Автор Роман1974

Ответов: 9
Просмотров: 8212
Последний ответ 18.05.2017, 15:15:40
от Igoritaly
Роблемы после ручного обновления сайта

Автор dron

Ответов: 4
Просмотров: 1774
Последний ответ 12.03.2017, 15:02:20
от dron
После заливки копии сайта не дает вносить изменения в админке

Автор Escander

Ответов: 0
Просмотров: 1995
Последний ответ 11.08.2016, 12:25:26
от Escander