Index: modules/in-bulletin/units/topics/topics_config.php =================================================================== --- modules/in-bulletin/units/topics/topics_config.php +++ modules/in-bulletin/units/topics/topics_config.php @@ -100,6 +100,17 @@ 'DoSpecial' => '*', 'DoEvent' => 'OnCloneSubItem', ), + + array( + 'Mode' => hBEFORE, + 'Conditional' => false, + 'HookToPrefix' => 'user-profile', + 'HookToSpecial' => '*', + 'HookToEvent' => array('OnAfterConfigRead'), + 'DoPrefix' => '', + 'DoSpecial' => '*', + 'DoEvent' => 'OnModifyUserProfileConfig', + ), ), 'CatalogItem' => true, @@ -562,4 +573,4 @@ 'RatingDelayValue' => 'topic_RatingDelay_Value', 'RatingDelayInterval' => 'topic_RatingDelay_Interval', ), - ); \ No newline at end of file + ); Index: modules/in-bulletin/units/topics/topics_event_handler.php =================================================================== --- modules/in-bulletin/units/topics/topics_event_handler.php +++ modules/in-bulletin/units/topics/topics_event_handler.php @@ -300,4 +300,45 @@ $manager->subscribe(); } } - } \ No newline at end of file + + /** + * Adds fields for forum preferences. + * + * @param kEvent $event Event. + * + * @return void + */ + protected function OnModifyUserProfileConfig(kEvent $event) + { + $checkbox_field = array( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => array(1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, + 'default' => 0, + ); + $text_field = array('type' => 'string', 'default' => ''); + + $new_virtual_fields = array( + 'show_sig' => $checkbox_field, + 'Perpage_Topics' => $text_field, + 'Perpage_Postings' => $text_field, + 'owner_notify' => $checkbox_field, + 'bb_pm_notify' => $checkbox_field, + 'bbcode' => $checkbox_field, + 'smileys' => $checkbox_field, + 'bb_signatures' => $checkbox_field, + 'my_signature' => $text_field, + ); + + $virtual_fields = $this->Application->getUnitOption( + $event->MasterEvent->Prefix, + 'VirtualFields', + array() + ); + $this->Application->setUnitOption( + $event->MasterEvent->Prefix, + 'VirtualFields', + array_merge($virtual_fields, $new_virtual_fields) + ); + } + + }