Помощь Мини Мод своими руками

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

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

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

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

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    Ребят мой вопрос явно будет претендовать на самый глупый вопрос на форуме, но подскажите:

    задача:
    хочу создать страничку в DLE, которая конектиться к БД sql-я и выдирает от туда строки.
    DLE 8.5


    допустим создал самый убогий скрипт:
    Код:
    $connection = mysql_connect("localhost", "root", "12345") or die(mysql_error());
    mysql_select_db("jabber", $connection);
    		
    $result = mysql_query("select * from ofvcard", $connection);
    и.т.д. ....
    
    Нужно его засунуть на страничку.

    Пошел по пути создания мода:
    Как я понял мой конект к базе нужно вставлять вместо:
    Код:
     if (!$module) {
    
                     $module .= <<<HTML
    код скрипта
    HTML;
    }
    Но ничего не вышло :nezn:
    только в верху между logo идет строка
    "it-???????" - это моя запись в таблице, причем которая выглядит it-Иванов


    а ещё и кирилица не читается
    бд jabber-а кодировки "cp1251_general_ci", dle тоже такой же кодировки

    Помогите, Подскажите !! :thenks:
     
  2. CheburatoR-all

    CheburatoR-all Гипножаба

    Регистр.:
    26 апр 2009
    Сообщения:
    295
    Симпатии:
    438
    Зачем так изощрятся? В DLE есть класс engine/classes/mysql.class.php его и можно использовать.
     
    PloSkiY нравится это.
  3. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    Не встречал и не в курсе как это работает

    Я просто ламер :nezn:, учусь так сказать...
    Мои знания программирования 0,01%
     
  4. -=BlackSmoke=-

    -=BlackSmoke=-

    Регистр.:
    4 авг 2009
    Сообщения:
    280
    Симпатии:
    49
    скрипты из папки модулес автоматом подхватывают все классы движка. Для создания запроса достаточно написать
     
    PloSkiY и soot нравится это.
  5. Max399

    Max399

    Регистр.:
    7 май 2007
    Сообщения:
    245
    Симпатии:
    26
    В твоём случае это будет
    PHP:
    $db->query('SELECT * FROM ofvcard');
    На так таким запросом ты нечего не вытащишь из базы, поэтому делай так:
    PHP:
    $db->query('SELECT * FROM ofvcard WHERE 1=1');
    Так ты вытащишь из базы всё что в ней есть.

    После запроса вставляешь код такого типа:

    PHP:
        while ( $row $db->get_row() ) {
            
            
    $line $row['твоё_поле_в_бд'];
            
            
    $module .= $line;
        }
     
    Tadasi и PloSkiY нравится это.
  6. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.199
    Симпатии:
    2.221
    Сори, можно поподробнее? У меня всё вытаскивает и по перваму варианту... Сейчас модуль F.A.Q. ваюю - выдираю категории бещ всяких WHERE 1=1 :nezn:
    DLE 8.3-8.5
     
    PloSkiY нравится это.
  7. CheburatoR-all

    CheburatoR-all Гипножаба

    Регистр.:
    26 апр 2009
    Сообщения:
    295
    Симпатии:
    438
    Вот так примерно делается:
    PHP:
    <?
    ######################################################
    ##############Вася Петров мега модуль.################
    ###### Назначение: Не нужная хрень ###################
    ######################################################
    // Инклудим MySQL классы. 
    include ENGINE_DIR '/engine/classes/mysql.php'// Тут не уверен. Вроде в новых версиях все автоматически
    //Делаем запрос.
    $db->query"SELECT user_id, name FROM ".PREFIX."_uesrs WHERE user_id = '1'")
    $uname $row['name'];
    $tpl->load_template'getname.tpl' );
    // Можно так
    $tpl->set'{name}'$uname );
    // А можно и сразу так
    $tpl->set'{id}'$row['user_id'] );
    $tpl->compile'content' );
    ?>
    :confused: Примерно так выглядит.
     
    PloSkiY нравится это.
  8. PloSkiY

    PloSkiY Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    78
    Симпатии:
    2
    Просто у меня данные берутся не из базы DLE, а из левой базы

    /engine/classes/mysql.php позволяет подключаться к разным базам ? после присвоив переменную я буду просто дописывать просто модули работы с данной базой ?

    Я правильно мыслю?
     
  9. CheburatoR-all

    CheburatoR-all Гипножаба

    Регистр.:
    26 апр 2009
    Сообщения:
    295
    Симпатии:
    438
    Нет, ты будешь работать с той базой, которая прописана в engine/data/dbconfig.php
    Но со всей БД (не только dle_шные таблички)
     
  10. Max399

    Max399

    Регистр.:
    7 май 2007
    Сообщения:
    245
    Симпатии:
    26
    Сейчас уже не помню что да как, но знаю что раньше точно было что если делать без WHERE 1=1 или какого-нить аналога он не выбирал нечего из базы.
     
Статус темы:
Закрыта.