Как плагин может проверить, существует ли метатег?

Итак, я пытаюсь изменить плагин. Этот плагин устанавливает некоторые метатеги в разделе главы с помощью addCustomTag (добавление <meta property="og:...> и т. д.) Проблема в том, что их следует добавлять только один раз. Это хорошая идея использовать $woo = JResponse::getBody(); и проверить внутри с помощью preg_match()? Меня беспокоит, что JResponse устарел . Используемое событие: onContentAfterDisplay.

2 голоса | спросил pl71 15 Maypm15 2015, 19:29:08

1 ответ


1

Добавьте запись только один раз, добавив поле в ваше приложение и проверяя, когда вы хотите добавить свой собственный тег.

$app = JFactory::getApplication();
if(!isset($app->metaloaded))
{
  $document->addCustomTag('<meta property="og:..."/>');
  $app->metaloaded = true;
}

Теперь, если вы хотите вызвать его в другом месте или функция вызывается дважды в том же запросе, проверка не позволит выполнить его дважды.

Чтобы проверить уже существующие теги, добавленные другими расширениями, вы можете использовать приведенный ниже код:

$document = JFactory::getDocument();
$headData = $document->getHeadData();
$existing = false

foreach($headData['custom'] as $tag)
{
   if($tag == $mytag) // or you can use if(strcmp($tag, $mytag) === 0))
   {
       $existing = true;
       break;
   }
}

// now if the tag does not exist, add your tag
if(!$existing)
{
    // add your tag here
}
ответил Nagarjun 15 Maypm15 2015, 20:33:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132