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 310 Опубликовано: 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"; } если я правильно понял просьбу Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.