phpBB jQuery Base

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

Пчелкин писал(а):
Алг писал(а):И в чем обильность аякса в данном моде?
А что...в нем есть что-то не на аяксе? Загляни в код...
Пчелкин, мод не может быть на аяксе или не на аяксе, аякс не язык, не библиотека и не фреймворк. В код заглядывала ( ну раз надо было под себя подстраивать, пришлось не заглядывать, а поизучать основательно)
Итак, мои рассуждения:
Без мода
-----------
1. по кнопке "отправить" делается submit формы, данные обрабатываются серверным файлом posting.php ( много-много запросов к БД)
2. Пользователю отправляется информационная страница... с кнопками
3. снова обращение к серверу по нажатию кнопки или авторефрешу( без разницы)
4. Обработка запроса серверным файлом viewtopic.php(очень и очень много запросов к бд и вообще "многабукв" в файле)
5. Передача пользователю HTML кода целой страницы

с установленным модом
-------------------------------
1. по кнопке "отправить" отправляется запрос на сервер, обрабатывается на сервере файлом jquery_functions.php ( те же запросы к БД, но в меньшем количестве, раз ответ или правка быстрые, то кое-что упрощено и не надо за некоторыми вещами обращаться к MYSQL и обрабатывать данные, то есть выкинуты приличные куски кода
2. пользователю возвращаются данные на ту же страницу, javascript обновляет её часть

Вывод: быстрый ответ и быстрая правка с использованием данного мода снижает нагрузку на сервер и повышает скорость передачи данных конечному пользователю.

А теперь повторяю вопрос: в чём вредоносность и повышенная нагрузка именно этого мода?

Добавлено спустя 8 минут 30 секунд:
Вдогонку: у меня игровой форум, я пока поставила этот мод только для одной игры, но довольно интенсивной по нагрузке: ведущий постит вопрос, а команда в течение 10 мин должна дать ответ. Как правило, на игру приходят в среднем 15-20 чел. Игры пока ещё не было и соответственно в деле мод себя не показал. После ближайшей игры отчитаюсь
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: phpBB jQuery Base

Сообщение Пчелкин »

Алг писал(а):в чём вредоносность и повышенная нагрузка
Алг писал(а):я пока поставила этот мод
Алг писал(а):Вывод: быстрый ответ и быстрая правка с использованием данного мода снижает нагрузку на сервер и повышает скорость передачи данных конечному пользователю.
да ну!!! не знал ... вот неожиданность то!!!
С чего они вдруг быстрей получают конечный? Вы работу php вроде изучали? Инфа уходит в обход БД? Мыслью?
С установленным модом сервер на VPCке при 150 уникумах тихо уходил в 504....Перезагружал такие серваки, отключал мод - форум работал стабильно... Этого достаточно... С трех форумов , где установлен был мод - со всех удалил...Народ взмолился...ибо -
Di_Mok писал(а):Думаю, тем кому в phpBB не хватает свистелок (
Лезть в код и колупаться там, что б выяснить причины - кому что приснилось - недосуг...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

Забыла я про эту тему и про обещание отчитаться. Игры за это время были, всё нормально. Нагрузка немного повышена, как и всегда при интенсивной игре, но "ничего военного"
Пчелкин писал(а):да ну!!! не знал ... вот неожиданность то!!!
С чего они вдруг быстрей получают конечный? Вы работу php вроде изучали? Инфа уходит в обход БД? Мыслью?
Пчелкин, так постом выше я подробно расписала весь ход инфы и за счёт чего сокращение
Алг писал(а):те же запросы к БД, но в меньшем количестве
Алг писал(а):пользователю возвращаются данные на ту же страницу, javascript обновляет её часть
Вы не могли бы так же подробно рассказать, за счёт чего, по вашему мнению, может быть повышенная нагрузка, да такая, что кладёт ваши серваки, а народ устраивает молебны, прося убрать

Добавлено спустя 14 минут 43 секунды:
И ещё, в этой теме у меня был один вопрос, который скорее всего потонул в результате дальнейшей дискуссии, а вопрос мной так и не решён
Алг писал(а):Поставила этот мод на тестовый форум, стал нормально, всё работает. Но есть одна проблема, вернее странное поведение серверного кода в след. ситуации: на форуме есть два стандартных стиля для пользователя - сабсильвер2 и просильвер и есть кастом стиль на основе просильвера, именно на этот стиль и ставила мод и дала его отдельному форуму вместо стиля по умолчанию. И после этого имею следующее: страница viewtopic_body.html загружается корректно, все её составляюшие берутся из кастом-стиля, а при отправке нового поста через ajax, обработка запроса происходит на странице jquery_functions.php, функция private function quickreply(), в конце перед возвратом на клиент стоит команда

Код: Выделить всё

			$template->set_filenames(array(
						'body' =>'jquery_base/quickreply.html')
					);
и этот код подгружает мне quickreply.html стиля юзера, а не стиля форума.
Т.е. два юзера с разными стилями получают одну и туже страничку viewtopic_body.html, но после отправки поста получат разные шаблоны "quickreply.html", что неудобно, ибо надо обе странички поддерживать и синхронизировать, в главное, непонятно, почему так работает.
Уважаемые гуру, подскажите, пожалуйста, как исправить ситуацию
Иными словами, некий форум в конференции имеет свой стиль, назовём его customstyle
есть 2 стиля, которые может выбрать юзер, это стандартные prosilver и subsilver2.
в каждом из стилей внутри папки template есть файл query_base/quickreply.html
если в теме этого форума постит юзер, у которого стиль prosilver, ему будет подгружен шаблон quickreply.html стиля prosilver, если стиль юзера subsilver2, то и шаблон он получит из subsilver2, а оба они должны получить шаблон от customstyle
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: phpBB jQuery Base

Сообщение Пчелкин »

За счет того что ручные рефлешы все ж делаются реже и только по надобности...а аякс шпарит их самостоятельно даже тем. кому это не надо...
Автобарыги в пики нагрузки просто ждали свой форум по два часа до перезагрузки на сервере апача...
1250 чел., да открывают по несколько вкладок с несколькми темами и страницами, а там везде автозапросы новых изменений прут от аякса...
Хостер мило намекнул на необходимость переезда на более мощный сервер...
Мы и расстались с данной фичей...аминь.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

а, тогда понятно, у меня нет автозапроса новых изменений,
кстати в коде мода я видела только автопроверку на новые лс и ничего более, во время интенсивных игр и турниров я даже думаю её отключать
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
er107
phpBB 2.0.19
Сообщения: 1204
Стаж: 15 лет 6 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

Re: phpBB jQuery Base

Сообщение er107 »

Стоит данный мод на форуме, почти 6000 юзеров, как бы не заметно проблем от него..
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

Проблем нет а дорабатывать приходится.
Например
er107 писал(а):и еще интересно, когда отправляешь быстрым ответом, то показывается один минипрофиль юзера (подписи нет например у юзера) но стоит обновить страничку как ответ появляется как и обычно, с подписью, с количеством сообщений и другими данными юзера.
в файле jquery_functions.php
найти

Код: Выделить всё

$delete_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_delete', $data['forum_id']) || (
				$user->data['user_id'] == $poster_id &&
				$auth->acl_get('f_delete', $data['forum_id']) &&
				$post_data['topic_last_post_id'] == $post_id &&
				($row['post_time'] > time() - ($config['delete_time'] * 60) || !$config['delete_time']) &&
				// we do not want to allow removal of the last post if a moderator locked it!
				!$row['post_edit_locked']
			)));
вставить после

Код: Выделить всё

            // Load custom profile fields
            if ($config['load_cpf_viewtopic'])
            {
	            if (!class_exists('custom_profile'))
	            {
		            include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
	            }
	            $cp = new custom_profile();

	            // Grab all profile fields from users in id cache for later use - similar to the poster cache
	            $profile_fields_tmp = $cp->generate_profile_fields_template('grab', $id_cache);

	            // filter out fields not to be displayed on viewtopic. Yes, it's a hack, but this shouldn't break any MODs.
	            $profile_fields_cache = array();
	            foreach ($profile_fields_tmp as $profile_user_id => $profile_fields)
	            {
		            $profile_fields_cache[$profile_user_id] = array();
		            foreach ($profile_fields as $used_ident => $profile_field)
		            {
			            if ($profile_field['data']['field_show_on_vt'])
			            {
				            $profile_fields_cache[$profile_user_id][$used_ident] = $profile_field;
			            }
		            }
	            }
	            unset($profile_fields_tmp);
                $cp_row = array();
		        $cp_row = (isset($profile_fields_cache[$poster_id])) ? $cp->generate_profile_fields_template('show', false, $profile_fields_cache[$poster_id]) : array();
	        }
найти

Код: Выделить всё

			// Dump vars into template
			$template->assign_block_vars('postrow', $postrow);
заменить на

Код: Выделить всё

            if (isset($cp_row['row']) && sizeof($cp_row['row']))
	        {
		        $postrow = array_merge($postrow, $cp_row['row']);
	        }
			// Dump vars into template
			$template->assign_block_vars('postrow', $postrow);
            if (!empty($cp_row['blockrow']))
	        {
		        foreach ($cp_row['blockrow'] as $field_data)
		        {
			        $template->assign_block_vars('postrow.custom_fields', $field_data);
		        }
	        }
Добавлено спустя 1 час 48 минут 5 секунд:
ещё дорабатывала вот это
Алг писал(а):2. Если между двумя вашими сообщениями появилось несколько постов от других юзеров, то вы их не увидите, пока не произойдёт рефреш вашей страницы. Следующие правки позволят сделать рефреш при наличии новых постов
если кто воспользовался моими правками то
в файле jquery_functions.php
найти

Код: Выделить всё

$redirect = $redirect || ($post_id - $reply_data['topic_cur_post_id'] > 1);
заменить на

Код: Выделить всё

if(!$redirect && ($post_id - $reply_data['topic_cur_post_id'] > 1))
            {
                   $sql = "SELECT count(*) as counter from " . POSTS_TABLE .
                        " WHERE topic_id = " . $post_data['topic_id'] .
                        " AND post_id > " . $reply_data['topic_cur_post_id'] . 
                        " AND poster_id <> " . $user->data['user_id'] ;
	                 $result = $db->sql_query($sql);
                        $new_posts = (int) $db->sql_fetchfield('counter');
                        $db->sql_freeresult($result);  
                        $redirect = $new_posts >0 ? true : $redirect;
            }
Разница в том что предыдущий код позволял сделать только один пост без перезагрузки, а сейчас перезагрузка только в случае если между двумя постами юзера в теме появились и другие посты,
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
keramik
phpBB 1.4.0
Сообщения: 31
Стаж: 13 лет 1 месяц
Откуда: Рига
Благодарил (а): 12 раз

Re: phpBB jQuery Base

Сообщение keramik »

Привет, Алг.
Использовал куски кода твоего, чтобы на jQueryBase сделать форму быстрого ответа без перезагрузки страницы.
Функция отрабатывает, пост добавляется, но страница не обновляется сама по себе, так и висит текст быстрого сообщение + кнопки "Отправить" и "Стандартный ответ", но если тыкнуть F5, то появляется введённый текст быстрого сообщения.

П.С. почему-то в файле quickreply.html не находится строка

Код: Выделить всё

addquote({postrow.POST_ID},'{postrow.POSTER_QUOTE}'); 
. С чем это может быть связано?
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

Я не знаю. Почему куски кода и какие? Что говорит файрбаг?
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
keramik
phpBB 1.4.0
Сообщения: 31
Стаж: 13 лет 1 месяц
Откуда: Рига
Благодарил (а): 12 раз

Re: phpBB jQuery Base

Сообщение keramik »

Мои действия по порядку:
  1. установил jQueryBase по инструкции из самого аддона.
  2. изменил код в соответствии с правками, приведёнными на страницах этой темы (все правки использовал в соответствии с инструкциями к ним).
  3. проверил функционал - аддон логинил без перезагрузки страницы, всё красиво.
  4. включил в форуме возможность быстрого редактирования.
  5. Видео с youtube с глюком: Как это выглядит
Быть может есть какие-нибудь идеи, в какой части кода смотреть и куда копать?
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

keramik, в первую очередь надо смотреть файрбаг. Адрес форума и тестовый аккаунт можете дать?
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
keramik
phpBB 1.4.0
Сообщения: 31
Стаж: 13 лет 1 месяц
Откуда: Рига
Благодарил (а): 12 раз

Re: phpBB jQuery Base

Сообщение keramik »

На локальном сервере крутится всё это дело. Хочу сперва настроить невидимость сообщений для всех, кроме автора, а потом запущу форум в сеть.
На Хроме Firebug, я так понимаю, работать не будет.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: phpBB jQuery Base

Сообщение Алг »

keramik писал(а):На Хроме Firebug, я так понимаю, работать не будет.
F12 и получаете самый лучший файрбаг
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: phpBB jQuery Base

Сообщение Sheer »

Алг писал(а):самый лучший файрбаг
Полностью поддерживаю предыдущего оратора. Еще читаем это
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
keramik
phpBB 1.4.0
Сообщения: 31
Стаж: 13 лет 1 месяц
Откуда: Рига
Благодарил (а): 12 раз

Re: phpBB jQuery Base

Сообщение keramik »

Ну такую штеллу я использую давно. Решил было, что Firebug чем-то отличается :)

Вернуться в «Поддержка модов для phpBB 3.0.x»