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_o­vladaci_prvky, PRIDAVANI_slou­pce_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_povo­leno, 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>&raquo;</b> ::puvodni_hodnota:: <br />'.
 93:                   '<b>&raquo;</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.

Hodnocení článku (0.00):