Пропустить

Добавление переключателей в UCP

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

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

Добавление переключателей в UCP

Сообщение Alek$ » 29.03.2008 21:51

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

Однако мне не совсем ясно, как это реализуется. Можно, конечно, по-старинке добавить в таблицу пользователей новые колонки по числу переключателей, создать новый модуль для UCP и работать с ними, однако, насколько я понял, в phpBB3 это не приветствуется.
Хочу спросить у тех, кто сталкивался с такой задачей, есть ли какой-нибудь более изящный подход к делу или нету?

Выяснил, что в таблице пользователей имеется поле user_options и создатели модов им как-то манипулируют. Но в чем именно заключается высший смысл этого поля я все равно не понял :(
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Сообщение rxu » 29.03.2008 21:57

Alek$
user_options представляет собой интегральное значение, получаемое путем присвоения значений отдельным битам. Т.е. используются битовые операции (реализовано в функциях optionget/optionset, например, в session.php, а также в установочном скрипте мода БО). Нужны будут подробности - обращайся ;)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Сообщение Alek$ » 30.03.2008 10:13

rxu
Подробности будут нелишними :)
В частности, регламентируется ли где-нибудь, какие биты уже заняты другими модами или как добавлять туда свои опции, не нарушая совместимости?
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Сообщение rxu » 30.03.2008 10:50

В принципе, можно создать собственное поле в таблице пользователей, например, user_options_alex, и тогда своя рука владыка. Все биты свободны.
Если добавлять в user_options, то идём в session.php и смотрим, что у нас занято
	// Able to add new option (id 7)
	var $keyoptions = array('viewimg' => 0, 'viewflash' => 1, 'viewsmilies' => 2, 'viewsigs' => 3, 'viewavatars' => 4, 'viewcensors' => 5, 'attachsig' => 6, 'bbcode' => 8, 'smilies' => 9, 'popuppm' => 10);

Свободные места - 7 и после 10-ти. Поле user_options - 11-значное целое без знака, целые числа в PHP 32-х битные, если я правильно помню. Отсюда и пляшем в плане имеющихся ограничений.
Как перевести двоичное число в десятичное для проверки пояснять тебе, я думаю, не надо ;)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Сообщение Alek$ » 30.03.2008 11:11

rxu писал(а):Свободные места - 7 и после 10-ти.

Это я понял. В том-то и вопрос, что я, допустим, занял место 11 и еще какой-то абстрактный модописатель, никогда не слышавший ни обо мне, ни о моем моде, тоже выберет для своего мода место 11. В результате, человек установивший оба мода получит конфликт 8) А я хочу это избежать.
rxu писал(а):можно создать собственное поле в таблице пользователей, например, user_options_alex

Тоже вариант, возьму на заметку :)

Кстати, за примером далеко ходить не надо - в твоем быстром ответе ты используешь 11-й и 12-й биты, а я, если бы не обратил на это внимания, занял бы с 11 по 15-й и мы бы получили конфликт.

Добавлено спустя 6 минут 31 секунду:

Попробую задать тот же вопрос на оффсайте, посмотрим, что мне ответят "из первых рук"
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Сообщение rxu » 30.03.2008 11:13

Боюсь, что избежать таких конфликтов, используя одно и то же поле, невозможно в принципе :)
Человеческий фактор полностью исключить невозможно.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Сообщение Alek$ » 30.03.2008 11:20

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

Кстати, возможно, тебе стоит пересмотреть эту часть своего мода и вынести настройки в отдельное поле...
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Сообщение rxu » 30.03.2008 11:52

Уже думаю над этим :)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Сообщение Alek$ » 31.03.2008 12:37

В общем, на офсайте A_Jelly_Doughnut ответил мне, что лучше создавать дополнительную колонку :)
Так и поступим 8)
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2653
Зарегистрирован: 03.08.2005 13:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Re: Добавление переключателей в UCP

Сообщение FladeX » 20.10.2008 18:58

Что делать, если один мод изменил значение user_options, и следующий мод также предполагает его изменение?
В phpBB 3.0.2 по умолчанию используется:
		'user_options'		=> 895,

Установка мода Quick Reply предполагает замену исходной строки на такую
		'user_options'		=> 2943,

Установка мода Welcome PM on First Login предполагает другую замену исходной строки на следующую строчку:
		'user_options'		=> 1919,


Теперь объясните мне, как на основе этого посчитать результирующее значение?
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
FladeX
Former team member
 
Сообщения: 2079
Зарегистрирован: 02.06.2007 23:44
Откуда: Саранск
Благодарил (а): 6 раз.
Поблагодарили: 53 раз.

Re: Добавление переключателей в UCP

Сообщение rxu » 20.10.2008 19:10

А что мод Welcome PM on First Login добавляет в массив $keyoptions?
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Re: Добавление переключателей в UCP

Сообщение FladeX » 20.10.2008 19:37

session.php там вообще не редактируется :?
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
FladeX
Former team member
 
Сообщения: 2079
Зарегистрирован: 02.06.2007 23:44
Откуда: Саранск
Благодарил (а): 6 раз.
Поблагодарили: 53 раз.

Re: Добавление переключателей в UCP

Сообщение rxu » 20.10.2008 19:58

Тогда тем более непонятно. Вообще, самыё лучший расчетчик - это сам phpBB3. Устанавливаете в собственном профиле настройки отображения так, как это нужно чтобы было при регистрации пользователей по умолчанию, затем смотрите в таблице пользователей в БД значение поля user_options для своей учетной записи. Это оно и будет.
Была идея сделать отдельный скрипт для расчета, но пока руки не дошли. Вкратце, основа - функции optionget и optionset.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

Re: Добавление переключателей в UCP

Сообщение FladeX » 20.10.2008 20:00

Спасибо. Знать бы только, что именно этот мод изменяет в настройках профиля. Приватные сообщения и так по умолчанию включены... :roll:
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
Аватара пользователя
FladeX
Former team member
 
Сообщения: 2079
Зарегистрирован: 02.06.2007 23:44
Откуда: Саранск
Благодарил (а): 6 раз.
Поблагодарили: 53 раз.

Re: Добавление переключателей в UCP

Сообщение rxu » 20.10.2008 20:05

Что-то я в инструкции по установке этого мода не вижу подобной инструкции (версия 1.0.0).
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7366
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 270 раз.

След.

Вернуться в Для авторов (phpBB 3.0.x)

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы