0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 898 Просмотров
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Нужно сделать так, чтобы можно было вставлять код php в любое место заголовка страницы в браузере (метатег title).
Пример: Шины оптом <?php echo $GLOBALS['in-city']; ?> недорого

Сейчас Joomla вырезает php код. Плагин Sourcerer здесь тоже не работает.

Если в файле administrator/components/com_menus/models/forms/item_component.xml добавить filter="raw"

         <field
            name="page_title"
            type="text"
            label="COM_MENUS_ITEM_FIELD_PAGE_TITLE_LABEL"
            description="COM_MENUS_ITEM_FIELD_PAGE_TITLE_DESC"
            useglobal="true"
            filter="raw"
         />

То код сохраняется, но не исполняется, просто отображается как текст.
*

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Пример: Шины оптом <?php echo $GLOBALS['in-city']; ?> недорого
Пример: Шины оптом {in-city} недорого

Код: php
str_replace('{page_title}', $GLOBALS['in-city'], $item->page_title);
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
str_replace('{page_title}', $GLOBALS['in-city'], $item->page_title);

Не очень понял, куда вставить этот код?
*

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Не очень понял, куда вставить этот код?
Там где указываете заголовок для страницы!
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
str_replace('{page_title}', $GLOBALS['in-city'], $item->page_title);


А, понял, всё работает, спасибо!
Просто вы немножко опечатались, надо str_replace('{in-city}', $GLOBALS['in-city'], $item->page_title);
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
А можно такую же штуку провернуть с текстами в модулях?
*

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
А можно такую же штуку провернуть с текстами в модулях?
Можно! Но смотря какой модуль использовать.

Для самописного модуля подойдет
Код: php
echo str_replace('{line}', __LINE__, $module->content);

Если модуль типа HTML-код, то для него есть событие onContentPrepare работающее в группе плагинов content (но что бы оно работало надо включить соответствующий параметр в настройках модуля)
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Нужно чтобы работало для всех модулей на сайте типа HTML-код. Т.е. во всех модулях, где встречается {in-city}, это выражение должно меняться на <?php echo $GLOBALS['in-city']; ?>
*

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Нужно чтобы работало для всех модулей на сайте типа HTML-код.
Тогда вам надо использовать событие onContentPrepare
Код: php
$item->text = str_replace('{in-city}', $GLOBALS['in-city'], $item->text);
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Что-то я ничего не понял)
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Т.е. я должен создать свой плагин типа как ниже??

<?
class PlgContentMyShortCode extends JPlugin
{   
   public function onContentPrepare($context, &$article, &$params, $page = 0)
   {
      $item->text = str_replace('{in-city}', $GLOBALS['in-city'], $item->text);
   }
}
?>
*

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Прямо в точку!
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sivers

  • Завсегдатай
  • 1957
  • 267 / 0
public function onContentPrepare($context, &$article, &$params, $page = 0)
тут желательно заменить $article => $item (иначе может не заработать)
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
А как сделать тоже самое, но для Joomla 4?

<?
class PlgContentMyShortCode extends JPlugin
{   
   public function onContentPrepare($context, $item, $params)
   {
      $item->text = str_replace('{in-city}', 'в Москве', $item->text);
   }
}
?>
*

draff

  • Гуру
  • 5803
  • 432 / 7
  • ищу работу
Код
<?
class PlgContentMyShortCode extends CMSPlugin
{   
   public function onContentPrepare (&$item, $params ) {
   {
      $item->text = str_replace('{in-city}', 'в Москве', $item->text);
   }
}
?>
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
<?
class PlgContentMyShortCode extends CMSPlugin
{   
   public function onContentPrepare (&$item, $params ) {
   {
      $item->text = str_replace('{in-city}', 'в Москве', $item->text);
   }
}
?>

Что-то не работает(((
*

gartes

  • Завсегдатай
  • 1850
  • 141 / 6
  • Е = mс²
Что-то не работает(((
Первый парам. $context
Код
<?php
class PlgContentMyShortCode extends CMSPlugin
{   
   public function onContentPrepare ($context, &$item, $params, $page = 0    ) {
   {
      $item->text = str_replace('{in-city}', 'в Москве', $item->text);
   }
}
*

gartes

  • Завсегдатай
  • 1850
  • 141 / 6
  • Е = mс²
*

draff

  • Гуру
  • 5803
  • 432 / 7
  • ищу работу
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Первый парам. $context
Всё равно не работает

Библиотеки ядра Joomla подключены ?
Эмм... а как это проверить?
*

virfolk

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
В общем... я и так, и этак...

В итоге сменил название плагина с myShortCode на shortcode и всё заработало! Всем спасибо!

<?php

defined('_JEXEC') or die;

use Joomla\CMS\Plugin\CMSPlugin;

class PlgContentShortcode extends CMSPlugin
{
   
   public function onContentPrepare ($context, $item, $params ) {
      $item->text = str_replace('{in-city}', 'в Москве', $item->text);
   }
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставить языковую переменную в title""

Автор onniby

Ответов: 11
Просмотров: 245
Последний ответ 18.04.2022, 16:14:46
от onniby
amp страницы для Joomla4

Автор Слава

Ответов: 0
Просмотров: 175
Последний ответ 25.02.2022, 12:38:31
от Слава
Баг в поиске Joomla 3.8.5 <span class="highlight'>title</span>

Автор hubby

Ответов: 28
Просмотров: 4958
Последний ответ 11.02.2022, 11:56:39
от mak200
Как убрать настройки с главной страницы?

Автор Dalersion

Ответов: 3
Просмотров: 215
Последний ответ 10.02.2022, 22:15:51
от Dalersion
Ошибка страницы http error 500

Автор raevmara90

Ответов: 0
Просмотров: 180
Последний ответ 09.02.2022, 07:09:44
от raevmara90