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

Vld

  • Новичок
  • 5
  • 0 / 0
На хостинге сделайте копию акеба, если нет копии. А потом пробуйте. Обычно на нормальных хостингах копия делается средствами хостинга. Если сайт не запустится будете голову ломать потом, что да почему.

В смысле? Сделать копию текущего сайта рабочего? Уже сделать и акибой и руками.
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
Ну и поставьте в основную папку сайт, а не во временную. Если будут глюки подымите из копии. И будете разбираться в чем дело. Меньше головняков так.Я бы так сделал.
*

Vld

  • Новичок
  • 5
  • 0 / 0
А нет, ничего не сработало.
Админка так же работает исправно
« Последнее редактирование: 05.08.2015, 13:43:48 от Vld »
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
Сайт на компе работает?  Сайт архивом переносили?
Если на компе работает на хостинге нет, может версия другая чего не будь. Проверьте может криво прописываются пути. С работающего сайта на хостинге положите configuration.php
*

Vld

  • Новичок
  • 5
  • 0 / 0
Сайт на компе работает?  Сайт архивом переносили?
Если на компе работает на хостинге нет, может версия другая чего не будь. Проверьте может криво прописываются пути. С работающего сайта на хостинге положите configuration.php
Сайт на денвере работает. Установил из бакапа акибы на второй проект на денвере и всё заработало с первого раза.
А конфиг от 2.5 подойдёт для 3.4? Версии движков разные у старого и нового сайтов.
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
Сравните конфиг и будет понятно есть разница или нет. Не работает на хостнге, версия чего то другая. Проверьте версии сервера. Сравните что на компе, что на хостинге. Проверьте файлы на хостинге, может криво расспаковываются.  У хостеров спросите, может настройки у них надо что то сделать.
*

Saltanat

  • Новичок
  • 7
  • 0 / 0
Здрасти! Подскажите такая же ситуация при входе на сайт по логину и паролю выбрасывает на страницу хоста и пишет: Ваш сайт успешно создан на сервере компании.....   При выходе после регистрации такая же ситуация, Хостер говорить переименуй файл index.html, но в каком компоненте не знает.   
*

Cristof

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Здравствуйте! не получается установить готовый сайт на локалку.  Базу данных сайта закинул в базу денвера. Дальше как я понимаю, его нужно установить как версию Joomla. Но не устанавливается. Посоветовали закинуть в папку с сайтом installation для установки сайта. Но вот что и где там поменять не знаю. подскажите пожалуйста
*

bestdesign

  • Новичок
  • 2
  • 0 / 0
  • Создание сайтов Киев
Akeeba есть зачем так мучатся ?
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Здравствуйте! не получается установить готовый сайт на локалку.  Базу данных сайта закинул в базу денвера. Дальше как я понимаю, его нужно установить как версию Joomla. Но не устанавливается. Посоветовали закинуть в папку с сайтом installation для установки сайта. Но вот что и где там поменять не знаю. подскажите пожалуйста

Во первых, давайте забудем про Денвер. Удалите его и поставьте OpenServer. Скачать тут. Выбирайте пакет Basic, он не перегружен лишними приложениями. В отличии от Денвера он работает стабильно и содержит новые версии PHP, phpMyAdmin, Apache, Ngix и т.д.

Во вторых, вам нужно изучать основы работы с Joomla. После того, как поставите OpenServer, настройте его. В частности, зайдите на свой хостинг и посмотрите, какая версия PHP там работает, такую же версию задаете в настройках OpenServer. Заходите в phpMyAdmin, создаете базу данных и импортируете в нее созданный ранее дамп. Ну и переносите файлы в соответствующую папку. Далее заходите в configuration.php и меняете параметры доступа к базе и пути к каталогам. Все.

По работе с OpenServer есть неплохое . А Акибу лично я не использую и вам не советую.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Да и опенсервер излишество. В большинстве случаев WAMP хватает за глаза.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
И тему, ИМХО, пора на свалку: вообще все темы, где встречаются ключевые слова: денвер, не работает, ошибка, ч.я.д.н.т...
« Последнее редактирование: 30.10.2016, 15:18:37 от Филипп Сорокин »
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
опенсервер под админом запускайте.
*

helmot

  • Новичок
  • 1
  • 0 / 0
Здравствуйте ПОМОГИТЕ!
Хочу перенести сайт с хостинга на компьютер сделал все описанное выше выдает такую ошибку:
Warning: session_start(): Failed to read session data: user (path: C:\xampp\tmp) in C:\xampp\htdocs\tulamehanika\libraries\joomla\session\handler\native.php on line 260
Error: Failed to start application: Failed to start the session

Подскажите что делать 
*

stendapuss

  • Давно я тут
  • 945
  • 20 / 0
  • Valera Stankevich
И тему, ИМХО, пора на свалку: вообще все темы, где встречаются ключевые слова: денвер, не работает, ошибка, ч.я.д.н.т...
Тема не про денвер, а как перенести. Какая разница денвер или опенсервер. Написать:
На компе если стоит денвер, поставьте Open Server а так все так же почти.
Я лично в своем посте поправил в чем разница и поставьте опен сервер. Почему интересно все денвер ставят. Наверно в поиске лучше выдается. Копирование, перенос сайта с помощью Akeeba Backup. Может пригодиться кому
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Почему интересно все денвер ставят. Наверно в поиске лучше выдается.
Совершенно верно. В свое время это была единственная удобная система. И если бы Д.Катеров на нее не забил, сейчас это был бы самый известный в России проект. Но он забил. В итоге появился другой удобный инструмент - OpenServer. Но это не значит, что Денвер - дерьмо. Имеют право жить все старые WAMP. в том числе и Денвер. Вопрос в удобстве и умении использования. И в сети в эпоху Денвера создавалась туча уроков по его использованию и настройке. Точно так же сейчас по многим запросам выдаются уроки для Joomla 2.5. Да, устарело, но не значит, что совсем негодное...
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Nenomernoj

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
  • без подписи
Здравствуйте ПОМОГИТЕ!
Хочу перенести сайт с хостинга на компьютер сделал все описанное выше выдает такую ошибку:
Warning: session_start(): Failed to read session data: user (path: C:\xampp\tmp) in C:\xampp\htdocs\tulamehanika\libraries\joomla\session\handler\native.php on line 260
Error: Failed to start application: Failed to start the session

Подскажите что делать 

Проверьте версию php, MySQL на хостинге и xampp
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
@Nenomernoj некропостингом заниматься не надоело? или думаете что никто не замечает? а мож сразу в бан?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

pptx в теле материала сайта

Автор VIK4

Ответов: 0
Просмотров: 1024
Последний ответ 24.10.2024, 13:04:04
от VIK4
Заявки с сайта на Joomla

Автор ivs1

Ответов: 8
Просмотров: 2688
Последний ответ 18.12.2023, 12:37:45
от SeBun
Перенос сайта на другой компьютер

Автор bekap

Ответов: 15
Просмотров: 2168
Последний ответ 17.11.2023, 09:44:03
от Театрал
Название сайта на картинке

Автор VIK4

Ответов: 5
Просмотров: 1610
Последний ответ 16.10.2023, 12:48:19
от VIK4
Проблема с почтой сайта на Joomla

Автор dima567

Ответов: 1
Просмотров: 1290
Последний ответ 16.09.2023, 09:44:41
от sivers