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

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
Уважаемые пользователи!
Почему TinyMCE такой кривой, и оставляет много мусора в коде?
Есть ли возможность исправить его, чтобы он код в нормальном виде вставлял?
Может есть нормальные редакторы, что то типо Expression Web для Joomla?
За ранее благодарствую!
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
jce editor в помощь

А вообще можно чистить код в редакторе перед отправкой.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Почему TinyMCE такой кривой, и оставляет много мусора в коде?
Не замечал мусора, может Вы из Wordа текст вставляете?
Создание сайтов, шаблонов, помощь в решении проблем.
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
wishlight, и так каждый раз чистишь, задолбало уже)))
За редактор спасибо, сейчас протестирую)

Joomla уже так долго существует, и не могли придумать для нее хороший редактор, вообще фигею.
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
Efanych, рукописный код, после сохранения, и повторного открытия выглядит ужасно просто! Столько лишних строк кода появляется.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
не хотите мусора, пишите в чистом HTML.

P.S.
в JCE тоже самое.
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
wishlight, код уже намного лучше сохраняет, но все равно не сильно от TinyMCE отличается.
Есть что-нибудь поглобальнее, чтобы больше функций в панели было (расширенных не хватает), такой добротный, мощный редактор, и есть ли он вообще в природе для Joomla?
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
dynamit, так я и писал в чистом, а это MCE все испоганил) Придется его вовсе отключить, чтобы не мешал
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
поставьте невизуальник, например RockPad (правда платный, но не мне вам рассказывать) - вещь, и добавить\настроить кнопки свои можно. есть местная поделка - СodEditor (beta).  Вот еще - codemirror
« Последнее редактирование: 26.02.2011, 18:57:58 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
dynamit, спасибочки, это уже что то!
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
dynamit,а нет ли конвектора кода из TinyMCE в нормальный вид?,просто заново перелопачивать весь контент в норм код, долго уйдет времени
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
нет, не слышал про такое.
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Alexpro2011

  • Захожу иногда
  • 195
  • 8 / 1
dynamit, понятненько, спасибо.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
если pokpad найдете, обращайтесь - расскажу как кнопки свои поставить
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
wishlight, код уже намного лучше сохраняет, но все равно не сильно от TinyMCE отличается.
Есть что-нибудь поглобальнее, чтобы больше функций в панели было (расширенных не хватает), такой добротный, мощный редактор, и есть ли он вообще в природе для Joomla?

Перепробовал много редакторов - JCE лучший. Ознакомитесь с ним поближе. Уверен, что понравится.
*

Hot_Gomer

  • Захожу иногда
  • 296
  • 12 / 0
  • sudo su
только создал тему по поводу того что Tyni срет в коде и вот увидел что такая уже есть)
по поводу того мешает или нет - у меня в одном шаблоне из-за того что появлялся тег <br mce_bogus="1"> в коде материала - страницу начинает курочить((( а без tyni нереально, поскольку все это писать чистым кодом займет тысячу времени((
Joomla, Drupal, Ruby on Rails -
что может быть лучше?)
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Я поюзав всяку всячину остановился на RockPad ... никакого мусора, ctrl+s и ctrl-z работает ... вообщем рай.
а без tyni нереально, поскольку все это писать чистым кодом займет тысячу времени((
<p>Тыщу времени занимает чистка кода после визуальных редакторов.<br />Особенно после работ с:<ul><li>таблицами;</li><li>картинками;</li><li>списками;</li></ul></p>

Заняло чуть дольше времени, чем набор текста. Но это дело привычки. Вы просто боитесь научится сразу писать как надо. Согласен, что англоязычным пользователям гораздо проще писать код, т.к. им не надо переключать язык. Но это не проблема. Это дело практики. Можно конечно облегчить свой труд с помощью .... как его там .... эээ ... Яндекс ... ну переключалка языков от яшки .... но я, например, им не пользуюсь.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Да, к сожалению нет нормального визуального редактора. Обычно большинство выглядят как Word, вживленный в браузер - это ужас конечно, такие редакторы норовят засрать даже простой код. Вот редактор кода - существует хороший. Тот же codemirror - ничего так. Но ему далеко до Ace (Ajax Cloud9 Editor) - разработки AJAX.org и Mozilla. А из визуальных несколько десятков пересмотрел - у всех находились серьезные проблемы даже после простейшего теста. Так что пока лучший вариант - ace + панель для быстрой вставки тегов например. Возможно комуто comemirror с zencoding плагином подойдет - пишем например ul>li>a, жмем клав.сочетание - получаем
<ul>
    <li><a href="#"></a></li>
</ul>

ништяк же?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
danik.html, не понял, его можно в нете прикрутить? пользую zencoding на винде для pspad (редактор такой). и как это к  codemirror в джуме прикрутить? поделись, добрый человек.
« Последнее редактирование: 22.04.2012, 00:41:48 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Для всех продуктов Microsoft самый лучший редактор для переноса данных в HTML Adobe Dreamweaver. Правка специальная вставка дает вам возможности которых увы нигде не видел. Затем вставляйте код куда хотите. Это незаменимый инструмент для правки таблиц и отсеивания мусора.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
danik.html, не понял, его можно в нете прикрутить? пользую zencoding на винде для pspad (редактор такой). и как это к  codemirror в джуме прикрутить? поделись, добрый человек.
Сам не прикручивал, увидел это в MODx. Вот тут погляди, думаю разобраться несложно: http://zen-coding.ru/codemirror/
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
м… а нельзя как-то сделать чтобы при переходе в html-режим и ручной корректировки кода TinyMCE больше не исправлял код? А то даже ролик с ютуба не получается вставить
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
J!1.5 - http://joomlaforum.ru/index.php/topic,28819.msg179408.html#msg179408
J!2.5 -http://joomlaforum.ru/index.php/topic,147349.msg799992.html#msg799992
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
При переключении режимов теги фильтрует не Joomla а редактор. А уж при сохранении - тогда уже Joomla. Поэтому нужно отключать фильтр и в редакторе и в Joomla. По умолчанию теги iframe и script режутся как небезопасные.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
В общих настройках для суперюзера стоит «без фильтрации», в настройках плагина нельзя совсем убрать фильтрацию — есть только черный список тегов, в котором script,applet,iframe, которе нельзя удалить (при сохранении они опять появляются).
Как iframe то задействовать?) Или сносить к чертям TinyMCE? Я в принципе код вручную пишу, кнопочками не пользуюсь, просто нравиться авторазделение абзацев :)
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
В общих настройках для суперюзера стоит «без фильтрации», в настройках плагина нельзя совсем убрать фильтрацию — есть только черный список тегов, в котором script,applet,iframe, которе нельзя удалить (при сохранении они опять появляются).
Надо смекалку проявлять :)
И зачем вы убрали из списка applet - вы че, апплеты вставляете? Если б оставили - значение бы сохранилось. Короче,  нужно чтоб поле не оставалось пустым, например оставляем applet - вот и всё :)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

devirus

  • Захожу иногда
  • 140
  • 6 / 0
оу… как всё сложно)) спасибо, хотя уже отключил и оставил только подсветку кода, не доверяю автоматике)
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
если pokpad найдете, обращайтесь - расскажу как кнопки свои поставить

Расскажи пожалуйста. Интересно. Будет даже здорово если тему отдельную создашь.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
пожалуйста:

/plugins/editors/rokpad/text-formatter/
файл buttons.xml

создаем свою кнопку которая вставит в текст тег заголовка H1 с классом header

между тегами <rokpad></rokpad>

   <button name="h1" label="H1" icon="my/h1.png" position="left">
      <open><![CDATA[<h1 class=\"header\">]]></open>
      <close><![CDATA[</h1>]]></close>
      <shortcut>cmd + shift + 1</shortcut>
   </button>

name="h1" - идентификатор кнопки.   имя должно быть уникально в пределах <rokpad></rokpad>.
label="H1" - всплывающая подсказка.   имя должно быть уникально в пределах <rokpad></rokpad>.
icon="my/h1.png" position="left">   h1.png - файл иконки кнопки. располагается в папке icons/my каталога text-formatter. размер - 16x16 px. название файла должо быть идентично с name.
 position="left" - ориентация кнопки на тулбаре редактора.

<open></open>  - открывающий тег. синтаксис DHTML. не забываем внутренние кавычки предварять обратным слешем - \"
<close></close> - закрывающий тег
<shortcut></shortcut> горячая клавиша. на Маке cmd это ctrl. может и надо писать ctrl? не пробовал. можно  shift + 1 - главное избегать конфликтов с вашими дефолтными shortcut. назначение для кнопки <shortcut></shortcut> - необязателено.

Если закрывающий тег не нужен, используем только <open></open>.

для пробелов (разделителей) между кнопками используем <separator />
вставляем между кнопками:
</button>
      <separator />
   <button>

как русицифировать, наверно, объяснять не надо.


с zencoding пока не разбирался, но так как редактор на основе codemirror, думаю прикрутить не составит труда. как сделаю - отпишусь.
« Последнее редактирование: 27.04.2012, 14:20:13 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
О ... отлично. Поковыряю.

У мну кстати есть купленный рокпад на 30 января 2012. Ща уже подписка закончилась - но все-равно свежак.
Для 15 и 16-17-25 Joomla.
Могу поделится.

Да кстати все клубные расширения рокетсов собсна есть последние версии по 24 февраля 2012 года.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

TinyMCE режет ссылку на FB

Автор Alex_gs

Ответов: 0
Просмотров: 2364
Последний ответ 27.09.2023, 10:36:53
от Alex_gs
В редакторе TinyMCE в списке меток (тегов) выдает только 30 меток

Автор illimited

Ответов: 3
Просмотров: 2437
Последний ответ 07.03.2023, 19:33:03
от illimited
Фильтровать текст при вставке из Word в TinyMCE

Автор goga_pgasovav

Ответов: 2
Просмотров: 2312
Последний ответ 21.02.2023, 17:39:32
от goga_pgasovav
TinyMCE в 4-ке, нужна помощь

Автор Шмайсер

Ответов: 0
Просмотров: 2368
Последний ответ 22.07.2022, 14:20:34
от Шмайсер
Не работает TinyMCE

Автор terr

Ответов: 11
Просмотров: 9965
Последний ответ 22.06.2022, 12:01:51
от Holden73