Jump to content
Sign in to follow this  
alexpsp

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

Recommended Posts

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

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

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

 

 

 

for24.ru

Share this post


Link to post
Share on other sites
13 минут назад, alexpsp сказал:

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

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

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

 

 

 

for24.ru

{fullimage-x}

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

Share this post


Link to post
Share on other sites
27 минут назад, odys сказал:

{fullimage-x}

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

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

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

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites
1 час назад, alexpsp сказал:

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

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

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

 

for24.ru

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

Автор: webair

  • Thanks 1

Share this post


Link to post
Share on other sites
43 минуты назад, alex32 сказал:

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

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

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

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

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

Автор: webair

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

Share this post


Link to post
Share on other sites
10 минут назад, alexpsp сказал:

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

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

Share this post


Link to post
Share on other sites
5 минут назад, n0lik сказал:

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

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

Share this post


Link to post
Share on other sites

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

[xfvalue_image_url_X]

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

Share this post


Link to post
Share on other sites

@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]

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
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]  тоже не помогает в данном случае. 

Share this post


Link to post
Share on other sites
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) {

 

Share this post


Link to post
Share on other sites
1 час назад, Gameer сказал:

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

 

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

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

 

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

Share this post


Link to post
Share on other sites
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) {

 

Share this post


Link to post
Share on other sites

@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}"> мне не очень нравится.

Edited by alexpsp

Share this post


Link to post
Share on other sites

@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

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

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

 

Share this post


Link to post
Share on other sites
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

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

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

 

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

Share this post


Link to post
Share on other sites
5 минут назад, Gameer сказал:

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

и?

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

 

Share this post


Link to post
Share on other sites
3 минуты назад, odys сказал:

и?


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

 

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

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

Share this post


Link to post
Share on other sites
2 минуты назад, Gameer сказал:

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, odys сказал:

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

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

Share this post


Link to post
Share on other sites
7 минут назад, Gameer сказал:

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

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

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

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

 

Edited by odys

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...