Новости Joomla

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

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Здравствуйте)

Нужно удалить строку
Код
<link href="/templates/шаблон/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">

Пробовал несколькими способами:

Код
//1
$doc = JFactory::getDocument();
foreach ($doc->_links as $k => $array) {
 if ($array['attribs']['type'] == 'image/vnd.microsoft.icon') {
  unset($doc->_links[$k]);
 }
}

//2
$doc = JFactory::getDocument();
 foreach ( $doc->_links as $k => $array ) {
 if ( $array['relation'] == 'shortcut icon' ) {
 unset($doc->_links[$k]);
 }
}

//3
$doc = JFactory::getDocument();
$head = $this->document->getHeadData();
unset($head['links']['/templates/wtw_alfa2/favicon.ico']);

Не удаляется ..

Посмотрел, что внутри - ничего похожего нет:
Код
var_dump ($head);
var_dump ($doc->_links);

Подскажите, пожалуйста, как это можно сделать?

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Я пытаюсь сделать это прямо в шаблоне после вывода

<jdoc:include type="head" />

Проблема, скорее всего, в коде ..))
Было бы что запихивать
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Думаю дело в то где этот исполнять.
Потому подключение favicon происходит после шаблона.
https://github.com/joomla/joomla-cms/blob/staging/libraries/src/Document/HtmlDocument.php#L664-L677

А тебе зачем ее сносить?

наверно имеет смысл в системный плагин запихать код и поставить его последним.
Боюсь что придется аж в afterRender регуляркой сносить
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
на протостаре видит и отлично удаляет через плагин
Код
		$doc = JFactory::getDocument();
$head = $doc->getHeadData();
unset($head['links']['/templates/protostar/favicon.ico']);
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
вырезаем <jdoc:include type="head" /> полностью, вместо него выводим рендер функции, в которой получаем $doc->getHeadData();, полученное распарсиваем и формируем head ручками
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Думаю дело в то где этот исполнять.
Потому подключение favicon происходит после шаблона.
https://github.com/joomla/joomla-cms/blob/staging/libraries/src/Document/HtmlDocument.php#L664-L677

А тебе зачем ее сносить?
Боюсь что придется аж в afterRender регуляркой сносить

В файле HtmlDocument.php для j3.8.12 - нет такого кода ... В нем всего 376 строк
Зачем? - SEO-шник сказал... Альтернативный код нужно вставить ..




*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
SEO-шник сказал...
тыдыщ фейсом по палму...
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
на протостаре видит и отлично удаляет через плагин
Код
		$doc = JFactory::getDocument();
$head = $doc->getHeadData();
unset($head['links']['/templates/protostar/favicon.ico']);

onBeforeRender()?
Спасибо, щас попробую

вырезаем <jdoc:include type="head" /> полностью, вместо него выводим рендер функции, в которой получаем $doc->getHeadData();, полученное распарсиваем и формируем head ручками

как-то сложновато для меня))
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
В файле HtmlDocument.php для j3.8.12 - нет такого кода ... В нем всего 376 строк
Эм эта ссылка с 3.9, а данный код в ней не менялся. Видать с файлом промахнулись.

на протостаре видит и отлично удаляет через плагин
Может просто циклом крутануть, тогда точный путь писать не придется.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
да, событие это, но путь свой пиши, там протостаровский шаб.
вардампом проверь head.
не, не удаляет ...

вардамп до unset - есть иконка
вардамп после unset - нет иконки!

А в коде страницы все равно подключается! (((

Код плагина
Код
class plgSystemFaviconremove extends JPlugin
{
public function __construct( & $subject, $config )
  {
    parent::__construct( $subject, $config );
    $this->loadLanguage();
  }

  public function onBeforeRender(){


    $doc = JFactory::getDocument();
    $head = $doc->getHeadData();
    unset($head['links']['/templates/wtw_alfa2/favicon.ico']);
    //var_dump ($head);

  }
}
« Последнее редактирование: 02.10.2018, 15:01:34 от fbr »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
вардамп после unset - нет иконки!
Значит как я и писал. Иконка добавляется при рендере, а в afterRender уже по простому не поменять. Даешь регулярки в afterrender.

P.S Суровая последовательность Joomla =)
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Стоп! а кто хед на место ставить то будет!

Код
$doc->setHeadData($head);
« Последнее редактирование: 02.10.2018, 15:39:21 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
@fbr скинь плагин целиком, я его малясь подрехтую, чтобы универсальным был.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
не умничай, а пальцем покажи, где чего менять )

Код
 public function onBeforeRender(){


    $doc = JFactory::getDocument();
    $head = $doc->getHeadData();
    unset($head['links']['/templates/wtw_alfa2/favicon.ico']);
  $doc->setHeadData($head);

  }
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ну дайте установочный пакет, я цикл хочу сделать.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
у мну нету. я в свой плагин заколупал, чтоб проверить )
Если я свой начну делать, то меня понесет делать репозиторий, и обновлялку.

А такой плагин ни кому не нужен
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
прикрепил плагин
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Ура! Работает!
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Septdir, спасибо)
Я отредктировал, добавил  $doc->setHeadData($head);
Убил фавикон!

Ребята, спасибо огромное!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
В protostar чет у меня не убивается(чет мне подсказывает что у еще раз позднее ставиться фавайкон). Однако если у вас убивается, вот такой код более универсальный. там два варианта. прегматч или relation

Код
	public function onBeforeRender()
{
$doc  = JFactory::getDocument();
$head = $doc->getHeadData();

foreach ($head['links'] as $key => $link)
{
// if (preg_match('/favicon/', $key))
// {
// unset($head['links'][$key]);
// }

if (!empty($link['relation']) && $link['relation'] == 'shortcut icon')
{
unset($head['links'][$key]);
}
}
$doc->setHeadData($head);
}
« Последнее редактирование: 02.10.2018, 16:05:00 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Спасибо))
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Кстати а может просто сносить сами favicons чекать есть ли файл и сносить.  :-*
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Можно просто удалить картинку favicon.ico - и подключать не будет
Но у меня еще одна иконка в корне сайта, для почтовых клиентов, и снести я ее не могу
А эта зараза, если нет иконки в шаблоне, берет из корня и все равно подключает!

Поэтому придется юзать плагин)

пс. Эти сеошники из меня уже почти всю кровь выпили)


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Удалить авторизацию с фронтенда

Автор sega

Ответов: 13
Просмотров: 4809
Последний ответ 29.10.2023, 15:11:36
от Petrovich
Как удалить позицию модуля в настройках модуля?

Автор 62411

Ответов: 6
Просмотров: 413
Последний ответ 12.03.2023, 18:24:38
от 62411
Как удалить или заменить фразу Contact Form?

Автор PNP

Ответов: 2
Просмотров: 411
Последний ответ 08.12.2021, 20:14:40
от PNP
Каким образом сменить формат favicon с ico на svg?

Автор Serebro2009

Ответов: 3
Просмотров: 1231
Последний ответ 01.10.2021, 20:32:17
от Serebro2009
Объект класса stdClass не может быть преобразован в строку

Автор dida

Ответов: 0
Просмотров: 506
Последний ответ 25.09.2021, 09:07:05
от dida