Помощь Хак ссылки для DLE 8.0 (Хак_Parts) => 9.0 ?

Тема в разделе "DLE", создана пользователем solt, 17 ноя 2010.

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

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

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

    solt Постоялец

    Регистр.:
    24 июл 2008
    Сообщения:
    91
    Симпатии:
    2
    Есть модуль Хак ссылки для DLE 8.0 (Хак_Parts) (ссылка на сам файл http://narod.ru/disk/27616102000/parts.rar.html)

    Автор: REZER
    Оптимизатор под DLE 8.0: XXX46
    Возможности:
    - Распознование: ссылка или нет
    - Добавляется в спойлер
    - Обводится как цитата
    - Подсчитывает парты
    - Каждое действие можно отменить отказавшись от вопроса

    Я его переделал под свои нужды и теперь достаточно добавить ссылки в новость в виде текстовых
    Код:
    http://depositfiles.com/789651/
    http://filesonic.com/789651/
    http://turbobit.net/789651/
    http://gdefile.ru/789651/
    http://uploading.com/789652/
    Выделить их все и нажать на инструмент "P" после чего ссылки обрамляются тегами см. скрин.
    [​IMG]

    На "выходе" ссылки будут иметь вид:
    [​IMG]

    Собственно сам вопрос:
    - Как подогнать этот хад под 9.0 версию, начиная с 8.0 и заканчиваю 8.5 версию он работал.
    А на 9.0 проблема в редакторе - если выделить ссылки и нажать на инструмент то он их просто заменяет а не обрамляет. При этом все остальные функции хака работают!

    Инструкция установки:
    1. Открываем /engine/classes/parse.class.php и ищем:
    PHP:
    $source preg_replace"#\[s\](.+?)\[/s\]#is""<s>\\1</s>"$source );
    Ниже вставляем
    PHP:
            $source preg_replace"#\[spoiler\]#ie""\$this->build_spoiler('')"$source );
            
    $source preg_replace"#\[spoiler=(.+?)\]#ie""\$this->build_spoiler('\\1')"$source );
    ищем:
    PHP:
    var $font_sizes = array( => '8',
                   
    => '10',
                   
    => '12',
                   
    => '14',
                   
    => '18',
                   
    => '24',
                   
    => '36' );
    Вставляем ниже:
    PHP:
    function build_links($source "") { 
            if (!
    $source) { 
                return 
    false;
            } elseif (
    preg_match_all("#\[LINKS(\sPARTS)*\](.+?)\[\/LINKS\]#si"$source$old_links)) {
                
    $parts $old_links[1];// print_r($parts);
                
    $old_links $old_links[0];
                for (
    $l 0$l count($old_links); $l++) { 
                    if (
    preg_match_all("/(http:\/\/|edk2:\/\/|ftp:\/\/|https:\/\/|news:\/\/)+([^\s\n><\'\"\*\[\]]+)/si"$old_links[$l], $new_links)) { 
                        
    $parts[$l] = ((strtoupper(trim($parts[$l])) == 'PARTS') ? true false);
                        
    $new_links $new_links[0];
                        
    $new_link ""
                        if (
    count($new_links) > 1) {
                            for (
    $c 0$c count($new_links); $c++) { 
                                if (
    $parts[$l]) {
                                    
    $new_link .= "[leech=".$new_links[$c]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[$c]))))."[/b] part#".($c+1)."[/leech]\r\n";
                                } else {
                                    
    $new_link .= "[leech=".$new_links[$c]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[$c]))))."[/b][/leech]\r\n";
                                }
                            }
                        } else { 
                            
    $new_link .= "[leech=".$new_links[0]."]Скачать с [b]".ucfirst(strtolower(trim(clean_url($new_links[0]))))."[/b][/leech]\r\n";
                        } 
    // А приписывать к одной ссылке 1 - парт не прилично=)
                        
    $source str_replace($old_links[$l], trim($new_link), $source); 
                    }
                }
            }
            return 
    $source
        }
    Далее ищем:
    PHP:
    $source preg_replace($find$replace$source);
    Выше вставляем:
    PHP:
    $source $this->build_links($source);
    2. Открываем /engine/modules/bbcode.php и ищем (первый)
    PHP:
    <div class="editor_button"  onclick="tag_url()"><img title="$lang[bb_t_url]src="{THEME}/bbcodes/link.gif" width="23" height="25" border="0"></div>  
    Ниже вставляем:
    PHP:
    <div class="editor_button"  onclick="tag_links()"><img title="Вставка ссылок через leech и цитаты" src="{THEME}/bbcodes/parts.gif" width="23" height="25" border="0"></div>
    <
    div class="editor_button"  onclick="tag_links_part()"><img title="Вставка ссылок через leech и цитаты и подсчет парт" src="{THEME}/bbcodes/parts_1.gif" width="23" height="25" border="0"></div>
    Далее ищем:
    PHP:
    var selField  "{$startform}";
    var 
    fombj    = {$addform};
    Ниже вставляем:
    PHP:
    function tag_links()
    {
       var 
    paste_parts false ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);

    function 
    tag_links_part()
    {
       var 
    paste_parts confirm ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);
    }  
    3. Открываем /engine/ajax/bbcode.php и ищем:
    PHP:
    <div class="editor_button"  onclick="tag_url()"><img title="$lang[bb_t_url]src="{THEME}/bbcodes/images/link.gif" width="23" height="25" border="0"></div>   
    Ниже вставляем:
    PHP:
    <div class="editor_button" onclick="tag_links()"><img title="Вставка ссылок через leech и цитаты" src="{THEME}/bbcodes/images/parts.gif" width="23" height="25" border="0"></div>  
    <
    div class="editor_button" onclick="tag_links_part()"><img title="Вставка ссылок через leech и цитаты и подсчет парт" src="{THEME}/bbcodes/images/parts_1.gif" width="23" height="25" border="0"></div
    Далее ищем:
    PHP:
    var email_title          "$lang[bb_email_title]";
    var 
    text_pages          "$lang[bb_bb_page]";
    var 
    image_align          "{$config['image_align']}";
    Ниже вставляем:
    PHP:
    function tag_links()
    {
       var 
    paste_parts false ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);

    function 
    tag_links_part()
    {
       var 
    paste_parts confirm ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);
    }  
    4. Открываем engine/inc/include/inserttag.php и ищем:
    PHP:
    function tag_url()
    Вставляем выше:
    PHP:
    function tag_links()
    {
       var 
    paste_parts false ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);

    function 
    tag_links_part()
    {
       var 
    paste_parts confirm ;
              var 
    paste_spoiler false ;
              var 
    paste_quote confirm ;
    if (
    paste_parts) {
    paste_parts " PARTS";
    } else {
    paste_parts "";
    } if (
    paste_spoiler) {
    paste_spoiler_s "[spoiler]";
    paste_spoiler_e "[/spoiler]";
    } else {
    paste_spoiler_s "";
    paste_spoiler_e "";
    } if (
    paste_quote) {
    paste_quote_s "[QUOTE]";
    paste_quote_e "[/QUOTE]";
    } else {
    paste_quote_s "";
    paste_quote_e "";
    doInsert(paste_spoiler_s paste_quote_s "[LINKS" paste_parts "]""[/LINKS]" paste_quote_e paste_spoiler_efalse);
    }  
    Далее ищем:
    PHP:
    <div class="editor_button"  onclick="tag_url()"><img title="$lang[bb_t_url]src="engine/skins/bbcodes/images/link.gif" width="23" height="25" border="0"></div>
    Вставляем ниже:
    PHP:
    <div class="editor_button"  onclick="tag_links()"><img title="Вставка ссылок через leech и цитаты" src="engine/skins/bbcodes/images/parts.gif" width="23" height="25" border="0"></div>
    <
    div class="editor_button"  onclick="tag_links_part()"><img title="Вставка ссылок через leech и цитаты и подсчет парт" src="engine/skins/bbcodes/images/parts_1.gif" width="23" height="25" border="0"></div>
    * На этом установка закончена.

    С Уважением, Валентин.
     
  2. solt

    solt Постоялец

    Регистр.:
    24 июл 2008
    Сообщения:
    91
    Симпатии:
    2
    Ребят, что не у кого нет не каких предположений? Тут дело явно в редакторe bbcodes который который формирует новость..
    Осталось выяснить какие изменения произошли с 8.5 на 9.0 что привело к не совместимости хака.
    С Ув.
     
  3. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    в сторону jQuery копай может в этом дело
     
    solt нравится это.
  4. solt

    solt Постоялец

    Регистр.:
    24 июл 2008
    Сообщения:
    91
    Симпатии:
    2
    Спасибо большое zzallexx. Не чего не получается :nezn: Кто может помочь?
     
  5. MaximMax

    MaximMax

    Регистр.:
    14 май 2009
    Сообщения:
    595
    Симпатии:
    76
    У меня вопрос.
    В коде ссылки вставляются в тэг [leech][/leech]у меня после добавления идут просто ссылкими с чем это может быть связано?
     
  6. limoshkaa

    limoshkaa Создатель

    Регистр.:
    16 сен 2010
    Сообщения:
    45
    Симпатии:
    4
    solt
    Перезалей PLZ ,ато все ссылки off
     
  7. solt

    solt Постоялец

    Регистр.:
    24 июл 2008
    Сообщения:
    91
    Симпатии:
    2
    Все ссылки работают.

    Вопрос до сих пор актуальный!
    В каких файлах связных с BBcode есть изменения по сравнению с 8.5 и 9.0. Почему тег не "обрамляет" выделенный текст (например как тег QUOTE), а удаляет выделенный текст и вставляет тег?
     
Статус темы:
Закрыта.