浏览代码

Amélioration Admin et modèles

Moulin Mathieu 4 年之前
父节点
当前提交
9bc2e146ef

+ 42 - 0
admin/css/db_object.css

@@ -0,0 +1,42 @@
+p{
+        margin: 0;
+}
+p, td, th, li, input, select, textarea {
+        font-size: inherit;
+}
+form.db_object{
+        width: auto;
+        font-size: 0.85em;
+}
+form.db_object table{
+        width: 100%;
+}
+form.db_object th{
+        text-align: left;
+}
+form.db_object th.label{
+        width: 250px;
+}
+form.db_object td.field_img img {
+        max-width: 100%;
+}
+form.db_object td.field input{
+        width: 100%;
+}
+form.db_object td.field input.number{
+        width: 14em;
+}
+form.db_object td.field  textarea{
+        width: 100%;
+        height: 10em;
+}
+form.db_object td.field  textarea.richtext{
+        height: 20em;
+}
+.list td, .list th{
+        vertical-align: top;
+}
+.list th{
+        text-align: left;
+}
+

+ 128 - 0
admin/template/form/db_object.form.tpl.php

@@ -0,0 +1,128 @@
+<form class="db_object" method="post" action="?id=<?php echo $object->id; ?>" enctype="multipart/form-data">
+<table>
+<?php if ($object->id) { ?>
+<tr>
+	<th>ID</th>
+	<td><?php echo $object->id; ?><input name="id" type="hidden" value="<?php echo $object->id; ?>" /></td>
+</tr>
+<?php } ?>
+<?php foreach($classname()->_fields as $name=>$field) if (in_array($field['type'], $classname()->field_simple) && (empty($field["calculate"])) && ($object->id || empty($field["notinsert"])) && (!$object->id || empty($field["notupdate"]))) { ?>
+<tr>
+	<th class="label"><?php echo $field["label"]; ?> :</th>
+	<td class="field<?php echo " field_".$field["type"]; ?>"><?php
+	if (!empty($field["readonly"]))
+		echo "<script type=\"text/javascript\">$(document).ready(function(){ $('.db_object [name=".$name."]').attr('disabled','true'); });</script>\n";
+	if ($field["type"] == "text")
+	{
+		echo "<textarea name=\"".$name."\">".$object->$name."</textarea>";
+	}
+	elseif ($field["type"] == "richtext")
+	{
+		echo "<textarea class=\"ckeditor\" id=\"".$name."\" name=\"".$name."\">".$object->$name."</textarea>";
+	}
+	elseif ($field["type"] == "string")
+	{
+		echo "<input name=\"".$name."\" value=\"".htmlentities($object->$name, ENT_COMPAT, "UTF-8")."\" />";
+	}
+	elseif ($field["type"] == "password")
+	{
+		echo "<input type=\"password\" name=\"".$name."\" value=\"".$object->$name."\" />";
+	}
+	elseif ($field["type"] == "object")
+	{
+		$object_class = $field["object_type"];
+		if ($object_class()->count() < 20)
+		{
+		?>
+		<select name="<?php echo $name; ?>"><option value="">--</option><?php
+		foreach ($object_class()->select() as $o)
+			echo "<option value=\"".$o->id."\"".($object->$name==$o->id?" selected":"").">".$o."</option>";
+		?></select>
+		<?php
+		}
+		else
+		{
+		?>
+		<input type="hidden" name="<?php echo $name; ?>" value="<?php echo $object->$name; ?>" />
+		<input class="select_object" alt="<?php echo $object_class; ?>" id="<?php echo "_".$name."_name"; ?>" value="<?php echo (($object->$name)?$object_class()->get($object->$name):""); ?>" />
+		<div id="<?php echo "_".$name."_select"; ?>"></div>
+		<?php
+		}
+	}
+	elseif (in_array($field["type"], array("int", "numeric", "float")))
+	{
+		echo "<input class=\"number\" name=\"".$name."\" value=\"".$object->$name."\" />";
+	}
+	elseif (in_array($field["type"], array("bool", "boolean")))
+	{
+		echo "<input type=\"radio\" name=\"".$name."\" value=\"0\"".(is_numeric($object->$name) && !$object->$name ?" checked" : "")." style=\"width:20px;\" /> NON <input type=\"radio\" name=\"".$name."\" value=\"1\"".(is_numeric($object->$name) && $object->$name ?" checked" : "")." style=\"width:20px;\" /> OUI";
+	}
+	elseif($field["type"] == "img")
+	{
+		if (isset($field["filename"]))
+			 echo "<div style=\"float:right;\"><img src=\"/".$field["folder"]."/".$object->field_map_replace($field["filename"])."\" /></div>";
+		elseif ($object->$name)
+			echo "<div style=\"float:right;\"><img src=\"/".$object->file($name)."\" /></div>";
+		if (isset($field["filename"]))
+			echo "<input type=\"hidden\" name=\"".$name."\" value=\"".$object->$name."\" /> ";
+		else
+			echo "<input name=\"".$name."\" value=\"".$object->$name."\" /> ";
+		echo " <input type=\"file\" name=\"".$name."\" />";
+	}
+	elseif($field["type"] == "file")
+	{
+		if ($object->$name)
+			echo "<div style=\"float:right;\"><a href=\"/".$object->file($name)."\">Télécharger</a></div>";
+		echo "<input name=\"".$name."\" value=\"".$object->$name."\" /> <input type=\"file\" name=\"".$name."\" />";
+	}
+	elseif(in_array($field["type"], array("timestamp", "datetime")))
+	{
+		echo date_mysql($object->$name);
+	}
+	elseif($field["type"] = "date")	
+	{
+		echo "<input name=\"".$name."\" value=\"".$object->$name."\" class=\"date\" />";
+	}
+	elseif($field["type"] == "select")
+	{
+		echo "<select name=\"".$name."\"><option value=\"\">-- Choisir --</option>";
+		foreach($field["list"] as $i=>$j)
+			echo "<option value=\"".$i."\"".($i==$object->$name ?" selected" : "").">".$j."</option>";
+		echo "</select>";
+	}
+	elseif($field["type"] == "select_multiple")
+	{
+		echo "<input name=\"".$name."\" value=\"\" type=\"hidden\" /><select name=\"".$name."[]\" multiple>";
+		foreach($field["list"] as $i=>$j)
+			echo "<option value=\"".$i."\"".(is_array($object->$name)&&in_array($i, $object->$name) ?" selected" : "").">".$j."</option>";
+		echo "</select>";
+	}
+	elseif($field["type"] == "object_list")
+	{
+		//echo "<input type=\"hidden\" name=\"".$name."\" />";
+		$classname = $field["object_type"];
+		if (is_array($object->$name))
+		{
+			foreach($object->$name as $i)
+				echo "<p><a href=\"javascript:;\" style=\"color: red;\">X</a> ".($classname()->get($i))."</p>\n";
+		}
+	}
+	?></td>
+</tr>
+<?php } ?>
+<tr>
+	<td>&nbsp;</td>
+</tr>
+<tr>
+	<td>&nbsp;</td>
+	<td><?php if ($object->id) { ?>
+		<input type="submit" name="_update" value="Mettre à jour" />
+		<input type="submit" name="_delete" value="Supprimer" style="color:red;" onclick="return (confirm('Supprimer ?'))" />
+		<?php } else { ?>
+		<input type="submit" name="_insert" value="Ajouter" />
+		<?php } ?></td>
+</tr>
+</table>
+</form>
+<?php if (file_exists($filename=PATH_ROOT."/admin/template/form/$classname.tpl.php")) { include $filename; } ?>
+

+ 35 - 0
admin/template/form/db_object.list.tpl.php

@@ -0,0 +1,35 @@
+<h3>Liste</h3>
+<table class="list">
+<tr>
+	<td colspan="2">&nbsp;</td>
+<?php foreach ($classname()->_field_disp_list as $name) { ?>
+	<th><?php echo $classname()->_fields[$name]["label"]; ?></th>
+<?php } ?>
+</tr>
+<?php foreach($classname()->select() as $object) { ?>
+<tr>
+<td><a href="?delete_id=<?php echo $object->id; ?>" onclick="return confirm('Êtes-vous certain de vouloir supprimer cet enregistrement ?')"><img src="images/delete.gif" alt="Supprimer" title="Supprimer" /></a></td>
+<td><a href="?id=<?php echo $object->id; ?>"><img src="images/edit.png" alt="Mettre à jour" title="Modifier" /></a></td>
+<?php foreach ($classname()->_field_disp_list as $name) { ?>
+	<td><?php
+		$field = $classname()->_fields[$name];
+		$type = $field["type"];
+		if (in_array($type, array('bool', 'boolean'))) {
+			echo $object->$name ?'OUI' :'NON';
+		}
+		elseif ($type=="object" && is_numeric($object->$name)) {
+			$object_type = $field["object_type"];
+			echo $object_type()->get($object->$name);
+		}
+		elseif (is_string($object->$name))
+			echo $object->$name;
+		elseif (is_array($object->$name))
+			echo implode(", ", $object->$name);
+		else
+			echo "&nbsp;";
+	 ?></td>
+<?php } ?>
+</tr>
+<?php } ?>
+</table>
+

+ 7 - 204
admin/template/form/db_object.tpl.php

@@ -31,53 +31,16 @@ $(document).ready(function(){
 	$("input.select_object").keypress(function(){select_object(this);});
 });
 </script>
-<style type="text/css">
-p{
-	margin: 0;
-}
-p, td, th, li, input, select, textarea {
-	font-size: inherit;
-}
-form.db_object{
-	width: auto;
-	font-size: 0.85em;
-}
-form.db_object table{
-	width: 100%;
-}
-form.db_object th{
-	text-align: left;
-}
-form.db_object th.label{
-	width: 250px;
-}
-form.db_object td.field input{
-	width: 100%;
-}
-form.db_object td.field input.number{
-	width: 14em;
-}
-form.db_object td.field  textarea{
-	width: 100%;
-	height: 10em;
-}
-form.db_object td.field  textarea.richtext{
-	height: 20em;
-}
-.list td, .list th{
-	vertical-align: top;
-}
-.list th{
-	text-align: left;
-}
-</style>
+<link href="css/db_object.css" rel="stylesheet" type="text/css" />
+
 </head>
 <body>
-<h1><?php echo $classname()->_label; ?></h1>
+<h1 style="float: right;margin: 0 10px;"><?php echo $classname()->_label; ?></h1>
 <p>
 	<a href="?list">Liste</a>
 	| <a href="?add">Ajouter</a>
 </p>
+<hr />
 <?php
 
 /* SELECT TEMPLATE */
@@ -111,171 +74,11 @@ $template = "list";
 
 if ($template == "form")
 {
-?>
-<form class="db_object" method="post" action="?id=<?php echo $object->id; ?>" enctype="multipart/form-data">
-<table>
-<?php if ($object->id) { ?>
-<tr>
-	<th>ID</th>
-	<td><?php echo $object->id; ?><input name="id" type="hidden" value="<?php echo $object->id; ?>" /></td>
-</tr>
-<?php } ?>
-<?php foreach($classname()->_fields as $name=>$field) if (in_array($field['type'], $classname()->field_simple) && (empty($field["calculate"])) && ($object->id || empty($field["notinsert"])) && (!$object->id || empty($field["notupdate"]))) { ?>
-<tr>
-	<th class="label"><?php echo $field["label"]; ?> :</th>
-	<td class="field"><?php
-	if (!empty($field["readonly"]))
-		echo "<script type=\"text/javascript\">$(document).ready(function(){ $('.db_object [name=".$name."]').attr('disabled','true'); });</script>\n";
-	if ($field["type"] == "text")
-	{
-		echo "<textarea name=\"".$name."\">".$object->$name."</textarea>";
-	}
-	elseif ($field["type"] == "richtext")
-	{
-		echo "<textarea class=\"ckeditor\" id=\"".$name."\" name=\"".$name."\">".$object->$name."</textarea>";
-	}
-	elseif ($field["type"] == "string")
-	{
-		echo "<input name=\"".$name."\" value=\"".htmlentities($object->$name, ENT_COMPAT, "UTF-8")."\" />";
-	}
-	elseif ($field["type"] == "password")
-	{
-		echo "<input type=\"password\" name=\"".$name."\" value=\"".$object->$name."\" />";
-	}
-	elseif ($field["type"] == "object")
-	{
-		$object_class = $field["object_type"];
-		if ($object_class()->count() < 20)
-		{
-		?>
-		<select name="<?php echo $name; ?>"><option value="">--</option><?php
-		foreach ($object_class()->select() as $o)
-			echo "<option value=\"".$o->id."\"".($object->$name==$o->id?" selected":"").">".$o."</option>";
-		?></select>
-		<?php
-		}
-		else
-		{
-		?>
-		<input type="hidden" name="<?php echo $name; ?>" value="<?php echo $object->$name; ?>" />
-		<input class="select_object" alt="<?php echo $object_class; ?>" id="<?php echo "_".$name."_name"; ?>" value="<?php echo (($object->$name)?$object_class()->get($object->$name):""); ?>" />
-		<div id="<?php echo "_".$name."_select"; ?>"></div>
-		<?php
-		}
-	}
-	elseif (in_array($field["type"], array("int", "numeric", "float")))
-	{
-		echo "<input class=\"number\" name=\"".$name."\" value=\"".$object->$name."\" />";
-	}
-	elseif (in_array($field["type"], array("bool", "boolean")))
-	{
-		echo "<input type=\"radio\" name=\"".$name."\" value=\"0\"".(is_numeric($object->$name) && !$object->$name ?" checked" : "")." style=\"width:20px;\" /> NON <input type=\"radio\" name=\"".$name."\" value=\"1\"".(is_numeric($object->$name) && $object->$name ?" checked" : "")." style=\"width:20px;\" /> OUI";
-	}
-	elseif($field["type"] == "img")
-	{
-		if (isset($field["filename"]))
-			 echo "<div style=\"float:right;\"><img src=\"/".$field["folder"]."/".$object->field_map_replace($field["filename"])."\" /></div>";
-		elseif ($object->$name)
-			echo "<div style=\"float:right;\"><img src=\"/".$object->file($name)."\" /></div>";
-		if (isset($field["filename"]))
-			echo "<input type=\"hidden\" name=\"".$name."\" value=\"".$object->$name."\" /> ";
-		else
-			echo "<input name=\"".$name."\" value=\"".$object->$name."\" /> ";
-		echo " <input type=\"file\" name=\"".$name."\" />";
-	}
-	elseif($field["type"] == "file")
-	{
-		if ($object->$name)
-			echo "<div style=\"float:right;\"><a href=\"/".$object->file($name)."\">Télécharger</a></div>";
-		echo "<input name=\"".$name."\" value=\"".$object->$name."\" /> <input type=\"file\" name=\"".$name."\" />";
-	}
-	elseif(in_array($field["type"], array("timestamp", "datetime")))
-	{
-		echo date_mysql($object->$name);
-	}
-	elseif($field["type"] = "date")	
-	{
-		echo "<input name=\"".$name."\" value=\"".$object->$name."\" class=\"date\" />";
-	}
-	elseif($field["type"] == "select")
-	{
-		echo "<select name=\"".$name."\"><option value=\"\">-- Choisir --</option>";
-		foreach($field["list"] as $i=>$j)
-			echo "<option value=\"".$i."\"".($i==$object->$name ?" selected" : "").">".$j."</option>";
-		echo "</select>";
-	}
-	elseif($field["type"] == "select_multiple")
-	{
-		echo "<input name=\"".$name."\" value=\"\" type=\"hidden\" /><select name=\"".$name."[]\" multiple>";
-		foreach($field["list"] as $i=>$j)
-			echo "<option value=\"".$i."\"".(is_array($object->$name)&&in_array($i, $object->$name) ?" selected" : "").">".$j."</option>";
-		echo "</select>";
-	}
-	elseif($field["type"] == "object_list")
-	{
-		//echo "<input type=\"hidden\" name=\"".$name."\" />";
-		$classname = $field["object_type"];
-		if (is_array($object->$name))
-		{
-			foreach($object->$name as $i)
-				echo "<p><a href=\"javascript:;\" style=\"color: red;\">X</a> ".($classname()->get($i))."</p>\n";
-		}
-	}
-	?></td>
-</tr>
-<?php } ?>
-<tr>
-	<td>&nbsp;</td>
-	<td><?php if ($object->id) { ?>
-		<input type="submit" name="_update" value="Mettre à jour" />
-		<input type="submit" name="_delete" value="Supprimer" style="color:red;" onclick="return (confirm('Supprimer ?'))" />
-		<?php } else { ?>
-		<input type="submit" name="_insert" value="Ajouter" />
-		<?php } ?></td>
-</tr>
-</table>
-</form>
-<?php if (file_exists($filename=PATH_ROOT."/admin/template/form/$classname.tpl.php")) { include $filename; } ?>
-<?php
+	include 'db_object.form.tpl.php';
 }
 // Liste
 else //if ($template == "list")
 {
-?>
-<h3>Liste</h3>
-<table class="list">
-<tr>
-	<td colspan="2">&nbsp;</td>
-<?php foreach ($classname()->_field_disp_list as $name) { ?>
-	<th><?php echo $classname()->_fields[$name]["label"]; ?></th>
-<?php } ?>
-</tr>
-<?php foreach($classname()->select() as $object) { ?>
-<tr>
-<td><a href="?delete_id=<?php echo $object->id; ?>" onclick="return confirm('Êtes-vous certain de vouloir supprimer cet enregistrement ?')"><img src="images/delete.gif" alt="Supprimer" title="Supprimer" /></a></td>
-<td><a href="?id=<?php echo $object->id; ?>"><img src="images/edit.png" alt="Mettre à jour" title="Modifier" /></a></td>
-<?php foreach ($classname()->_field_disp_list as $name) { ?>
-	<td><?php
-		$field = $classname()->_fields[$name];
-		$type = $field["type"];
-		if (in_array($type, array('bool', 'boolean'))) {
-			echo $object->$name ?'OUI' :'NON';
-		}
-		elseif ($type=="object" && is_numeric($object->$name)) {
-			$object_type = $field["object_type"];
-			echo $object_type()->get($object->$name);
-		}
-		elseif (is_string($object->$name))
-			echo $object->$name;
-		elseif (is_array($object->$name))
-			echo implode(", ", $object->$name);
-		else
-			echo "&nbsp;";
-	 ?></td>
-<?php } ?>
-</tr>
-<?php } ?>
-</table>
-<?php
+        include 'db_object.list.tpl.php';
 }
-?>
+

+ 3 - 0
include/class/account.class.inc.php

@@ -12,6 +12,9 @@ class account_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+
+public $_label = "Compte utilisateur";
+
 public $_fields = array(
 	"type" => array("label"=>"Type", "type"=>"select", "list"=>array("admin"=>"Administrateur", "user"=>"Utilisateur", "client"=>"Client")),
 	"nom" => array("label"=>"Nom", "type"=>"string"),

+ 3 - 0
include/class/controller.class.inc.php

@@ -11,6 +11,9 @@ class controller_manager extends db_object_manager{
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+
+public $_label = "Controlleur";
+
 public $_fields = array(
 	"ref" => array("label"=>"Référence courte", "type"=>"string", "readonly"=>true),
 	"titre" => array("label"=>"Titre", "type"=>"string"),

+ 2 - 0
include/class/menu.class.inc.php

@@ -11,6 +11,8 @@ class menu_manager extends db_object_manager{
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Menu";
+
 public $_fields = array(
 	"parent_id" => array("label"=>"Parent", "type"=>"object", "object_type"=>"menu"),
 	"page_id" => array("label"=>"Page", "type"=>"object", "object_type"=>"page"),

+ 2 - 0
include/class/page.class.inc.php

@@ -11,6 +11,8 @@ class page_manager extends db_object_manager{
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Page";
+
 public $_fields = array(
 	"controller_id" => array("label"=>"Controller", "type"=>"object", "object_type"=>"controller"),
 	"ref" => array("label"=>"Référence courte", "type"=>"string", "readonly"=>true),

+ 2 - 0
include/class/template.class.inc.php

@@ -11,6 +11,8 @@ class template_manager extends db_object_manager{
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Template";
+
 public $_fields = array(
 	"ref" => array("label"=>"Référence courte", "type"=>"string", "readonly"=>true),
 	"ref_right" => array("label"=>"Référence courte droite", "type"=>"string"),

+ 2 - 0
include/model/activite.class.inc.php

@@ -12,6 +12,8 @@ class activite_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Activité";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	#"pos" => array("label"=>"Position sur l'accueil", "type"=>"int"),

+ 2 - 0
include/model/actualite.class.inc.php

@@ -12,6 +12,8 @@ class actualite_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Actualité";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	"cat_id" => array("label"=>"Rubrique", "type"=>"object", 'object_type'=>'cat'),

+ 2 - 0
include/model/cat.class.inc.php

@@ -12,6 +12,8 @@ class cat_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Catégorie";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	"ref" => array("label"=>"Référence courte", "type"=>"string", "calculate"=>"ref:titre", "readonly"=>true),

+ 2 - 0
include/model/commonval.class.inc.php

@@ -12,6 +12,8 @@ class commonval_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Registre";
+
 public $_fields = array(
 	"name" => array("label"=>"Nom", "type"=>"string", "readonly"=>true),
 	"description" => array("label"=>"Description", "type"=>"string"),

+ 2 - 0
include/model/evenement.class.inc.php

@@ -12,6 +12,8 @@ class evenement_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Evénement";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	"cat_id" => array("label"=>"Rubrique", "type"=>"object", "object_type"=>"cat"),

+ 2 - 0
include/model/miniature.class.inc.php

@@ -12,6 +12,8 @@ class miniature_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Miniature";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	"cat_id" => array("label"=>"Rubrique", "type"=>"object", "object_type"=>"cat"),

+ 2 - 0
include/model/partenaire.class.inc.php

@@ -12,6 +12,8 @@ class partenaire_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Partenaire";
+
 public $_fields = array(
 	"active" => array("label"=>"Actif", "type"=>"bool"),
 	"cat_id" => array("label"=>"Rubrique", "type"=>"object", 'object_type'=>'cat'),

+ 2 - 0
include/model/realisation.class.inc.php

@@ -12,6 +12,8 @@ class realisation_manager extends db_object_manager
 public $DB_DEBUG = false;
 public $FILE_DEBUG = false;
 
+public $_label = "Réalisation";
+
 public $_fields = array(
 	"afficher" => array("label"=>"Affiché", "type"=>"bool"),
 	"activite_id" => array("label"=>"Activité", "type"=>"object", "object_type"=>"activite"),