Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » мета теги через доп поля подскажите что я не так делаю?

мета теги через доп поля подскажите что я не так делаю?


     03.05.2021    Общие вопросы по PHP, Модули, Хаки    961

вопрос
Имя файла:
engine/modules/show.full.php

Найти:
if ($row['metatitle']) $metatags['header_title'] = $row['metatitle'];

Заменить на:
if ($row['metatitle']) $metatags['header_title'] = $row['metatitle']; {
    include ENGINE_DIR . '/data/metategi.php';
    if ( !is_array($config_mod) ) $config_mod = array();

    if ( !empty($config_mod['title']) ) $metatags['header_title'] = $config_mod['title'];
    if ( !empty($config_mod['description']) ) $metatags['description'] = $config_mod['description'];
    if ( !empty($config_mod['keywords']) ) $metatags['keywords'] = $config_mod['keywords'];
	if ( !empty($config_mod['speedbar']) ) $metatags['title'] = $config_mod['speedbar'];

    $metatags = str_replace(array('{title}'), array($row['title'], ['title']), $metatags);

    foreach(xfieldsload() as $xfield) {
        $metatags = str_replace('[xfvalue_' . $xfield[0] . ']', $xfields[$xfield[0]], $metatags);

        if ( empty($pl_xfields[$xfield[0]]) ) {
            $metatags = str_replace(array('[xfnotgiven_' . $xfield[0] . ']', '[/xfnotgiven_' . $xfield[0] . ']'), '', $metatags);
            $metatags = preg_replace("'\\[xfgiven_{$xfield[0]}\\](.*?)\\[/xfgiven_{$xfield[0]}\\]'is", '', $metatags);
        } else {
            $metatags = str_replace(array('[xfgiven_' . $xfield[0] . ']', '[/xfgiven_' . $xfield[0] . ']'), '', $metatags);
            $metatags = preg_replace("'\\[xfnotgiven_{$xfield[0]}\\](.*?)\\[/xfnotgiven_{$xfield[0]}\\]'is", '', $metatags);
        }
    }
}

Помогите чет не работает отдельные мета теги через доп поля ?

Ответа пока нет


1 комментарий

TeraMoune
Эксперт

TeraMoune - 3 мая 2021 10:22 -

Сами писали код ?

1.
foreach(xfieldsload() as $xfield) {

Зачем выполнять функцию, если в 169 строке +- уже выполняется данная функция и помещается в переменную $xfields.

2.
if ($row['metatitle']) $metatags['header_title'] = $row['metatitle']; {

Открывается скобка после ";" но код в скобках уже не является частью условия. И код в блоке { ... } исполняется всегда.

3.
$xfields[$xfield[0]]

В этой строке происходит попытка получить данные по ключу массива подставляя ключ (0) в качестве значения, который является названием доп. поля. Вот только $xfield (внутренний в цикле) и $xfields одинаковые массивы. И в $xfields нету ключей с именами доп. полей. В нём ключи представлены в числовых значениях.

В данном файле в строке 1839 +- где-то, уже начинается условие на проверку доп. полей, а так же код с циклом обработки массива этих полей.
foreach ( $xfields as $value ) {


Код стоит писать там.

Тестовый репозиторий установки плагинов: teramoune

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх