• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

poisonkit

Участник
Регистрация
5 Дек 2008
Сообщения
184
Реакции
9
Задача сделать персональную страничку пользователя.
Наподобии как личный кабинет (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}
И выводит только одну строку, а мне надо чтобы выводил весь список, подскажите как? застрял на этом этапе.
 
Последнее редактирование модератором:
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');
 
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');
Не понял что-то принцып... не хочет работать.
 
poisonkit, я мог в коде напортачить...

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

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

Если общего обрамления не нужно, можно пихать сразу в content - так реализован список новостей на главной.
 
Что-то вообще не вкуриваю...
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');

Мне ненадо в шаблоне прогонять, так как выводиться итак в шаблоне будет =) Так вообще не работает.
 
Ты не заметил, что у меня в коде 2 разных вызова $tpl->load_template(); ?

Ещё раз прочитай мой код и пойми каждую строчку...
 
Ты не заметил, что у меня в коде 2 разных вызова $tpl->load_template(); ?

Ещё раз прочитай мой код и пойми каждую строчку...
нене, заметил... Я нарошно не хотел через шаблонизатор прогонять, мне без шаблона надо =( всеравно я выводить через свой шаблон буду в итоге

Есть рабочие варианты? Примеры?
 
Последнее редактирование модератором:
Я нарошно не хотел через шаблонизатор
я выводить через свой шаблон буду в итоге
Ничего не понял... Так без шаблонизатора или через шаблон? Эти 2 фразы противоречат друг другу...

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

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

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

Тут уж выбирайте сами... Первый я Вам предоставил выше. Второй вариант - это убрать все упоминания шаблонизатора и тупо пихать в переменную через ".=" (точка равно)
Дружище, я так особо не волоку в 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'] );
}
Но выдергивает одну строку с бд, с твоими примерами вообще ничего не вытягивает =(
 
Правильно, потому что после выполнения строки
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');

Если и так не понятно - жди, пока микрофон починю :)
 
Последнее редактирование:
Назад
Сверху