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

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Всем привет.

Сделал свой заголовок в браузере (title) для статей.

Реализовал через это:
Код
defined('_JEXEC') or die;
JFactory::getDocument()->setTitle(''. $this->item->title.' - '.JText::_('K2_SOME_TEXT'). '');

Появилась задача, менять местами сам заголовок и произвольный текст местами, в зависимости от количества символов в стандартном заголовке статьи.

Например:

Если заголовок до 40 символов: "Фен для укладки" - K2_SOME_TEXT
Если заголовок выше 40: K2_SOME_TEXT - "Фен для укладки с красными кнопками и надежным шнуром"

Как это можно реализовать?
« Последнее редактирование: 27.08.2019, 23:26:28 от lgmax »
*

fbr

  • Завсегдатай
  • 1547
  • 178 / 7
Можно попробовать так:
Код
defined('_JEXEC') or die;

if (strlen($this->item->title) >= 40 {
 $newtext = JText::_('K2_SOME_TEXT') . ' - ' . $this->item->title;
} else {
 $newtext = $this->item->title  . ' - ' . JText::_('K2_SOME_TEXT');
}
JFactory::getDocument()->setTitle($newtext);
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Можно попробовать так:
Код
defined('_JEXEC') or die;

if (strlen($this->item->title) >= 40 {
 $newtext = JText::_('K2_SOME_TEXT'). ' - ' . $this->item->title;
} else {
 $newtext = $this->item->title  . ' - ' . JText::_('K2_SOME_TEXT');
}
JFactory::getDocument()->setTitle($newtext);

Получаю - 404 страницу. =(

Я так думаю, что дело в пунктуации ' .
*

fbr

  • Завсегдатай
  • 1547
  • 178 / 7
В условии if забыл закрывающую скобку поставить ), после 40
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
В условии if забыл закрывающую скобку поставить ), после 40

Спасибо, огромное! Все работает как нужно.
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
А как можно сделать, чтобы в этом варианте титла кавычки "" отображались в браузере как кавычки а не просто тегом "?
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Может что-то типо этого?

Код
$item->title = html_entity_decode($item->title,ENT_QUOTES, 'utf-8');

или так:
Код
$newtitle = html_entity_decode($newtitle, ENT_QUOTES, "UTF-8")

Или как это сделать?
*

fbr

  • Завсегдатай
  • 1547
  • 178 / 7
Код
$newtext = '"' .  $this->item->title  . '" - ' . JText::_('K2_SOME_TEXT');
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Код
$newtext = '"' .  $this->item->title  . '" - ' . JText::_('K2_SOME_TEXT');

Извини, я наверно неправильно выразился.

Когда в заголовке статьи где-то стоят кавычки, то они определяются как ТЕГ.

Как это можно исправить? Как их декодировать?
*

fbr

  • Завсегдатай
  • 1547
  • 178 / 7
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
htmlspecialchars($text, ENT_NOQUOTES);
https://www.php.net/manual/ru/function.htmlspecialchars.php

А как это в коде реализовать?
*

fbr

  • Завсегдатай
  • 1547
  • 178 / 7
$newtext = JText::_('K2_SOME_TEXT'). ' - ' . htmlspecialchars($this->item->title, ENT_NOQUOTES);
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
$newtext = JText::_('K2_SOME_TEXT'). ' - ' . htmlspecialchars($this->item->title, ENT_NOQUOTES);
Теперь вышло так: "Текст"

Блин)
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Код
$newtext = JText::_('K2_TITLE_TEXT'). ' - ' . html_entity_decode($this->item->title, ENT_QUOTES, "UTF-8");

Все, разобрался. Мой вариант сработал, теперь все как нужно. Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка ПРИ создании материала В К2 - РЕШЕНО

Автор korchaga

Ответов: 1
Просмотров: 243
Последний ответ 28.12.2020, 03:21:46
от korchaga
[Решено] Получить alias материала в плагине, как?

Автор x1

Ответов: 10
Просмотров: 462
Последний ответ 23.07.2020, 11:45:07
от x1
K2 свой title для каждой страницы

Автор anna9494

Ответов: 19
Просмотров: 2905
Последний ответ 27.06.2020, 15:16:59
от TYMON
Добавление html символов вначале и конце строки

Автор lgmax

Ответов: 1
Просмотров: 338
Последний ответ 25.01.2020, 23:07:46
от beliyadm
[Решено] Условие IF - else

Автор lgmax

Ответов: 2
Просмотров: 336
Последний ответ 22.01.2020, 12:14:41
от lgmax