Помощь Снос комментариев в коде

Тема в разделе "DLE", создана пользователем -НиК-, 29 дек 2010.

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

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

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

    -НиК-

    Регистр.:
    12 фев 2007
    Сообщения:
    163
    Симпатии:
    130
    Ковырял DLE 9, нашёл где хранятся комментарии к картинкам, видео, спойлеру . . .
    \engine\classes\parse.class.php
    HTML:
    		$txt = preg_replace( "#<!--ThumbBegin-->(.+?)<!--ThumbEnd-->#ie", "\$this->decode_thumb('\\1')", $txt );
    		$txt = preg_replace( "#<!--TBegin-->(.+?)<!--TEnd-->#ie", "\$this->decode_newthumb('\\1')", $txt );
    		$txt = preg_replace( "#<!--QuoteBegin-->(.+?)<!--QuoteEBegin-->#", '[quote]', $txt );
    		$txt = preg_replace( "#<!--QuoteBegin ([^>]+?) -->(.+?)<!--QuoteEBegin-->#", "[quote=\\1]", $txt );
    		$txt = preg_replace( "#<!--QuoteEnd-->(.+?)<!--QuoteEEnd-->#", '[/quote]', $txt );
    		$txt = preg_replace( "#<!--code1-->(.+?)<!--ecode1-->#", '[code]', $txt );
    		$txt = preg_replace( "#<!--code2-->(.+?)<!--ecode2-->#", '[/code]', $txt );
    		$txt = preg_replace( "#<!--dle_leech_begin--><a href=[\"']([url]http://|https://|ftp://|ed2k://|news://|magnet:)?(\S.+?[/url])['\"].*?" . ">(.+?)</a><!--dle_leech_end-->#ie", "\$this->decode_leech('\\1\\2', '\\3')", $txt );
    		$txt = preg_replace( "#<!--dle_video_begin-->(.+?)src=\"(.+?)\"(.+?)<!--dle_video_end-->#is", '[video=\\2]', $txt );
    		$txt = preg_replace( "#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is", '[video=\\1]', $txt );
    		$txt = preg_replace( "#<!--dle_audio_begin:(.+?)-->(.+?)<!--dle_audio_end-->#is", '[audio=\\1]', $txt );
    		$txt = preg_replace( "#<!--dle_image_begin:(.+?)-->(.+?)<!--dle_image_end-->#ies", "\$this->decode_dle_img('\\1')", $txt );
    		$txt = preg_replace( "#<!--dle_youtube_begin:(.+?)-->(.+?)<!--dle_youtube_end-->#is", '[youtube=\\1]', $txt );
    		$txt = preg_replace( "#<!--dle_flash_begin:(.+?)-->(.+?)<!--dle_flash_end-->#ies", "\$this->decode_flash('\\1')", $txt );
    		$txt = preg_replace( "#<!--dle_spoiler-->(.+?)<!--spoiler_text-->#is", '[spoiler]', $txt );
    		$txt = preg_replace( "#<!--dle_spoiler (.+?) -->(.+?)<!--spoiler_text-->#is", '[spoiler=\\1]', $txt );
    		$txt = str_replace( "<!--spoiler_text_end--></div><!--/dle_spoiler-->", '[/spoiler]', $txt );
    Возникло желание снести их, дабы не загромождали код.
    Но меня смутили конструкции типа:
    HTML:
    <!--dle_image_begin:(.+?)-->(.+?)<!--dle_image_end-->
    На странице они делают вот такой паровоз:
    HTML:
    <!--dle_image_begin:http://сайт.ру/uploads/posts/2010-12/1293559428_картинка.jpg|--><img src="/uploads/posts/2010-12/1293559428_картинка" alt="Описание картинки" title="Описание картинки"><!--dle_image_end-->
    Вопрос на засыпку, нахрена в комментарий дублировать адрес картинки?
    Движок как-то использует этот дубль в комментарии или всё же комментарии типа <!--dle_image_begin: (.+?)--> можно снести со спокойной душой?
     
  2. krivov

    krivov Постоялец

    Регистр.:
    24 дек 2007
    Сообщения:
    142
    Симпатии:
    19
    чё себя мучать такими вопросами... сделай резервную копию, снеси комментарии и посмотри... мне кажется, что комментарии можно спокойно удалять
     
  3. method

    method

    Регистр.:
    8 июл 2007
    Сообщения:
    559
    Симпатии:
    133
    вырезал их с кода шаблона и отключил в админке возможность коментировать. И не придумывайте велосипед
     
  4. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    такой код не только в комментах, но и в полных новостях с картинкой например, согласен надо резать, только как автоматом все сделать?
     
  5. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    открываешь index.php

    в конце находишь
    Код:
    echo $tpl->result['main'];
    и меняешь на
    PHP:
    // для работы со страницей
    $page=$tpl->result['main'];
    // убираем вске коментарии из html кода
    $page preg_replace('/<!--.+?-->/s'''$page);
    // мало ли что еще заменить, я пути к шаблорнам правлю
    // ...
    //
    // выводим страницу
    echo $page;
     
    -НиК- нравится это.
  6. -НиК-

    -НиК-

    Регистр.:
    12 фев 2007
    Сообщения:
    163
    Симпатии:
    130
    ZCFD
    После этого изменения перестала работать кнопка редактирования новости, кнопка удаления комментария, рейтинг новости и сортировка новостей.
    Также заметил, что в версии для печати комментарии вокруг картинок не исчезли.
     
  7. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    версия для печати - файл engine/print.php

    а кнопки -- у меня в шаблоне нет js, вот в чем дело
    PHP:
    // для работы со страницей 
    $page=$tpl->result['main']; 
    // убираем вске коментарии из html кода 
    $page preg_replace('/<!--.+?-->/s'''$page); 
    // мало ли что еще заменить, я пути к шаблорнам правлю 
    // ... 
    // 
    // выводим страницу 
    echo $page
    убираем модификатор /s - и многострочные комментарии удаляться не будут, как раз те кусочки о которых ты говорил
     
    -НиК- и biznesoft нравится это.
Статус темы:
Закрыта.