Mek 99 Опубликовано: 7 ноября 2018 Рассказать Опубликовано: 7 ноября 2018 (изменено) В последней актуальной версии DLE (13.1), если в новости нет текста, только картинки и доп поля, в og:description попадает всё содержимое из доп полей вперемешку, даже с кусками кода xfvalue.... По мне так очень сомнительное решение.... Может кто сможет написать модуль, который будет делать: "og:description"="description+`произвольный текст`+[данные из доп поля 1]+`произвольный текст`+[данные из доп поля 2]" ? Ну и в идеале чтоб эта конструкция работала только в определённых категориях. Во всех остальных - как есть по умолчанию. Изменено 7 ноября 2018 пользователем Mek Ссылка на сообщение Поделиться на других сайтах
Mek 99 Опубликовано: 10 ноября 2018 Рассказать Опубликовано: 10 ноября 2018 (изменено) Автор Вопрос решён, помогли добрый люди))) Кому интересно вот решение: В engine/engine.php Меняем: $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; На: if ($key == "description"){ if( ($subaction == 'showfull') AND in_array( intval($category_id), array('1', '2')) ){ $og_description=str_replace(array("{", "}", "[", "]"), "", $metatags['description']) . ', Произвольный текст1: ' . xfieldsdataload($xfieldsdata)['pole1'] . ', Произвольный текст2: ' . xfieldsdataload($xfieldsdata)['pole2']; } if( ($subaction == 'showfull') AND in_array( intval($category_id), array('3', '4')) ){ $og_description=str_replace(array("{", "}", "[", "]"), "", $metatags['description']); } $s_meta .= "<meta property=\"og:description\" content=\"{$og_description}\">\n"; } else { $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; } Получаем что при просмотре полных новостей из категорий 1 и 2 мы имеем og:description=description+Произвольный текст1+данные из доп поля [pole1]+Произвольный текст2+данные из доп поля [pole2] При просмотре полных новостей из категорий 3 и 4 мы имеем og:description=description Изменено 10 ноября 2018 пользователем Mek Ссылка на сообщение Поделиться на других сайтах
Gameer 321 Опубликовано: 11 ноября 2018 Рассказать Опубликовано: 11 ноября 2018 7 часов назад, Mek сказал: Вопрос решён, помогли добрый люди))) Кому интересно вот решение: В engine/engine.php Меняем: $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; На: if ($key == "description"){ if( ($subaction == 'showfull') AND in_array( intval($category_id), array('1', '2')) ){ $og_description=str_replace(array("{", "}", "[", "]"), "", $metatags['description']) . ', Произвольный текст1: ' . xfieldsdataload($xfieldsdata)['pole1'] . ', Произвольный текст2: ' . xfieldsdataload($xfieldsdata)['pole2']; } if( ($subaction == 'showfull') AND in_array( intval($category_id), array('3', '4')) ){ $og_description=str_replace(array("{", "}", "[", "]"), "", $metatags['description']); } $s_meta .= "<meta property=\"og:description\" content=\"{$og_description}\">\n"; } else { $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; } Получаем что при просмотре полных новостей из категорий 1 и 2 мы имеем og:description=description+Произвольный текст1+данные из доп поля [pole1]+Произвольный текст2+данные из доп поля [pole2] При просмотре полных новостей из категорий 3 и 4 мы имеем og:description=description Всегда пожалуйста. Но лучше сделать так if ($key == 'description') { if (($subaction == 'showfull') && in_array(intval($category_id), [1, 2])) { $ogField = xfieldsdataload($xfieldsdata); $og_description = $metatags['description'] . ', Произвольный текст1: ' . $ogField['pole1'] . ', Произвольный текст2: ' . $ogField['pole2']; } if (($subaction == 'showfull') && in_array(intval($category_id), [3, 4])) { $og_description = $metatags['description']; } $og_description = str_replace(['{', '}', '[', ']'], '' $og_description); $s_meta .= "<meta property=\"og:description\" content=\"{$og_description}\">\n"; } else { $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; } Ссылка на сообщение Поделиться на других сайтах
Mek 99 Опубликовано: 14 ноября 2018 Рассказать Опубликовано: 14 ноября 2018 (изменено) Автор В 11.11.2018 в 08:34, Gameer сказал: Но лучше сделать так Может тогда подскажете вариант, как сделать, чтоб Произвольный текст1: ' . $ogField['pole1'] и Произвольный текст2: ' . $ogField['pole2'] Выводились только при условии что доп поле [pole1] и/или [pole2] заполнены. (если заполнено только одно любое доп поле, то выводилось только со своим произвольным текстом) Изменено 14 ноября 2018 пользователем Mek Ссылка на сообщение Поделиться на других сайтах
MaHarder 20 Опубликовано: 15 ноября 2018 Рассказать Опубликовано: 15 ноября 2018 10 часов назад, Mek сказал: Может тогда подскажете вариант, как сделать, чтоб Произвольный текст1: ' . $ogField['pole1'] и Произвольный текст2: ' . $ogField['pole2'] Выводились только при условии что доп поле [pole1] и/или [pole2] заполнены. (если заполнено только одно любое доп поле, то выводилось только со своим произвольным текстом) if ($key == 'description') { $ogField = xfieldsdataload($xfieldsdata); if (($subaction == 'showfull') && in_array(intval($category_id), [1, 2]) && (isset($ogField['pole1']) || isset($ogField['pole2']))) { $og_description = $metatags['description'] . ', Произвольный текст1: ' . $ogField['pole1'] . ', Произвольный текст2: ' . $ogField['pole2']; } if (($subaction == 'showfull') && in_array(intval($category_id), [3, 4])) { $og_description = $metatags['description']; } $og_description = str_replace(['{', '}', '[', ']'], '' $og_description); $s_meta .= "<meta property=\"og:description\" content=\"{$og_description}\">\n"; } else { $s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">\n"; } если я правильно понял просьбу Ссылка на сообщение Поделиться на других сайтах
alexpsp 34 Опубликовано: 15 июня Рассказать Опубликовано: 15 июня А как это в DLE 18 сделать? Если нет description, то вообще не бралось из доп полей ничего. Ни в description ни в og:description Вообще было бы здорово официальные настройки иметь или в доп полях указывать разрешить брать из него информацию или нет. В Доп. полях могут быть рабочие данные, а не по теме новости Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас