run(); //admin require_once 'activities/Admin/Admin.php'; require_once 'activities/Admin/Category.php'; require_once ("activities/Admin/Dashboard.php"); require_once 'activities/Admin/Post.php'; require_once 'activities/Admin/Banner.php'; require_once 'activities/Admin/User.php'; require_once 'activities/Admin/Comment.php'; require_once 'activities/Admin/Menu.php'; require_once ("activities/Admin/WebSetting.php"); //auth require_once 'activities/Auth/Auth.php'; //Home require_once ("activities/Home.php"); //helpers spl_autoload_register(function($className){ $path = BASE_PATH . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR; $className = str_replace('\\', DIRECTORY_SEPARATOR, $className); include $path . $className . '.php'; }); function jalaliDate($date) { return jDate::forge($date)->format('%A, %d %B %y'); } // uri('admin/category', 'Admin\Category', 'index'); function uri($reservedUrl, $class, $method, $requestMethod = "GET") { // current url array $currentUrl = explode('?', currentUrl())[0]; $currentUrl = str_replace(CURRENT_DOMAIN, '', $currentUrl); $currentUrl = trim($currentUrl, '/'); $currentUrlArray = explode('/', $currentUrl); $currentUrlArray = array_filter($currentUrlArray); // reserved url array $reservedUrl = trim($reservedUrl, '/'); $reservedUrlArray = explode('/', $reservedUrl); $reservedUrlArray = array_filter($reservedUrlArray); // admin/category/create // admin/category/create if(sizeof($currentUrlArray) != sizeof($reservedUrlArray) || methodField() != $requestMethod){ return false; } // admin/category/edit/2 // admin/category/edit/{id} $parameters = []; for($key = 0; $key < sizeof($currentUrlArray); $key++) { if($reservedUrlArray[$key][0] == '{' && $reservedUrlArray[$key][strlen($reservedUrlArray[$key]) - 1] == "}") { array_push($parameters, $currentUrlArray[$key]); } elseif($currentUrlArray[$key] !== $reservedUrlArray[$key]){ // admin/category/delete/2 // admin/category/edit/{id} return false; } } if(methodField() == 'POST') { $request = isset($_FILES) ? array_merge($_POST, $_FILES) : $_POST; $parameters = array_merge([$request], $parameters); } $object = new $class; call_user_func_array(array($object, $method), $parameters); // Category // $category = new Category; // $category->index(); exit; } function asset($src) { $domain = trim(CURRENT_DOMAIN, '/ '); $src = $domain . '/' . trim($src, '/ '); return $src; } function url($url) { $domain = trim(CURRENT_DOMAIN, '/ '); $url = $domain . '/' . trim($url, '/ '); return $url; } function protocol() { return stripos($_SERVER['SERVER_PROTOCOL'], 'https') === true ? 'https://' : 'http://'; } function current_domain(){ return protocol() . $_SERVER['HTTP_HOST']; } // echo current_domain(); function currentUrl(){ return current_domain() . $_SERVER['REQUEST_URI']; } // echo currentUrl(); function methodField(){ return $_SERVER['REQUEST_METHOD']; } // echo methodField(); function dd($vars){ echo '
';
        var_dump($vars);
        exit;

}

// dd('hi');

function displayError($displayError){

        if($displayError){
                ini_set('display_errors', 1);
                ini_set('display_startup_errors', 1);
                error_reporting(E_ALL);
        }
        else{
                ini_set('display_errors', 0);
                ini_set('display_startup_errors', 0);
                error_reporting(0);
        }

}

displayError(DISPLAY_ERROR);

global $flashMessage;

if(isset($_SESSION['flash_message'])){
        $flashMessage = $_SESSION['flash_message'];
        unset($_SESSION['flash_message']);
}


function flash($name, $value = null)
{

        if($value === null){

                global $flashMessage;
                $message = isset($flashMessage[$name]) ? $flashMessage[$name] : '';
                return $message;
        }
        else{
                $_SESSION['flash_message'][$name] = $value;
        }


        
}

// flash('cart', 'محصول با موفقیت به سبد خرید شما اضافه شد');
// flash('register', 'ثبت نام شما با موفقیت انجام شد');
// echo flash('cart');
// echo flash('register');
// flash('hasaan');
// flash('cart', 'محصول با موفقیت به سبد خرید شما اضافه شد');


//dashboard
uri('admin','Admin\Dashboard','index');


//category
uri('admin/category', 'Admin\Category', 'index');
uri('admin/category/create', 'Admin\Category', 'create');
uri('admin/category/store', 'Admin\Category', 'store', "POST");
uri('admin/category/edit/{id}', 'Admin\Category', 'edit');
uri('admin/category/update/{id}', 'Admin\Category', 'update', "POST");
uri('admin/category/delete/{id}', 'Admin\Category', 'delete');


//post
uri('admin/post', 'Admin\Post', 'index');
uri('admin/post/create', 'Admin\Post', 'create');
uri('admin/post/store', 'Admin\Post', 'store', "POST");
uri('admin/post/edit/{id}', 'Admin\Post', 'edit');
uri('admin/post/update/{id}', 'Admin\Post', 'update', "POST");
uri('admin/post/delete/{id}', 'Admin\Post', 'delete');
uri('admin/post/breaking-news/{id}', 'Admin\Post', 'breakingNews');
uri('admin/post/selected/{id}', 'Admin\Post', 'selected');


// banners

uri('admin/banner', 'Admin\Banner', 'index');
uri('admin/banner/create', 'Admin\Banner', 'create');
uri('admin/banner/store', 'Admin\Banner', 'store', 'POST');
uri('admin/banner/edit/{id}', 'Admin\Banner', 'edit');
uri('admin/banner/update/{id}', 'Admin\Banner', 'update', 'POST');
uri('admin/banner/delete/{id}', 'Admin\Banner', 'delete');



// users

uri('admin/user', 'Admin\User', 'index');
uri('admin/user/edit/{id}', 'Admin\User', 'edit');
uri('admin/user/update/{id}', 'Admin\User', 'update', 'POST');
uri('admin/user/delete/{id}', 'Admin\User', 'delete');
uri('admin/user/permission/{id}', 'Admin\User', 'permission');


//comments
uri('admin/comment', 'Admin\Comment', 'index');
uri('admin/comment/change-status/{id}', 'Admin\Comment', 'changeStatus');



// menu

uri('admin/menu', 'Admin\Menu', 'index');
uri('admin/menu/create', 'Admin\Menu', 'create');
uri('admin/menu/store', 'Admin\Menu', 'store', 'POST');
uri('admin/menu/edit/{id}', 'Admin\Menu', 'edit');
uri('admin/menu/update/{id}', 'Admin\Menu', 'update', 'POST');
uri('admin/menu/delete/{id}', 'Admin\Menu', 'delete');



//web setting
uri('admin/web-setting','Admin\WebSetting','index');
uri('admin/web-setting/set','Admin\WebSetting','set');
uri('admin/web-setting/store','Admin\WebSetting','store','POST');




// Auth
uri('register','Auth\Auth','register');
uri('register/store','Auth\Auth','registerStore', "POST");
uri('activation/{verify_token}','Auth\Auth','activation');
uri('login','Auth\Auth','login');
uri('check-login','Auth\Auth','checkLogin', "POST");
uri('logout','Auth\Auth','logout');
uri('forgot','Auth\Auth','forgot');
uri('forgot/request','Auth\Auth','forgotRequest', "POST");
uri('reset-password-form/{forgot_token}','Auth\Auth','resetPasswordView');
uri('reset-password/{forgot_token}','Auth\Auth','resetPassword', "POST");



//home
uri('/','App\Home','index');
uri('home','App\Home','index');
uri('show-post/{id}','App\Home','show');
uri('show-category/{id}','App\Home','category');
uri('comment-store','App\Home','commentStore', 'POST');




echo '404 - not found';
exit;