adminEngine
[DEMO] [Názory] [Reagovat] [Hlášení požadavků a bugů]
AdminEngine je zatím pracovní název pro systém, který dokáže zobrazovat, přidávat, upravovat a mazat záznamy z libovolné databázové tabulky. Knihovny adminEnginu jsem zatím nepublikoval, zaprvé nevím, jestli by o ní byl zájem a zadruhé přemýšlím o licenci. Nastavení, které je publikované, je maximální, obsahuje co nejvíce „direktiv“, minimální nastavení je mnohem kratší.
- Základem je nastavení, co se má zobrazovat v prohlížení, v editaci a
v přidávání nového záznamu.
[EDIT_sloupce, PROHLIZENI_sloupce, PRIDAVANI_sloupce]
- Dále se přiřazuje jednotlivým sloupcům formulářové políčko –
select box, input, textarea,…
[EDIT_sloupce_ovladaci_prvky, PRIDAVANI_sloupce_ovladaci_prvky]
- Je možné nastavení řazení záznamů. Každý sloupec může být řazen vzestupně nebo sestupně. Je možná kombinace řazení podle různých sloupců.
- Je možné jednoduché logování změn.
[EDIT_LOG_povoleno, EDIT_LOG_sekce, EDIT_LOG_uzivatel]
- adminEngine umí zpracovat jednu tabulku, více tabulek neumí, ale to provést různými „hacky“ – připravuje se do další verze.
Pro ukázku jsem vybral tabulku, kterou pooužívám na novinky:
CREATE TABLE `adminEngine_novinky` (
`id` int(11) NOT NULL auto_increment,
`text` longtext NOT NULL,
`datum` varchar(70) NOT NULL,
`napsal` varchar(60) NOT NULL,
`titulek` varchar(50) NOT NULL,
`sekce` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM
Úkázka adminEnginu ze zdrojového kódu
níže
Zde si můžete prohlédnout ukázkové funkční nastavení administrace k tabulce s novinkami:
1: <?php
2:
3: // INICIALIZACE adminEnginu
4: // ============================================================================
5:
6: // Připojení k databázi, Mysql, Mysqli
7: include "config.php";
8: // Třída zajišťující funkčnost, zatím nezveřejněna
9: include "admin_framework.php";
10:
11: $nastaveni=array(
12:
13: "tabulka"=>"adminEngine_novinky",
14: "primarni_klic"=>"id",
15: "base_URL"=>$_SERVER[SCRIPT_NAME]."?",
16: "width"=>740,
17:
18: // nastavuje v jakem poradi se budou dedit hodnoty,
19: //napr. 1. PRIDANI_sloupce, 2. EDIT_sloupce
20: "NASTAVENI_dedeni_nastaveni"=>array("PRIDANI"=>"EDIT"),
21:
22: "PROHLIZENI_nadpis"=>"Novinky",
23: "PROHLIZENI_vychozi_razeni"=>"datum DESC",
24: "PROHLIZENI_tabulka_style"=>"border:0px;width:740px;",
25: "PROHLIZENI_submit_tlacitka"=>array("smazat"=>"Smazat",
26: "novy"=>"Nová novinka"),
27:
28: "PROHLIZENI_sloupce"=>array("titulek"=>"Titulek",
29: "text"=>"Text",
30: "datum"=>"Datum",
31: "napsal"=>"Napsal",
32: "sekce"=>"Sekce"),
33: "PROHLIZENI_sloupce_eval"=>
34: array("datum"=>
35:
36: ' if (date("Y",$value)!=date("Y")){
37: $value=date("j.m.Y",$value);
38: }else{
39: $value=date("j.m.",$value);
40: }
41: '
42: ),
43: "PRIDANI_nadpis"=>"Nová novinka",
44: "PRIDANI_sloupce_hodnoty" => array("datum"=>date('j.n.Y'),
45: "napsal"=>$_SESSION[jmeno]),
46:
47: // Dodefinovani hodnot sloupcu, ktere nejsou ve formulari,
48: // lze timto prepsat hodnotu z formulare
49: "PRIDANI_SAVE_hodnoty" => array(),
50:
51: "EDIT_nadpis"=>"Úprava novinky",
52:
53: "EDIT_sloupce"=>array("titulek"=>"Titulek",
54: "text"=>"Novinka",
55: "datum"=>"Datum",
56: "napsal"=>"Napsal",
57: "sekce"=>"Sekce"),
58:
59: "EDIT_sloupce_ovladaci_prvky"=>
60: array("text"=>"textarea",
61: "sekce"=>"select"),
62:
63: "EDIT_sloupce_atributy"=>
64: array("text"=>' rows="10" cols="80" '),
65: "EDIT_sloupce_hodnoty"=>
66:
67: array("sekce"=>
68: '<option value="PHP">PHP</option>'.
69: '<option value="MySQL">MySQL</option>'.
70: '<option value="FUN">FUN</option>'.
71: '<option value="Inovace">Inovace</option>'.
72: '<option value="Práce">Práce</option>'.
73: '<option value="Ostatní">Ostatní</option>'
74: ),
75:
76: "EDIT_sloupce_text_navic"=>
77:
78: array('datum'=>
79: ' <a href="#" style="font-size:14px;font-weight:bold;text-decoration:none;color:black;" onclick="alert(\''.
80: 'Povolené tvary: dd.mm.YYYY, HH:mm:ss (př. '.date("j.n.Y, H:i:s").')'.
81: ', dd.mm.YYYY\');">?</a>'),
82:
83: "EDIT_sloupce_eval"=>array("datum"=>'$value=date("j.n.Y",$value);'),
84:
85: "EDIT_editovany_zaznam"=>$_GET[editovany_zaznam],
86: "EDIT_SQL_where_podminka"=>"", // musi zacinat operatorem AND
87:
88: // vychozi vypis chyb do logovací tabulky
89:
90: /* "EDIT_LOG_vypis_radku"=>
91: '<b>::sloupec::</b>'.
92: '<br /><b>»</b> ::puvodni_hodnota:: <br />'.
93: '<b>»</b> ::nova_hodnota::<br /><br />', */
94: "EDIT_LOG_povoleno"=>0,
95: "EDIT_LOG_sekce"=>"novinky",
96: "EDIT_LOG_uzivatel"=>$_SESSION[id]
97: //"MAZANI_po_mazaci_skript"=>"",
98: //"MAZANI_pred_mazaci_skript"=>"",
99: //"MAZANI_SQL_where_podminka"=>"",
100: );
101:
102: $admin = new ADMIN($nastaveni);
103:
104:
105:
106: // UZIVATELSKE ROZHRANNI
107: // ============================================================================
108:
109:
110:
111: if ($_GET[action]=="smazat" && count($_POST[rows_to_delete]))
112: {
113:
114: if ($upraveno=$admin->delete_complete()){
115:
116: $GLOBALS[ADMIN_vypis].= "<center>".tabulka_vypis("Odstraněno $upraveno záznamů.","",0)."</center>";
117:
118: }
119:
120: }
121:
122: if ($_GET[action]=='save_edit'){
123:
124: $_POST["rows_to_edit"]["datum"]=$admin->date2timestamp($_POST["rows_to_edit"]["datum"]);
125: $admin->edit_complete();
126:
127: }
128:
129:
130:
131: if ($_GET[action]=="add_complete"){
132:
133: $_POST["rows_to_edit"]["datum"]=$admin->date2timestamp($_POST["rows_to_edit"]["datum"]);
134: $admin->add_complete();
135:
136: }
137:
138: if ($_GET[action]=="add"){
139:
140: $GLOBALS[ADMIN_vypis].=$admin->add();
141:
142: }elseif ($_GET[action]=="edit"){
143:
144: $GLOBALS[ADMIN_vypis].=$admin->edit();
145:
146: }
147:
148:
149: if ($_GET[action]!="edit" && $_GET[action]!="add"){
150:
151: $GLOBALS[ADMIN_vypis].=$admin->zobraz_zaznamy(15);
152:
153: }
154:
155:
156: ?>
157:
158: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
159: "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
160: <html>
161: <head>
162: <title>Martin Všetička - adminEngine</title>
163: <meta http-equiv="content-type" content="text/html; charset=utf-8" />
164: <meta http-equiv="content-language" content="cs" />
165: <meta http-equiv="Expires" content="-1" />
166: <meta http-equiv="pragma" content="no-cache" />
167: <meta http-equiv="cache-control" content="no-cache" />
168: <meta name="author" content="Martin Všetička; e-mail: vseticka.martin(at)gmail.com" />
169: <meta name="copyright" content="" />
170: <meta name="description" xml:lang="cs" content="Osobní stránky" />
171: <meta name="keywords" xml:lang="cs" content="Martin Všetička" />
172: <meta name="googlebot" content="all,follow,noarchive" />
173: <meta name="robots" content="all,follow" />
174: <link rel="stylesheet" href="css/main.css" type="text/css" title="Default - All" media="all" />
175: <link rel="stylesheet" href="css/admin.css" type="text/css" title="Default - All" media="all" />
176: <link rel="stylesheet" href="css/prohlizeni.css" type="text/css" title="Default - All" media="all" />
177: </head>
178: <body>
179:
180: <div style="text-align: center">
181: <div id="container">
182:
183: <?php
184:
185:
186: echo $GLOBALS[ADMIN_vypis];
187:
188:
189: ?>
190: </div>
191: </div>
192:
193: </body>
194: </html>
Komentáře / Comments
| marty [neregistrovaný] |
| Posílejte prosím své připomínky a návrhy. |
|---|
| fsfdsfdsf [neregistrovaný] |
| wase lolita samples wdesfdrfg zoo animal sex tube |
|---|
| fsfdsfdsf [neregistrovaný] |
| wase lolita samples wdesfdrfg zoo animal sex tube |
|---|
| Jonny [neregistrovaný] |
| AqVgDH Cool lol hey bla bla bla bla |
|---|
| Jonny [neregistrovaný] |
| QPrawZ Cool lol hey bla bla bla bla |
|---|
| Jonny [neregistrovaný] |
| SZrMpT Cool lol hey bla bla bla bla |
|---|
| Pzupfdfc [neregistrovaný] |
| RFYIVp Vasue imehoz qotxpmb ggpphfbyse utsphldu cgpxe leowe nhevin ifkle. |
|---|
