18 public $_mImageLoadedFlag =
false;
24 public $_mReadGroupsLoadedFlag =
false;
30 public $_mUploadGroupsLoadedFlag =
false;
33 public function __construct()
36 if (isset($initVars)) {
37 $this->mVars = $initVars;
40 $this->initVar(
'imgcat_id', XOBJ_DTYPE_INT,
'',
false);
41 $this->initVar(
'imgcat_name', XOBJ_DTYPE_STRING,
'',
true, 100);
42 $this->initVar(
'imgcat_maxsize', XOBJ_DTYPE_INT,
'1024000',
true);
43 $this->initVar(
'imgcat_maxwidth', XOBJ_DTYPE_INT,
'800',
true);
44 $this->initVar(
'imgcat_maxheight', XOBJ_DTYPE_INT,
'400',
true);
45 $this->initVar(
'imgcat_display', XOBJ_DTYPE_BOOL,
'1',
true);
46 $this->initVar(
'imgcat_weight', XOBJ_DTYPE_INT,
'0',
true);
47 $this->initVar(
'imgcat_type', XOBJ_DTYPE_STRING,
'C',
true, 1);
48 $this->initVar(
'imgcat_storetype', XOBJ_DTYPE_STRING,
'file',
true, 5);
49 $initVars=$this->mVars;
52 public function loadImage()
54 if (
false === $this->_mImageLoadedFlag) {
55 $handler =& xoops_getmodulehandler(
'image',
'legacy');
56 $this->mImage =& $handler->getObjects(
new Criteria(
'imagecat_id', $this->
get(
'imagecat_id')));
57 $this->_mImageLoadedFlag =
true;
61 public function &createImage()
63 $handler =& xoops_getmodulehandler(
'image',
'legacy');
64 $obj =& $handler->create();
65 $obj->set(
'imagecat_id', $this->
get(
'imagecat_id'));
69 public function getImageCount()
71 $handler =& xoops_getmodulehandler(
'image',
'legacy');
72 return $handler->getCount(
new Criteria(
'imgcat_id', $this->
get(
'imgcat_id')));
75 public function loadReadGroups()
77 if ($this->_mReadGroupsLoadedFlag) {
81 $handler =& xoops_gethandler(
'groupperm');
82 $gidArr = $handler->getGroupIds(
'imgcat_read', $this->
get(
'imgcat_id'));
84 $handler =& xoops_gethandler(
'group');
85 foreach ($gidArr as $gid) {
86 $object =& $handler->get($gid);
88 if (is_object($object)) {
89 $this->mReadGroups[] =& $object;
95 $this->_mReadGroupsLoadedFlag =
true;
98 public function isLoadedReadGroups()
100 return $this->_mReadGroupsLoadedFlag;
110 $this->loadReadGroups();
111 foreach (array_keys($this->mReadGroups) as $key) {
112 foreach ($groups as $group) {
113 if ($this->mReadGroups[$key]->
get(
'groupid') == $group) {
122 public function loadUploadGroups()
124 if ($this->_mUploadGroupsLoadedFlag) {
128 $handler =& xoops_gethandler(
'groupperm');
129 $gidArr = $handler->getGroupIds(
'imgcat_write', $this->
get(
'imgcat_id'));
131 $handler =& xoops_gethandler(
'group');
132 foreach ($gidArr as $gid) {
133 $object =& $handler->get($gid);
135 if (is_object($object)) {
136 $this->mUploadGroups[] =& $object;
142 $this->_mUploadGroupsLoadedFlag =
true;
145 public function isLoadedUploadGroups()
147 return $this->_mUploadGroupsLoadedFlag;
150 public function hasUploadPerm($groups)
152 $this->loadUploadGroups();
153 foreach (array_keys($this->mUploadGroups) as $key) {
154 foreach ($groups as $group) {
155 if ($this->mUploadGroups[$key]->
get(
'groupid') == $group) {
167 public $mTable =
'imagecategory';
168 public $mPrimary =
'imgcat_id';
169 public $mClass =
'LegacyImagecategoryObject';
171 public function insert(&$obj, $force =
false)
173 $returnFlag = parent::insert($obj, $force);
175 $handler =& xoops_getmodulehandler(
'group_permission',
'legacy');
180 if ($obj->isLoadedReadGroups()) {
182 $criteria->add(
new Criteria(
'gperm_itemid', $obj->get(
'imgcat_id')));
183 $criteria->add(
new Criteria(
'gperm_modid', 1));
184 $criteria->add(
new Criteria(
'gperm_name',
'imgcat_read'));
185 $handler->deleteAll($criteria);
187 foreach ($obj->mReadGroups as $group) {
188 $perm =& $handler->create();
189 $perm->set(
'gperm_groupid', $group->get(
'groupid'));
190 $perm->set(
'gperm_itemid', $obj->get(
'imgcat_id'));
191 $perm->set(
'gperm_modid', 1);
192 $perm->set(
'gperm_name',
'imgcat_read');
194 $returnFlag &= $handler->insert($perm, $force);
201 if ($obj->isLoadedUploadGroups()) {
203 $criteria->add(
new Criteria(
'gperm_itemid', $obj->get(
'imgcat_id')));
204 $criteria->add(
new Criteria(
'gperm_modid', 1));
205 $criteria->add(
new Criteria(
'gperm_name',
'imgcat_write'));
206 $handler->deleteAll($criteria);
208 foreach ($obj->mUploadGroups as $group) {
209 $perm =& $handler->create();
210 $perm->set(
'gperm_groupid', $group->get(
'groupid'));
211 $perm->set(
'gperm_itemid', $obj->get(
'imgcat_id'));
212 $perm->set(
'gperm_modid', 1);
213 $perm->set(
'gperm_name',
'imgcat_write');
215 $returnFlag &= $handler->insert($perm, $force);
222 public function &getObjectsWithReadPerm($groups = [], $display =
null)
225 if (
null !== $display) {
226 $criteria->add(
new Criteria(
'imgcat_display', $display));
228 $criteria->setSort(
'imgcat_weight');
233 foreach (array_keys($objs) as $key) {
234 if ($objs[$key]->hasReadPerm($groups)) {
235 $ret[] =& $objs[$key];
242 public function delete(&$obj, $force =
false)
244 $handler =& xoops_getmodulehandler(
'image',
'legacy');
245 $handler->deleteAll(
new Criteria(
'imgcat_id', $obj->get(
'imgcat_id')));
248 $handler =& xoops_getmodulehandler(
'group_permission',
'legacy');
250 $criteria->add(
new Criteria(
'gperm_itemid', $obj->get(
'imgcat_id')));
251 $criteria->add(
new Criteria(
'gperm_modid', 1));
254 $nameCriteria->add(
new Criteria(
'gperm_name',
'imgcat_read'));
255 $nameCriteria->add(
new Criteria(
'gperm_name',
'imgcat_write'),
'OR');
257 $criteria->add($nameCriteria);
259 $handler->deleteAll($criteria);
261 return parent::delete($obj, $force);