Beispiel #1
0
 function __construct()
 {
     // adatbáziskapcsolat létrehozása
     $this->connect = DI::get('connect');
     // request objektum
     $this->request = DI::get('request');
     // hozzárendeljük a query tulajdonsághoz a Query objektumot
     // ez a query tulajdonság a gyerek model-ek bármelyik metódusában elérhető
     // megkapja paraméterként az adatbáziskapcsolatot
     $this->query = new Query($this->connect);
     //default tábla beállítása
     $this->query->set_default_table($this->table);
 }
Beispiel #2
0
 /**
  * Kijelentkezés
  */
 public function logout()
 {
     DI::get('auth')->logout();
     // átirányítás a front-oldalra
     $this->response->redirect();
 }
Beispiel #3
0
 /**
  * 	A felhasználó képét tölti fel a szerverre, és készít egy kisebb méretű képet is.
  *
  * 	Ez a metódus kettő XHR kérést dolgoz fel.
  * 	Meghívásakor kap egy id nevű paramétert melynek értékei upload vagy crop
  * 		upload paraméterrel meghívva: feltölti a kiválasztott képet
  * 		crop paraméterrel meghívva: megvágja az eredeti képet és feltölti	
  */
 public function client_img_upload()
 {
     if ($this->request->is_ajax()) {
         // feltöltés helye
         $upload_path = Config::get('clientphoto.upload_path');
         if ($this->request->has_params('upload')) {
             //képkezelő objektum létrehozása (a kép a szerveren a tmp könyvtárba kerül)
             $image = new Uploader($this->request->getFiles('img'));
             $tempfilename = 'temp_' . uniqid();
             $width = Config::get('clientphoto.width', 150);
             $image->allowed(array('image/*'));
             $image->resize($width, null);
             $image->save($upload_path, $tempfilename);
             if ($image->checkError()) {
                 $this->response->json(array("status" => 'error', "message" => $image->getError()));
             } else {
                 $this->response->json(array("status" => 'success', "url" => $upload_path . $image->getDest('filename'), "width" => $image->getDest('width'), "height" => $image->getDest('height')));
             }
         } else {
             if ($this->request->has_params('crop')) {
                 // a croppic js küldi ezeket a POST adatokat
                 $imgUrl = $this->request->get_post('imgUrl');
                 // original sizes
                 $imgInitW = $this->request->get_post('imgInitW');
                 $imgInitH = $this->request->get_post('imgInitH');
                 // resized sizes
                 //kerekítjük az értéket, mert lebegőpotos számot is kaphatunk és ez hibát okozna a kép generálásakor
                 $imgW = round($this->request->get_post('imgW'));
                 $imgH = round($this->request->get_post('imgH'));
                 // offsets
                 // megadja, hogy mennyit kell vágni a kép felső oldalából
                 $top_crop = $this->request->get_post('imgY1');
                 // megadja, hogy mennyit kell vágni a kép bal oldalából
                 $left_crop = $this->request->get_post('imgX1');
                 // crop box
                 $cropW = $this->request->get_post('cropW');
                 $cropH = $this->request->get_post('cropH');
                 // rotation angle
                 //$angle = $this->request->get_post('rotation'];
                 //a $right_crop megadja, hogy mennyit kell vágni a kép jobb oldalából
                 $right_crop = $imgW - $left_crop - $cropW;
                 //a $bottom_crop megadja, hogy mennyit kell vágni a kép aljából
                 $bottom_crop = $imgH - $top_crop - $cropH;
                 //képkezelő objektum létrehozása (a feltöltött kép elérése a paraméter)
                 $image = new Uploader($imgUrl);
                 $newfilename = 'client_' . md5(uniqid());
                 $image->resize($imgW, null);
                 $image->crop(array($top_crop, $right_crop, $bottom_crop, $left_crop));
                 $image->save($upload_path, $newfilename);
                 if ($image->checkError()) {
                     $this->response->json(array("status" => 'error', "message" => $image->getError()));
                 } else {
                     // temp kép törlése
                     DI::get('file_helper')->delete($imgUrl);
                     $this->response->json(array("status" => 'success', "url" => $upload_path . $image->getDest('filename')));
                 }
             }
         }
     }
     //is_ajax
 }
Beispiel #4
0
 function __construct()
 {
     Session::init();
     $this->request = DI::get('request');
     $this->response = DI::get('response');
 }
Beispiel #5
0
 /**
  *	Kategória törlése (AJAX)
  */
 public function category_delete()
 {
     if ($this->request->is_ajax()) {
         if (1) {
             $id = $this->request->get_post('item_id', 'integer');
             // a sikeres törlések számát tárolja
             $success_counter = 0;
             // a sikertelen törlések számát tárolja
             $fail_counter = 0;
             // lekérdezzük a törlendő képek nevét
             $photo_names_temp = $this->blog_model->selectPictureWhereCategory($id);
             $photo_names = array();
             foreach ($photo_names_temp as $key => $value) {
                 $photo_names[] = $value['picture'];
             }
             unset($photo_names_temp);
             // blogbejegyzések törlése, amik a törlendő kategóriához tartoznak
             $result = $this->blog_model->deleteWhereCategory($id);
             // képek törlése
             if ($result !== false) {
                 if ($result > 0) {
                     // helperek példányosítása
                     $file_helper = DI::get('file_helper');
                     $url_helper = DI::get('url_helper');
                     foreach ($photo_names as $value) {
                         $picture_path = Config::get('blogphoto.upload_path') . $value;
                         $thumb_picture_path = $url_helper->thumbPath($picture_path);
                         //képek file törlése
                         $file_helper->delete(array($picture_path, $thumb_picture_path));
                     }
                 }
             }
             // kategória törlése a blog_category táblából
             $result = $this->blogcategory_model->deleteCategory($id);
             if ($result !== false) {
                 // ha a törlési sql parancsban nincs hiba
                 if ($result > 0) {
                     $success_counter += $result;
                 } else {
                     //sikertelen törlés
                     $fail_counter++;
                 }
             } else {
                 // ha a törlési sql parancsban hiba van
                 $this->response->json(array('status' => 'error', 'message_error' => 'Hibas sql parancs: nem sikerult a DELETE lekerdezes az adatbazisbol!'));
             }
             // üzenetek visszaadása
             $respond = array();
             $respond['status'] = 'success';
             if ($success_counter > 0) {
                 $respond['message_success'] = 'Kategória törölve.';
             }
             if ($fail_counter > 0) {
                 $respond['message_error'] = 'A kategóriát már törölték!';
             }
             // respond tömb visszaadása
             $this->response->json($respond);
         } else {
             $this->response->json(array('status' => 'error', 'message' => 'Nincs engedélye a művelet végrehajtásához!'));
         }
     }
 }
Beispiel #6
0
    return new \System\Libs\Router();
});
DI::set('request', function ($c) {
    return new \System\Libs\Request($c['uri'], $c['router']);
});
DI::set('response', function () {
    return new \System\Libs\Response();
});
DI::set('auth', function () {
    return new \System\Libs\Auth();
});
// helpers ---------------
DI::set('file_helper', function () {
    return new \System\Helper\File();
});
DI::set('str_helper', function () {
    return new \System\Helper\Str();
});
DI::set('url_helper', function () {
    return new \System\Helper\Url();
});
DI::set('arr_helper', function () {
    return new \System\Helper\Arr();
});
/*
	DI::factory('query', function($c){
		return new \System\Libs\Query($c['connect']);
	});
*/
// application objektum példányosítása
$application = new Application();
Beispiel #7
0
 /**
  * Helperek példányosítása
  * @param array $helpers
  */
 public function setHelper(array $helpers)
 {
     foreach ($helpers as $helper) {
         if (!isset($this->{$helper})) {
             $this->{$helper} = DI::get($helper);
         }
     }
 }
 private function _loadController()
 {
     $router = DI::get('router');
     /* **************************************************** */
     /* *************** SITE ******************************* */
     /* **************************************************** */
     if (AREA == 'site') {
         $router->get('/', 'home@index');
         $router->set404('error@index');
     } elseif (AREA == 'admin') {
         $router->mount('/admin', function () use($router) {
             $router->before('GET|POST', '/?((?!login).)*', function () {
                 if (!Auth::check()) {
                     $response = DI::get('response');
                     $response->redirect('admin/login');
                 }
             });
             $router->get('/', 'home@index');
             $router->get('/home', 'home@index');
             // login logout
             $router->match('GET|POST', '/login', 'login@index');
             $router->get('/login/logout', 'login@logout');
             // pages
             $router->get('/pages', 'pages@index');
             $router->match('GET|POST', '/pages/update/:id', 'pages@update', array('id'));
             // content
             $router->get('/content', 'content@index');
             $router->match('GET|POST', '/content/edit/:id', 'content@edit', array('id'));
             // user
             $router->get('/user', 'user@index');
             $router->match('GET|POST', '/user/insert', 'user@insert');
             $router->match('GET|POST', '/user/profile/:id', 'user@profile', array('id'));
             $router->post('/user/delete', 'user@delete');
             $router->post('/user/change_status', 'user@change_status');
             $router->post('/user/user_img_upload/(upload)', 'user@user_img_upload', array('upload'));
             $router->post('/user/user_img_upload/(crop)', 'user@user_img_upload', array('crop'));
             $router->match('GET|POST', '/user/user_roles', 'user@user_roles');
             $router->match('GET|POST', '/user/edit_roles/:id', 'user@edit_roles', array('id'));
             // photo gallery
             $router->get('/photo-gallery', 'photo_gallery@index');
             $router->post('/photo-gallery/delete_photo', 'photo_gallery@delete_photo');
             $router->post('/photo-gallery/delete_category', 'photo_gallery@delete_category');
             $router->match('GET|POST', '/photo-gallery/insert', 'photo_gallery@insert');
             $router->match('GET|POST', '/photo-gallery/update/:id', 'photo_gallery@update', array('id'));
             $router->get('/photo-gallery/category', 'photo_gallery@category');
             // slider
             $router->get('/slider', 'slider@index');
             $router->post('/slider/delete', 'slider@delete');
             $router->match('GET|POST', '/slider/insert', 'slider@insert');
             $router->match('GET|POST', '/slider/update/:id', 'slider@update', array('id'));
             $router->post('/slider/order', 'slider@order');
             // testimonials
             $router->get('/testimonials', 'testimonials@index');
             $router->match('GET|POST', '/testimonials/insert', 'testimonials@insert');
             $router->match('GET|POST', '/testimonials/update/:id', 'testimonials@update', array('id'));
             $router->get('/testimonials/delete/:id', 'testimonials@delete', array('id'));
             // clients
             $router->get('/clients', 'clients@index');
             $router->post('/clients/client_img_upload/(upload)', 'clients@client_img_upload', array('upload'));
             $router->post('/clients/client_img_upload/(crop)', 'clients@client_img_upload', array('crop'));
             $router->post('/clients/delete', 'clients@delete');
             $router->match('GET|POST', '/clients/insert', 'clients@insert');
             $router->match('GET|POST', '/clients/update/:id', 'clients@update', array('id'));
             $router->post('/clients/order', 'clients@order');
             // file manager
             $router->get('/file_manager', 'file_manager@index');
             // settings
             $router->match('GET|POST', '/settings', 'settings@index');
             // user manual
             $router->get('/user-manual', 'user_manual@index');
             // languages
             $router->get('/languages', 'languages@index');
             $router->post('/languages/save', 'languages@save');
             // newsletter
             $router->get('/newsletter', 'newsletter@index');
             $router->get('/newsletter/newsletter_stats', 'newsletter@newsletter_stats');
             $router->post('/newsletter/delete', 'newsletter@delete');
             $router->match('GET|POST', '/newsletter/insert', 'newsletter@insert');
             $router->match('GET|POST', '/newsletter/update/:id', 'newsletter@update', array('id'));
             // blog
             $router->get('/blog', 'blog@index');
             $router->post('/blog/delete', 'blog@delete');
             $router->match('GET|POST', '/blog/insert', 'blog@insert');
             $router->match('GET|POST', '/blog/update/:id', 'blog@update', array('id'));
             $router->get('/blog/category', 'blog@category');
             $router->post('/blog/category_insert_update', 'blog@category_insert_update');
             $router->post('/blog/category_delete', 'blog@category_delete');
             // error
             $router->set404('error@index');
         });
     }
     // dispatcher objektum példányosítása
     $dispatcher = new \System\Libs\Dispatcher();
     // controller névtérének beállítása
     $dispatcher->setControllerNamespace('System\\' . ucfirst(AREA) . '\\Controller\\');
     // before útvonalak bejárása, a megadott elemek futtatása
     $before_callbacks = $router->runBefore();
     $dispatcher->dispatch($before_callbacks);
     // útvonalak bejárása, controller példányosítása, action indítása
     $callback = $router->run();
     $dispatcher->dispatch($callback);
 }
Beispiel #9
0
 /**
  * Felhasználó engedélyének ellenőrzése a megadott művlethez 
  * 
  * @param string $permission    egy művelet neve pl.: delete_user 
  * @param string $target_url    egy átirányítási hely, ha nincs engedély 
  * @return void
  */
 public static function hasAccess($permission, $target_url = null)
 {
     //$instance = self::instance();
     $instance = DI::get('auth');
     // !!!! ha nincs a permissions táblában a megadott permission, akkor automatikusan engedélyezve lesz
     /*
     if (!$instance->checkPermission($permission)) {
        return true;
     }
     */
     // ha még nincsenek lekérdezve a felhasználó permission-jai
     if (is_null($instance->permissions)) {
         if (Auth::isUserLoggedIn()) {
             $role_id = $instance->getRoleId();
             $instance->permissions = $role_id == 1 ? '*' : $instance->getRolePerms($role_id);
             //$instance->permissions = $instance->getRolePerms($role_id);
         } else {
             $instance->permissions = array();
         }
     }
     if ($instance->_checkAccess($permission)) {
         return true;
     } else {
         if (!is_null($target_url)) {
             $instance->_accessDenied($permission, $target_url);
         }
         return false;
     }
 }
Beispiel #10
0
 /**
  *  Slider törlése AJAX-al
  */
 public function delete()
 {
     if ($this->request->is_ajax()) {
         if (Auth::hasAccess('slider.delete')) {
             // a POST-ban kapott item_id egy tömb
             $id_arr = $this->request->get_post('item_id');
             // a sikeres törlések számát tárolja
             $success_counter = 0;
             // a sikeresen törölt id-ket tartalmazó tömb
             $success_id = array();
             // a sikertelen törlések számát tárolja
             $fail_counter = 0;
             $file_helper = DI::get('file_helper');
             $url_helper = DI::get('url_helper');
             // bejárjuk a $id_arr tömböt és minden elemen végrehajtjuk a törlést
             foreach ($id_arr as $id) {
                 //átalakítjuk a integer-ré a kapott adatot
                 $id = (int) $id;
                 //lekérdezzük a törlendő blog képének a nevét, hogy törölhessük a szerverről
                 $photo_name = $this->slider_model->selectPicture($id);
                 //blog törlése
                 $result = $this->slider_model->delete($id);
                 if ($result !== false) {
                     // ha a törlési sql parancsban nincs hiba
                     if ($result > 0) {
                         //ha van feltöltött képe a bloghoz (az adatbázisban szerepel a file-név)
                         if (!empty($photo_name)) {
                             $picture_path = Config::get('slider.upload_path') . $photo_name;
                             $thumb_picture_path = $url_helper->thumbPath($picture_path);
                             $file_helper->delete(array($picture_path, $thumb_picture_path));
                         }
                         //sikeres törlés
                         $success_counter += $result;
                         $success_id[] = $id;
                     } else {
                         //sikertelen törlés
                         $fail_counter += 1;
                     }
                 } else {
                     // ha a törlési sql parancsban hiba van
                     $this->response->json(array('status' => 'error', 'message_error' => 'Hibas sql parancs: nem sikerult a DELETE lekerdezes az adatbazisbol!'));
                 }
             }
             // üzenetek visszaadása
             $respond = array();
             $respond['status'] = 'success';
             if ($success_counter > 0) {
                 $respond['message_success'] = 'A slide törölve.';
             }
             if ($fail_counter > 0) {
                 $respond['message_error'] = 'A slide-ot már töröltek!';
             }
             // respond tömb visszaadása
             $this->response->json($respond);
         } else {
             $this->response->json(array('status' => 'error', 'message' => 'Nincs engedélye a művelet végrehajtásához!'));
         }
     }
 }