Posted 24 марта, 20159 yr comment_83845 Название: (CSI/IPS/MODULE) Контактная информация Добавил: WebFox Добавлен: 24 Мар 2015 Категория: Хуки, Модификации для IP.Board Название по-русски : (CSI/IPS/MODULE) Контактная информация Версия IP.Board: 3.4.x Лицензия: _creativecommons.org/licenses/by-nc-nd/4.0/ Совместная разработка CYBERSPACE Industries и FM-Web.uz. Блок для боковой панели, позволяющий вывести контактную информацию пользователей форума. В этом дополнении используются иконки "Font Awesome". Для подключения иконок "Font Awesome" необходимо установить hook . Основные возможности: доступно 5 контактов для заполнения; включение / отключение всего блока с контактной информацией и для каждого из контактов; параметры доступа групп пользователей для всего блока с контактной информацией и для каждого из контактов; автодополнение при наборе имени пользователя для для добавления в контакт; поле для заметки, позволяющее вывести дополнительную информацию о контакте; поля для контактной информации Skype, ВКонтакте и Facebook.
29 марта, 20159 yr comment_84259 Отличный хук, взял себе ток иконки ВК и Skype очень маленькие. И когда жмёшь на иконку заметки, нечего не происходит Как исправить ? А всё разобрался, всё работает. Спасибо за хук, давно искал его. Edited 29 марта, 20159 yr by igor
30 марта, 20159 yr comment_84388 Хук может быть и хороший, но реализация унылая. Нет алгоритмизации, в простонародье просто г-код. Весь этот код 'info' => array( 0 => array( 'include' => $this->settings['csiIPS_contactInfo_row01_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row01_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row01_username'], 'skype' => $this->settings['csiIPS_contactInfo_row01_skype'], 'note' => $this->settings['csiIPS_contactInfo_row01_note'], 'vk' => $this->settings['csiIPS_contactInfo_row01_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row01_fb'], ), 1 => array( 'include' => $this->settings['csiIPS_contactInfo_row02_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row02_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row02_username'], 'note' => $this->settings['csiIPS_contactInfo_row02_note'], 'skype' => $this->settings['csiIPS_contactInfo_row02_skype'], 'vk' => $this->settings['csiIPS_contactInfo_row02_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row02_fb'], ), 2 => array( 'include' => $this->settings['csiIPS_contactInfo_row03_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row03_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row03_username'], 'note' => $this->settings['csiIPS_contactInfo_row03_note'], 'skype' => $this->settings['csiIPS_contactInfo_row03_skype'], 'vk' => $this->settings['csiIPS_contactInfo_row03_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row03_fb'], ), 3 => array( 'include' => $this->settings['csiIPS_contactInfo_row04_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row04_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row04_username'], 'note' => $this->settings['csiIPS_contactInfo_row04_note'], 'skype' => $this->settings['csiIPS_contactInfo_row04_skype'], 'vk' => $this->settings['csiIPS_contactInfo_row04_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row04_fb'], ), 4 => array( 'include' => $this->settings['csiIPS_contactInfo_row05_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row05_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row05_username'], 'note' => $this->settings['csiIPS_contactInfo_row05_note'], 'skype' => $this->settings['csiIPS_contactInfo_row05_skype'], 'vk' => $this->settings['csiIPS_contactInfo_row05_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row05_fb'], ), ), ); if ($settings['member_group']) {$settings['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['member_group']));} if ($settings['info'][0]['member_group']) {$settings['info'][0]['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['info'][0]['member_group']));} if ($settings['info'][1]['member_group']) {$settings['info'][1]['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['info'][1]['member_group']));} if ($settings['info'][2]['member_group']) {$settings['info'][2]['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['info'][2]['member_group']));} if ($settings['info'][3]['member_group']) {$settings['info'][3]['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['info'][3]['member_group']));} if ($settings['info'][4]['member_group']) {$settings['info'][4]['member_group'] = IPSMember::isInGroup($this->memberData, explode(',', $settings['info'][4]['member_group']));} if ($settings['info'][0]['username']) {$settings['info'][0]['username'] = IPSText::getTextClass('bbcode')->preDisplayParse(IPSText::getTextClass('bbcode')->preDbParse("[0]['username'] . "']"));} if ($settings['info'][1]['username']) {$settings['info'][1]['username'] = IPSText::getTextClass('bbcode')->preDisplayParse(IPSText::getTextClass('bbcode')->preDbParse("[1]['username'] . "']"));} if ($settings['info'][2]['username']) {$settings['info'][2]['username'] = IPSText::getTextClass('bbcode')->preDisplayParse(IPSText::getTextClass('bbcode')->preDbParse("[2]['username'] . "']"));} if ($settings['info'][3]['username']) {$settings['info'][3]['username'] = IPSText::getTextClass('bbcode')->preDisplayParse(IPSText::getTextClass('bbcode')->preDbParse("[3]['username'] . "']"));} if ($settings['info'][4]['username']) {$settings['info'][4]['username'] = IPSText::getTextClass('bbcode')->preDisplayParse(IPSText::getTextClass('bbcode')->preDbParse("[4]['username'] . "']"));} можно заменить одним этим for( $i=0; $i<=4; $i++ ) { $info = array( 'include' => $this->settings['csiIPS_contactInfo_row'.$i.'_include'], 'member_group' => $this->settings['csiIPS_contactInfo_row'.$i.'_userGroups'], 'username' => $this->settings['csiIPS_contactInfo_row'.$i.'_username'], 'note' => $this->settings['csiIPS_contactInfo_row'.$i.'_note'], 'skype' => $this->settings['csiIPS_contactInfo_row'.$i.'_skype'], 'vk' => $this->settings['csiIPS_contactInfo_row'.$i.'_vk'], 'fb' => $this->settings['csiIPS_contactInfo_row'.$i.'_fb'], ); if( $info['member_group'] ) { $info['member_group'] = IPSMember::isInGroup( $this->memberData, explode( ',', $info['member_group'] ) ); } if( $info['username'] ) { $info['username'] = IPSText::getTextClass('bbcode')->preDisplayParse( IPSText::getTextClass('bbcode')->preDbParse( "}']" ) ); } $settings['info'][$i] = $info; } И опять эти повторяющиеся настройки для каждой отдельной сущности. По 7 настроек на 5 сущности это 35 лишних настроек в бд. Может быть не очень удобно, но можно создать одно поле textarea, и вписывать каждую сущность с новой строки в формате key=value&key-n=value-n. Поле с описанием настроек имеет тип text, можно туда всунуть js скрипт, который бы отформатировал этот формат в удобный для управления пользователем. Edited 30 марта, 20159 yr by soka
30 марта, 20159 yr Author comment_84390 soka, благодарю за критику. Поле с описанием настроек имеет тип text, можно туда всунуть js скрипт, который бы отформатировал этот формат в удобный для управления пользователем. Разве ИПБ не фильтрует яваскрипт в настройках? Никогда не встраивал, поэтому не знаю. По поводу качества кода, согласен. Но хук делает то, что должен. Большего от него нет необходимости. Но возьму твои рекомендации на заметку. Про цикл я не подумал.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.