Page MenuHomeIn-Portal Phabricator

D211.id504.diff
No OneTemporary

File Metadata

Created
Mon, Oct 6, 5:32 PM

D211.id504.diff

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)
+ );
+ }
+
+ }

Event Timeline