Новости 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 Ответов
  • 44212 Просмотров

При установке Joomla Paranoia! - русская сборка 004 от AndyR на 1 шаге надпись Session save path  /tmp, Недоступен на запись 
что делать если разрешения установлены на 777, раньше такого не было(
*

CTPAHHuK

  • Администратор
  • 75
  • 37 / 0
  • русский военный корабль - иди нах@й !
Re:Session save path /tmp, Недоступен на запись
« Ответ #1 : 21.01.2006, 16:59:04 »
А почитать раздел Вопросы и Ответы на сайте - никак ?
http://joomlaportal.ru/content/view/156/53/
русский военный корабль - иди нах@й !

Возникла аналогичная проблема с папкой /tmp, но ни один из способов в советах не помог. Доступа к php.ini нет, да и добавление строки в .htaccess не приносит никакого эффекта. Хостер законно отдыхает на выходных, а сайт требуется запустить не позднее завтра. Есть еще варианты решения этой "/tmp"-проблемы?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Хостер законно отдыхает на выходных
чего??? ты где живёшь? в Зимбабве?

нахрен такого хостера, у которого саппорт не обеспечивает 24/7
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

Цитировать
чего??? ты где живёшь? в Зимбабве?

нахрен такого хостера, у которого саппорт не обеспечивает 24/7
Уж какой был, впредь буду мудрее =) А пока - сроки крепко держат за яйца, и что делать неизвестно - 2 июля крайняя дата =(

Я ещё плохо ориентируюсь на вашем ресурсе и прошу помочь если кто обладает знанием в решение подобной проблемы.
Скачал "Joomla_108_RUS_Paranoia_MCE.zip" с ресурса "andyr.mrezha.ru" распакавал архив соответствующий моей версии MySQL и приступил к инсталяции. На первом шаге появилась запрещающая дальнейшию установку надпись "Session save path - /www, Недоступен на запись"
1. Исправил конфиг php.ini 'session.save_path = "d;/server/www/"'
2. За место .htaccess в директории архива лежит htaccess.txt в котором строчкой php_value session.save_path и не пахнет
3. administrator\components\com_users\admin.users.php файла "admin.users.php" нет.

И далее при попытке продолжения установки появляется надпись Parse error: parse error, unexpected T_STRING in D:\Server\www\smc\installation\gpl.html on line 1
« Последнее редактирование: 18.07.2006, 00:07:23 от RG »

1. Исправил конфиг php.ini 'session.save_path = "d;/server/www/"'
А почему собственно "d;/" ?  :o, может все таки - session.save_path = "d:/server/www/

2. За место .htaccess в директории архива лежит htaccess.txt в котором строчкой php_value session.save_path и не пахнет
С чего он там должна быть такая строка вообще? Не htaccess.txt, а htaccess.conf, и строки там и не должно быть. ;)

Для локалки, читаем это:
Настройка сессий
Файл "php.ini"

Хранить данные сессий в файлах:

session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

session.save_path = C:/Temp/session (в твоем случае пробуем session.save_path = d:/server/www/)

Использовать cookie в сессиях:

session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:

session.name = PHPSESSID

Запрет на инициализацию сессии при начале соединения:

session.auto_start = 0

Время жизни сессионных cookie ("0" - до закрытия окна браузера):

session.cookie_lifetime = 0

ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie):

session.use_trans_sid = 1

Настройка PHP завершена. Перезапустите Apache для вступления в силу сделанных изменений.

ЗЫ. Еси не покатит, то кину в почту руководство как ставить на локалке сервак. При переносе при правильных путях обычно работает все.
*

def_

  • Осваиваюсь на форуме
  • 25
  • 1 / 0
А возможна нормальная работа джумлы если закрыть глаза  на это сообщение при установке и продолжить ее?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
А возможна нормальная работа джумлы если закрыть глаза  на это сообщение при установке и продолжить ее?
сама по себе Joomla работать будет, а вот в административную панель вы зайти не сможете... если таковой вариант устраивает — закрывайте глаза и продолжайте установку

Меня постоянно разлогинивает в админпанели, т.е. время от времени просит заново ввести логин и пароль. Скажите, это может быть связано с изменением пути для сохранения сессии? У меня тоже выдало ошибку в процессе установки и я прописал в файле .htaccess новый путь. Но больше ничего по этой теме не прописывал. Надо ли прописывать вот это например:
Цитировать
Время жизни сессионных cookie ("0" - до закрытия окна браузера):
session.cookie_lifetime = 0
или еще что-нибудь?  ????

И еще. Я прописал в .htaccess:
Код
php_value register_globals 0
и после этого появилась надпись, что Register Globals Emulation включен и рекомендуется выключить. Ввел это:
Код
php_value register_globals_emulation 0
и никакого эффекта. В чем причина? Мож неправильно ввожу директиву?  ???? Влияет ли это как-то на функционал движка (в смысле как и register_globals)?

Почитал здесь и не понял. Это что, новый путь надо и в перечисленных файлах указывать?
« Последнее редактирование: 13.04.2007, 08:33:30 от NetSurfer »
*

Albas

  • Захожу иногда
  • 72
  • 6 / 4
Re: Session save path /tmp, Недоступен на запись
« Ответ #10 : 24.06.2007, 13:36:13 »
Подскажите пожалуйста, я сделал все как написано в статье, но почему на одном и том же хостинге два сайта, в одном случае получилось, во-втором не вышло...

Там где получилось стоит Joomla-1.0.12_eCommerceEdition_VM-1.0.10
А там где не вышло там стоит Joomla_1.0.12-Stable-Full_Package
Подскажите в чем может быть еще проблема?
*

Albas

  • Захожу иногда
  • 72
  • 6 / 4
Re: Session save path /tmp, Недоступен на запись
« Ответ #11 : 25.06.2007, 09:45:43 »
перезалил весь движок, теперь если инсталировать через com_installer все устанавливается, а если через обзор то нет ставит....

Re: Session save path /tmp, Недоступен на запись
« Ответ #12 : 07.10.2010, 20:06:54 »
такая же ситуация! :(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сайт установился на хостинге коряво. Ошибка в session.php on line 423 и не только.

Автор LolyCryu

Ответов: 1
Просмотров: 2188
Последний ответ 19.05.2009, 16:21:50
от LolyCryu
Как убрать стандартную запись на главной?

Автор PILIGRIM

Ответов: 4
Просмотров: 2319
Последний ответ 24.03.2009, 22:58:35
от PILIGRIM
Какие папки нужно открыть на запись, чтобы работало RSS

Автор andrew1986

Ответов: 1
Просмотров: 2241
Последний ответ 26.09.2008, 23:06:04
от Alexasha