/** * a $item -ben adott temakor rekordhoz Jdownloads kategoria * létrehozása vagy modositása * FIGYELEM a tulajdonos témakörhöz meg kell, hogy legyen már a JDowloads kategoria! * @param mysql record object $item * @return boolean */ protected function storeJdownloadsCategory($newId, $item) { $result = true; // Jtable objektum elérése $db = JFactory::getDBO(); $model = new jdownloadsModelcategory(); // parent Jdownloads category elérése $db->setQuery('SELECT * FROM #__jdownloads_categories WHERE alias="t' . $item->szulo . '"'); $szulo = $db->loadObject(); if ($szulo == false) { $szulo = new stdClass(); $szulo->id = 1; $szulo->cat_dir_parent = ''; $szulo->cat_dir = ''; } // old record load from database $db->setQuery('SELECT * FROM #__jdownloads_categories WHERE alias="t' . $newId . '"'); $old = $db->loadObject(); if ($db->getErrorNum() > 0) { $db->stderr(); } if ($old == false) { $old = new stdClass(); $old->cat_dir_parent = 'li-de temakoeroek es szavazasok'; } $data = array(); // data fields update foreach ($old as $fn => $fv) { if (!isset($item->{$fn})) { $data[$fn] = $fv; } } if ($old->id > 0) { $data['id'] = $old->id; } $data['parent_id'] = $szulo->id; $data['published'] = 1; $data['title'] = $item->megnevezes; $data['description'] = $item->leiras; $data['alias'] = 't' . $newId; $data['cat_dir'] = 'T' . $newId; $data['access'] = 1; if ($szulo->cat_dir_parent == '') { $data['cat_dir_parent'] = $szulo->cat_dir; } else { $data['cat_dir_parent'] = $szulo->cat_dir_parent . '/' . $szulo->cat_dir; } $data['language'] = '*'; $data['pic'] = 'folder.png'; // rekord store $result = $model->save($data, true); // false paraméternél hibát jelez // könyvtár ellenörzés ha kell létrehozás $path = './jdownloads/' . $data['cat_dir_parent'] . $data['cat_dir']; if (is_dir($path) == false) { mkdir($path, 0777); } // usergroup el�r�se $db->setQuery('SELECT id FROM #__usergroups WHERE title like "[' . $newId . ']%"'); $res = $db->loadObject(); if ($db->getErrorNum() > 0) { $db->stderr(); } if ($res) { $gr = $res->id; } else { $gr = 0; } // Jdownloads category jogosultságok beállítása // $item->lathatosag: 0-mindenki, 1-regisztraltak, 2-téma tagok // usergoups 1:public, 2:Registered, 3:Author, 4:Editor, 6:Manager, 8:superuser, más: usergroup_id if ($item->lathatosag == 0) { // mindenki $rules = '{"core.create":{"' . $gr . '":1}, "core.delete":{"' . $gr . '":1}, "core.edit":{"' . $gr . '":1}, "core.edit.state":{"' . $gr . '":1}, "core.edit.own":{"' . $gr . '":1}, "download":{"1":1} }'; } if ($item->lathatosag == 1) { // regisztráltak $rules = '{"core.create":{"' . $gr . '":1}, "core.delete":{"' . $gr . '":1}, "core.edit":{"' . $gr . '":1}, "core.edit.state":{"' . $gr . '":1}, "core.edit.own":{"' . $gr . '":1}, "download":{"2":1} }'; } if ($item->lathatosag == 2) { // téma tagok if ($gr > 0) { $rules = '{"core.create":{"' . $gr . '":1}, "core.delete":{"' . $gr . '":1}, "core.edit":{"' . $gr . '":1}, "core.edit.state":{"' . $gr . '":1}, "core.edit.own":{"' . $gr . '":1}, "download":{"' . $gr . '":1} }'; } else { $rules = '{"core.create":{"1":0,"2":1}, "core.delete":{"1":0,"2":1}, "core.edit":{"1":0,"2":1}, "core.edit.state":{"1":0,"2":1}, "core.edit.own":{"1":0,"2":1}, "download":{"1":0,"2":1} }'; } } $db->setQuery('UPDATE #__assets SET rules="' . mysql_escape_string($rules) . '" WHERE name="com_jdownloads.category.' . $data['id'] . '"'); $result = $db->query(); if ($db->getErrorNum() > 0) { $db->stderr(); } //DBG echo $db->getQuery(); exit(); return $result; }
/** * a $item -ben adott temakor rekordhoz Jdownloads kategoria * létrehozása vagy modositása * FIGYELEM a tulajdonos témakörhöz meg kell, hogy legyen már a JDowloads kategoria! * @param mysql record object $item * @return boolean */ protected function storeJdownloadsCategory($newId, $item) { $result = true; $db = JFactory::getDBO(); $model = new jdownloadsModelcategory(); $user = JFactory::getUser($item->user_id); // parent Jdownloads category elérése $szulo = new stdClass(); $szulo->id = 1; $szulo->cat_dir_parent = ''; $szulo->cat_dir = ''; // old record load from database $db->setQuery('SELECT * FROM #__jdownloads_categories WHERE alias="k' . $newId . '"'); $old = $db->loadObject(); if ($db->getErrorNum() > 0) { $db->stderr(); } if ($old == false) { $old = new stdClass(); $old->cat_dir_parent = 'li-de temakoeroek es szavazasok'; } $data = array(); // data fields update foreach ($old as $fn => $fv) { if (!isset($item->{$fn})) { $data[$fn] = $fv; } } if ($old->id > 0) { $data['id'] = $old->id; } $data['parent_id'] = $szulo->id; $data['published'] = 1; $data['title'] = $user->name; $data['description'] = ''; $data['alias'] = 'k' . $newId; $data['cat_dir'] = 'K' . $newId; $data['access'] = 1; if ($szulo->cat_dir_parent == '') { $data['cat_dir_parent'] = $szulo->cat_dir; } else { $data['cat_dir_parent'] = $szulo->cat_dir_parent . '/' . $szulo->cat_dir; } $data['language'] = '*'; $data['pic'] = 'folder.png'; // rekord store $result = $model->save($data, true); // false paraméternél hibát jelez // könyvtár ellenörzés ha kell létrehozás $path = './jdownloads/' . $data['cat_dir']; if (is_dir($path) == false) { mkdir($path, 0777); } // Jdownloads category jogosultságok beállítása // $item->lathatosag: 0-mindenki, 1-regisztraltak, 2-téma tagok // usergoups 1:public, 2:Registered, 3:Author, 4:Editor, 6:Manager, 8:superuser, más: usergroup_id // mindenki $rules = ''; $db->setQuery('UPDATE #__assets SET rules="' . mysql_escape_string($rules) . '" WHERE name="com_jdownloads.category.' . $newId . '"'); $result = $db->query(); if ($db->getErrorNum() > 0) { $db->stderr(); } return $result; }