public function test_insert()
 {
     $instance = new $this->myClass($this->conn, 'groups', 'XoopsGroup', 'groupid', 'name');
     $obj = new XoopsGroup();
     $obj->setDirty();
     $value = $instance->insert($obj);
     $this->assertSame('', $value);
 }
Esempio n. 2
0
 /**
  * retrieve groups from the database
  *
  * @param  CriteriaElement $criteria  {@link CriteriaElement} with conditions for the groups
  * @param  bool            $id_as_key should the groups' IDs be used as keys for the associative array?
  * @return mixed           Array of groups
  */
 public function getObjects(CriteriaElement $criteria = null, $id_as_key = false)
 {
     $ret = array();
     $limit = $start = 0;
     $sql = 'SELECT * FROM ' . $this->db->prefix('groups');
     if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
         $sql .= ' ' . $criteria->renderWhere();
         $limit = $criteria->getLimit();
         $start = $criteria->getStart();
     }
     $result = $this->db->query($sql, $limit, $start);
     if (!$result) {
         return $ret;
     }
     while ($myrow = $this->db->fetchArray($result)) {
         $group = new XoopsGroup();
         $group->assignVars($myrow);
         if (!$id_as_key) {
             $ret[] =& $group;
         } else {
             $ret[$myrow['groupid']] =& $group;
         }
         unset($group);
     }
     return $ret;
 }
Esempio n. 3
0
 /**
  * __construct
  *
  * @param XoopsGroup|XoopsObject &$obj group object
  */
 public function __construct(XoopsGroup &$obj)
 {
     $xoops = Xoops::getInstance();
     if ($obj->isNew()) {
         $s_cat_value = '';
         $a_mod_value = array();
         $r_mod_value = array();
         $r_block_value = array();
     } else {
         $sysperm_handler = $xoops->getHandlerGroupperm();
         $s_cat_value = $sysperm_handler->getItemIds('system_admin', $obj->getVar('groupid'));
         $member_handler = $xoops->getHandlerMember();
         $thisgroup = $member_handler->getGroup($obj->getVar('groupid'));
         $moduleperm_handler = $xoops->getHandlerGroupperm();
         $a_mod_value = $moduleperm_handler->getItemIds('module_admin', $thisgroup->getVar('groupid'));
         $r_mod_value = $moduleperm_handler->getItemIds('module_read', $thisgroup->getVar('groupid'));
         $gperm_handler = $xoops->getHandlerGroupperm();
         $r_block_value = $gperm_handler->getItemIds('block_read', $obj->getVar('groupid'));
     }
     include_once $xoops->path('/modules/system/constants.php');
     $title = $obj->isNew() ? SystemLocale::ADD_NEW_GROUP : SystemLocale::EDIT_GROUP;
     parent::__construct($title, "groupform", 'admin.php', "post", true);
     $this->setExtra('enctype="multipart/form-data"');
     $name_text = new Xoops\Form\Text(SystemLocale::GROUP_NAME, "name", 4, 50, $obj->getVar('name'));
     $desc_text = new Xoops\Form\TextArea(SystemLocale::GROUP_DESCRIPTION, "desc", $obj->getVar('description'));
     $system_catids = new Xoops\Form\ElementTray(SystemLocale::SYSTEM_ADMIN_RIGHTS, '');
     $s_cat_checkbox_all = new Xoops\Form\Checkbox('', "catbox", 1);
     $s_cat_checkbox_all->addOption('allbox', XoopsLocale::ALL);
     $s_cat_checkbox_all->setExtra(" onclick='xoopsCheckGroup(\"groupform\", \"catbox\" , \"system_catids[]\");' ");
     $s_cat_checkbox_all->setClass('xo-checkall');
     $system_catids->addElement($s_cat_checkbox_all);
     $s_cat_checkbox = new Xoops\Form\Checkbox('', "system_catids", $s_cat_value);
     //$s_cat_checkbox->columns = 6;
     $admin_dir = \XoopsBaseConfig::get('root-path') . '/modules/system/admin/';
     $dirlist = XoopsLists::getDirListAsArray($admin_dir);
     foreach ($dirlist as $file) {
         include \XoopsBaseConfig::get('root-path') . '/modules/system/admin/' . $file . '/xoops_version.php';
         if (!empty($modversion['category'])) {
             if ($xoops->getModuleConfig('active_' . $file, 'system') == 1) {
                 $s_cat_checkbox->addOption($modversion['category'], $modversion['name']);
             }
         }
         unset($modversion);
     }
     unset($dirlist);
     $system_catids->addElement($s_cat_checkbox);
     $admin_mids = new Xoops\Form\ElementTray(SystemLocale::MODULE_ADMIN_RIGHTS, '');
     $s_admin_checkbox_all = new Xoops\Form\Checkbox('', "adminbox", 1);
     $s_admin_checkbox_all->addOption('allbox', XoopsLocale::ALL);
     $s_admin_checkbox_all->setExtra(" onclick='xoopsCheckGroup(\"groupform\", \"adminbox\" , \"admin_mids[]\");' ");
     $s_admin_checkbox_all->setClass('xo-checkall');
     $admin_mids->addElement($s_admin_checkbox_all);
     $a_mod_checkbox = new Xoops\Form\Checkbox('', "admin_mids[]", $a_mod_value);
     //$a_mod_checkbox->columns = 5;
     $module_handler = $xoops->getHandlerModule();
     $criteria = new CriteriaCompo(new Criteria('hasadmin', 1));
     $criteria->add(new Criteria('isactive', 1));
     $criteria->add(new Criteria('dirname', 'system', '<>'));
     $a_mod_checkbox->addOptionArray($module_handler->getNameList($criteria));
     $admin_mids->addElement($a_mod_checkbox);
     $read_mids = new Xoops\Form\ElementTray(SystemLocale::MODULE_ACCESS_RIGHTS, '');
     $s_mod_checkbox_all = new Xoops\Form\Checkbox('', "readbox", 1);
     $s_mod_checkbox_all->addOption('allbox', XoopsLocale::ALL);
     $s_mod_checkbox_all->setExtra(" onclick='xoopsCheckGroup(\"groupform\", \"readbox\" , \"read_mids[]\");' ");
     $s_mod_checkbox_all->setClass('xo-checkall');
     $read_mids->addElement($s_mod_checkbox_all);
     $r_mod_checkbox = new Xoops\Form\Checkbox('', "read_mids[]", $r_mod_value);
     //$r_mod_checkbox->columns = 5;
     $criteria = new CriteriaCompo(new Criteria('hasmain', 1));
     $criteria->add(new Criteria('isactive', 1));
     $r_mod_checkbox->addOptionArray($module_handler->getNameList($criteria));
     $read_mids->addElement($r_mod_checkbox);
     $criteria = new CriteriaCompo(new Criteria('isactive', 1));
     $criteria->setSort("mid");
     $criteria->setOrder("ASC");
     $module_list = $module_handler->getNameList($criteria);
     $module_list[0] = SystemLocale::CUSTOM_BLOCK;
     $block_handler = $xoops->getHandlerBlock();
     $blocks_obj = $block_handler->getDistinctObjects(new Criteria("mid", "('" . implode("', '", array_keys($module_list)) . "')", "IN"), true);
     $blocks_module = array();
     foreach (array_keys($blocks_obj) as $bid) {
         $title = $blocks_obj[$bid]->getVar("title");
         $blocks_module[$blocks_obj[$bid]->getVar('mid')][$blocks_obj[$bid]->getVar('bid')] = empty($title) ? $blocks_obj[$bid]->getVar("name") : $title;
     }
     ksort($blocks_module);
     $r_block_tray = new Xoops\Form\ElementTray(SystemLocale::BLOCK_ACCESS_RIGHTS, "<br /><br />");
     $s_checkbox_all = new Xoops\Form\Checkbox('', "blocksbox", 1);
     $s_checkbox_all->addOption('allbox', XoopsLocale::ALL);
     $s_checkbox_all->setExtra(" onclick='xoopsCheckGroup(\"groupform\", \"blocksbox\" , \"read_bids[]\");' ");
     $s_checkbox_all->setClass('xo-checkall');
     $r_block_tray->addElement($s_checkbox_all);
     foreach (array_keys($blocks_module) as $mid) {
         $new_blocks_array = array();
         foreach ($blocks_module[$mid] as $key => $value) {
             $new_blocks_array[$key] = "<a href='" . \XoopsBaseConfig::get('url') . "/modules/system/admin.php?fct=blocksadmin&amp;op=edit&amp;bid={$key}' " . "title='ID: {$key}' rel='external'>{$value}</a>";
         }
         $r_block_checkbox = new Xoops\Form\Checkbox('<strong>' . $module_list[$mid] . '</strong><br />', "read_bids[]", $r_block_value);
         //$r_block_checkbox->columns = 5;
         $r_block_checkbox->addOptionArray($new_blocks_array);
         $r_block_tray->addElement($r_block_checkbox);
         unset($r_block_checkbox);
     }
     if (!$obj->isNew()) {
         $this->addElement(new Xoops\Form\Hidden('g_id', $obj->getVar('groupid')));
         $this->addElement(new Xoops\Form\Hidden("op", "groups_save_update"));
     } else {
         $this->addElement(new Xoops\Form\Hidden("op", "groups_save_add"));
     }
     $this->addElement(new Xoops\Form\Hidden('fct', 'groups'));
     $this->addElement($name_text, true);
     $this->addElement($desc_text);
     $this->addElement($system_catids);
     $this->addElement($admin_mids);
     $this->addElement($read_mids);
     $this->addElement($r_block_tray);
     $this->addElement(new Xoops\Form\Button("", "submit", XoopsLocale::A_SUBMIT, "submit"));
 }
Esempio n. 4
0
 /**
  * retrieve a specific group
  * 
  * @param int $id ID of the group to get
  * @return object XoopsGroup reference to the group object, FALSE if failed
  */
 function &get($id)
 {
     $ret = false;
     if (intval($id) > 0) {
         $sql = 'SELECT * FROM ' . $this->db->prefix('groups') . ' WHERE groupid=' . $id;
         if ($result = $this->db->query($sql)) {
             $numrows = $this->db->getRowsNum($result);
             if ($numrows == 1) {
                 $group = new XoopsGroup();
                 $group->assignVars($this->db->fetchArray($result));
                 $ret =& $group;
             }
         }
     }
     return $ret;
 }
Esempio n. 5
0
 /**
  *
  */
 public function __construct()
 {
     parent::__construct();
 }
Esempio n. 6
0
 public function test_setToGroups()
 {
     $instance = $this->object;
     $group = new XoopsGroup();
     $group->assignVar('groupid', 1);
     $groups = array($group);
     $instance->setToGroups($groups);
     $x = $this->getPropertyValue('toUsers');
     $this->assertTrue(is_array($x));
     $this->assertInstanceOf('XoopsUser', $x[0]);
 }
Esempio n. 7
0
 function __constrcut()
 {
     parent::__construct();
 }
Esempio n. 8
0
 /**
  * delete a group
  *
  * @param  XoopsGroup $group reference to the group to delete
  * @return bool   FALSE if failed
  */
 public function deleteGroup(XoopsGroup $group)
 {
     $s1 = $this->membershipHandler->deleteAll(new Criteria('groupid', $group->getVar('groupid')));
     $s2 = $this->groupHandler->delete($group);
     return $s1 && $s2;
     // ? true : false;
 }
Esempio n. 9
0
 public function test_xoopsClone()
 {
     $instance = new XoopsGroup();
     $clone = $instance->xoopsClone();
     $this->assertInstanceOf('XoopsGroup', $clone);
     $this->assertTrue($clone->isNew());
     // the only difference between instance and clone
     $x = $clone->getVars();
     $y = $instance->getVars();
     $this->assertSame($y, $x);
 }