Хак Замена значения при незаполненных дополнительных полях

Тема в разделе "DLE", создана пользователем noxxxxx, 24 дек 2010.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. noxxxxx

    noxxxxx Постоялец

    Регистр.:
    19 апр 2007
    Сообщения:
    132
    Симпатии:
    32
    В сети когда-то попадался хак замены информации при незаполненном дополнительном поле, работающий по принципу [aviable] / [not-aviable]. Хак, почему-то, оказался не рабочим, впрочем как и значение "по умолчанию", которое прописывается в админке. Недавно столкнулся с такой необходимостью при создании сайта с некой информационной БД. Реализовалось, как всегда, всё очень просто.
    В /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 );
      }
    }
    // Обработка дополнительных полей
    в шаблоне вывода, соответственно делается конструкция (в моём случае с именем доп.поля "ssov":(
    HTML:
    Самый сексуальный овощ: [xfgiven_ssov]<strong>[xfvalue_ssov]</strong>[/xfgiven_ssov][not-xfgiven_ssov]<strong style="color:#900">КАРТОШКА!!!</strong>[/not-xfgiven_ssov]
    Если не интересно/не актуально/не туда запостил - сорри. и можно с чистой совестью потереть/пернести/наплевать.
    Я не обижусь.:D
     
  2. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.242
    Симпатии:
    832
    Так а в чем проблема то? Бегом в оформление тем (см. прикрепленные темы раздела)!!!

    Хак такой есть! Рабочий 100% на 8.2-9.0!!! Лично сам его использую... все выводит что должен!
     
Статус темы:
Закрыта.