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

alexpsp

Клиенты
  • Публикации

    241
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    10

Сообщения, опубликованные пользователем alexpsp

  1. 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]  тоже не помогает в данном случае. 

  2. 5 минут назад, n0lik сказал:

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

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

  3. 43 минуты назад, alex32 сказал:

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

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

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

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

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

    Автор: webair

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

  4. 9 минут назад, Gameer сказал:

    Ну так может сначала нужно перенести доп поля в новую категорию а не наоборот?

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

    12 минут назад, Gameer сказал:

    Ну так может сначала нужно перенести доп поля в новую категорию а не наоборот?

    У меня просто уже 2 раза случилось аннулирование доп поля, когда я разом отмечал по 100 новостей и переносил их разом.

  5. 1 минуту назад, odys сказал:

    а что там делать? в шаблон fullstory {custom id="[xfvalue_x]"} и уже в доп.поле Х вставляешь через запятую id нужных новостей

    У меня сейчас такое решение и стоит, но если несколько списком нужно и несколько уточнений? Тут и ид новостей и ид категорий и теги и соритровка - всё это разные дополнительные поля.

  6. Если провести такие действия:

    Создать новую категорию - Перенести новости в новую категорию (убрав текущую) 

     

    После зайти в доп поля и сделать вывод дополнительных полей в этих категориях.

     

    Доп поля аннулируются, так как в шаге при переносе новостей в новую категорию дополнительные поля не выводятся и сохраняется как будто их нет и как будто они не заполнены.

  7. Есть одно решение: https://dle-faq.ru/faq/common/21730-kak-sdelat-vyvod-ssylki-iz-dop-polya-v-leech.html#comment-id-64369

    НО ссылки не оборачиваются на главной странице сайта, а также все ссылки в конце имеют одинаковые иероглифы. 

     

    Скажите пожалуйста, насколько данное решение является корректным и есть ли другое решение, более правильное?

     

    for24.ru

  8. Ни кто не думал про возможность использования кастома в самой новости? Делать подборки и писать описание этих подборок. Нет ни у кого готового решения или похожего? 

     

    for24.ru

  9. В 16.09.2018 в 01:34, lovep сказал:

    Огласите, пожалуйста стоимость и какой функционал будет входить в эту стоимость. 

     

    Возможно желающих устроит, либо найдем решение, как упростить функционал, чтобы разработка стала  быстрее и проще.

    Да он балабол, ничего он не огласит. Да и хотел бы, у нас нет технического задания, как можно что-то огласить. 

     

    Мне в japing очень не хватает возможности мультиязычности по доменам

    site.ru - русский язык

    site.com - английский язык

  10. 16 часов назад, Яйцерезка сказал:

    Тогда только хаком, но не этим, если много доп.полей и ресурсы девать есть куда.

    Ну пока буду этим пользоваться. Если бы я вас в каждой теме слушал, давно бы руки опустились. Вы только критикуете каждую тему и ни одного решения. На решения времени не хватает, всё время уходит на критику.  

  11. 5 часов назад, celsoft сказал:

    Применительно к автору топика думаю что нет, т.к. этот параметр будет заполнен DLE, только если в полной или краткой новости стоит контент в виде вставленных и оформленных картинок. У автора топика как я понял по теме, нет там ничего, поэтому у него проверка говорит об отсутствие этого тега, и он хочет заполнить его содержанием адреса картинки из доп. поля.

    У меня как раз в старых новостях картинка в кратком поле. 

  12. 4 часа назад, Tekzo17 сказал:

    В engine/modules/show.full.php

    Найти
    $social_tags['url'] = $full_link;

    Ниже вставить, или заменить аналогичный $social_tags['image']
    $xfieldsdata = xfieldsdataload( $row['xfields'] );
    $social_tags['image'] = $xfieldsdata['poster'];      

    Где ['poster'] - название доп поля с фото  

    Спасибо! Но я не уверен, что выводится правильно. 

     

    Выводится: 

    <meta property="og:image" content="2018-08/1535724544_1529593694_2018-06-21-18-06-www_insales_ru1.png">

     

     

    А картинка нахходится в /uploads/posts/2018-08/1535724544_1529593694_2018-06-21-18-06-www_insales_ru1.png

  13. Яндекс ругается.
    ОШИБКА: поле http://ogp.me/ns#image отсутствует или пусто

     

    Так вот, как взять og:image из дополнительного поля тип фотография, если то заполнено? Если не заполнено, то брать из краткого содержания.

     

    Сайт for24.ru

  14. В 19.07.2018 в 22:35, Gameer сказал:

    Вот, для краткой, полной и custom.

    
    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
    	<name>Ссылки картинок с галереи</name>
    	<description>by punpun.name</description>
    	<icon></icon>
    	<version></version>
    	<dleversion></dleversion>
    	<versioncompare>less</versioncompare>
    	<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($single_need AND count($gallery_single_image) ) {]]></searchcode>
    			<replacecode><![CDATA[$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '', $tpl->copy_template);
    $tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '\\3', $tpl->copy_template);]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[else {
    							$gallery_image[] = "<li><img src=\"{$img_url}\" alt=\"\"></li>";
    							$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<img class=\"xfieldimage {$value[0]}\" src=\"{$img_url}\" alt=\"\">";
    						}]]></searchcode>
    			<replacecode><![CDATA[if ($img_url && stripos($tpl->copy_template, "[xfvalue_{$preg_safe_name} image=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} image=\"{$xf_image_count}\" scr]", $img_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }
    if ($thumb_url && stripos($tpl->copy_template, "[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]", $thumb_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.short.php">
    		<operation action="before">
    			<searchcode><![CDATA[if($single_need AND count($gallery_single_image) ) {]]></searchcode>
    			<replacecode><![CDATA[$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '', $tpl->copy_template);
    $tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '\\3', $tpl->copy_template);]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[else {
    							$gallery_image[] = "<li><img src=\"{$img_url}\" alt=\"\"></li>";
    							$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<img class=\"xfieldimage {$value[0]}\" src=\"{$img_url}\" alt=\"\">";
    						}]]></searchcode>
    			<replacecode><![CDATA[if ($img_url && stripos($tpl->copy_template, "[xfvalue_{$preg_safe_name} image=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} image=\"{$xf_image_count}\" scr]", $img_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }
    if ($thumb_url && stripos($tpl->copy_template, "[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]", $thumb_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }]]></replacecode>
    		</operation>
    	</file>
    	<file name="engine/modules/show.custom.php">
    		<operation action="before">
    			<searchcode><![CDATA[if($single_need AND count($gallery_single_image) ) {]]></searchcode>
    			<replacecode><![CDATA[$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '', $tpl->copy_template);
    $tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} (thumb|image)=\"(\d?)\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} \\1=\"\\2\" scr\\]'is", '\\3', $tpl->copy_template);]]></replacecode>
    		</operation>
    		<operation action="after">
    			<searchcode><![CDATA[else {
    							$gallery_image[] = "<li><img src=\"{$img_url}\" alt=\"\"></li>";
    							$gallery_single_image['[xfvalue_'.$value[0].' image="'.$xf_image_count.'"]'] = "<img class=\"xfieldimage {$value[0]}\" src=\"{$img_url}\" alt=\"\">";
    						}]]></searchcode>
    			<replacecode><![CDATA[if ($img_url && stripos($tpl->copy_template, "[xfvalue_{$preg_safe_name} image=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} image=\"{$xf_image_count}\" scr]", $img_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} image=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }
    if ($thumb_url && stripos($tpl->copy_template, "[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]") !== false) {
    	$tpl->set("[xfvalue_{$value[0]} thumb=\"{$xf_image_count}\" scr]", $thumb_url);
    	$tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '\\1', $tpl->copy_template);
    	$tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\](.*?)\\[/xfnotgiven_{$preg_safe_name} thumb=\"{$xf_image_count}\" scr\\]'is", '', $tpl->copy_template);
    }]]></replacecode>
    		</operation>
    	</file>
    </dleplugin>

     

    Устанавливаю плагин, но в полной новости тег выводится как [xfnotgiven_test-gal image="2" scr]Второй картинки с поля galery нет.[/xfnotgiven_test-gal image="2" scr], ну то есть на странице выводится тег. В чём может быть проблема? Плагин установлен и включен, включал и отключал, кэш очищал. 

     

    Проверил на двух сайтах. На первом вручную добавлял хак, на втором с помощью плагинов. Везде результат один. 

  15. Было бы хорошо сделать не как  Multi-Language 3.4.1, а как на википедии. На википедии можно добавлять новые страницы на других языках, а на japing языки добавляются сразу и если категории или новости не переведены, то вылезают ошибки и например та же переадресация работает на несуществующие страницы, на которых перевода нет.

    • Нравится 1
  16. 1 час назад, Яйцерезка сказал:

    У доп.полей нет гибких настроек показа контента, по этому этот мусор сейчас в карте сайта и не нужен.

    Ну я про это и говорю. То есть на карте сайта они не нужны, а в индексе нужны? 

     

    1 час назад, Яйцерезка сказал:

    Тут больше вырисовывается другой вопрос, почему разработчик сайтов, с такими ценниками не умеет писать плагины для того же DLE?
    Написать плагин создающий XML карту для нужных дополнительных полей это пол часа работы вместе с тестированием.

    Я разве говорил, что это сложно? Причем тут вообще написание плагинов мной, вы видимо тему перепутали. Я лишь привел список, как можно и нужно оптимизировать теги новостей и теги дополнительных полей из коробки. 

     

     

  17. 6 часов назад, celsoft сказал:

    Карта сайта имеет строгий формат и стандарт, там не может быть что угодно, и какая угодно информация, там должен быть только набор URL по строгим правилам. О каких доп. полях в карте сайта вообще может идти речь? Это не придуманный DLE набор данных, эта строгая спецификация от поисковиков, которой следует DLE.

    Сейчас дополнительные поля индексируются и не запрещены для поисковиков, но не оптимизированы. А они не какая угодно информация и вовсе ничем не отличаются от страниц категорий и новостей.

    Вот как я реализую опцию ключевых слов дополнительного поля:

    https://for24.ru/xfsearch/proxy-social/Вконтакте/ или https://for24.ru/xfsearch/proxy-program/Key+Collector/

    1. Я изменил TITLE и добавил небольшое описания страницы с помощью "Заголовки, описания, метатеги".

    2. Я добавил вывод названия дополнительного поля, что позволило вывести его как заголовок и сделать speedbar дополнительного поля.

    3. Выводится отдельное меню, которое сделано специально под теги.

     

    Так вот почему я эти страницы не могу отсылать в карту сайта, когда страницы оптимизированы для этого и они ничем не хуже страниц категорий.

     

    В дополнительные настройки "Использовать значения полей как перекрестные гиперссылки" можно добавить опцию, создавать sitemap для ключевых слов дополнительного поля или же нет. Или же на "Создание и обновление карт для поисковиков" добавить опцию создания карты из ключевых слов дополнительных полей. Но естественно предупреждать, что поиск по дополнительным полям должен быть оптимизирован.

     

    Я не знаю моё пожелание индивидуальное или нет, но с помощью дополнительных полей можно разгрузить различные категории.

     

    Сейчас же список тегов и тегов дополнительного поля это не оптимизированный хлам для поисковиков. 

     

     

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