Хак Если не заполнено дополнительное поле в DLE
Иногда надо пользователю сообщить что дополнительное поле не заполнено. Одним вариантом может быть указывание стандартного значения (по умолчанию), но это не всегда удобно и возможно. Именно для отображения сообщения, что поле не заполнено придуман этот хак.
Установка:
В файлах папки engine/modules/: show.full.php, show.short.php, show.custom.php найти:
if( empty( $xfieldsdata[$value[0]] ) ) {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
} else {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
}
Заменить на:
if( empty( $xfieldsdata[$value[0]] ) ) {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
$tpl->copy_template = preg_replace( "'\[not-xfgiven_{$preg_safe_name}\](.*?)\[/not-xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
} else {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
$tpl->copy_template = preg_replace( "'\[not-xfgiven_{$preg_safe_name}\](.*?)\[/not-xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
}
В шаблон краткой и полной новости куда надо прописать:
[not-xfgiven_xfname] увы, доп.поле не заполнено [/not-xfgiven_xfname]
[xfgiven_xfname] ура, доп.поле заполнено [/xfgiven_xfname]
Тестировался на DLE 8.5
Установка:
В файлах папки engine/modules/: show.full.php, show.short.php, show.custom.php найти:
if( empty( $xfieldsdata[$value[0]] ) ) {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
} else {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
}
Заменить на:
if( empty( $xfieldsdata[$value[0]] ) ) {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
$tpl->copy_template = preg_replace( "'\[not-xfgiven_{$preg_safe_name}\](.*?)\[/not-xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
} else {
$tpl->copy_template = preg_replace( "'\[xfgiven_{$preg_safe_name}\](.*?)\[/xfgiven_{$preg_safe_name}\]'is", "\1", $tpl->copy_template );
$tpl->copy_template = preg_replace( "'\[not-xfgiven_{$preg_safe_name}\](.*?)\[/not-xfgiven_{$preg_safe_name}\]'is", "", $tpl->copy_template );
}
В шаблон краткой и полной новости куда надо прописать:
[not-xfgiven_xfname] увы, доп.поле не заполнено [/not-xfgiven_xfname]
[xfgiven_xfname] ура, доп.поле заполнено [/xfgiven_xfname]
Тестировался на DLE 8.5