function SugarFeedDashlet($id, $def = null)
 {
     global $current_user, $app_strings, $app_list_strings;
     require 'modules/SugarFeed/metadata/dashletviewdefs.php';
     $this->myItemsOnly = false;
     parent::DashletGeneric($id, $def);
     $this->myItemsOnly = false;
     $this->isConfigurable = true;
     $this->hasScript = true;
     // Add in some default categories.
     $this->categories['ALL'] = translate('LBL_ALL', 'SugarFeed');
     // Need to get the rest of the active SugarFeed modules
     $module_list = SugarFeed::getActiveFeedModules();
     // Translate the category names
     if (!is_array($module_list)) {
         $module_list = array();
     }
     foreach ($module_list as $module) {
         if ($module == 'UserFeed') {
             // Fake module, need to translate specially
             $this->categories[$module] = translate('LBL_USER_FEED', 'SugarFeed');
         } else {
             $this->categories[$module] = $app_list_strings['moduleList'][$module];
         }
     }
     if (empty($def['title'])) {
         $this->title = translate('LBL_HOMEPAGE_TITLE', 'SugarFeed');
     }
     if (!empty($def['rows'])) {
         $this->displayRows = $def['rows'];
     }
     if (!empty($def['categories'])) {
         $this->selectedCategories = $def['categories'];
     }
     $this->searchFields = $dashletData['SugarFeedDashlet']['searchFields'];
     $this->columns = $dashletData['SugarFeedDashlet']['columns'];
     $catCount = count($this->categories);
     ACLController::filterModuleList($this->categories, false);
     if (count($this->categories) < $catCount) {
         if (!empty($this->selectedCategories)) {
             ACLController::filterModuleList($this->selectedCategories, true);
         } else {
             $this->selectedCategories = array_keys($this->categories);
             unset($this->selectedCategories[0]);
         }
     }
     $this->seedBean = new SugarFeed();
 }
 function __construct($id, $def = null)
 {
     global $current_user, $app_strings, $app_list_strings;
     require_once 'modules/SugarFeed/metadata/dashletviewdefs.php';
     $this->myItemsOnly = false;
     parent::__construct($id, $def);
     $this->myItemsOnly = false;
     $this->isConfigurable = true;
     $this->hasScript = true;
     $pattern = array();
     $pattern[] = "/-/";
     $pattern[] = "/[0-9]/";
     $replacements = array();
     $replacements[] = '';
     $replacements[] = '';
     $this->idjs = preg_replace($pattern, $replacements, $this->id);
     // Add in some default categories.
     $this->categories['ALL'] = translate('LBL_ALL', 'SugarFeed');
     // Need to get the rest of the active SugarFeed modules
     $module_list = SugarFeed::getActiveFeedModules();
     // Translate the category names
     if (!is_array($module_list)) {
         $module_list = array();
     }
     foreach ($module_list as $module) {
         if ($module == 'UserFeed') {
             // Fake module, need to translate specially
             $this->categories[$module] = translate('LBL_USER_FEED', 'SugarFeed');
         } else {
             $this->categories[$module] = $app_list_strings['moduleList'][$module];
         }
     }
     // Need to add the external api's here
     $this->externalAPIList = ExternalAPIFactory::getModuleDropDown('SugarFeed', true);
     if (!is_array($this->externalAPIList)) {
         $this->externalAPIList = array();
     }
     foreach ($this->externalAPIList as $apiObj => $apiName) {
         $this->categories[$apiObj] = $apiName;
     }
     if (empty($def['title'])) {
         $this->title = translate('LBL_HOMEPAGE_TITLE', 'SugarFeed');
     }
     if (!empty($def['rows'])) {
         $this->displayRows = $def['rows'];
     }
     if (!empty($def['categories'])) {
         $this->selectedCategories = $def['categories'];
     }
     if (!empty($def['userfeed_created'])) {
         $this->userfeed_created = $def['userfeed_created'];
     }
     $this->searchFields = $dashletData['SugarFeedDashlet']['searchFields'];
     $this->columns = $dashletData['SugarFeedDashlet']['columns'];
     $twitter_enabled = $this->check_enabled('twitter');
     $facebook_enabled = $this->check_enabled('facebook');
     if ($facebook_enabled) {
         $this->categories["Facebook"] = "Facebook";
     }
     if ($twitter_enabled) {
         $this->categories["Twitter"] = "Twitter";
     }
     $catCount = count($this->categories);
     ACLController::filterModuleList($this->categories, false);
     if (count($this->categories) < $catCount) {
         if (!empty($this->selectedCategories)) {
             ACLController::filterModuleList($this->selectedCategories, true);
         } else {
             $this->selectedCategories = array_keys($this->categories);
             unset($this->selectedCategories[0]);
         }
     }
     $this->seedBean = new SugarFeed();
 }
 public function testgetActiveFeedModules()
 {
     $result = SugarFeed::getActiveFeedModules();
     $expected = array('UserFeed' => 'UserFeed', 'Cases' => 'Cases', 'Contacts' => 'Contacts', 'Leads' => 'Leads', 'Opportunities' => 'Opportunities');
     $this->assertEquals($expected, $result);
 }