Intellect Board Pro
Система управления форумами
Объявление

30 ноября 2015 года выпущена окончательная версия Intellect Board 3.00! Перейти к скачиванию
Также доступен конвертор данных для IntB 2.22

Для получения новостей о новых версиях подписывайтесь на наши страницы ВКонтакте и в Twitter.

Привет, гость!

"Чат" техподдержки

режим чата на форумах ( = способы экспресс-уведомлений)

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Страницы:
  • 1
  • 2
Распечатать
Пользоватся не буду
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
20 августа 2016, 23:48#11
4X_Pro,можешь помочь твоему давнему читателю, тоесть мне? У меня на форуме я сделал дополнение, делающее выборку по запросу quote user. Тоесть делается выборка из бд, где списком выводятся посты, с юзерами процитировавшими меня. Была проблемма с кирилистическими никами, я исправил, не работало с русскими никами. Теперь работает, но выборку по русским никам показывает всю имеюющуюся, а по латинским (так нужно)-только новую. Движок-phpbb3. Давать кусок кода?

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

4X_Pro
Основатель проекта
Всего сообщений: 205
Зарегистрирован: 22 сен 2014, 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 4

0 +
22 августа 2016, 08:41#12
Ладно, хотя помогать со сторонними движками тут как-то не совсем правильно.
Только я так и не понял, нужно, чтобы выборка шла только по новым сообщениям или наоборот, по всем?

Критикуя — предлагай, предлагая — обосновывай!
Для тех, кто живет в Интернете — мой блог о Web-разработке.

Пользоватся не буду
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
22 августа 2016, 21:31#13
4X_Pro написал(а):
Только я так и не понял, нужно, чтобы выборка шла только по новым сообщениям или наоборот, по всем?

Спасибо за отзывчивость. Тронут. Я сейчас пишу с мобильного, отправился на 2 дня в командировку. Там дело в свойстве htmlentitles () Чтоб ты полностью владел информацией, я по возвращению предоставлю код файла, и правки, которые я делал. Через 2 дня. Заскриню, в общем полностью опишу ситуацию. Сейчас доступа к серверу не имею, с мобильного не хочу лезть туда. Предварительно скажу, что некорректно работает с кириллицей, версия PHP 5.3
удачи и до связи.

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

_1_
Участник
Всего сообщений: 147
Зарегистрирован: 14 окт 2014, 09:11
Рейтинг пользователя: 15

0 +
23 августа 2016, 10:15. Редактировалось 1 раз, последний — 23 августа 2016, 10:19#14
 Пользоватся не буду написал(а):
делается выборка из БД, где списком выводятся посты, с юзерами процитировавшими меня.

В постановке этой задачи не хватает универсальности:
1) Обычно, вопрос касается не только "меня". Например, ...
 
... читаю сообщение от Мистера-X. И есть, что ему/ей ответить. Но вдруг кто-то в этой теме уже ответил то же? Ответить хочется быстро (а там, впереди, ещё много страниц...)



Функция поиска ответов на конкретный пост (не обязательно с цитированием) – это одна из главных возможностей современных форумов. Странно, что до сих пор даже в популярных движках этой возможности нет по умолчанию, и приходится программировать её вручную.


2) Кроме типовых запросов пригодятся модифицированные. Возможность изменять типовой запрос тоже надо предусматривать. И конечно, предоставлять её не только админам, но и обычным продвинутым пользователям.

Пользоватся не буду
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
24 августа 2016, 12:48#15
4X_Pro написал(а):
Только я так и не понял, нужно, чтобы выборка шла только по новым сообщениям или наоборот, по всем?

Я вернулся. Выборка должна идти только по непрочитанным.
Суть проблеммы:
В инклуд файле function.php я вношу строку, которой там ранее не было. Вначале эта строка выглядела так:
'U_SEARCH_WHO_QUOTED_ME'=> append_sid("{$phpbb_root_path}search.$phpEx", 'st=0&sk=t&sd=d&sr=posts&keywords=quote+' . htmlentities($user->data['username'])), // & is and + is +
Вследствии этого возникает проблемма, что пользователи с латинскими никами, и цифровыми (например 1) Видят результаты поиска, так, как и задумывалось (см. скрин, я там всё написал и подчеркнул)

.
.
А вот пользователи с никами на кириллице (в частности я), видят пустую сроку. Битая кодировка. См. скрин.

.
.
После этого я внёс правки. Строка стала выглядеть так:
'U_SEARCH_WHO_QUOTED_ME'=> append_sid("{$phpbb_root_path}search.$phpEx", 'st=0&sk=t&sd=d&sr=posts&keywords=quote+' . htmlentities($user->data['username'],ENT_QUOTES,"UTF-8")), // & is and + is +
.
.
После этого кирилистические ники стали отображаться. Но показывет ВСЕ цитаты, где меня процитировали. А нужны-только новые, как с латинскими никами. См. скрин. Как исправить это?
.
.

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

Пользоватся не буду
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
24 августа 2016, 12:55#16
Весь файл не влазит. Вот массив.
$template->assign_vars(array( 'SITENAME' => $config['sitename'], 'SITE_DESCRIPTION' => $config['site_desc'], 'PAGE_TITLE' => $page_title, // Advanced Meta Tags MOD 'PAGE_KEYWORDS' => $page_keywords, 'PAGE_DESCRIPTION' => $page_description, 'SCRIPT_NAME' => str_replace('.' . $phpEx, '', $user->page['page_name']), 'LAST_VISIT_DATE' => sprintf($user->lang['YOU_LAST_VISIT'], $s_last_visit), 'LAST_VISIT_YOU' => $s_last_visit, 'CURRENT_TIME' => sprintf($user->lang['CURRENT_TIME'], $user->format_date(time(), false, true)), 'TOTAL_USERS_ONLINE' => $l_online_users, 'LOGGED_IN_USER_LIST' => $online_userlist, 'RECORD_USERS' => $l_online_record, 'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text, 'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread, 'S_USER_NEW_PRIVMSG' => $user->data['user_new_privmsg'], 'S_USER_UNREAD_PRIVMSG' => $user->data['user_unread_privmsg'], 'S_USER_NEW' => $user->data['user_new'], 'SID' => $SID, '_SID' => $_SID, 'SESSION_ID' => $user->session_id, 'ROOT_PATH' => $phpbb_root_path, 'BOARD_URL' => $board_url, 'L_LOGIN_LOGOUT' => $l_login_logout, 'L_INDEX' => $user->lang['FORUM_INDEX'], 'L_ONLINE_EXPLAIN' => $l_online_time, 'U_PRIVATEMSGS' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=inbox'), 'U_RETURN_INBOX' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=inbox'), 'U_POPUP_PM' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=popup'), 'UA_POPUP_PM' => addslashes(append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=popup')), 'U_MEMBERLIST' => append_sid("{$phpbb_root_path}memberlist.$phpEx"), 'U_VIEWONLINE' => ($auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel')) ? append_sid("{$phpbb_root_path}viewonline.$phpEx") : '', 'U_LOGIN_LOGOUT' => $u_login_logout, 'U_INDEX' => append_sid("{$phpbb_root_path}index.$phpEx"), 'U_SEARCH' => append_sid("{$phpbb_root_path}search.$phpEx"), 'U_REGISTER' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'), 'U_PROFILE' => append_sid("{$phpbb_root_path}ucp.$phpEx"), 'U_MODCP' => append_sid("{$phpbb_root_path}mcp.$phpEx", false, true, $user->session_id), 'U_FAQ' => append_sid("{$phpbb_root_path}faq.$phpEx"), 'U_SEARCH_SELF' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=egosearch'), 'U_SEARCH_WHO_QUOTED_ME'=> append_sid("{$phpbb_root_path}search.$phpEx", 'st=0&sk=t&sd=d&sr=posts&keywords=quote+' . htmlentities($user->data['username'],ENT_QUOTES,"UTF-8")), // & is and + is + 'U_SEARCH_NEW' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts'), 'U_SEARCH_UNANSWERED' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unanswered'), 'U_SEARCH_UNREAD' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'), 'U_SEARCH_ACTIVE_TOPICS'=> append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=active_topics'), 'U_DELETE_COOKIES' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=delete_cookies'), 'U_TEAM' => ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')) ? '' : append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=leaders'), 'U_TERMS_USE' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=terms'), 'U_PRIVACY' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=privacy'), 'U_RESTORE_PERMISSIONS' => ($user->data['user_perm_from'] && $auth->acl_get('a_switchperm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=restore_perm') : '', 'U_FEED' => generate_board_url() . "/feed.$phpEx", 'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS) ? true : false, 'S_AUTOLOGIN_ENABLED' => ($config['allow_autologin']) ? true : false, 'S_BOARD_DISABLED' => ($config['board_disable']) ? true : false, 'S_REGISTERED_USER' => (!empty($user->data['is_registered'])) ? true : false, 'S_IS_BOT' => (!empty($user->data['is_bot'])) ? true : false, 'S_USER_PM_POPUP' => $user->optionget('popuppm'), 'S_USER_LANG' => $user_lang, 'S_USER_BROWSER' => (isset($user->data['session_browser'])) ? $user->data['session_browser'] : $user->lang['UNKNOWN_BROWSER'], 'S_USERNAME' => $user->data['username'], 'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'], 'S_CONTENT_FLOW_BEGIN' => ($user->lang['DIRECTION'] == 'ltr') ? 'left' : 'right', 'S_CONTENT_FLOW_END' => ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left', 'S_CONTENT_ENCODING' => 'UTF-8', 'S_TIMEZONE' => ($user->data['user_dst'] || ($user->data['user_id'] == ANONYMOUS && $config['board_dst'])) ? sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], $user->lang['tz']['dst']) : sprintf($user->lang['ALL_TIMES'], $user->lang['tz'][$tz], ''), 'S_DISPLAY_ONLINE_LIST' => ($l_online_time) ? 1 : 0, 'S_DISPLAY_SEARCH' => (!$config['load_search']) ? 0 : (isset($auth) ? ($auth->acl_get('u_search') && $auth->acl_getf_global('f_search')) : 1), 'S_DISPLAY_PM' => ($config['allow_privmsg'] && !empty($user->data['is_registered']) && ($auth->acl_get('u_readpm') || $auth->acl_get('u_sendpm'))) ? true : false, 'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0, 'S_NEW_PM' => ($s_privmsg_new) ? 1 : 0, 'S_REGISTER_ENABLED' => ($config['require_activation'] != USER_ACTIVATION_DISABLE) ? true : false, 'S_FORUM_ID' => $forum_id, 'S_TOPIC_ID' => $topic_id, 'S_LOGIN_ACTION' => ((!defined('ADMIN_START')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login') : append_sid("index.$phpEx", false, true, $user->session_id)), 'S_LOGIN_REDIRECT' => build_hidden_fields(array('redirect' => build_url())), 'S_ENABLE_FEEDS' => ($config['feed_enable']) ? true : false, 'S_ENABLE_FEEDS_OVERALL' => ($config['feed_overall']) ? true : false, 'S_ENABLE_FEEDS_FORUMS' => ($config['feed_overall_forums']) ? true : false, 'S_ENABLE_FEEDS_TOPICS' => ($config['feed_topics_new']) ? true : false, 'S_ENABLE_FEEDS_TOPICS_ACTIVE' => ($config['feed_topics_active']) ? true : false, 'S_ENABLE_FEEDS_NEWS' => ($s_feed_news) ? true : false, 'S_LOAD_UNREADS' => ($config['load_unreads_search'] && ($config['load_anon_lastread'] || $user->data['is_registered'])) ? true : false, 'S_SEARCH_HIDDEN_FIELDS' => build_hidden_fields($s_search_hidden_fields), 'T_THEME_PATH' => "{$web_path}styles/" . rawurlencode($user->theme['theme_path']) . '/theme', 'T_TEMPLATE_PATH' => "{$web_path}styles/" . rawurlencode($user->theme['template_path']) . '/template', 'T_SUPER_TEMPLATE_PATH' => (isset($user->theme['template_inherit_path']) && $user->theme['template_inherit_path']) ? "{$web_path}styles/" . rawurlencode($user->theme['template_inherit_path']) . '/template' : "{$web_path}styles/" . rawurlencode($user->theme['template_path']) . '/template', 'T_IMAGESET_PATH' => "{$web_path}styles/" . rawurlencode($user->theme['imageset_path']) . '/imageset', 'T_IMAGESET_LANG_PATH' => "{$web_path}styles/" . rawurlencode($user->theme['imageset_path']) . '/imageset/' . $user->lang_name, 'T_IMAGES_PATH' => "{$web_path}images/", 'T_SMILIES_PATH' => "{$web_path}{$config['smilies_path']}/", 'T_AVATAR_PATH' => "{$web_path}{$config['avatar_path']}/", 'T_AVATAR_GALLERY_PATH' => "{$web_path}{$config['avatar_gallery_path']}/", 'T_ICONS_PATH' => "{$web_path}{$config['icons_path']}/", 'T_RANKS_PATH' => "{$web_path}{$config['ranks_path']}/", 'T_UPLOAD_PATH' => "{$web_path}{$config['upload_path']}/", 'T_STYLESHEET_LINK' => (!$user->theme['theme_storedb']) ? "{$web_path}styles/" . rawurlencode($user->theme['theme_path']) . '/theme/stylesheet.css' : append_sid("{$phpbb_root_path}style.$phpEx", 'id=' . $user->theme['style_id'] . '&lang=' . $user->lang_name), 'T_STYLESHEET_NAME' => $user->theme['theme_name'], 'T_THEME_NAME' => rawurlencode($user->theme['theme_path']), 'T_TEMPLATE_NAME' => rawurlencode($user->theme['template_path']), 'T_SUPER_TEMPLATE_NAME' => rawurlencode((isset($user->theme['template_inherit_path']) && $user->theme['template_inherit_path']) ? $user->theme['template_inherit_path'] : $user->theme['template_path']), 'T_IMAGESET_NAME' => rawurlencode($user->theme['imageset_path']), 'T_IMAGESET_LANG_NAME' => $user->data['user_lang'], 'T_IMAGES' => 'images', 'T_SMILIES' => $config['smilies_path'], 'T_AVATAR' => $config['avatar_path'], 'T_AVATAR_GALLERY' => $config['avatar_gallery_path'], 'T_ICONS' => $config['icons_path'], 'T_RANKS' => $config['ranks_path'], 'T_UPLOAD' => $config['upload_path'], 'SITE_LOGO_IMG' => $user->img('site_logo'), 'A_COOKIE_SETTINGS' => addslashes('; path=' . $config['cookie_path'] . ((!$config['cookie_domain'] || $config['cookie_domain'] == 'localhost' || $config['cookie_domain'] == '127.0.0.1') ? '' : '; domain=' . $config['cookie_domain']) . ((!$config['cookie_secure']) ? '' : '; secure')), ));

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

4X_Pro
Основатель проекта
Всего сообщений: 205
Зарегистрирован: 22 сен 2014, 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 4

0 +
25 августа 2016, 21:17. Редактировалось 2 раза, последний — 26 августа 2016, 01:56#17
Теперь в плане целей более менее понятно.
Насчет кириллицы — тут происходит вот что: htmlentities — это функция, которая экранирует кавычки в строке с именем для защиты от SQL-injection. По умолчанию она работает только с кодировкой windows-1252, а остальные символы режет, поэтому без указания кодировки на выходе получалась пустая строка, поэтому и "ничего не найдено". После того, как кодировку прописали явно, она стала кириллицу пропускать, но, видимо, либо что-то все-таки обрезает, либо экранирует не полностью. Почему так, сказать сложно, т.к. здесь нет текста SQL-запроса, который делается
Можно попробовать следующие варианты:
'U_SEARCH_WHO_QUOTED_ME'=> append_sid("{$phpbb_root_path}search.$phpEx", 'st=0&sk=t&sd=d&sr=posts&keywords=quote+' . htmlentities($user->data['username'],ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE,"UTF-8")),

Еще вопрос: а не может ли быть так, что в скрипте предусмотрен вывод всех цитат в том случае, если новых не находится? И еще — правильно ли выставлены параметры sk=t и sd=d, может там что другое нужно указывать?

Критикуя — предлагай, предлагая — обосновывай!
Для тех, кто живет в Интернете — мой блог о Web-разработке.

ПнБ
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
26 августа 2016, 23:34#18
4X_Pro написал(а):
Насчет кириллицы — тут происходит вот что: htmlentities — это функция, которая экранирует кавычки в строке с именем для защиты от SQL-injection. По умолчанию она работает только с кодировкой windows-1252, а остальные символы режет, поэтому без указания кодировки на выходе получалась пустая строка,

Где ты читаешь спецификацию к функциям? Я по этой функции с гугле ничего не нашёл.
4X_Pro написал(а):
Можно попробовать следующие варианты:

Так, только чуть-чуть по другому
. htmlentities($user->data['username'],ENT_QUOTES | ENT_SUBSTITUTE,"UTF-8")),
С твоим примером там дебаг немножко ругался.
4X_Pro написал(а):
Еще вопрос: а не может ли быть так, что в скрипте предусмотрен вывод всех цитат в том случае, если новых не находится?

Я это дополнение нашёл на другом форуме, английском. Там автор писала, что цитаты новые выводятся. Я пытался сделать что-то наподобие блока уведомлений, как в гугло-сервисах, но уже нашёл другое решение, а это-оформлю, и отдам народу в инет. Может кому пригодится.
P.S. Я хоть тебя и критикую, но кодингом я начал заниматься из-за IntB2. Уж очень я хотел что-то путёвое с неё сделать.

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

ПнБ
Начинающий
Всего сообщений: 97
Зарегистрирован: 5 мая 2015, 11:37
Рейтинг пользователя: 0

0 +
26 августа 2016, 23:38#19
ПнБ написал(а):
Я по этой функции с гугле ничего не нашёл.

Я по этой функции ничего особо не нашёл.
ПнБ написал(а):
Уж очень я хотел что-то путёвое с неё сделать.

Уж очень я хотел что-то путёвое с него сделать.
Дай мне право редактировать сообщения. А то часто ошибаюсь, тороплюсь.

Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/

4X_Pro
Основатель проекта
Всего сообщений: 205
Зарегистрирован: 22 сен 2014, 18:56
Откуда: Москва, Перово
Рейтинг пользователя: 4

0 +
30 августа 2016, 20:10#20
Право редактировать сообщения дал.
ПнБ написал(а):
Где ты читаешь спецификацию к функциям? Я по этой функции с гугле ничего не нашёл.

Вообще, самый лучший вариант — это официальный сайт http://docs.php.net, в частности http://php.net/manual/ru/function.htmlentities.php Причем полезно не только читать описания самих функций, но и комментарии внизу, там немало полезной информации бывает.

Критикуя — предлагай, предлагая — обосновывай!
Для тех, кто живет в Интернете — мой блог о Web-разработке.

Страницы:
  • 1
  • 2
Распечатать

У вас нет прав для отправки сообщений в эту тему.

0: Контрольная точка "Конец инициализации". Время выполнения: 0.002. Запросов: 8, время запроса: 0.001 (70.86)%. Памяти использовано: 513816 байтов

0: Контрольная точка "Фиксация действия пользователя выполнена". Время выполнения: 0.002. Запросов: 10, время запроса: 0.002 (70.58)%. Памяти использовано: 514144 байтов

0: Контрольная точка "Основное действие выполнено". Время выполнения: 0.006. Запросов: 17, время запроса: 0.003 (45.04)%. Памяти использовано: 754464 байтов

0: Контрольная точка "Вспомогательные действия выполнены". Время выполнения: 0.006. Запросов: 19, время запроса: 0.003 (45.24)%. Памяти использовано: 762152 байтов

0: Контрольная точка "После срабатывания шаблонизатора.". Время выполнения: 0.008. Памяти использовано: 1054776 байтов