Example #1
0
    /**
     * 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;
    }
Example #2
0
 /**
  * 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;
 }