Помощь [help]Parce.class.php

Тема в разделе "DLE", создана пользователем LPKIR, 15 окт 2008.

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

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

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

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Помогите пожалуйста. Нужно сделать замену кода:
    [тег]ИНФА[/тег] на <a href="ссылка?ИНФА">ИНФА[ИНФА2] <img src="картинка?ИНФА3"></a>

    Переменную ИНФА нужно пропустить через обработчик, для получения ИНФА2 и ИНФА3
     
  2. gentoouser

    gentoouser

    Регистр.:
    8 окт 2007
    Сообщения:
    187
    Симпатии:
    63
    а что за обработчик ?

    а парсить надо по аналогии с оригинальным тегом url

    PHP:
    $source preg_replace"#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie"                       "\$this->build_YOUR_TAG('\\1')"$source );
    ну и потом создашь возле функции build_url свою функцию, где будешь обрабатывать данные об инфе и в return возвращать html код
     
    LPKIR нравится это.
  3. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    А функцию в парсере писать?
     
  4. gentoouser

    gentoouser

    Регистр.:
    8 окт 2007
    Сообщения:
    187
    Симпатии:
    63
    да. в самом файле парсера.
    как я и писал, например выше build_url. без разницы фактически.
     
    LPKIR нравится это.
  5. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Сейчас попробую. Надеюсь что хоть что-то получится

    Добавлено через 8 минут
    нет, не получается. Нужно обработать через:
    PHP:
    $xml = file_get_contents('http://www.timezero.ru/cgi-bin/info.pl?'.$nick.''); 
    $xml = '<?xml version="1.0" encoding="UTF-8"?>'.$xml;
    $xmldoc = new DOMDocument();
    $xmldoc->loadXML($xml);
    $usercol = $xmldoc->getElementsByTagName('USER');
    $user = $usercol->item(0);
            
    $lvl=$user->attributes->getNamedItem('level')->nodeValue;
    $prof=$user->attributes->getNamedItem('pro')->nodeValue;
    [teg]Nick[/tag] - обработать ник и получить level, pro

    Добавлено через 14 минут
    Вывести в виде: НИК [лвл] профа
     
  6. gentoouser

    gentoouser

    Регистр.:
    8 окт 2007
    Сообщения:
    187
    Симпатии:
    63
    PHP:
    $source preg_replace"#\[lvlp\s*=\s*(\S.+?)\s*\](.*?)\[\/lvlp\]#ie""\$this->build_lvlp('\\1')"$source );
    PHP:
    function build_lvlp ( $nick ) {
        $xml = file_get_contents('http://www.timezero.ru/cgi-bin/info.pl?'.$nick.'');  
        $xml = '<?xml version="1.0" encoding="UTF-8"?>'.$xml; 
        $xmldoc = new DOMDocument(); 
        $xmldoc->loadXML($xml); 
        $usercol = $xmldoc->getElementsByTagName('USER'); 
        $user = $usercol->item(0); 
             
        $lvl=$user->attributes->getNamedItem('level')->nodeValue; 
        $prof=$user->attributes->getNamedItem('pro')->nodeValue;
        return "<a href=\"http://www.timezero.ru/cgi-bin/info.pl?".$nick."\">".$nick." [".$lvl."] <img src=\"URL?".$prof."\"></a>";
        }
     
    LPKIR нравится это.
  7. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Ошибку выдаёт. Какой тут синтаксис использовать тега?
    Cannot redeclare build_lvlp()

    Добавлено через 2 минуты
    Перепиши пожалуйста как [tz]НИК[/tz]
     
  8. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Помогите пожалуйста. Очень срочно
     
  9. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Всё, кое-как разобрался. Теперь проблема в другом: выдаёт ошибку, типа это уже делалось
    Fatal error: Cannot redeclare build_tz() (previously declared in ~\www\engine\classes\parse.class.php:332) in ~\www\engine\classes\parse.class.php on line 332
     
  10. LPKIR

    LPKIR Постоялец

    Регистр.:
    8 апр 2008
    Сообщения:
    62
    Симпатии:
    8
    Всё, разобрался. опять же моя невнимательность. gentoouser, спасибо
     
Статус темы:
Закрыта.