示例#1
0
 public static function getJoomlaTemplate($client = 'site')
 {
     static $template = array();
     if (!array_key_exists($client, $template)) {
         $clientId = $client == 'site' ? 0 : 1;
         $db = DiscussHelper::getDbo();
         if (DiscussHelper::isJoomla15()) {
             $query = 'SELECT template FROM `#__templates_menu`' . ' WHERE client_id = ' . $db->quote($clientId) . ' AND menuid = 0';
         } else {
             $query = 'SELECT template FROM `#__template_styles` AS s' . ' LEFT JOIN `#__extensions` AS e ON e.type = `template` AND e.element=s.template AND e.client_id=s.client_id' . ' WHERE s.client_id = ' . $db->quote($clientId) . ' AND home = 1';
         }
         $db->setQuery($query);
         // Fallback template
         if (!($result = $db->loadResult())) {
             $result = $client == 'site' ? 'beez_20' : 'bluestork';
         }
         $template[$client] = $result;
     }
     return $template[$client];
 }
示例#2
0
 public function diplayRole()
 {
     // Initialise variables
     $mainframe = JFactory::getApplication();
     $roleId = JRequest::getVar('role_id', '');
     $role = DiscussHelper::getTable('Role');
     $role->load($roleId);
     $role->title = JString::trim($role->title);
     $this->role = $role;
     // Set default values for new entries.
     if (empty($role->created_time)) {
         $date = DiscussHelper::getHelper('Date')->dateWithOffSet();
         $role->created_time = $date->toFormat();
         $role->published = true;
     }
     $groups = DiscussHelper::getJoomlaUserGroups();
     // Remove the selected usergroups
     $db = DiscussHelper::getDbo();
     $query = 'SELECT `usergroup_id` FROM `#__discuss_roles`';
     $db->setQuery($query);
     $result = $db->loadResultArray();
     if (!empty($result)) {
         foreach ($groups as $key => $group) {
             if (in_array($group->id, $result) && $group->id != $role->usergroup_id) {
                 unset($groups[$key]);
             }
         }
     }
     $usergroupList = JHTML::_('select.genericlist', $groups, 'usergroup_id', 'class="full-width"', 'id', 'name', $role->usergroup_id);
     $this->assignRef('role', $role);
     $this->assignRef('usergroupList', $usergroupList);
     $colors = array();
     $colors[] = JHTML::_('select.option', 'success', JText::_('COM_EASYDISCUSS_LABEL_COLORCODE_SUCCESS'));
     $colors[] = JHTML::_('select.option', 'warning', JText::_('COM_EASYDISCUSS_LABEL_COLORCODE_WARNING'));
     $colors[] = JHTML::_('select.option', 'important', JText::_('COM_EASYDISCUSS_LABEL_COLORCODE_IMPORTANT'));
     $colors[] = JHTML::_('select.option', 'info', JText::_('COM_EASYDISCUSS_LABEL_COLORCODE_INFO'));
     $colors[] = JHTML::_('select.option', 'inverse', JText::_('COM_EASYDISCUSS_LABEL_COLORCODE_INVERSE'));
     $colorList = JHTML::_('select.genericlist', $colors, 'colorcode', 'class="full-width"', 'value', 'text', $role->colorcode);
     $this->assignRef('colorList', $colorList);
     parent::display('edit');
 }
示例#3
0
 public function removeACL()
 {
     $db = DiscussHelper::getDbo();
     $query = 'DELETE FROM `#__discuss_category_acl_map`' . ' WHERE `category_id` = ' . $db->quote($this->id) . ' AND `type` = ' . $db->quote('group');
     $db->setQuery($query);
     $db->query();
     return true;
 }
示例#4
0
 /**
  * Get subscribers according to type
  */
 public static function getSubscribers($type, $cid, $categoryId, $params = array(), $excludes = array())
 {
     $db = DiscussHelper::getDbo();
     $query = 'SELECT `content_id` FROM `#__discuss_category_acl_map`';
     $query .= ' WHERE `category_id` = ' . $db->Quote($categoryId);
     $query .= ' AND `acl_id` = ' . $db->Quote(DISCUSS_CATEGORY_ACL_ACTION_VIEW);
     $query .= ' AND `type` = ' . $db->Quote('group');
     $db->setQuery($query);
     $categoryGrps = $db->loadResultArray();
     if (!empty($categoryGrps)) {
         $result = array();
         $aclItems = array();
         $nonAclItems = array();
         // Site members
         $queryCatIds = implode(',', $categoryGrps);
         if (DiscussHelper::getJoomlaVersion() >= '1.6') {
             $query = 'SELECT ds.* FROM `#__discuss_subscription` AS ds';
             $query .= ' INNER JOIN `#__user_usergroup_map` as um on um.`user_id` = ds.`userid`';
             $query .= ' WHERE ds.`interval` = ' . $db->Quote('instant');
             $query .= ' AND ds.`type` = ' . $db->Quote($type);
             $query .= ' AND ds.`cid` = ' . $db->Quote($cid);
             $query .= ' AND um.`group_id` IN (' . $queryCatIds . ')';
         } else {
             $query = 'SELECT ds.* FROM `#__discuss_subscription` AS ds';
             $query .= ' INNER JOIN `#__core_acl_aro` as caa on caa.`value` = ds.`userid`';
             $query .= ' INNER JOIN `#__core_acl_groups_aro_map` as cagam on cagam.`aro_id` = caa.`id`';
             $query .= ' WHERE ds.`interval` = ' . $db->Quote('instant');
             $query .= ' AND ds.`type` = ' . $db->Quote($type);
             $query .= ' AND ds.`cid` = ' . $db->Quote($cid);
             $query .= ' AND cagam.`group_id` IN (' . $queryCatIds . ')';
         }
         $db->setQuery($query);
         $aclItems = $db->loadObjectList();
         // Now get the guest subscribers
         if (in_array('1', $categoryGrps) || in_array('0', $categoryGrps)) {
             $query = 'SELECT * FROM `#__discuss_subscription` AS ds';
             $query .= ' WHERE ds.`interval` = ' . $db->Quote('instant');
             $query .= ' AND ds.`type` = ' . $db->Quote($type);
             $query .= ' AND ds.`cid` = ' . $db->Quote($cid);
             $query .= ' AND ds.`userid` = ' . $db->Quote('0');
             $db->setQuery($query);
             $nonAclItems = $db->loadObjectList();
         }
         $result = array_merge($aclItems, $nonAclItems);
     } else {
         $query = 'SELECT * FROM `#__discuss_subscription` ' . ' WHERE `type` = ' . $db->Quote($type) . ' AND `cid` = ' . $db->Quote($cid) . ' AND `interval` = ' . $db->Quote('instant');
         // Add email exclusions if there are any exclusions
         if (!empty($excludes)) {
             $excludes = !is_array($excludes) ? array($excludes) : $excludes;
             $query .= 'AND ' . $db->nameQuote('email') . ' NOT IN(';
             for ($i = 0; $i < count($excludes); $i++) {
                 $query .= $db->Quote($excludes[$i]);
                 if (next($excludes) !== false) {
                     $query .= ',';
                 }
             }
             $query .= ')';
         }
         $db->setQuery($query);
         $result = $db->loadObjectList();
     }
     //lets run another checking to ensure the emails doesnt exists in exclude array
     $finalResult = array();
     if (count($excludes) > 0 && count($result) > 0) {
         foreach ($result as $item) {
             $email = $item->email;
             if (!in_array($email, $excludes)) {
                 $finalResult[] = $item;
             }
         }
     }
     if (empty($excludes)) {
         $finalResult = $result;
     }
     return $finalResult;
 }