Вывод дополнительной информации рядом с переменной $username как?
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Вывод дополнительной информации рядом с переменной $username как?
Доброго времени суток, в шаблонах есть переменная $username котрая выводит содержимое из БД а именно из таблицы username, так вот, объясните пожалуйста как вывести рядом информацию с соедней таблицы к примеру $username_real? что бы везде на форуме отображался ник + еще дополнительная информация из соседней таблицы. Спасибо.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
В шаблонах нет переменной
Объясните толком, что именно вы хотите сделать. Не к примеру, а конкретно.
Иначе изучайте документацию по MySQL
$username
. В базе данных нет таблицы username
.Объясните толком, что именно вы хотите сделать. Не к примеру, а конкретно.
Иначе изучайте документацию по MySQL
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
На форуме выводиться никНейм пользователя. Нужно изменить вывод никнеймов под свои нужды. где находиться запрос на отображение никнейма? я так понимаю здесь где то одна функция которая отвечает за вывод НикНейма. В таблице phpbb_users есть поле username мне нужно в SELECT запросе поменять вывод. что бы никНейм брался не из таблицы phpbb_users а (SELECT idx.name FROM dbname_idx.em0s6_users AS idx WHERE idx.username = u.username) AS username просто база с никнеймами находиться в другом месте а проерка пользователей осуществляеться по логинам. подскажите пожалуйста где перестроить запрос? буду примного благодарен.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
А вы не пробовали при написании сообщения воспользоваться правилами грамматики и пунктуации. Ну там запятые поставить, где нужно и так далее?
Я ничего толком не понял из вашей писанины. Только догадываюсь, что вы хотите извлечь информацию из двух разных баз данных.
Я ничего толком не понял из вашей писанины. Только догадываюсь, что вы хотите извлечь информацию из двух разных баз данных.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Отправлено спустя 5 минут 32 секунды:
Смотрите, есть форум, на форуме есть никНеймы. Где то в коде есть SELECT * FROM phpbb_users. который выводит НикНеймы на форуме. Ник пользователя в списке форумов, Никнейм в логинБаре, логин кто создал тему кто отписался в теме, так вот, мне нужно дописать запрос, что бы Никнеймы отображались другие так как они будут находиться в другом месте. сейчас есть форум, у форума есть База Данных в которой находяться родные данные без изминений, так же есть Joomla и есть мост который соеденяет форум и сайт на Joomlе. проверка пользователйе между форумом и сайтом проходит на уровне логина форума и сайта. теперь нужно подцепить НикНеймы сайта на форум.
Смотрите, есть форум, на форуме есть никНеймы. Где то в коде есть SELECT * FROM phpbb_users. который выводит НикНеймы на форуме. Ник пользователя в списке форумов, Никнейм в логинБаре, логин кто создал тему кто отписался в теме, так вот, мне нужно дописать запрос,
Код: Выделить всё
SELECT (SELECT idx.name FROM rust1ru_idx.em0s6_users AS idx WHERE idx.username = u.username) AS username, * FROM phpbb_users.
Последний раз редактировалось S3cur1ty 22.05.2016 15:54, всего редактировалось 1 раз.
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Вот теперь понятно о чём речь
Это в
Но запрос выполнять лучше не там, а более глобально, к примеру в
Это в
includes/functions_content.php
. Изменить вывод можно через событие core.modify_username_string
Но запрос выполнять лучше не там, а более глобально, к примеру в
core.user_setup
(файл phpbb/user.php
)-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Вот нашел масив
Как мне в этот масив добавить дополнительный запрос? что то не понимаю. В user.php вообще лес какой то темный там вообще потерялся не нашел нечего что бы мне показалось нужным.. Помогите пожалйста разобраться. Можно более подробней обхяснить?
Код: Выделить всё
$vars = array(
'mode',
'user_id',
'username',
'username_colour',
'guest_username',
'custom_profile_url',
'username_string',
'_profile_cache',
);
extract($phpbb_dispatcher->trigger_event('core.modify_username_string', compact($vars)));
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Подключиться к событию в своём расширении и выполнить запрос
Расширения - это просто!
Если подключиться к
В
В
Расширения - это просто!
Если подключиться к
core.modify_username_string
, то запрос будет выполняться для каждого ника на странице (может выйти более 130 запросов на страницу темы)В
core.user_setup
запрос будет один, но это только для текущего пользователя. Где выводятся чужие ники уже отдельно придётся подключаться, к другим событиям (но при таком подходе запросов всё равно выйдет меньше). В viewtopic.php
, к примеру, можно добавить запрос в событие core.viewtopic_get_post_data
(точней, там можно модифицировать существующий запрос, не добавляя новый)В
core.user_setup
элемент массива $user_data['username']
надо изменить, чтобы поменялся ник залогиненного пользователя-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Не могу найти SELECT в viewtopic.php который бы отвечал за вывод информации по пользователю. Искал viewtopic_get_post_data это оно?
Отправлено спустя 14 минут 43 секунды:
Я извиняюсь. я не понимаю.
Код: Выделить всё
extract($phpbb_dispatcher->trigger_event('core.viewtopic_get_post_data', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query($sql);
Я извиняюсь. я не понимаю.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Это он и есть. Смотрите далее: результаты запроса записываются в массив
$rowset_data
, имя пользователя в частности в элементе массиваКод: Выделить всё
'username' => $row['username'],
core.viewtopic_post_rowset_data
Код: Выделить всё
/**
* Modify the post rowset containing data to be displayed with posts
*
* @event core.viewtopic_post_rowset_data
* @var array rowset_data Array with the rowset data for this post
* @var array row Array with original user and post data
* @since 3.1.0-a1
*/
$vars = array('rowset_data', 'row');
extract($phpbb_dispatcher->trigger_event('core.viewtopic_post_rowset_data', compact($vars)));
$rowset[$row['post_id']] = $rowset_data;
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Получается запрос у меня будет таким правильно я понял?
Правильно я понял? а куда и от куда мне теперь вывести josname?
Код: Выделить всё
$sql = $db->sql_build_query('SELECT (SELECT idx.name FROM dbnae_idx.em0s6_users AS idx WHERE idx.username = u.username) AS josname,', $sql_ary);
$result = $db->sql_query($sql);
Код: Выделить всё
$rowset_data = array(
'hide_post' => (($row['foe'] || $row['post_visibility'] == ITEM_DELETED) && ($view != 'show' || $post_id != $row['post_id'])) ? true : false,
'post_id' => $row['post_id'],
'post_time' => $row['post_time'],
'user_id' => $row['user_id'],
'josname' => $row['josname'],
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Вывод дополнительной информации рядом с переменной $username как?
Неправильно.
Во-первых, категорически не рекомендуется править файлы движка, следует создать расширение.
Во-вторых, первый параметр метода
sql_build_query
- тип запроса, но никак не сам запрос.-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Я так понимаю что вывод никнеймов находиться в одном селексе, мне будет достаточно просто поменять SELECT username на SELECT (SELECT idx.name FROM bdsite_idx.em0s6_users AS idx WHERE idx.username = u.username) AS username что бы не усложнять. я конечно понимаю что лучше не лезть в хорошо написанный код но просто хуже не станет. а разбираться в написании старонних приложений по форум который первый раз вижу ну это просто АБЗАЦ какой то... я надеюсь Вы меня паймете. Я прочитал несколько раз статью про написание представлений который пришли на смену модам в версии 3.1 Расширения - это просто! как то все сложно... Я не такой уж крутой программст как Вы. Мне сложно ариентироваться в этом коде. Надеюсь на Вашу помощь.
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Не в одном, в разных. И в разных файлах.
В
В событии
А в
В
viewtopic.php
выбор выглядит как SELECT u.*
В событии
core.viewtopic_get_post_data
можно написать нечто вроде
Код: Выделить всё
$sql_ary = $event['sql_ary'];
$sql_ary['SELECT'] .= ', idx.name as josname';
$sql_ary['LEFT_JOIN'] = array_merge($sql_ary['LEFT_JOIN'], array(
array(
'FROM' => array('dbnae_idx.em0s6_users' => 'idx'),
'ON' => 'idx.username = u.username',
),
)
);
$event['sql_ary'] = $sql_ary;
core.viewtopic_post_rowset_data
Код: Выделить всё
$rowset_data = $event['rowset_data'];
$row = $event['row'];
$rowset_data['username'] = $row['josname'];
$event['rowset_data'] = $rowset_data;
-
- phpBB 1.2.0
- Сообщения: 19
- Стаж: 8 лет 11 месяцев
- Поблагодарили: 1 раз
Re: Вывод дополнительной информации рядом с переменной $username как?
Я так понимаю в событие нужно найти SELECT и добавить Ваш запрос?
или
Если често, Я понимаю что Вы мне дали, но что делать с этим я не понимаю((
или
Код: Выделить всё
extract($phpbb_dispatcher->trigger_event('core.viewtopic_get_post_data', compact($vars)));
$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query($sql);
$sql_ary = $event['sql_ary'];
$sql_ary['SELECT'] .= ', idx.name as josname';
$sql_ary['LEFT_JOIN'] = array_merge($sql_ary['LEFT_JOIN'], array(
array(
'FROM' => array('dbsite_idx.em0s6_users' => 'idx'),
'ON' => 'idx.username = u.username',
),
)
);
$event['sql_ary'] = $sql_ary;