2013-06-28 4 views
3

Я не смог найти информацию о переопределении плагина Joomla в моем шаблоне. Некоторые форумы утверждали, что плагинов не было переопределено, и документация Joomla (будучи угрожающим лесом, который она есть) либо не имеет ничего в этом вопросе, либо страница трудно найти.Joomla 3 Template переопределить плагин

Итак, как мы можем переопределить вывод плагина Joomla в том же случае, если бы мы переопределили вывод com_content или mod_contact?

ответ

7

Я нашел способ сделать это:

  1. Перейдите <joomla_homefolder>/administrator/language/<your_language>/
  2. Поиск соответствующего языкового файла плагина.
  3. Скопируйте имя файла, ИСКЛЮЧАЯ префикс языка (т.е. en-GB.) и суффикс .ini.
  4. В шаблоне создайте папку с именем html (обычная практика переопределения шаблонов).
  5. В папке html создать вложенную папку и имя с именем файла языка, как вы скопировали в шаге 3.
  6. Перейдите к tmpl вложенным в пути плагина: <joomla_homefolder>/plugins/<plugin_type>/<plugin_name>/tmpl
  7. Скопируйте файл представления вы хотите изменить в папку, созданную на шаге 5.
  8. Измените скопированный файл, чтобы переопределить вывод плагинов.

Например - Чтобы изменить кнопки навигации страницы - изменить вывод <joomla_homefolder>/plugins/content/pagenavigation:

Перейти в <joomla_homefolder>/administrator/language/en-GB/ и найти файл с именем en-GB.plg_content_pagenavigation.ini.

От названия файла только plg_content_pagenavigation.

Создайте папку с именем html (если она еще не существует) в вашей теме, внутри нее создайте подпапку и назовите ее plg_content_pagenavigation.

Скопируйте файл вида <joomla_homefolder>/plugins/content/pagenavigation/tmpl/default.php в папку plg_content_pagenavigation, которую вы только что создали.

Изменить файл.

Примечание: Я пробовал только с Joomla 3.1. Метод может не работать с некоторыми плагинами.

Удачи.

0

Нет, вы не можете переопределить то же самое, потому что нет папки tmpl, потому что плагины действительно не должны быть рендерингом, хотя, конечно, много чего. Вероятно, вам нужно клонировать плагин и сделать макет, который вы хотите, используя jlayout, чтобы упростить управление.

1

На установке Joomla 3.1 я использую плагин Simple Image Gallery, и я почувствовал необходимость переопределить его, чтобы добавить дополнительную функциональность для каждого миниатюры галереи.

Я скопировал все содержимое <joomla_homefolder>/plugins/content/jw_sig/jw_sig/tmpl/ в папку <joomla_homefolder>/templates/protostar/html/jw_sig/ и я был тогда в состоянии изменить как файл default.php для вывода модификаций, а также сопроводительную template.css файла для модификаций стайлинга. Это успешно отменяет вывод плагинов, не рискуя возникать проблемы во время будущих обновлений.

Конечно, это не будет работать со всеми плагинами, но оно предлагает другую альтернативу, если у вас есть плагин, который был достаточно хорош для разработки с помощью папки tmpl.

0

Ответ Elin не подходит для Joomla 2.5-3.x. Некоторые плагины делают вывод экрана и имеют/tmpl папки, которые вы можете переопределить. См. http://docs.joomla.org/Layout_Overrides_in_Joomla

В некоторых случаях вам может потребоваться создать альтернативные виды в папке plugin/tmpl. Например, некоторые из простых, более новых компонентов пользовательского контента, которые используют JForms, позволяют добавлять поля в статьи com_content и выбирать шаблон представления для каждого поля. Затем переопределения для com_content генерируются динамически для отображения пользовательских полей. Каждый тип поля может отображаться в области компонентов через плагины или в модуле или внутри кода шаблона, но он будет использовать файл/tmpl, который вы выбрали для поля в компоненте CCK. Если есть способ переопределить различные виды полей из папки шаблона, для этого потребуется структура тайного меню, которую я не смог обнаружить.

+0

Я специально сказал, что они «не должны» не то, что они «не делают». Однако использование JLayouts структурно более корректно. – Elin

+0

Я в основном отвечал на ваши «не могу». :-) –

5

В joomla 3 вы можете переопределять только выходные данные плагинов, поэтому плагин origin должен быть реализован с помощью tmpl. Соглашение об именах папки в вас [шаблон]/html является

plg_ [тип *] _ [pluginElement]

Template переопределены родной Joomla плагин является только pagenavigation.

тип *: очевидно, что нет смысла быть другим, кроме контента, но если это пользовательский плагин, никто не сможет вас остановить.

+0

Кстати, это полностью работает с новыми пользовательскими полями в Joomla 3.7. Это означает, что вы можете использовать это соглашение об именах папок и вставлять файл шаблона из поля в нем и модифицировать файл для переопределения вывода поля. Например, в папке html вы помещаете plg_fields_media в файл media.php внутри него, чтобы переопределить поле мультимедиа. –