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

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

  • Живу я здесь
  • 2290
  • 207 / 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

  • Живу я здесь
  • 2290
  • 207 / 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

  • Живу я здесь
  • 2290
  • 207 / 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

  • Живу я здесь
  • 2290
  • 207 / 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

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

sivers

  • Живу я здесь
  • 2129
  • 287 / 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
  • 433 / 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

  • Завсегдатай
  • 1856
  • 142 / 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

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

draff

  • Гуру
  • 5803
  • 433 / 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);
   }
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пустые страницы

Автор ahfiasofasf

Ответов: 3
Просмотров: 217
Последний ответ 21.10.2022, 10:33:10
от Preview
Не генерировать Пустые страницы пагинации

Автор Gerostrat

Ответов: 7
Просмотров: 265
Последний ответ 15.10.2022, 19:34:00
от sivers
Разрыв страницы и meta description

Автор seregaы

Ответов: 0
Просмотров: 180
Последний ответ 05.09.2022, 17:19:12
от seregaы
Как сделать переход на 2-3-4 и т.д страницы? Страница длинная?

Автор Марина-6

Ответов: 3
Просмотров: 319
Последний ответ 21.08.2022, 17:43:25
от sivers
Как убрать название только с главной страницы?

Автор Scaltro

Ответов: 6
Просмотров: 426
Последний ответ 14.08.2022, 21:14:20
от darkghost