Zend Framework headMeta() — ключевые слова не добавляются
-
06-07-2019 - |
Вопрос
Я использую Zend Framework 1.8.У меня проблема с headMeta(), дублирующим мои мета-ключевые слова.
В моем макете.phtml у меня есть
<?php echo $this->headMeta(); ?>
у меня есть кастом Controller_Plugin_ViewSetup
(расширение Zend_Controller_Plugin_Abstract
), в котором есть следующий код, в dispatchLoopStartup()
функция:
$view->headMeta()->setHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$view->headMeta()->setName('keywords', 'global,generic,keywords,');
Наконец, в моих сценариях просмотра у меня есть следующее:
$this->headMeta()->appendName('keywords', 'view,specific,keywords');
Я ожидал, что в исходном коде HTML я увижу:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords,view,specific,keywords" />
Однако на самом деле я вижу это:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords," />
<meta name="keywords" content="view,specific,keywords" />
Другими словами, мета-ключевые слова не объединяются должным образом.Что я делаю не так?
Ваше здоровье,
Мэтт
Решение
Это связано с тем, что метод добавления не добавляет дополнительные ключевые слова в уже определенный список.Метод добавления добавит следующий тег к уже определенным тегам.Аналогично, если вы выберете «Добавить», новый тег будет добавлен перед тем, который вы определили в своем плагине.
Я думаю, что лучше всего было бы удалить заполнитель ключевых слов из плагина, сохранить ключевые слова по умолчанию в объекте конфигурации и вставить их в свое представление одновременно с добавлением дополнительных ключевых слов.