Ищу Персональная страница пользователя

Тема в разделе "DLE", создана пользователем poisonkit, 9 май 2015.

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

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

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

    poisonkit

    Регистр.:
    5 дек 2008
    Сообщения:
    169
    Симпатии:
    8
    Задача сделать персональную страничку пользователя.
    Наподобии как личный кабинет (userinfo.tpl)
    Там ссылка примерно такого вида - index.php?subaction=userinfo&user=NAME
    Собирает информацию с БД *_users

    Подскажите, как сделать, чтобы открывать ссылку index.php?subaction=user_page&user=NAME
    Не могу найти параметр в файле, в БД я уже добавил *_users_page

    Нужна для каждого пользователя своя персональная страница, которую так-же можно будет править в админке. Есть может документация по этому поводу? Или может сталкивался кто-то?

    Как в шаблоне прописать, что у меня выводится цикл?

    Пишу
    PHP:
    $sql_result1 $db->query"SELECT * FROM " USERPREFIX "_user_page WHERE name = '$user'" );

    $tpl->load_template'user_page.tpl' );

    while ( 
    $row1 $db->get_row$sql_result1 ) ) {
    $tpl->set'{user_page_text}'$row1['text'] );
    $tpl->set'{user_page_full_text}'$row1['full_text'] );
    }
    в шаблоне указываю: {user_page_text}
    И выводит только одну строку, а мне надо чтобы выводил весь список, подскажите как? застрял на этом этапе.
     
    Последнее редактирование модератором: 10 май 2015
  2. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    PHP:
    while ($row $db->get_row($result)) {
        
        
    $tpl->load_template('task_list_row.tpl');
        
    $tpl->set('{some}'$some);
        
    $tpl->compile('tasks_list');
        
    }

    $tpl->load_template('task_list.tpl');
    $tpl->set('{some}'$tpl->result['tasks_list']);
    $tpl->compile('content');
     
  3. poisonkit

    poisonkit

    Регистр.:
    5 дек 2008
    Сообщения:
    169
    Симпатии:
    8
    Не понял что-то принцып... не хочет работать.
     
  4. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    poisonkit, я мог в коде напортачить...

    Но смысл в следующем:
    1) Забираем данные из БД
    2) Прогоняем через цикл с шаблоном 1 элемента списка, сохраняем в временный результат (вместо content)
    3) Берём основной шаблон, пихаем в него результат, полученный ранее

    Именно так и реализованы все списки в ДЛЕ...

    Если общего обрамления не нужно, можно пихать сразу в content - так реализован список новостей на главной.
     
  5. poisonkit

    poisonkit

    Регистр.:
    5 дек 2008
    Сообщения:
    169
    Симпатии:
    8
    Что-то вообще не вкуриваю...
    PHP:
    while ( $row1 $db->get_row$sql_result1 ) ) {
    $tpl->set'{user_page_text}'$row1['text'] );
    $tpl->set'{user_page_full_text}'$row1['full_text'] );
    $tpl->compile('user_page');
    }

    $tpl->load_template'user_page.tpl' );
    $tpl->compile('user_page');
    Мне ненадо в шаблоне прогонять, так как выводиться итак в шаблоне будет =) Так вообще не работает.
     
  6. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Ты не заметил, что у меня в коде 2 разных вызова $tpl->load_template(); ?

    Ещё раз прочитай мой код и пойми каждую строчку...
     
  7. poisonkit

    poisonkit

    Регистр.:
    5 дек 2008
    Сообщения:
    169
    Симпатии:
    8
    нене, заметил... Я нарошно не хотел через шаблонизатор прогонять, мне без шаблона надо =( всеравно я выводить через свой шаблон буду в итоге

    Есть рабочие варианты? Примеры?
     
    Последнее редактирование модератором: 10 май 2015
  8. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Ничего не понял... Так без шаблонизатора или через шаблон? Эти 2 фразы противоречат друг другу...

    В обще, вариантов с циклами 2:
    1) Прогонять через шаблонизатор и промежуточный шаблон
    2) Прогонять через временную переменную, куда запихивать результат

    Тут уж выбирайте сами... Первый я Вам предоставил выше. Второй вариант - это убрать все упоминания шаблонизатора и тупо пихать в переменную через ".=" (точка равно)
     
    poisonkit нравится это.
  9. poisonkit

    poisonkit

    Регистр.:
    5 дек 2008
    Сообщения:
    169
    Симпатии:
    8
    Дружище, я так особо не волоку в php, поэтому реально не понимаю, как воспользоваться твоим примером... Вот так у меня работает:
    PHP:
    $tpl->load_template'user_page.tpl' );

    while ( 
    $row1 $db->get_row$sql_result1 ) ) {
    $tpl->set'{user_page_text}'$row1['text'] );
    $tpl->set'{user_page_full_text}'$row1['full_text'] );
    }
    Но выдергивает одну строку с бд, с твоими примерами вообще ничего не вытягивает =(
     
  10. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Правильно, потому что после выполнения строки
    PHP:
    $tpl->set'{user_page_text}'$row1['text'] );
    Считай в шаблоне больше нету тега {user_page_text} - на его место вставляется его значение.

    Ещё раз, что тебе надо сделать:
    1) Создать шаблон user_page_row.tpl - в него будут выводиться то, что входит в одну строчку
    2) Создать шаблон user_page_list.tpl - сюда будем выводить весь список...

    Теперь делаем твой модуль:
    Забираем данные из базы
    PHP:
    $sql_result1 $db->query"SELECT * FROM " USERPREFIX "_user_page WHERE name = '$user'" );
    Создаём список
    PHP:
    while ( $row1 $db->get_row$sql_result1 ) ) {
    $tpl->load_template'user_page_row.tpl' );
    $tpl->set'{user_page_text}'$row1['text'] );
    $tpl->set'{user_page_full_text}'$row1['full_text'] );
    $tpl->compile('user_page_list');
    }
    Теперь вставляем этот список в основной шаблон:
    PHP:
    $tpl->load_template'user_page_list.tpl' );
    $tpl->set'{list}'$tpl->result['user_page_list'] );
    $tpl->compile('content');
    Если и так не понятно - жди, пока микрофон починю :)
     
    Последнее редактирование: 10 май 2015