noxxxxx
Постоялец
- Регистрация
- 19 Апр 2007
- Сообщения
- 134
- Реакции
- 32
- Автор темы
- #1
В сети когда-то попадался хак замены информации при незаполненном дополнительном поле, работающий по принципу [aviable] / [not-aviable]. Хак, почему-то, оказался не рабочим, впрочем как и значение "по умолчанию", которое прописывается в админке. Недавно столкнулся с такой необходимостью при создании сайта с некой информационной БД. Реализовалось, как всегда, всё очень просто.
В /engine/modules/show.full/-.short/-.custom.php находим кусок отвечающий за вывод доп.полей и вставляем 2 строчки:
в шаблоне вывода, соответственно делается конструкция (в моём случае с именем доп.поля "ssov"
Если не интересно/не актуально/не туда запостил - сорри. и можно с чистой совестью потереть/пернести/наплевать.
Я не обижусь.
В /engine/modules/show.full/-.short/-.custom.php находим кусок отвечающий за вывод доп.полей и вставляем 2 строчки:
PHP:
// Обработка дополнительных полей
if( $xfound ) {
$xfieldsdata = xfieldsdataload( $row['xfields'] );
foreach ( $xfields as $value ) {
$preg_safe_name = preg_quote( $value[0], "'" );
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 );
//* вторая вставка //*
}
$tpl->copy_template = str_replace( "[xfvalue_{$preg_safe_name}]", stripslashes( $xfieldsdata[$value[0]] ), $tpl->copy_template );
}
}
// Обработка дополнительных полей

HTML:
Самый сексуальный овощ: [xfgiven_ssov]<strong>[xfvalue_ssov]</strong>[/xfgiven_ssov][not-xfgiven_ssov]<strong style="color:#900">КАРТОШКА!!!</strong>[/not-xfgiven_ssov]
Я не обижусь.
