Помощь Открыть ссылки в новом окне

Тема в разделе "DLE", создана пользователем kpromo, 13 авг 2010.

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

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

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

    kpromo Постоялец

    Регистр.:
    8 май 2010
    Сообщения:
    123
    Симпатии:
    14
    DLE 8.5.
    Средствами BBCode не могу открыть страницу в новом окне. Что нужно поменять в движке, чтоб он автоматом к ссылкам определенного типа дописывал target="_blank"?
     
  2. Atomic134

    Atomic134 Постоялец

    Регистр.:
    9 апр 2009
    Сообщения:
    67
    Симпатии:
    11
    Ссылки где надо исправить? В комментариях пользователей?
     
  3. Infocean

    Infocean aka xakep

    Регистр.:
    23 окт 2007
    Сообщения:
    66
    Симпатии:
    17
    Если я всё правильно понял, то вот ответ: Движок сам прописывает это автоматом.
    Принцип:
    Если ссылка начинается с адреса сайта (Пример: _http://site.ru), то target="_blank" не добавляется, если же ссылка отлична от адреса сайта (Пример: _http://drugoisite.ru), то target="_blank" добавляется автоматически.
    Сразу скажу, где этот принцип работает.
    Файл: /engine/classes/parse.class.php (Строки: с 608 по 624)

    Примечание. Нижнее подчёркивание, в приведённых мной примерах ссылок, сделано для форума, чтобы они были не активны.
     
  4. kpromo

    kpromo Постоялец

    Регистр.:
    8 май 2010
    Сообщения:
    123
    Симпатии:
    14
    Ссылка идет на внутреннюю страницу с редиректом http://site.ru/go.php?xxx
    Что нужно поменять в /engine/classes/parse.class.php, чтоб открывалось по определенному правилу для страниц вида go.php?xxx ?
     
  5. Infocean

    Infocean aka xakep

    Регистр.:
    23 окт 2007
    Сообщения:
    66
    Симпатии:
    17
    Т.е. ссылки добавляются через антилич.
    Открываешь файл /engine/classes/parse.class.php и находишь там:
    PHP:
    if( $this->check_home$url['html'] ) ) $target "";
    else 
    $target "target=\"_blank\"";

    if( 
    $url['leech'] ) {
    $url['html'] = $config['http_home_url'] . "engine/go.php?url=" rawurlencodebase64_encode$url['html'] ) );

    return 
    "<!--dle_leech_begin--><a href=\"" $url['html'] . "\" " $target ">" $show "</a><!--dle_leech_end-->" $url['end'];
    } else {
    if (
    $this->safe_mode AND !$config['allow_search_link'])
    return 
    "<noindex><a href=\"" $url['html'] . "\" " $target " rel=\"nofollow\">" $show "</a></noindex>" $url['end'];
    else        
    return 
    "<a href=\"" $url['html'] . "\" " $target ">" $show "</a>" $url['end'];
    }
    Перед строчкой:
    PHP:
    return "<!--dle_leech_begin--><a href=\"" $url['html'] . "\" " $target ">" $show "</a><!--dle_leech_end-->" $url['end'];
    Вставляешь, вот это:
    PHP:
    $target "target=\"_blank\"";
    Вот и всё.
    p.s. Проверить сейчас негде, но в теории всё должно работать.:)
    В любом случае, если что, пиши.
     
Статус темы:
Закрыта.