Внимание!
Не все расширения для phpBB 3.2 совместимы с phpBB 3.3, главным образом из-за неверного синтаксиса в определениях сервисов (отсутствия обрамляющих кавычек - '...').
Перед обновлением необходимо убедиться в совместимости всех расширений.
Рекомендуется предварительно тестировать обновление на копии конференции (локально или на сервере).

[3.1][3.2][BETA] ActiveUser - Конкурс на самого активного пользователя

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
saturn-z
phpBB 2.0.0
Сообщения: 241
Стаж: 7 лет 7 месяцев
Откуда: РФ, Тюмень
Благодарил (а): 13 раз
Поблагодарили: 93 раза

[3.1][3.2][BETA] ActiveUser - Конкурс на самого активного пользователя

Сообщение saturn-z »

Название: ActiveUser
Автор: saturn-z
Описание: Конкурс на самого активного пользователя
Расширение создаёт отдельную страницу конкурса. Отсортировывает пользователей, которые оставили больше всего сообщений на форуме за месяц, и рандомно выбирает одного из них. Отображает победителей прошлых месяцев. Прогнозирует победителей текущего месяца.
Возможности: 
Выбор групп которые будут участвовать в конкурсе.
Можно исключить некоторые форумы из конкурса.
Настройка количества призовых мест.
Настройка количества отображаемых претендентов на победу.
Настройка количества предупреждений, при котором пользователь будет исключен из конкурса.
Правка текстов из админки.
Настройка количества отображаемых победителей прошлых месяцев.
Скрины 
Страница конкурса
Страница конкурса
Административная часть конкурса
Административная часть конкурса
Это моё первое расширение, с phpbb 3.1.* я познакомился только в этом году, до этого я сидел на версии phpbb2 и никогда ничего подобного не делал. Поэтому, как разработчик, я новенький! Прошу отнестись к этому с пониманием.
Расширение делал для себя.
В версии 0.0.2 добавлено: 
Управление из админки, а именно:
Возможность задать количество отображаемых на странице месяцев.
Исключение пользователей из участия в конкурсе при определённом количестве предупреждений.
Возможность выбрать какие группы пользователей будут участвовать в конкурсе.
Управление текстами из админки.
В версии 0.0.3 добавлено: 
Добавлена ссылка в навигатор (меню)
Добавлена возможность исключить некоторые форумы из конкурса
Добавлено отображение количества сообщений пользователя (чтобы он знал на сколько сообщений отстаёт)
Исправлены незначительные ошибки...
НА ВЕРСИЮ 0.0.3 ОБНОВЛЯТЬСЯ С УДАЛЕНИЕМ ДАННЫХ!!!
В версии 0.0.4 добавлено: 
Добавлена настройка призовых мест!
Добавлена настройка количества отображаемых претендентов на победу!
Немного облегчен код.
Немного подкорректирован перевод.

С версии 0.0.3 можно обновляться простым выключением расширения, заменой файлов, включением расширения.
С более ранних версий - выключить расширение, удалить данные, заменить файлы, включить расширение.
В версии 0.0.5 добавлено: 
Вырезаны 2 запроса к БД и помещены в планировщик заданий крон.
В админке добавлена возможность включения, выключения, отображения ссылки на страницу конкурса.
Почищен код, удалены лишние пробелы и.т.п.
В версии 0.0.6 добавлено: 
Добавлена функция "Минимальное кол-во сообщений" если пользователи наберут менее указанного кол-ва сообщений, то победитель объявлен не будет. + мелкие правки шаблона.
В версии 1.0.1 добавлено: 
В блоке прогноза победителей добавлена функция "Минимальное количество сообщений", у пользователей с меньшим кол-вом сообщений в комментарии будет соответствующее сообщение.
Добавлена функция проверки версии расширения.
DEMO: http://www.ribak72.ru/community/activeuser
Версия Расширения: 1.0.1
Требования: phpBB 3.1.*@dev
GitHub репозиторий: https://github.com/saturn-z/activeuser
Загрузить расширение: https://github.com/saturn-z/activeuser/ ... master.zip

Модуль ActiveUser для Board3 Portal: [BETA] ActiveUser - Конкурс на самого активного пользователя
Скрин 
Модуль ActiveUser для Board3 Portal
Модуль ActiveUser для Board3 Portal
Последний раз редактировалось saturn-z 17.02.2017 20:56, всего редактировалось 18 раз.
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15130
Стаж: 14 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 388 раз
Поблагодарили: 1737 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение rxu »

saturn-z
Расширение работает только с MySQL. используйте методы абстрактного уровня интерфейса СУБД, через экземпляр объекта $this->db.
Вместо вот такой дефиниции констант имен таблиц

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

		define(__NAMESPACE__ . '\ACTIVE_USER_TABLE', $this->table_prefix . 'active_user');
		define(__NAMESPACE__ . '\USER_TABLE', $this->table_prefix . 'users');
		define(__NAMESPACE__ . '\POSTS_TABLE', $this->table_prefix . 'posts');
лучше пользоваться средствами Symfony, например, как здесь https://github.com/rxu/thanks_for_posts ... tables.yml -> https://github.com/rxu/thanks_for_posts ... rvices.yml
Изображение

Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 10 лет 2 месяца
Откуда: Сергиев Посад
Благодарил (а): 390 раз
Поблагодарили: 731 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение владимир1983 »

Интересная задумка)
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)

Аватара пользователя
Alecto
phpBB 3.0.11
Сообщения: 2840
Стаж: 10 лет 6 месяцев
Откуда: Украина! Харьков
Благодарил (а): 69 раз
Поблагодарили: 287 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение Alecto »

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

 PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 91: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO)
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 91: mysql_query(): A link to the server could not be established
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 92: mysql_num_rows() expects parameter 1 to be resource, boolean given
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 109: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO)
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 109: mysql_query(): A link to the server could not be established
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 110: mysql_num_rows() expects parameter 1 to be resource, boolean given
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 136: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO)
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 136: mysql_query(): A link to the server could not be established
[phpBB Debug] PHP Warning: in file [ROOT]/ext/saturnZ/ActiveUser/controller/ActiveUser.php on line 137: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
Добавлено спустя 1 минуту 24 секунды:
Re: [BETA] ActiveUser - Конкурс на самого активного пользователя
и, на тесте у меня все поля пустые.
пользователи туда не захаживают, но я там создавал посты....
так что не работает экст.

Аватара пользователя
saturn-z
phpBB 2.0.0
Сообщения: 241
Стаж: 7 лет 7 месяцев
Откуда: РФ, Тюмень
Благодарил (а): 13 раз
Поблагодарили: 93 раза

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение saturn-z »

Alecto писал(а):но я там создавал посты....
Расширение не учитывает посты администратора (id=2)
А на счет ошибок, пока ничего сказать немогу...

Добавлено спустя 3 минуты 38 секунд:
Re: [BETA] ActiveUser - Конкурс на самого активного пользователя
На счёт ошибок, я понял....
rxu писал(а):Расширение работает только с MySQL
Я понял свою ошибку, завтра попробую исправить.
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11569
Стаж: 13 лет 4 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2611 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение Sheer »

Первый блин... вернее каша.
Строка 91

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

$res = mysql_query($sql);
и там же...

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

 $this->db->sql_query("INSERT INTO " . ACTIVE_USER_TABLE . " (user_id, date, user_posts) VALUES ('0', '$arhive_date', '0')");
логика использования вперемешку функций php и интерфейса phpBB мне совершенно непонятна. К тому же код нечитабелен.
saturn-z, читайте Руководство по написанию программного кода и исправляйте (не буду называть как это называется, чтоб не обидеть).
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15130
Стаж: 14 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 388 раз
Поблагодарили: 1737 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение rxu »

Sheer
saturn-z писал(а):как разработчик, я новенький! Прошу отнестись к этому с пониманием.
Для первого раза неплохо :)
Изображение

Аватара пользователя
Alecto
phpBB 3.0.11
Сообщения: 2840
Стаж: 10 лет 6 месяцев
Откуда: Украина! Харьков
Благодарил (а): 69 раз
Поблагодарили: 287 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение Alecto »

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

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11569
Стаж: 13 лет 4 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2611 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение Sheer »

Я и говорю, первый блин. А стремление похвально.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
saturn-z
phpBB 2.0.0
Сообщения: 241
Стаж: 7 лет 7 месяцев
Откуда: РФ, Тюмень
Благодарил (а): 13 раз
Поблагодарили: 93 раза

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение saturn-z »

Обновил архив, исправил ошибки с подключением к БД.
Sheer писал(а):К тому же код нечитабелен.
Начал, постепенно, приводить код к читабельному виду. Со временем обязательно научусь.
Так и не понял как правильно заменить функцию mysql_num_rows
В крации просмотрел папку /phpbb/db/driver/ и мне кажется, что надо использовать функцию sql_affectedrows. Правильно ли я понял?
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.

Аватара пользователя
neexforg
phpBB 2.0.5
Сообщения: 466
Стаж: 6 лет 5 месяцев
Благодарил (а): 99 раз
Поблагодарили: 18 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение neexforg »

Если кто надумает сделать подобное для 3.0.12 расцелую))
Учусь сайтостроению вместе с phpbbguru

Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1799
Стаж: 8 лет 1 месяц
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение xisp »

saturn-z писал(а):Правильно ли я понял?
Кажется нет. Приведённая вами функция возвращает число затронутых при обновлении строк БД.
Кажется нужной вам функции нет. Как вариант- сохранить результаты запроса в массив и посчитать его длину. Всё равно же они понадобятся, правда?
phpBBex

Аватара пользователя
saturn-z
phpBB 2.0.0
Сообщения: 241
Стаж: 7 лет 7 месяцев
Откуда: РФ, Тюмень
Благодарил (а): 13 раз
Поблагодарили: 93 раза

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение saturn-z »

xisp писал(а):Всё равно же они понадобятся, правда?
Нет :)
Я просто что-то недопонимаю, я уверен что нужное мне действие можно выполнить намного проще, более разумным способом.

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

$sql = "SELECT date FROM " . ACTIVE_USER_TABLE . " WHERE date LIKE '$arhive_date'";
$res = $this->db->sql_query($sql);
if ($this->db->sql_affectedrows($res) == 0)   // if (mysql_num_rows($res) == 0)
{
выполняю действие
}
else
{
ничего не делаю
}
т.е. мне просто нужно убедиться что функция вернула 0 строк.
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11569
Стаж: 13 лет 4 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2611 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение Sheer »

saturn-z писал(а):как правильно заменить функцию mysql_num_rows
Есть функция mssqlnative_num_rows --> ./phpbb/db/driver/mssqlnative.php

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

	/**
	* Utility method used to retrieve number of rows
	* Emulates mysql_num_rows
	* Used in acp_database.php -> write_data_mssqlnative()
	* Requires a static or keyset cursor to be definde via
	* mssqlnative_set_query_options()
	*/
	function mssqlnative_num_rows($res)
	{
		if ($res !== false)
		{
			return sqlsrv_num_rows($res);
		}
		else
		{
			return false;
		}
	}
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15130
Стаж: 14 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 388 раз
Поблагодарили: 1737 раз

Re: [BETA] ActiveUser - Конкурс на самого активного пользова

Сообщение rxu »

Зачем это надо? Есть стандартная выборка из результатов запроса

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

while ($row = $db->sql_fetchrow($result))
{
DO STUFF
}
Изображение

Вернуться в «Бета-версии расширений для phpBB»