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

Косяк в [ifxfvalue tagname="tagvalue"] Текст [/ifxfvalue]


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

DLE 13.1

Есть доп поле: с именем "gallery", тип - галерея изображения

Есть доп поле с именем "gal_img_gallery", тип Да или Нет

Конструкция типа:

	[ifxfvalue gal_img_gallery="Да"] 
		Бла-бла....
	[/ifxfvalue]    

или:

	[ifxfvalue gal_img_gallery!="Да"] 
		Бла-бла....
	[/ifxfvalue]   

НЕ работает!

Но, если в имени второго доп поля нет полного слова "gallery", например так:

	[ifxfvalue gal_img_galleryt="Да"] 
		Бла-бла....
	[/ifxfvalue]  

то работает.

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

DLE 13.1

Есть доп поле: с именем "gallery", тип - галерея изображения

Есть доп поле с именем "gal_img_gallery", тип Да или Нет

Конструкция типа:


	[ifxfvalue gal_img_gallery="Да"] 
		Бла-бла....
	[/ifxfvalue]    

или:


	[ifxfvalue gal_img_gallery!="Да"] 
		Бла-бла....
	[/ifxfvalue]   

НЕ работает!

Но, если в имени второго доп поля нет полного слова "gallery", например так:


	[ifxfvalue gal_img_galleryt="Да"] 
		Бла-бла....
	[/ifxfvalue]  

то работает.

Чистая версия 13.1 все работает. Проверено в краткой и полной.

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

Еще уточнение:

Проявление глюка еще зависит от порядка сортировки доп. полей!

Порядок должен быть такой:

 

Первее - gallery - Загружаемая галерея изображений

Ниже - gal_img_gallery - Переключатель 'Да' или 'Нет'

 

Если поменять местами - работает правильно.

 

DLE чистая 13.1, проверялось в полной новости.

 

Кусок кода, если конечно в нем есть смысл:

[xfgiven_gallery]	
<hr>
<div class="content-wrap nopadding ignore-select">

	[ifxfvalue gal_img_gallery="Да"] 
		<div id="gallery_full" data-margin="20" data-nav="true" data-pagi="true" data-items-xs="1" data-items-sm="2" data-items-md="3" data-items-lg="4">
	[/ifxfvalue]    
	[ifxfvalue gal_img_gallery!="Да"] 
		<div id="portfolio" class="portfolio grid-containerNO portfolio-nomargin portfolio-full portfolio-masonry mixed-masonry clearfix">
	[/ifxfvalue]    

	[xfvalue_gallery]			

	</div>

</div>							
[/xfgiven_gallery]									

P.S. Тег [xfvalue_gal_img_gallery] - выводит правильное значение!!!

Ссылка на сообщение
Поделиться на других сайтах
В 11.11.2018 в 00:25, IgorA100 сказал:

Есть доп поле с именем "gal_img_gallery", тип Да или Нет

"gal_img_gallery" - не правильное название доп поля. Нельзя использовать нижнее подчёркивание. В разделе Что такое дополнительные поля? написано: "Запомните, что для названия поля нужно использовать только латинские буквы и цифры."

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

"gal_img_gallery" - не правильное название доп поля. Нельзя использовать нижнее подчёркивание.

Х.м.

Раздела Что такое дополнительные поля? я что-то не нашел.

Смотрю тут: https://dle-news.ru/extras/online/all14.html

Есть раздел "Работа с админпанелью -> Дополнительные поля" но там не вижу данного ограничения.

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

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

Да это проблема в DLE которая не связана с тем как названо само доп поле. Не проверялось на полное название доп поля можно так сказать.

Что бы убрать эту ошибку, используйте следующий плагин

<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Фикс условий доп полей</name>
	<description>Исправление условий доп полей [ https://lazydev.pro ]</description>
	<icon></icon>
	<version></version>
	<dleversion>13.1</dleversion>
	<versioncompare>greater</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/functions.php">
		<operation action="replace">
			<searchcode><![CDATA[if( preg_match( "#{$preg_safe_name}\s*\!\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {]]></searchcode>
			<replacecode><![CDATA[if( preg_match( "#^{$preg_safe_name}\s*\!\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {]]></replacecode>
		</operation>
		<operation action="replace">
			<searchcode><![CDATA[if( preg_match( "#{$preg_safe_name}\s*\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {]]></searchcode>
			<replacecode><![CDATA[if( preg_match( "#^{$preg_safe_name}\s*\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {]]></replacecode>
		</operation>
	</file>
</dleplugin>

 

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

Да это проблема в DLE которая не связана с тем как названо само доп поле

Эм, кхм...

Да уж.... проверялось на вхождение :)

Мне уже интересно, это баг или фича :)

Gameer, спасибо!

 

 

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

Эм, кхм...

Да уж.... проверялось на вхождение :)

Мне уже интересно, это баг или фича :)

Gameer, спасибо!

Видимо не учтен был момент. Да я бы там переделал на самом деле проверку.

В DLE сейчас:

1. Проходим каждое доп поле. (Хотя я этого не понимаю, зачем ВСЕ поля проходить)

2. И если в шаблоне есть [ifxfvalue то будет срабатывать проверка для каждого поля, но не для поля которое указано в ifxfvalue

if(strpos( $tpl->copy_template, "[ifxfvalue" ) !== false ) {

Тут нет проверки на доп поле, должно быть хотя бы так

if(strpos( $tpl->copy_template, "[ifxfvalue {$preg_safe_name}" ) !== false ) {

Что бы снизить нагрузку и не нужное выполнение кода.

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

1. Проходим каждое доп поле. (Хотя я этого не понимаю, зачем ВСЕ поля проходить)

Подождем Владимира. Может есть некий смысл в таком действии. Действительно, это я заметил вчера...

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

Подождем Владимира. Может есть некий смысл в таком действии. Действительно, это я заметил вчера...

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

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

Х.м.

Раздела Что такое дополнительные поля? я что-то не нашел.

Смотрю тут: https://dle-news.ru/extras/online/all14.html

Есть раздел "Работа с админпанелью -> Дополнительные поля" но там не вижу данного ограничения.

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

В разделе, где создаёте доп поля в правом нижнем углу написано Что такое дополнительные поля?, тыкаете и читаете.

Ссылка на сообщение
Поделиться на других сайтах
В 17.11.2018 в 22:11, IgorA100 сказал:

Еще уточнение:

Проявление глюка еще зависит от порядка сортировки доп. полей!

Принято. Будет исправлено в следующей версии скрипта

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

Будет исправлено в следующей версии скрипта

Ясно, пока попользуюсь плагином.....

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

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

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

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

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

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

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

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

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

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