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

lgmax

  • Захожу иногда
  • 299
  • 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

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

  • Захожу иногда
  • 299
  • 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

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

lgmax

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

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

lgmax

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

lgmax

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

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

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

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

fbr

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

lgmax

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

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

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

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

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
*

lgmax

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

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

fbr

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

lgmax

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

Блин)
*

lgmax

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

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

Разные Title и заголовки в K2

Автор kilnart

Ответов: 38
Просмотров: 3207
Последний ответ 10.03.2024, 04:03:45
от Slava77
Как на странице автора K2 изменить title и description?

Автор Slava77

Ответов: 4
Просмотров: 1298
Последний ответ 26.12.2022, 21:11:51
от Slava77
Решено: Более одной группы доп. полей

Автор chilly_bang

Ответов: 75
Просмотров: 9141
Последний ответ 07.02.2022, 17:06:11
от Dobrota
[Решено] K2 не сохраняет настройки

Автор Dobrota

Ответов: 2
Просмотров: 1431
Последний ответ 07.02.2022, 15:58:04
от Dobrota
Ошибка ПРИ создании материала В К2 - РЕШЕНО

Автор korchaga

Ответов: 1
Просмотров: 626
Последний ответ 28.12.2020, 03:21:46
от korchaga