Перейти к публикации

Как сделать вывод {image-x} полной картинки


Рекомендованные сообщения

В кратком поле добавлена миниатюра, а тегом {image-1} я хочу вывести 

<meta itemprop="image" content="{image-1}">

Как сделать, чтобы выводилась ссылка на полную фотографию, а не её миниатюру?

 

 

 

for24.ru

Ссылка на сообщение
Поделиться на других сайтах
13 минут назад, alexpsp сказал:

В кратком поле добавлена миниатюра, а тегом {image-1} я хочу вывести 

<meta itemprop="image" content="{image-1}">

Как сделать, чтобы выводилась ссылка на полную фотографию, а не её миниатюру?

 

 

 

for24.ru

{fullimage-x}

https://dle-news.ru/extras/online/all17.html

Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, odys сказал:

{fullimage-x}

Он имеет ввиду не на картинку из полной новости, а оригинальную. Не миниатюру

41 минуту назад, alexpsp сказал:

Как сделать, чтобы выводилась ссылка на полную фотографию, а не её миниатюру?

 

Как обычно, писать плагин, править движок

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, alexpsp сказал:

В кратком поле добавлена миниатюра, а тегом {image-1} я хочу вывести 

<meta itemprop="image" content="{image-1}">

Как сделать, чтобы выводилась ссылка на полную фотографию, а не её миниатюру?

 

for24.ru

Плагин для версии 13 и выше: https://yadi.sk/d/EDo2SDlRAbvXLw

Автор: webair

Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, alex32 сказал:

Он имеет ввиду не на картинку из полной новости, а оригинальную. Не миниатюру

Как обычно, писать плагин, править движок

Править движок, классика) 

15 минут назад, n0lik сказал:

Плагин для версии 13 и выше: https://yadi.sk/d/EDo2SDlRAbvXLw

Автор: webair

Спасибо! Но картинка меняется только в property="og:image" , но мне нужно ещё сделать микроразметку schema и тегом {image-1} выводить ссылку на полную картинку. 

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, alexpsp сказал:

но мне нужно ещё сделать микроразметку schema и тегом {image-1} выводить ссылку на полную картинку

Так делайте, в шаблоне прописывайте как вам написали выше тег {fullimage-x} и все дела.

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, n0lik сказал:

Так делайте, в шаблоне прописывайте как вам написали выше тег {fullimage-x} и все дела.

Не получится так. Потому что этим тегом выводятся картинки, которые добавлены в полную новость.

Ссылка на сообщение
Поделиться на других сайтах

{fullimage-x} для шаблона полной новости, для краткой можно через доп.поле:

[xfvalue_image_url_X]

Данный тег может использоваться только если дополнительное поле имеет тип "Изображение". Тег выводит только URL для полноразмерной картинки загруженного изображения, где "х" это имя дополнительного поля

Ссылка на сообщение
Поделиться на других сайтах

@alexpsp

<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Full Image</name>
	<description>punpun.name</description>
	<icon></icon>
	<version></version>
	<dleversion>13.1</dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<file name="engine/modules/show.full.php">
		<operation action="before">
			<searchcode><![CDATA[if (stripos ( $tpl->copy_template, "{image-" ) !== false) {]]></searchcode>
			<replacecode><![CDATA[if (stripos($tpl->copy_template, '{f-image-') !== false) {

	$images = [];
	preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row['short_story'] . $row['xfields'], $media);
	$data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);

	foreach ($data as $url) {
		$info = pathinfo($url);
		if (isset($info['extension'])) {
			if ($info['filename'] == 'spoiler-plus' || $info['filename'] == 'spoiler-minus' || strpos($info['dirname'], 'engine/data/emoticons') !== false) { 
				continue;
			}
			$info['extension'] = strtolower($info['extension']);
			if ($info['extension'] == 'jpg' || $info['extension'] == 'jpeg' || $info['extension'] == 'gif' || $info['extension'] == 'png') {
				array_push($images, $url);
			}
		}
	}

	if (count($images)) {
		$i=0;
		foreach ($images as $url) {
			$i++;
			if (strpos($url, 'thumb') !== false || strpos($url, 'medium') !== false) {
				$url = explode('/', $url);
				unset($url[count($url)-2]);
				$url = implode('/', $url);
			}
			$tpl->copy_template = str_replace('{f-image-'.$i.'}', $url, $tpl->copy_template);
			$tpl->copy_template = str_replace('[f-image-'.$i.']', '', $tpl->copy_template);
			$tpl->copy_template = str_replace('[/f-image-'.$i.']', '', $tpl->copy_template);
		}
	}

	$tpl->copy_template = preg_replace("#\[f-image-(.+?)\](.+?)\[/image-(.+?)\]#is", '', $tpl->copy_template);
	$tpl->copy_template = preg_replace("#\\{f-image-(.+?)\\}#i", '{THEME}/dleimages/no_image.jpg', $tpl->copy_template);
}]]></replacecode>
		</operation>
	</file>
</dleplugin>

Все так же, только вместо image - f-image

[f-image-X] {f-image-X} [/f-image-X]

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Gameer сказал:

@alexpsp


<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Full Image</name>
	<description>punpun.name</description>
	<icon></icon>
	<version></version>
	<dleversion>13.1</dleversion>
	<versioncompare>==</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<file name="engine/modules/show.full.php">
		<operation action="before">
			<searchcode><![CDATA[if (stripos ( $tpl->copy_template, "{image-" ) !== false) {]]></searchcode>
			<replacecode><![CDATA[if (stripos($tpl->copy_template, '{f-image-') !== false) {

	$images = [];
	preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row['short_story'] . $row['xfields'], $media);
	$data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);

	foreach ($data as $url) {
		$info = pathinfo($url);
		if (isset($info['extension'])) {
			if ($info['filename'] == 'spoiler-plus' || $info['filename'] == 'spoiler-minus' || strpos($info['dirname'], 'engine/data/emoticons') !== false) { 
				continue;
			}
			$info['extension'] = strtolower($info['extension']);
			if ($info['extension'] == 'jpg' || $info['extension'] == 'jpeg' || $info['extension'] == 'gif' || $info['extension'] == 'png') {
				array_push($images, $url);
			}
		}
	}

	if (count($images)) {
		$i=0;
		foreach ($images as $url) {
			$i++;
			if (strpos($url, 'thumb') !== false || strpos($url, 'medium') !== false) {
				$url = explode('/', $url);
				unset($url[count($url)-2]);
				$url = implode('/', $url);
			}
			$tpl->copy_template = str_replace('{f-image-'.$i.'}', $url, $tpl->copy_template);
			$tpl->copy_template = str_replace('[f-image-'.$i.']', '', $tpl->copy_template);
			$tpl->copy_template = str_replace('[/f-image-'.$i.']', '', $tpl->copy_template);
		}
	}

	$tpl->copy_template = preg_replace("#\[f-image-(.+?)\](.+?)\[/image-(.+?)\]#is", '', $tpl->copy_template);
	$tpl->copy_template = preg_replace("#\\{f-image-(.+?)\\}#i", '{THEME}/dleimages/no_image.jpg', $tpl->copy_template);
}]]></replacecode>
		</operation>
	</file>
</dleplugin>

Все так же, только вместо image - f-image

[f-image-X] {f-image-X} [/f-image-X]

Если картинки нет, то показывается тег [f-image-1] [/f-image-1]

 

Код  [image-1]  [f-image-1] <meta itemprop="image" content="{f-image-1}">[/f-image-1] [/image-1]  тоже не помогает в данном случае. 

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, alexpsp сказал:

Если картинки нет, то показывается тег [f-image-1] [/f-image-1]

 

Код  [image-1]  [f-image-1] <meta itemprop="image" content="{f-image-1}">[/f-image-1] [/image-1]  тоже не помогает в данном случае. 

if (stripos($tpl->copy_template, '{f-image-') !== false || stripos($tpl->copy_template, '[f-image-') !== false) {

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Gameer сказал:

if (stripos($tpl->copy_template, '{f-image-') !== false || stripos($tpl->copy_template, '[f-image-') !== false) {

 

без изменений(( 

Я ещё не понял почему, но у меня перестали работать (или и не работали до этого) теги  [image-x] текст [/image-x] (выводятся в шаблоне как текст), странно

 

отключение всех расширений не помогает восстановить работу тегов.

Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, alexpsp сказал:

без изменений(( 

Я ещё не понял почему, но у меня перестали работать (или и не работали до этого) теги  [image-x] текст [/image-x] (выводятся в шаблоне как текст), странно

 

отключение всех расширений не помогает восстановить работу тегов.

Проверил, все работает. Проблема у вас.

Если вы используете хак который правит теги [image-x] и новые теги [f-image-x] то в плагине [f-image-x] нужно заменить искомую строку на

if (stripos($tpl->copy_template, '{image-') !== false || stripos($tpl->copy_template, '[image-') !== false) {

 

Ссылка на сообщение
Поделиться на других сайтах

@Gameer

Может мне сможешь порекомендовать что-то другое? Более правильное решение? Мне нужно картинку в краткой новости, которая добавляется в краткую новость  с помощью тега 

<a class="highslide" href="/uploads/posts/2018-06/1528974607_yandeks_sans1.png" target="_blank"><img src="/uploads/posts/2018-06/1528974607_yandeks_sans1.png" alt="" class="fr-dii fr-fil"></a> 

Чтобы добавлялся к этой первой картинке из краткой новости тег itemprop="image" (только в фуллстори)

 

А то моё решение <meta itemprop="image" content="{image-1}"> мне не очень нравится.

Изменено пользователем alexpsp
Ссылка на сообщение
Поделиться на других сайтах

@alexpsp давно пора отказываться от вывода картинки через {image-1}, делай доп. поле загружаемое изображение, в шаблоне вместо {image-1}

[image-1]{image-1}[/image-1]
[xfgiven_img]<img src="[xfvalue_thumb_url_img]" alt="{title}" />[/xfgiven_img]

ставь плагин: https://kanaspo.com/forum/10-ogimage.html

и радуйся жизни без поиска каких-то непонятных решений.

Это лично моё мнение

 

Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, odys сказал:

@alexpsp давно пора отказываться от вывода картинки через {image-1}, делай доп. поле загружаемое изображение, в шаблоне вместо {image-1}


[image-1]{image-1}[/image-1]
[xfgiven_img]<img src="[xfvalue_thumb_url_img]" alt="{title}" />[/xfgiven_img]

ставь плагин: https://kanaspo.com/forum/10-ogimage.html

и радуйся жизни без поиска каких-то непонятных решений.

Это лично моё мнение

 

Ты прочел что ему нужно?

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, odys сказал:

и?


<meta itemprop="image" content="[xfvalue_image_url_img]">

 

И причем тут твой плагин для вывода в og:image?

Если у человека все картинки загружены так, не выход пересобирать новости. Можно написать php файл для переноса первой картинки с краткой в доп поле, но это уже другая история.

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Gameer сказал:

И причем тут твой плагин для вывода в og:image?

при  том, что в og:image выводилось не то, что стояло в доп. поле, предпочтение отдавалось тому, что загружено в новости.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, odys сказал:

при  том, что в og:image выводилось не то, что стояло в доп. поле, предпочтение отдавалось тому, что загружено в новости.

А человеку нужно в полной новости в файле fullstory.tpl. Я что-то связи не нахожу между этим. Объясни.

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, Gameer сказал:

Я что-то связи не нахожу между этим. Объясни.

я предложил использовать доп. поле, когда картинка в доп. поле то с ссылкой на эту картинку (причем как на полную так и на миниатюру) можно делать что угодно, это куда легче. А плагин предложил потому что

8 минут назад, odys сказал:

в og:image выводилось не то, что стояло в доп. поле, предпочтение отдавалось тому, что загружено в новости.

 

Изменено пользователем odys
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...