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

Sielena

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Здравствуйте!
В адресной строке отражается http://meb******.by/index.php/kontakty. Как убрать index.php в Joomla1.5 я нашла, а вот  у себя в Joomla 2.5.4 как это сделать я не нахожу ответов.
Буду очень признательна за помощь в решении этого вопроса.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #1 : 16.04.2012, 00:35:53 »
Точно так же! Точно там же!
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #2 : 21.06.2012, 10:17:50 »
Похожая проблема. Только вроде как по теории понятно как переключить, но не срабатывает.

1. В корне сайта заменить файл htaccess.txt на .htaccess
- в одной из веток форума также рекомендовали удалить в этом файле «Directory (just / for root)» перед «RewriteBase /» (но мне все равно не помогло)
2. Сайт - Общие настройки - Настройки SEO -Перенаправление URL - да
3.Если не включилось поверить загружен ли mod_rewrite. Сайт - Информация о системе - Информация о PHP - раздел "Configuration", подраздел "apache" - там в "Loaded Modules" должен быть "mod_rewrite" (если нет, то его надо включить через компанию предоставляющую хостинг)

Это вся информация, которую получилось найти. Но проделав все манипуляции ничего не получается. Выдает ошибки.
Что не так делаю? В чем может быть причина?
*

rwgusev

  • Захожу иногда
  • 143
  • 10 / 0
*

dimentor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #4 : 23.06.2012, 16:33:21 »
Такая же проблема, как только включаешь - Перенаправление URL, сразу сыпятся ошибки файл не найден.
.htaccess на месте, мод реврайт включен, что делать?
Причем проблема повторяется и у хостера и на локальном апаче.
*

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #5 : 24.06.2012, 02:12:19 »
Цитировать
Это вся информация, которую получилось найти. Но проделав все манипуляции ничего не получается. Выдает ошибки.
Что не так делаю? В чем может быть причина?
Вы сделали все правильно. Вам нужно подкрутить настройки .htaccess под требования хостера.
Попробуйте последовательно раскомментировать строки в .htaccess:
RewriteEngine On
RewriteBase /

Ну и, конечно, убедитесь в том, что файл .htaccess присутствует в корне сайта.
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #6 : 01.08.2012, 16:55:11 »
Такая же проблема, как только включаешь - Перенаправление URL, сразу сыпятся ошибки файл не найден.
.htaccess на месте, мод реврайт включен, что делать?
Причем проблема повторяется и у хостера и на локальном апаче.

Коллеги - у меня точно такая же ситуация.
Сайт на хостинге, рекомендации из этой темы выполнены; index.php из ссылок пропадает, но после этого становится доступной только главная страница, а все остальные ссылки дают ошибку 404.
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #7 : 01.08.2012, 16:59:32 »
Пропишите в .htaccess строку

Код: ini
RewriteBase /

 
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #8 : 01.08.2012, 20:40:25 »
компонент  sh404SEF. Уроки http://wedal.ru/seo/seo-optimizaciya-joomla-komponent-sh404sef.html
Вот большую ерунду сказать было сложно. Использовать sh404 без веских на то причин достаточно глупо, т.к. чувствительно повышается нагрузка на сервер.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #9 : 01.08.2012, 20:43:02 »
Вот большую ерунду сказать было сложно. Использовать sh404 без веских на то причин достаточно глупо, т.к. чувствительно повышается нагрузка на сервер.

Абсолютно согласен, тем более что этот компонент уже давно платный и не всегда стабильный. А уж про варез и старые версии и говорить нечего !
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #10 : 02.08.2012, 00:59:34 »
Marques, спасибо! всё заработало!.

И так, свожу воедино:

Для того, чтобы убрать index.php нужно:
  • в корне Joomla! переименовать файл в htaccess.txt в .htaccess;
  • в .htaccess раскомментировать строку
Код: ini
RewriteBase /
  • в панели управления Joomla! установить параметр "Перенаправление URL" = "Да".

*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #11 : 02.08.2012, 01:02:37 »
Да, абсолютно верно.
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #12 : 08.08.2012, 01:28:33 »
Бред какой-то!

И так, свожу воедино...

Хостинг - тот же (но другая учётка), тарифный план на хостинге - тот же.
Повторяю все настройки - получаю ошибку 404.

Я даже с работающего сайта скопировал .htaccess - бесполезно.

Вот сайт, на котором эти фокусы:
surdocentr.ru

У кого-нибудь есть идеи?
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #14 : 08.08.2012, 03:21:50 »
ELLE, frisian:

Кеш очистил, обновил страницу - 404.
Закомментировал RewriteBase /, очистил кеш, обновил страницу - 404.

У меня складывается впечатление, что данная функция (подавление вывода index.php) работает нестабильно; может быть не стоит её вообще использовать?
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #15 : 08.08.2012, 03:30:37 »
я конечно извиняюсь, но вы уверены что на этом сайте .htaccess переименовали, потому что с index.php у вас работает - http://www.surdocentr.ru/index.php/soobshchestvo
и уверены, что настройки хостинга те же
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #16 : 08.08.2012, 03:48:36 »
Да, уверен.

Просто я в этот момент выключил в настройках сайта "Перенаправление URL" (не думал, что кто-то из коллег в столь поздний час будет смотреть), чтобы протестировать - а встал ли форум?

Сейчас всё выключи назад и ссылки снова имеют вид http://www.surdocentr.ru/soobshchestvo и не работают.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #17 : 08.08.2012, 03:57:17 »
выкладывайте ваш .htaccess
если там не будет ошибок, то напишите хостеру, у вас просто не работает модуль mod_rewrite (это если в файле нет ошибок)
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #18 : 08.08.2012, 04:08:55 »
Файл прикладываю, только не вижу смысла тратить на его анализ время: это Joomlaвский файл, из которого удалено два символа "решётка" и "пробел" перед "RewriteBase /".

не работает модуль mod_rewrite

Вы считаете, что этот модуль может включаться произвольно для разных учётных записей?

Как я (пользователь хостинга) могу это проверить - активирован он или нет, не доверяясь словам говорящей телефонной трубки?

[вложение удалено Администратором]
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #19 : 08.08.2012, 04:25:09 »
Вы считаете, что этот модуль может включаться произвольно для разных учётных записей?
Я считаю, что настройки на разных серверах могут отличаться.

Файл ваш у меня отлично работает, посмотрите здесь пункт 3, если нет - пишите в саппорт хостинга
« Последнее редактирование: 08.08.2012, 04:34:25 от ELLE »
*

Санчо

  • Захожу иногда
  • 239
  • 10 / 0
  • Алексей Харламенков
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #20 : 09.08.2012, 13:47:07 »
Проблема решена на стороне хостера - Joomlaвский файл .htaccess не читался сервером; для его активации необходимо было в контрольной панели хостинга нажать кнопку "Синхронизировать .htaccess".

Так что, в итоге, - все настройки правильные, нужно только учитывать особенности хостинговой площадки.

ELLE, Вас особая благодарность за отзывчивость и участие.
*

motor1

  • Осваиваюсь на форуме
  • 38
  • 4 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #21 : 24.09.2012, 08:26:58 »
Самый быстрый и простой способ убрать index.php из ссылки в Joomla 2.5.4 и любых других версий это компонент Artio JoomSEF он есть как платный так и бесплатный
этот компонент сам создаст файл .htaccess и сделает 301 редиректы  ссылок  сайт/index.php/товар на сайт/товар.
также в нем можно вручную настроить все переходы и данные для  seo оптимизации
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #22 : 28.10.2012, 14:11:00 »
Самый быстрый и простой способ убрать index.php из ссылки в Joomla 2.5.4 и любых других версий это компонент Artio JoomSEF он есть как платный так и бесплатный
этот компонент сам создаст файл .htaccess и сделает 301 редиректы  ссылок  сайт/index.php/товар на сайт/товар.
также в нем можно вручную настроить все переходы и данные для  seo оптимизации

Из за одного файла и одного типа редиректа ставить этот чертов "танк" на сервер? Нет уж - увольте. А лучше сожги и выбрось такие SEF компоненты. На Joomla 2.5 они абсолютно не актуальны!

Беда заключается в следующем - все хорошо какгбэ - Настройки SEO
  • Включить SEF (ЧПУ) - Да
  • Перенаправление URL - Да
  • Добавлять суффикс к URL - Да

Все ссылки приятные  более менее http://www.сайт.com/component/content/article/81-information/114-garantii.html или http://www.сайт.com/кореньJS/категория/товар.html НО

 Вот висит на главной проклятый http://www.сайт.com/index.php - и никакая напасть его не берет. Ни советы "специалистов" ни танцы с бубном. Вроде бы и мелочь - но глаз ковыряет. Да и любят ли пауки эту дрянь?

Где эта волшебная строчка которая может решить эту проблему. Есть ли такая в дефолтных настройках хцсса? Или самому вбивать новое правило нужно? Если так где можно подсмотреть пример? Заранее благодарю всех неравнодушных к вопросу.

Спойлер
[свернуть]
« Последнее редактирование: 28.10.2012, 14:21:11 от Sni10 »
*

arma

  • Завсегдатай
  • 1753
  • 81 / 3
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #23 : 28.10.2012, 14:32:22 »
#RewriteBase / - убрать #
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #24 : 28.10.2012, 14:42:18 »
#RewriteBase / - убрать #

А я разве в коде комментарий не ясно написал?
 
Код
#RewriteBase /
##
#Включение отключения правила RewriteBase / - результата НОЛЬ
##
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #25 : 28.10.2012, 14:45:58 »
Цитировать
Вот висит на главной проклятый http://www.сайт.com/index.php - и никакая напасть его не берет
>> http://joomlaforum.ru/index.php/topic,223542.0.html п.1
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #26 : 28.10.2012, 15:03:41 »
>> http://joomlaforum.ru/index.php/topic,223542.0.html п.1

Не не канает. ERROR - На этой странице обнаружена циклическая переадресация - Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): Обнаружено слишком много переадресаций. Что за новая напасть?
Даже если честно представить не могу в чем беда. Я много раз боролся с 500 и 503 ошибками. Но преимущественно в v1.5
И чуйка подсказывает что копать нужно в сторону ядра а не настроек сервера. Хотя могу и ошибаться.

PS ELLE спасибо за ценную наводку. Раньше не наталкивался на эту ветвь. И уже нашел там для себя несколько сладких плюшек ;)
« Последнее редактирование: 28.10.2012, 15:07:25 от Sni10 »
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #27 : 28.10.2012, 15:06:17 »
может вставили не туда, а так работает
еще в index.php шаблона можно добавить
Код: php
<?php
 if($_SERVER['REQUEST_URI'] == '/index.php') {
 header("Location: /",TRUE,301);
 exit();
 }
 ?>
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #28 : 28.10.2012, 15:09:07 »
А разве порядок расположения правил в htacess имеет знаение? Не знал. Попробую поиграться в "тетрис" с местами правил.

PS потыкал в разные места Redirect 301 /index.php http://сайт.com/ С RewriteBase / и БЕЗ RewriteBase / - Результат один. Беда с циклом редиректов.

PS я не требую немедленно решить мою проблему чтобы я спал спокойно. Просто уведомляю что такая беда существует :( Если кто еще с таким столкнется.
« Последнее редактирование: 28.10.2012, 15:12:54 от Sni10 »
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: Как убрать index.php из ссылки в Joomla 2.5.4
« Ответ #29 : 28.10.2012, 15:20:23 »
ну попробуйте еще так
Код: php
RewriteEngine On
RewriteRule ^index.php/(.*)$ http://site.ru/RewriteEngine On
RewriteRule ^index.php/(.*)$ http://site.ru/$1 [R=permanent,L] [R=permanent,L]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 69
Просмотров: 199479
Последний ответ 31.01.2025, 12:42:10
от brat_ii
Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 1
Просмотров: 2866
Последний ответ 17.12.2024, 00:13:11
от brat_ii
Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 8
Просмотров: 4193
Последний ответ 09.12.2024, 23:36:51
от brat_ii
Joomla 2.5.28, Safari под маком и сессии session

Автор beliyadm

Ответов: 19
Просмотров: 5481
Последний ответ 29.03.2023, 12:17:19
от Sawell
Joomla 2.5.28 как скачать все файлы через панель управления

Автор Sergei41984

Ответов: 7
Просмотров: 3324
Последний ответ 27.12.2022, 23:30:38
от Sergei41984