Exemplo n.º 1
0
 public static function start()
 {
     //注册AUTOLOAD方法
     spl_autoload_register('Core\\LWH::autoload');
     \Core\Storage::connect('File');
     //选择文件存储引擎
     $mode = (include LWH_PATH . 'Mode/' . APP_MODE . CONF_EXT);
     //模式配置文件
     //加载核心类与函数
     foreach ($mode['core'] as $file) {
         is_file($file) && (include $file);
     }
     //加载配置文件
     foreach ($mode['config'] as $file) {
         is_file($file) && C(include $file);
     }
     date_default_timezone_set(C('DEFAULT_TIMEZONE'));
     //设置时区
     //加载tags行为类
     //注册错误处理函数
     register_shutdown_function('Core\\LWH::fatalError');
     //致命错误处理
     set_error_handler('Core\\LWH::appError');
     //普通错误处理
     // set_exception_handler('Core\LWH::appException');//异常处理自定义throw new \Exception($e);
     \Core\App::run();
 }
Exemplo n.º 2
0
 public function back()
 {
     $app = App::instance();
     if (Str::startsWith($app->request->referrer, 'http://localhost-router/')) {
         header("Location: " . $this->request->referrer);
         exit;
     }
     header("Location: http://localhost-router/");
     exit;
 }
Exemplo n.º 3
0
 public function getParentTexte($parent)
 {
     $dbc = \core\App::getDb();
     $query = $dbc->select("titre")->from("page")->where("ID_page", "=", $parent)->get();
     if (is_array($query) && count($query) > 0) {
         foreach ($query as $obj) {
             $this->parent_texte = $obj->titre;
         }
     }
     return $this->parent_texte;
 }
 public function news($section, $newsId)
 {
     $news = News::findById($newsId);
     if (is_null($news)) {
         App::abort(404, 'Noticia no encontrada');
     }
     $related = News::query()->where('section', '=', $news->section)->limit(0, 2)->get();
     $user = User::get();
     $comments = Comment::query()->where('newsId', '=', $newsId)->get();
     return $this->base('news/news.t', array('comments' => $comments, 'user' => $user, 'news' => $news, 'related' => $related));
 }
 /**
  * @param $id_liste_droit_acces
  * @return integer
  */
 protected function getNombrePageListe($id_liste_droit_acces)
 {
     $dbc = App::getDb();
     $nb_droit_acces_page = 0;
     $query3 = $dbc->query("SELECT count(ID_page) as ID_page FROM droit_acces_page WHERE ID_liste_droit_acces =" . $id_liste_droit_acces);
     if (is_array($query3) && count($query3) > 0) {
         foreach ($query3 as $obj3) {
             $nb_droit_acces_page = $obj3->ID_page;
         }
     }
     return $nb_droit_acces_page;
 }
Exemplo n.º 6
0
 public function setOrdreNavigation($nav)
 {
     $dbc = App::getDb();
     $count_nav = count($nav);
     for ($i = 0; $i < $count_nav; $i++) {
         $lien = explode(".", $nav[$i]);
         if ($lien[1] == "page") {
             $dbc->update("ordre", $i + 1)->from("navigation")->where("ID_page", "=", $lien[0])->set();
         } else {
             $dbc->update("ordre", $i + 1)->from("navigation")->where("ID_module", "=", $lien[0])->set();
         }
     }
     FlashMessage::setFlash("La navigation a été correctement mise à jour", "success");
 }
Exemplo n.º 7
0
 /**
  * fonction qui permet de tester qu'une route existe bien
  * appellee dans redirectError.class.php
  * @param $url
  */
 public function getRouteModuleExist($url)
 {
     $dbc = \core\App::getDb();
     $query = $dbc->select()->from("module")->get();
     if (is_array($query) && count($query) > 0) {
         foreach ($query as $obj) {
             $test_module = ChaineCaractere::FindInString($url, $obj->url);
             $test_module1 = ChaineCaractere::FindInString($url, str_replace("/", "", $obj->url));
             $module_activer = \core\modules\GestionModule::getModuleActiver($obj->nom_module);
             if (($test_module === true || $test_module1 === true) && $module_activer === true) {
                 return true;
             }
         }
     }
 }
Exemplo n.º 8
0
 /**
  * @param string $url
  * fonction qui permet de supprmer un dossier avec toute son abrorescence en fonction d'une URL
  */
 public static function supprimerDossier($url)
 {
     if (is_dir($url)) {
         $objects = scandir($url);
         foreach ($objects as $object) {
             if ($object != "." && $object != "..") {
                 if (filetype($url . "/" . $object) == "dir") {
                     App::supprimerDossier($url . "/" . $object);
                 } else {
                     unlink($url . "/" . $object);
                 }
             }
         }
         reset($objects);
         rmdir($url);
     }
 }
Exemplo n.º 9
0
 /**
  * [__construct]
  */
 private function __construct()
 {
     try {
         //load from config/config.ini
         $config = App::getConfig();
         $this->_dbHost = $config["host"];
         $this->_dbUser = $config["user"];
         $this->_dbPassword = $config["password"];
         $this->_dbName = $config["database"];
         $this->_connection = new \PDO('mysql:host=' . $this->_dbHost . '; dbname=' . $this->_dbName, $this->_dbUser, $this->_dbPassword);
         $this->_connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
         $this->_connection->exec("SET CHARACTER SET utf8");
     } catch (\PDOException $e) {
         print "Error!: " . $e->getMessage();
         die;
     }
 }
Exemplo n.º 10
0
 /**
  * pour récupérer une page en particulier
  * @param $id_page
  */
 public function getContenuPage($id_page = null)
 {
     $dbc = \core\App::getDb();
     if ($id_page == null) {
         $id_page = $this->id_page;
     }
     $query = $dbc->select()->from("page")->where("ID_page", "=", $id_page)->get();
     if (is_array($query) && count($query) > 0) {
         foreach ($query as $obj) {
             $this->id_page = $obj->ID_page;
             $this->titre = $obj->titre;
             $this->contenu = $obj->contenu;
             $this->url = $obj->url;
             $this->parent = $obj->parent;
         }
     }
 }
Exemplo n.º 11
0
 static function start()
 {
     header("Content-type: text/html; charset=utf-8");
     require FRAMEWORK_PATH . 'Core/AutoLoad' . EXT;
     spl_autoload_register('\\Core\\Autoload::Load');
     //注册系统自动加载函数
     set_error_handler('\\Core\\ErrorHandler::errorHandler', E_USER_ERROR);
     //自己的错误处理函数
     //注册错误处理
     //注册异常处理
     //配置加载
     \Core\Config::setConfig(FRAMEWORK_PATH . 'Conf/', array_merge(array(CONFIG), CONFIG_EXTENSION));
     \Core\Routing::routing();
     //根据参数对应到相应的方法
     self::setGet();
     //设置GET变量
     \Core\App::startApp();
 }
Exemplo n.º 12
0
 public function isLogin($data)
 {
     if ($this->isValidate($data)) {
         $username = trim(htmlspecialchars($data['username'], ENT_QUOTES));
         $password = md5(trim(htmlspecialchars($data['password'], ENT_QUOTES)));
         $sql = "SELECT count(*) FROM `users` WHERE `username`=:username AND `password`=:password OR `email`=:username AND `password`=:password";
         $result = $this->getInstance()->prepare($sql);
         $result->execute(array(':username' => $username, ':password' => $password));
         $number_of_rows = $result->fetchColumn();
         if ($number_of_rows > 0) {
             $userId = App::getUserId($username, $password);
             return $userId;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
Exemplo n.º 13
0
 /**
  * fonction qui permet d'upload une image sur le serveur
  * @param $old_image_req
  * @param int $autorize_empty
  * @param int $delete_old_img
  * @return null|boolean -> renvoi false si err sinon renvoi le chemin vers l'img
  */
 public function setEnvoyerImage($name, $old_image_req = null, $autorize_empty = 1, $delete_old_img = 1)
 {
     $dbc = App::getDb();
     $this->old_image = null;
     $this->chemin_image = null;
     $this->nom_image = null;
     $image = $_FILES[$name]['name'];
     if (empty($_FILES[$name]['name']) && $autorize_empty == 0) {
         $this->erreur = "Vous devez obligatoirement ajouter une image";
         return false;
     } else {
         //test si il y a deja une img
         if ($old_image_req != null) {
             $query = $dbc->query($old_image_req);
             if (is_array($query) && count($query) > 0) {
                 foreach ($query as $obj) {
                     $this->old_image = $obj->{$name};
                 }
             }
         }
         //recuperation info sur img
         $uniqid = uniqid();
         $infos_img = getimagesize($_FILES[$name]['tmp_name']);
         if (!in_array(substr($image, -3), $this->autorized_extention) || $infos_img[0] >= $this->width_max && $infos_img[1] >= $this->height_max && $_FILES[$name]['size'] >= $this->poid_max) {
             $this->erreur = "Problème dans les dimensions, taille ou format (extension) de l'image.";
             return false;
         } else {
             if (move_uploaded_file($_FILES[$name]['tmp_name'], $this->dossier_image . "/" . $uniqid . substr($image, -4))) {
                 $imageok = $uniqid . substr($image, -4);
                 $urlimg = $this->dossier_image . "/{$imageok}";
                 $this->chemin_image = $urlimg;
                 $this->nom_image = $imageok;
                 if ($delete_old_img == 1 && $this->old_image != "" && !empty($_FILES[$name]['name'])) {
                     $this->setDeleteImage();
                 }
                 return true;
             } else {
                 $this->erreur = "Impossible d'envoyer votre image sur le serveur, veuillez réessayer dans une instant, si l'erreur se reproduit, contactez votre administrateur";
             }
         }
     }
 }
Exemplo n.º 14
0
 /**
  * 执行当前控制器方法
  *
  * @param string $actionName 方法名
  * @param array $params 参数列表
  * @return Response|mixed
  * @throws AppException
  */
 public function runActionWithParams($actionName, $params = array())
 {
     $server = new HproseServer();
     $server->addFilter(new ServiceFilter());
     $methods = [];
     foreach (get_class_methods($this) as $method) {
         if (substr($method, -6) == 'Action') {
             $methods[$method] = substr($method, 0, -6);
         }
     }
     $server->addMethods(array_keys($methods), $this, array_values($methods));
     if (!\App::isProduction()) {
         $server->setDebugEnabled();
     }
     $server->setCrossDomainEnabled(false);
     $server->setP3PEnabled(false);
     $server->setGetEnabled(true);
     ob_start();
     $server->start();
     $this->response->setContent(ob_get_clean());
     return $this->response;
 }
Exemplo n.º 15
0
        $meta_description = $_POST['meta_description'];
        $titre_page = $_POST['titre_page'];
        $parent = $_POST['parent_texte'];
    } else {
        $contenu_class->getHeadPage($_POST['id_page']);
        $contenu_class->getContenuPage($_POST['id_page']);
        if ($droit_acces->getModifSeo() != 0) {
            $balise_title = $_POST['balise_title'];
            $url = $_POST['url'];
            $meta_description = $_POST['meta_description'];
        } else {
            $balise_title = $contenu_class->getBaliseTitle();
            $url = $contenu_class->getUrl();
            $meta_description = $contenu_class->getMetaDescription();
        }
        if ($droit_acces->getModifNavigation() != 0) {
            $titre_page = $_POST['titre_page'];
            $parent = $_POST['parent_texte'];
        } else {
            $titre_page = $contenu_class->getTitre();
            $parent = $contenu_class->getParent();
        }
    }
    $gestion_contenu->setModifierPage($_POST['id_page'], $balise_title, $url, $meta_description, $titre_page, $parent);
    if (\core\App::getErreur() !== true && $gestion_contenu->getErreur() !== true) {
        \core\HTML\flashmessage\FlashMessage::setFlash("La page " . $_POST['titre_page'] . " a été mise à jour", "success");
    }
} else {
    \core\HTML\flashmessage\FlashMessage::setFlash("Vous n'avez pas l'autorisation de modifier cette page !");
}
header("location:" . ADMWEBROOT . "gestion-contenus/modifier-contenu?id=" . $_POST['id_page']);
Exemplo n.º 16
0
 /**
  * fonction qui récupère la liste des droits d'acces sur les pages en texte en fonction de l'id de la liste
  * @param $id_liste_droit_acces
  */
 public function getListeDroitAccesDetailPage()
 {
     $dbc = \core\App::getDb();
     //récupération des droits d'acces pour les pages
     $query = $dbc->select()->from("liste_droit_acces")->from("droit_acces_page")->from("page")->where("liste_droit_acces.ID_liste_droit_acces", "=", $this->id_liste_droit_acces, "AND")->where("liste_droit_acces.ID_liste_droit_acces", "=", "droit_acces_page.ID_liste_droit_acces", "AND", true)->where("droit_acces_page.ID_page", "=", "page.ID_page", "", true)->get();
     if (is_array($query) && count($query) > 0) {
         $id_page = [];
         $titre_page = [];
         foreach ($query as $obj) {
             $id_page[] = $obj->ID_page;
             $titre_page[] = $obj->titre;
         }
         $this->setListeDroitAccesDetailPage($id_page, $titre_page);
     }
 }
Exemplo n.º 17
0
 /**
  * fonction qui permet de supprimer une page, test si fichier exist, si oui on delete
  * @param $id_page
  */
 public function setSupprimerPage($id_page)
 {
     $dbc = \core\App::getDb();
     //le premier id_page sera tojours l'accueil donc on ne peut pas le delete
     if ($id_page != 1) {
         $this->getContenuPage($id_page);
         $url = explode("/", $this->url);
         $filename = ROOT . "app/views/" . end($url) . ".php";
         //si le fichier existe supprimer en bdd plus l fichier
         if (file_exists($filename)) {
             unlink($filename);
             $dbc->delete()->from("page")->where("ID_page", "=", $id_page)->del();
             $nav = new Navigation();
             $nav->setSupprimerLien("ID_page", $id_page);
         } else {
             FlashMessage::setFlash("Impossible de supprimer cette page, veuillez contacter votre administrateur pour corriger ce problème");
             $this->erreur = true;
         }
     } else {
         FlashMessage::setFlash("Impossible de supprimer cette page, veuillez contacter votre administrateur pour corriger ce problème");
         $this->erreur = true;
     }
 }
Exemplo n.º 18
0
					success: function(data) {
						$("body").prepend(data);
					}
				})
			}
		});
		$("#sortable").disableSelection();
	});
</script>


<div class="inner">
	<div class="contenu modifier-contenu gestion-navigation">
		<ul id="sortable">
			<?php 
foreach (\core\App::getNav()->getNavigation() as $nav) {
    ?>
				<li id="lien_<?php 
    echo $nav[0];
    ?>
.<?php 
    echo $nav[4];
    ?>
"><a href="<?php 
    echo $nav[0];
    ?>
" title="<?php 
    echo $nav[3];
    ?>
"=><?php 
    echo $nav[1];
Exemplo n.º 19
0
 /**
  * @param string $old_mdp
  * @param string $new_mdp
  * @param string $verif_new_mdp
  */
 public function setMdp($old_mdp, $new_mdp, $verif_new_mdp)
 {
     $dbc = \core\App::getDb();
     $mdp = Encrypt::setDecryptMdp($this->mdp, $this->id_identite);
     //si mdp trop court
     if (md5($old_mdp) != $mdp) {
         $err = "Votre mot de passe est incorrect";
         $this->erreur = $err;
     } else {
         if ($new_mdp != $verif_new_mdp) {
             $err = "Vos mots de passe sont différents";
             $this->erreur = $err;
         } else {
             $mdpok = Encrypt::setEncryptMdp($new_mdp, $this->id_identite);
             //le nouveau mdp est bon on update
             $dbc->update("mdp", $mdpok)->from("identite")->where("ID_identite", "=", $this->id_identite)->set();
             $this->mdp = $mdpok;
         }
     }
 }
Exemplo n.º 20
0
 /**
  * permet de récupérer la dernier fois que l'utilisateur s'est connecté au site
  * @param $id_identite
  * @return mixed
  */
 public static function getlastConnexion($id_identite)
 {
     $dbc = App::getDb();
     $query = $dbc->select("last_change_mdp")->from("identite")->where("ID_identite", "=", $id_identite)->get();
     if (is_array($query) && count($query) > 0) {
         foreach ($query as $obj) {
             return $obj->last_change_mdp;
         }
     }
 }
Exemplo n.º 21
0
<?php

// Register autoloader
spl_autoload_register(function ($class) {
    $filename = dirname(__DIR__) . DIRECTORY_SEPARATOR . str_replace('\\', '/', $class) . '.php';
    if (is_readable($filename)) {
        require_once $filename;
    }
});
// Run app
use Core\App;
$app = new App();
$app->run();
Exemplo n.º 22
0
 /**
  * @param $id
  * @param $value_id
  * to delete a link in navigation table
  */
 public function setSupprimerLien($id, $value_id)
 {
     $dbc = App::getDb();
     $dbc->delete()->from("navigation")->where($id, "=", $value_id)->del();
 }
Exemplo n.º 23
0
 /**
  * insertion du super user
  */
 public function setInscrireUtilisateur()
 {
     $dbc = App::getDb();
     $dbc->insert("pseudo", $this->pseudo)->insert("nom", $this->nom)->insert("prenom", $this->prenom)->insert("mdp", Encrypt::setEncryptMdp($this->mdp))->insert("mdp_params", Encrypt::getParams())->insert("last_change_mdp", date("Y-m-d"))->insert("img_profil", "profil/defaut.png")->insert("img_profil_blog", "profil/defaut_blog.png")->insert("valide", 1)->insert("acces_admin", 1)->insert("liste_droit", 0)->insert("super_admin", 1)->into("identite")->set();
 }
Exemplo n.º 24
0
 /**
  * @param $option
  * @param $activer
  * fonction qui permet de modifier une option dans la configuration (responsive, cache...)
  */
 public function setModificerOption($option, $activer)
 {
     $dbc = App::getDb();
     $dbc->update($option, $activer)->from("configuration")->where("ID_configuration", "=", 1)->set();
     FlashMessage::setFlash("L'option {$option} a bien été modifiée", "success");
 }
Exemplo n.º 25
0
 public function getAll()
 {
     return App::getDataBase()->prepare('SELECT * FROM users WHERE usr_id != :id ORDER BY usr_login', ['id' => Session::getInstance()->read('auth')], __CLASS__);
 }
Exemplo n.º 26
0
?>
" class="btn btn-info"><i class="glyphicon glyphicon-file"></i> Nouveau</a>
        </div>
    </div>
    <div class="table-responsive">
        <table class="table text-center">
            <thead>
            <tr>
                <td>Nom du dessin</td>
                <td>Voir</td>
                <td>Supprimer</td>
            </tr>
            </thead>
            <tbody>
                <?php 
$donne = App::getDataBase()->prepare('SELECT * FROM drawings WHERE id_user = :id', ['id' => App::getAuth()->idAuth()]);
if ($donne == false) {
    ?>
                    <tr>
                        <td colspan="3">Pas de dessin.</td>
                    </tr>
                <?php 
} else {
    foreach ($donne as $draw) {
        ?>
                        <tr>
                            <td><?php 
        echo $draw->nom;
        ?>
</td>
                            <td><a href="<?php 
Exemplo n.º 27
0
<?php

use Core\App;
$router = App::instance()->router;
$router->get('/', 'Action\\GetHome');
$router->post('/', 'Action\\GetHome');
$router->get('/test', 'Action\\GetTest');
Exemplo n.º 28
0
 /**
  * @param $id_module
  * fonction qui permet de supprimer un module (suppression des tables + appel fonction supprimer dossier)
  */
 public function setSupprimerModule($id_module)
 {
     $dbc = App::getDb();
     $this->getInfoModule($id_module);
     $dbc->delete()->from("module")->where("ID_module", "=", $id_module)->del();
     $requete = "";
     require_once MODULEROOT . $this->url_module . "uninstall.php";
     $dbc->query($requete);
     App::supprimerDossier(str_replace("/", "", $this->url_module));
 }
Exemplo n.º 29
0
<?php

global $config;
//定义类文件后缀名
const CLASS_EXT = ".class.php";
//定义项目目录
const _ROOT_ = __DIR__ . '/';
//定义项目其他目录
const CONF_PATH = _ROOT_ . 'config/';
const CORE_PATH = _ROOT_ . 'core/';
define('TIME', time());
//引入公共函数
include _ROOT_ . 'functions.php';
include_once CORE_PATH . '/App' . CLASS_EXT;
$app = \core\App::get();
//broadcast
//启动
$app->start();
Exemplo n.º 30
0
 /**
  * @param $activer
  * @param $url
  * fonction qui permet d'activer || désactiver un module
  */
 public static function setActiverDesactiverModule($activer, $url)
 {
     $dbc = App::getDb();
     $dbc->update("activer", $activer)->from("module")->where("url", "=", $url)->set();
     $nav = new Navigation();
     if ($activer == 1) {
         $nav->setAjoutLien("ID_module", self::getUrlToId($url));
     } else {
         $nav->setSupprimerLien("ID_module", self::getUrlToId($url));
     }
 }