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

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Разделить сайт на два
« : 09.08.2016, 14:39:30 »
Здравствуйте, есть сайт, который я хотел бы разделить на два разных. Зарегистрировал домен для нового. Хочу сделать так: полностью скопировать сайт и залить его на новый домен. Затем, удалить часть материалов которые не будут нужны на новом сайте. Ведь можно так? Вопрос, как сделать такую копию сайта? Заранее спасибо!
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #2 : 09.08.2016, 15:14:21 »
Я искал, вроде как Акиба нужна. Правильно?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #4 : 09.08.2016, 16:59:30 »
Вообщем, сделал копию акибой. Залил на новый домен, распаковал. Перед установкой увидел, что имя базы данных он прописал от моего первого сайта (он находится на том же хосте) и я тормознул - не навредит ли это моему первому сайту? Может нужно создать новую БД и указать ее название перед инсталом с помощью Акибы?
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Разделить сайт на два
« Ответ #5 : 09.08.2016, 19:26:18 »
Базу надо создавать другую, для каждого сайта своя база .
После установки сайта можно изменить парметры подключения к базе в файле configuration.php .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #6 : 09.08.2016, 20:00:40 »
Базу надо создавать другую, для каждого сайта своя база .
После установки сайта можно изменить парметры подключения к базе в файле configuration.php .

Спасибо! То есть создаю новую базу и перед установкой прописываю ее название? А что потом в configuration нужно изменить?
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Разделить сайт на два
« Ответ #7 : 09.08.2016, 20:16:17 »
Если во время установки указываете новую базу то потом менять ничего не надо, а если при установке указали старую базу то нужно просто отредактировать configuration.php и сайт заработает на новой базе .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #8 : 09.08.2016, 20:35:42 »
Если во время установки указываете новую базу то потом менять ничего не надо, а если при установке указали старую базу то нужно просто отредактировать configuration.php и сайт заработает на новой базе .
Спасибо! А вот еще не понимаю, после установки у меня пароль к админке Joomla останется такой же как от первого сайта?
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Разделить сайт на два
« Ответ #9 : 09.08.2016, 20:41:45 »
Акибой не пользовался, не знаю .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #10 : 10.08.2016, 13:45:54 »
Сайт перенес, но вот загвоздка: главная страница открывается отлично, но дальше, нажимаешь на любую статью и вместо нее появляется Страница не найдена и текст: The requested URL /sociologicheskij-slovar/81-sociologicheskij-slovar-d/343-deviantnoe-povedenie was not found on this server. Явно что-то нужно где то изменить, но что? Подскажете?
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #11 : 10.08.2016, 13:57:19 »
Еще обнаружил, что при редактировании шаблона не дает сохранить изменения. Пишет: "Сбой операции: Сбой при открытии файла на запись".
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #12 : 10.08.2016, 22:31:03 »
Задал вопрос хостеру. Он намекнул, что проблема в .htacsess, а какая именно - темнит витиевато.
« Последнее редактирование: 10.08.2016, 22:39:02 от Escander »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Разделить сайт на два
« Ответ #13 : 10.08.2016, 22:47:55 »
Попробуйте заменить этот файл по ftp со старого сайта .
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #14 : 10.08.2016, 22:55:22 »
Попробуйте заменить этот файл по ftp со старого сайта .
Подскажите, а какой именно: htacsess или htacsess.txt?
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Разделить сайт на два
« Ответ #15 : 10.08.2016, 22:59:00 »
.htaccess
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #16 : 10.08.2016, 23:00:31 »
Спасибо!
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #17 : 10.08.2016, 23:07:54 »
Попробовал htacsess от старого сайта - ничего не изменилось. Что еще можно попробовать?
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #18 : 11.08.2016, 10:55:53 »
Попробуйте заменить этот файл по ftp со старого сайта .
Получилось! У меня в корне сайта было несколько htaccess и с точкой впереди и без. Менял-менял - получилось. Поставил файл от предыдущего сайта. Единственное, что смущает, в нем, в строках RewriteCond %{HTTP_HOST} ^(www\.)? и
RewriteRule ^(.*)$ /$1 [L,R=301] прописаны URL первого сайта. Оставить так?
*

Escander

  • Захожу иногда
  • 245
  • 0 / 0
Re: Разделить сайт на два
« Ответ #19 : 11.08.2016, 11:01:38 »
Также, по прежнему не могу редактировать шаблон из админки, пишет "Сбой операции: Сбой при открытии файла на запись". Попробовал редактировать файл шаблона  ini через ФТП - получилось, но в названии сайте вместо русских букв - знаки вопросов. 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Восстановить сайт, но на другой адрес

Автор Escander

Ответов: 14
Просмотров: 2768
Последний ответ 02.02.2022, 14:50:07
от draff
Как перенести сайт с сервера на сервер? (с хостинга на локалку и наоборот)

Автор djed9

Ответов: 244
Просмотров: 118921
Последний ответ 06.07.2020, 23:28:32
от SeBun
Как проверить сайт на накрутку просмотров?

Автор mimoza

Ответов: 3
Просмотров: 4176
Последний ответ 17.12.2017, 16:33:43
от zikkuratvk
Ошибочно нажал Включить SSL и сайт не работает (

Автор serjik

Ответов: 6
Просмотров: 12975
Последний ответ 08.11.2015, 23:27:39
от arfeka
Сайт-страничка сделанный инструментами Google {решено}

Автор Kirikekeks

Ответов: 2
Просмотров: 2081
Последний ответ 24.09.2015, 20:16:04
от Kirikekeks