Добавление мета-тегов в заголовок в переполнении стека лития

Я пытаюсь добавить метаданные теги в заголовок, это мой код:

приложение / расширение / помощник / FacebookHtml.php

<?php
namespace app\extensions\helper;

class FacebookHtml extends \lithium\template\Helper {

protected $_strings = array(
'title' => '<meta property="og:title" content="{:contenido}" />',
'site_name' => '<meta property="og:site_name" content="{:contenido}" />',
'url' => '<meta property="og:url" content="{:contenido}" />',
'description' => '<meta property="og:description" content="{:contenido}" />',
'image' => '<meta property="og:image" content="{:contenido}" />',
'image' => '<meta property="og:image" content="{:contenido}" />',
'locate' => '<meta property="og:locate" content="{:contenido}" />',
);

public function meta($contenido, $options) {
return $this->_render(__METHOD__, $options['type'], compact('contenido'));
}
}

В приложении / views / layout / default.html.php, внутри

<?=$this->FacebookHtml(); ?>

В другом файле просмотра:

<?=$this->FacebookHtml->meta('title', 'Test.. 1...2...3...'); ?>

Я часами ищу в Google и в основном коде, чтобы узнать, как добавить метаданные.

1

Решение

Сначала несколько заметок:

В вашем примере <?=$this->FacebookHtml(); ?> ничего не делает

Как сказал Орд в своем ответ, Ваши параметры неверны. Они должны соответствовать вашему объявлению функции в FacebookHtml.php Так должно быть:

<?= $this->FacebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>

Ваш помощник делает именно то, что должен, отображая необработанные метатеги. Важно, куда вы звоните своему помощнику. На самом деле вы просто отображаете метатеги на месте. Тем не менее, класс li3 Renderer обеспечивает $this->head() метод, который делает две вещи.

  1. Передав значение head добавляет его в контекст для всех шаблонов, использующих текущий рендер. Пример: $this->head("<meta property="og:title" content="The Title" />");
  2. Вторя $this->head() будет отображать все теги, содержащиеся в текущем head контекст.

Вот несколько примеров из реальной жизни:

приложение / просмотров / макеты / default.html.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>

<?php echo $this->head() ?>

<title><?php echo $this->title(); ?> | My Website</title>

</head>

<body>

<?php echo $this->content(); ?>

</body>

</html>

приложение / просмотров / страниц / index.html.php

<?php $this->FacebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>

В приведенном выше примере вы можете указать любые заголовки внутри своих представлений.

В дополнение к $this->head()Li3 также обеспечивает $this->styles() а также $this->scripts() с аналогичной функциональностью.

Проверьте пример default.html.php из репозитория платформы li3 для более полного примера: https://github.com/UnionOfRAD/framework/blob/master/app/views/layouts/default.html.php

3

Другие решения

В ваших шаблонах просмотра вы должны вызвать помощника, предоставив title в массиве параметров:

<?= $this->facebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>

Я уверен, что вы уже прошли через это, но вот Литий страница руководства по помощникам

0

По вопросам рекламы [email protected]