Новости 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 Гость просматривают эту тему.
  • 26 Ответов
  • 13694 Просмотров
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Двойной слэш в ссылках
« : 11.07.2006, 11:37:23 »
Переставил OpenSef на 2[1].0.0-RC5_SP2_RU5.zip
В итоге у меня ссылки вида www.***.ru//***.html

Почему? и как исправить?
« Последнее редактирование: 11.07.2006, 11:44:41 от userxp »
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #1 : 11.07.2006, 11:45:07 »
я переименовал тему.... эххх..

зы. по-подробнее изложи, пожалуйста!
во всех ссылках, не во всех?
на каких компонентах?
в текстах статей, меню или ещё где?
эти ссылки строятся на лету или записаны в FURL-ах?

а то получается, что тема не информативная, суть только в общих чертах и ничего конкретного...
« Последнее редактирование: 11.07.2006, 11:51:12 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #2 : 11.07.2006, 12:05:45 »
Извините. просто я до этого создал тему - там все конкретно расписал... Но это так )))

Проблема в следующем: разобравшить что это OpenSef создает такую неимоверную нагрузку на сервер я решил его переустановить (поскольку поначалу использования было все нормально).

Я отключил компонент, удалил его, удалил базы, установил по новой.
Кстати, он мне в URL автоматом мне прошлые ссылки сделал... (честно я не понял откуда, поскольку я таблицы же удалил)...

Далее открываю сайт первая страница www.***.ru дальше все ссылки вида http://www.***.ru//inform.html
http://www.***.ru//content/view/181/2/

При этом если ручками убрать один слэш - то все будет работать и все ссылки на странице станут с одним "/"

Пробовал старую базу URL восстановить - все осталось так же...
Удалить этот слэш можно только заменив все таблицы на старые...
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #3 : 11.07.2006, 12:09:51 »
что записано в $mosConfig_live_site ?
правый слэш присутствует?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #4 : 11.07.2006, 12:13:37 »
$mosConfig_live_site = 'http://www.ief-spb.ru';
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #5 : 11.07.2006, 12:20:26 »
а как у тебя FURLы пишутся?

зы. у меня когда-то был такой фокус, но я не помню, как вылечил :(
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #6 : 11.07.2006, 12:24:45 »
/ustav_studencheskogo_soveta.html
index.php?option=com_content&task=view&id=58&Itemid=123

Просто меня поражает, что все работает и так, и так... Но вот если ссылку удалить, и сделать, чтоб она сгенерировалась, то с одним слэшем она работать уже не будет, только с двумя.
Может это из-за joomla 1.0.10?
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #7 : 11.07.2006, 12:29:37 »
эта...нашёл вроде.
хотя у меня этот прикол выражается по-другому

убедись, что в конфиге, закладка Параметры
Принуждать к каноническим URL-ам? Да
Генерировать абсолютные ссылки? Да

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

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #8 : 11.07.2006, 12:53:25 »
у меня на все стоит ДА
кроме 
Присоединить дату?
Присоединить ID материала?
Присоединить Itemid?
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #9 : 11.07.2006, 13:00:50 »
чудес не бывает.
ищи, где у тебя лишний слэш указан.
прежде всего это конфиги джумлы и опенсефа.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #10 : 11.07.2006, 13:04:52 »
включай отладчик для своего ip и смотри.
так, а у тебя джумла 1.0.8 или 1.0.10
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #11 : 11.07.2006, 13:08:52 »
1.0.10
Ну дело 100% в базах OpenSef, которые идут при установке, поскольку при замене на старые все возвращается на круги своя...
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #12 : 11.07.2006, 13:56:38 »
ну поставил я на параною ЛЕ.
без вопросов.
никаких двойных слешей.
насчёт БД - так у тебя там ссылки правильные.
автомаппинг уже не будет работать на существующую ссылку.
« Последнее редактирование: 11.07.2006, 13:58:14 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #13 : 11.07.2006, 14:03:30 »
Я нашел в чем проблема... В моем случае - это включеная многосайтовость... Отключил - все стало на место...

Теперь вопрос - как тогда работает многосайтовость?
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #14 : 11.07.2006, 14:07:01 »
ну и у меня включена.
может, у тебя сайт какой-то определён?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #15 : 11.07.2006, 14:20:49 »
да, определен.... А разве не надо?
и тогда получается, что эта функция не работает?

IEF  www.ief-spb.ru  /  По-умолчанию       Public 
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #16 : 11.07.2006, 15:03:16 »
да, определен.... А разве не надо?
и тогда получается, что эта функция не работает?
если у тебя один сайт, то не надо.
зачем?

о!... слушай!
я так посмотрел - у тебя включен 4-ый вариант в Структура ссылки на материал?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #17 : 11.07.2006, 15:08:43 »
ну удалил... не совсем понял, почему так не работало, ну да ладно...
да нет, первый, т.е. раздел/категория/материал

но нагрузка на сервер от него просто коллосальная... до перехода на 1.0.9 а потом 1.0.10 такого не было.
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #18 : 11.07.2006, 15:25:13 »
ну удалил... не совсем понял, почему так не работало, ну да ладно...
да нет, первый, т.е. раздел/категория/материал
а, это мне показалось... сорри :(

но нагрузка на сервер от него просто коллосальная... до перехода на 1.0.9 а потом 1.0.10 такого не было.
у тебя на первой странице оочень много ссылок.
в итоге, (кстати, проверь кол-ыо запросв, которые делает оенсеф) весь дам урлов он грузит в массив и потом их обрабатывает...

ещё - посомтри в конфиге вкладку Дополнения - какая глубина рекурсии?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #19 : 11.07.2006, 15:35:48 »
у тебя на первой странице оочень много ссылок.
в итоге, (кстати, проверь кол-ыо запросв, которые делает оенсеф) весь дам урлов он грузит в массив и потом их обрабатывает...

ещё - посомтри в конфиге вкладку Дополнения - какая глубина рекурсии?
[/quote]

Не сказал бы, что это много... 23 запроса...
Глубина рекурсии = 1

Вот дамп запросов - 5 запросов к таблицам OpenSef

SELECT folder, element, published, params
 FROM jos_mambots
 WHERE published >= 1
 AND access <= 0
 AND folder = 'system'
 ORDER BY ordering--------------------------------------------------------------------------------2
SELECT name, value FROM jos_opensef_config
WHERE scope = 'com_sef' ORDER BY name ASC--------------------------------------------------------------------------------3
SELECT * FROM jos_opensef_sef_component--------------------------------------------------------------------------------4
SELECT * FROM jos_opensef_sef_component--------------------------------------------------------------------------------5
SELECT * FROM jos_opensef_sef WHERE published = '1'
AND valid = '1'
AND (direction IS NULL OR direction = '' OR direction = 'o')
AND (site_id IS NULL  OR site_id = -1)
ORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC--------------------------------------------------------------------------------6
SELECT * FROM jos_opensef_sef WHERE published = '1'
AND valid = '1'
AND (direction IS NULL OR direction = '' OR direction = 'o')
AND (site_id IS NULL  OR site_id = -1)
ORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC--------------------------------------------------------------------------------7
SELECT * FROM jos_opensef_sef WHERE 1
AND (direction IS NULL OR direction = '' OR direction = 'i')
AND (site_id IS NULL  OR site_id = -1)
AND (external = '/')
AND use_internal = '1'
ORDER BY site_id DESC, LENGTH(external) ASC, published DESC, valid DESC, LENGTH(direction) DESC, link_prio DESC LIMIT 1--------------------------------------------------------------------------------8
« Последнее редактирование: 11.07.2006, 15:51:20 от userxp »
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #20 : 11.07.2006, 15:52:23 »
значит, вопрос всё же в кол-ве урлов в списке и их обработке в памяти...
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #21 : 11.07.2006, 15:56:30 »
а как-нибудь можно это узнать? сколько урл он обрабатывает и за какое время?
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #22 : 11.07.2006, 16:08:02 »
да просто меня смущает то, что нагрузка началась после обновления до 1.0.9....
сначала незначительно, потом по нарастающей...

Кстати... Нагрузка и на страницах, на которых две строчки, например http://www.ief-spb.ru/novosti/novoe/vnimaniju_aspirantov.html...

поэтому тут дело в наверняка в другом... Ведь здесь ссылок в 2 раза меньше, а время отработки - тоже...
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #23 : 11.07.2006, 16:11:49 »
а если баннеры отключить?
что-то добавлялось/изменялось со времени 1.0.8 или были только обновления?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Tonik1

  • Осваиваюсь на форуме
  • 41
  • 2 / 1
Re: Двойной слэш в ссылках
« Ответ #24 : 11.07.2006, 16:43:59 »
были только обновления.
*

userxp

  • Moderator
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Двойной слэш в ссылках
« Ответ #25 : 11.07.2006, 16:51:12 »
ну, основная разница между 1.0.8 и 1.0.10 это дыры по безопастности и кэш.

ради интересу поиграйся - с кэшем и без.
только тщательно ;)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

gentle

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
  • Мое кино - Это мое кино!
Re: Двойной слэш в ссылках
« Ответ #26 : 14.12.2007, 15:24:55 »
Если эти строки добавить, то у меня все работало раньше (что качается Artio)...
Код
Г?|A, Г'|A, Д'|A, Г"|A, Д+|C, Г+|C, Д?|C, Д?|D, Д?|D, Г%|E, Д?|E, Г<|E, Д?|E, Г?|I, Г?|I, Д№|L, Е?|N, Е+|N, Г"|O, Г"|O, Е?|O, Г-|O, Е"|R, Е?|R, Е |S, Е?|O, Е¤|T, ЕR|U, Г?|U, Е°|U, Г?|U, Г?|Y, Е?|Z, Е№,Z, ГЎ|a, Гў|a, Д?|a, Г¤|a, Д+|c, Г|c, Д?|c, Д?|d, Д'|d, Гc|e, ДT|e, Г<|e, Д>|e, Г-|i, ГR|i, Дє|l, Е"|n, Е?|n, Г?|o, Г?|o, Е'|o, Г|o, ЕЎ|s, Е>|s, ЕT|r, Е|r, Е?|t, ЕЇ|u, Гє|u, Е+|u, Г?|u, Г?|y, Е?|z, Еє|z, ЛT|-, Г?|ss, Д"|A, Вч|u, ?|G, Ё|YO, Є|E, Ї|YI, ?|I, ?|i, ?|g, ё|yo, №|#, є|e, ї|yi, А|A, Б|B, В|V, Г|G, Д|D, Е|E, Ж|ZH, З|Z, И|I, Й|Y, К|K, Л|L, М|M, Н|N, О|O, П|P, Р|R, С|S, Т|T, У|U, Ф|F, Х|H, Ц|TS, Ч|CH, Ш|SH, Щ|SCH, Ы|YI, Ь|, Э|E, Ю|YU, Я|YA, а|a, б|b, в|v, г|g, д|d, е|e, ж|zh, з|z, и|i, й|y, к|k, л|l, м|m, н|n, о|o, п|p, р|r, с|s, т|t, у|u, ф|f, х|h, ц|ts, ч|ch, ш|sh, щ|sch, ъ|', ы|yi, ь|, э|e, ю|yu, я|ya

Но сейчас они банально не добавляются, хотя права на файлы конфига выставлены верно.
может кто скинуть файл administraror/com_sef/config.sef.php с добавленными в него такими настройками?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться