1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: if (!defined('XOOPS_ROOT_PATH')) exit();
12:
13: class LegacyImagecategoryObject extends XoopsSimpleObject
14: {
15: var $mImage = array();
16: var $_mImageLoadedFlag = false;
17:
18: 19: 20:
21: var $mReadGroups = array();
22: var $_mReadGroupsLoadedFlag = false;
23:
24: 25: 26:
27: var $mUploadGroups = array();
28: var $_mUploadGroupsLoadedFlag = false;
29:
30:
31: function LegacyImagecategoryObject()
32: {
33: static $initVars;
34: if (isset($initVars)) {
35: $this->mVars = $initVars;
36: return;
37: }
38: $this->initVar('imgcat_id', XOBJ_DTYPE_INT, '', false);
39: $this->initVar('imgcat_name', XOBJ_DTYPE_STRING, '', true, 100);
40: $this->initVar('imgcat_maxsize', XOBJ_DTYPE_INT, '50000', true);
41: $this->initVar('imgcat_maxwidth', XOBJ_DTYPE_INT, '120', true);
42: $this->initVar('imgcat_maxheight', XOBJ_DTYPE_INT, '120', true);
43: $this->initVar('imgcat_display', XOBJ_DTYPE_BOOL, '1', true);
44: $this->initVar('imgcat_weight', XOBJ_DTYPE_INT, '0', true);
45: $this->initVar('imgcat_type', XOBJ_DTYPE_STRING, 'C', true, 1);
46: $this->initVar('imgcat_storetype', XOBJ_DTYPE_STRING, 'file', true, 5);
47: $initVars=$this->mVars;
48: }
49:
50: function loadImage()
51: {
52: if ($this->_mImageLoadedFlag == false) {
53: $handler =& xoops_getmodulehandler('image', 'legacy');
54: $this->mImage =& $handler->getObjects(new Criteria('imagecat_id', $this->get('imagecat_id')));
55: $this->_mImageLoadedFlag = true;
56: }
57: }
58:
59: function &createImage()
60: {
61: $handler =& xoops_getmodulehandler('image', 'legacy');
62: $obj =& $handler->create();
63: $obj->set('imagecat_id', $this->get('imagecat_id'));
64: return $obj;
65: }
66:
67: function getImageCount()
68: {
69: $handler =& xoops_getmodulehandler('image', 'legacy');
70: return $handler->getCount(new Criteria('imgcat_id', $this->get('imgcat_id')));
71: }
72:
73: function loadReadGroups()
74: {
75: if ($this->_mReadGroupsLoadedFlag) {
76: return;
77: }
78:
79: $handler =& xoops_gethandler('groupperm');
80: $gidArr = $handler->getGroupIds('imgcat_read', $this->get('imgcat_id'));
81:
82: $handler =& xoops_gethandler('group');
83: foreach ($gidArr as $gid) {
84: $object =& $handler->get($gid);
85:
86: if (is_object($object)) {
87: $this->mReadGroups[] =& $object;
88: }
89:
90: unset($object);
91: }
92:
93: $this->_mReadGroupsLoadedFlag = true;
94: }
95:
96: function isLoadedReadGroups()
97: {
98: return $this->_mReadGroupsLoadedFlag;
99: }
100:
101: 102: 103:
104: function hasReadPerm($groups)
105: {
106: $this->loadReadGroups();
107: foreach (array_keys($this->mReadGroups) as $key) {
108: foreach ($groups as $group) {
109: if ($this->mReadGroups[$key]->get('groupid') == $group) {
110: return true;
111: }
112: }
113: }
114:
115: return false;
116: }
117:
118: function loadUploadGroups()
119: {
120: if ($this->_mUploadGroupsLoadedFlag) {
121: return;
122: }
123:
124: $handler =& xoops_gethandler('groupperm');
125: $gidArr = $handler->getGroupIds('imgcat_write', $this->get('imgcat_id'));
126:
127: $handler =& xoops_gethandler('group');
128: foreach ($gidArr as $gid) {
129: $object =& $handler->get($gid);
130:
131: if (is_object($object)) {
132: $this->mUploadGroups[] =& $object;
133: }
134:
135: unset($object);
136: }
137:
138: $this->_mUploadGroupsLoadedFlag = true;
139: }
140:
141: function isLoadedUploadGroups()
142: {
143: return $this->_mUploadGroupsLoadedFlag;
144: }
145:
146: function hasUploadPerm($groups)
147: {
148: $this->loadUploadGroups();
149: foreach (array_keys($this->mUploadGroups) as $key) {
150: foreach ($groups as $group) {
151: if ($this->mUploadGroups[$key]->get('groupid') == $group) {
152: return true;
153: }
154: }
155: }
156:
157: return false;
158: }
159: }
160:
161: class LegacyImagecategoryHandler extends XoopsObjectGenericHandler
162: {
163: var $mTable = "imagecategory";
164: var $mPrimary = "imgcat_id";
165: var $mClass = "LegacyImagecategoryObject";
166:
167: function insert(&$obj, $force = false)
168: {
169: $returnFlag = parent::insert($obj, $force);
170:
171: $handler =& xoops_getmodulehandler('group_permission', 'legacy');
172:
173:
174:
175:
176: if ($obj->isLoadedReadGroups()) {
177: $criteria =new CriteriaCompo();
178: $criteria->add(new Criteria('gperm_itemid', $obj->get('imgcat_id')));
179: $criteria->add(new Criteria('gperm_modid', 1));
180: $criteria->add(new Criteria('gperm_name', 'imgcat_read'));
181: $handler->deleteAll($criteria);
182:
183: foreach ($obj->mReadGroups as $group) {
184: $perm =& $handler->create();
185: $perm->set('gperm_groupid', $group->get('groupid'));
186: $perm->set('gperm_itemid', $obj->get('imgcat_id'));
187: $perm->set('gperm_modid', 1);
188: $perm->set('gperm_name', 'imgcat_read');
189:
190: $returnFlag &= $handler->insert($perm, $force);
191: }
192: }
193:
194:
195:
196:
197: if ($obj->isLoadedUploadGroups()) {
198: $criteria =new CriteriaCompo();
199: $criteria->add(new Criteria('gperm_itemid', $obj->get('imgcat_id')));
200: $criteria->add(new Criteria('gperm_modid', 1));
201: $criteria->add(new Criteria('gperm_name', 'imgcat_write'));
202: $handler->deleteAll($criteria);
203:
204: foreach ($obj->mUploadGroups as $group) {
205: $perm =& $handler->create();
206: $perm->set('gperm_groupid', $group->get('groupid'));
207: $perm->set('gperm_itemid', $obj->get('imgcat_id'));
208: $perm->set('gperm_modid', 1);
209: $perm->set('gperm_name', 'imgcat_write');
210:
211: $returnFlag &= $handler->insert($perm, $force);
212: }
213: }
214:
215: return $returnFlag;
216: }
217:
218: function &getObjectsWithReadPerm($groups = array(), $display = null)
219: {
220: $criteria = new CriteriaCompo();
221: if ($display != null) {
222: $criteria->add(new Criteria('imgcat_display', $display));
223: }
224: $criteria->setSort('imgcat_weight');
225: $objs =& $this->getObjects($criteria);
226: unset($criteria);
227:
228: $ret = array();
229: foreach (array_keys($objs) as $key) {
230: if ($objs[$key]->hasReadPerm($groups)) {
231: $ret[] =& $objs[$key];
232: }
233: }
234:
235: return $ret;
236: }
237:
238: function delete(&$obj, $force = false)
239: {
240: $handler =& xoops_getmodulehandler('image', 'legacy');
241: $handler->deleteAll(new Criteria('imgcat_id', $obj->get('imgcat_id')));
242: unset($handler);
243:
244: $handler =& xoops_getmodulehandler('group_permission', 'legacy');
245: $criteria =new CriteriaCompo();
246: $criteria->add(new Criteria('gperm_itemid', $obj->get('imgcat_id')));
247: $criteria->add(new Criteria('gperm_modid', 1));
248:
249: $nameCriteria =new CriteriaCompo();
250: $nameCriteria->add(new Criteria('gperm_name', 'imgcat_read'));
251: $nameCriteria->add(new Criteria('gperm_name', 'imgcat_write'), 'OR');
252:
253: $criteria->add($nameCriteria);
254:
255: $handler->deleteAll($criteria);
256:
257: return parent::delete($obj, $force);
258: }
259: }
260:
261: ?>
262: