parent
f1c91a9a0c
commit
d65cb61e71
10 changed files with 160 additions and 11 deletions
|
@ -26,6 +26,8 @@
|
||||||
|
|
||||||
define("BAIKAL_FRAMEWORK_ROOT", dirname(__FILE__) . "/");
|
define("BAIKAL_FRAMEWORK_ROOT", dirname(__FILE__) . "/");
|
||||||
define("BAIKAL_FRAMEWORK_LIBDIR", BAIKAL_FRAMEWORK_ROOT . "lib/");
|
define("BAIKAL_FRAMEWORK_LIBDIR", BAIKAL_FRAMEWORK_ROOT . "lib/");
|
||||||
|
define("BAIKAL_FRAMEWORK_RESDIR", BAIKAL_FRAMEWORK_ROOT . "res/");
|
||||||
|
|
||||||
|
require_once(BAIKAL_FRAMEWORK_LIBDIR . "BaikalTemplate.php");
|
||||||
require_once(BAIKAL_FRAMEWORK_LIBDIR . "BaikalAdmin.php");
|
require_once(BAIKAL_FRAMEWORK_LIBDIR . "BaikalAdmin.php");
|
||||||
require_once(BAIKAL_FRAMEWORK_LIBDIR . "BaikalTools.php");
|
require_once(BAIKAL_FRAMEWORK_LIBDIR . "BaikalTools.php");
|
|
@ -96,13 +96,21 @@ class BaikalAdmin {
|
||||||
return md5('admin:' . BAIKAL_AUTH_REALM . ':' . $sPassword);
|
return md5('admin:' . BAIKAL_AUTH_REALM . ':' . $sPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function wrapWithInterface($sHtml) {
|
||||||
|
$oTemplate = new BaikalTemplate(BAIKAL_FRAMEWORK_RESDIR . "template.html");
|
||||||
|
return $oTemplate->parse(array(
|
||||||
|
"pagetitle" => "Users",
|
||||||
|
"pagecontent" => $sHtml
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
static function displayUsers() {
|
static function displayUsers() {
|
||||||
$aUsers = BaikalTools::getUsers();
|
$aUsers = BaikalTools::getUsers();
|
||||||
|
|
||||||
$oTabulator = new TabulatorHtml();
|
$oTabulator = new TabulatorHtml("table table-bordered");
|
||||||
$oTabulator->addColumn(self::makeColumn("id", "Id", "numeric"));
|
$oTabulator->addColumn(self::makeColumn("id", "Id", "numeric"));
|
||||||
$oTabulator->addColumn(self::makeColumn("username", "Username"));
|
$oTabulator->addColumn(self::makeColumn("username", "Username"));
|
||||||
$oTabulator->render($aUsers);
|
return $oTabulator->render($aUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function &makeColumn($sName, $sHeader = "", $sType = "text") {
|
static function &makeColumn($sName, $sHeader = "", $sType = "text") {
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?php
|
||||||
|
/***************************************************************
|
||||||
|
* Copyright notice
|
||||||
|
*
|
||||||
|
* (c) 2012 Jérôme Schneider <mail@jeromeschneider.fr>
|
||||||
|
* All rights reserved
|
||||||
|
*
|
||||||
|
* http://baikal.codr.fr
|
||||||
|
*
|
||||||
|
* This script is part of the Baïkal Server project. The Baïkal
|
||||||
|
* Server project is free software; you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* The GNU General Public License can be found at
|
||||||
|
* http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
*
|
||||||
|
* This script is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* This copyright notice MUST APPEAR in all copies of the script!
|
||||||
|
***************************************************************/
|
||||||
|
|
||||||
|
class BaikalTemplate {
|
||||||
|
|
||||||
|
private $sAbsPath = "";
|
||||||
|
private $sHtml = "";
|
||||||
|
|
||||||
|
public function __construct($sAbsPath) {
|
||||||
|
$this->sAbsPath = $sAbsPath;
|
||||||
|
$this->sHtml = self::getTemplateFile(
|
||||||
|
$this->sAbsPath
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function parse($aMarkers = array()) {
|
||||||
|
return self::parseTemplateCodePhp(
|
||||||
|
$this->sHtml,
|
||||||
|
$aMarkers
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getTemplateFile($sAbsPath) {
|
||||||
|
return file_get_contents($sAbsPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function parseTemplateCodePhp($sCode, $aMarkers) {
|
||||||
|
extract($aMarkers);
|
||||||
|
ob_start();
|
||||||
|
echo eval('?>' . $sCode . '<?');
|
||||||
|
$sHtml = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
return $sHtml;
|
||||||
|
}
|
||||||
|
}
|
61
CoreVersions/Baikal_0.1/Frameworks/Baikal/res/template.html
Normal file
61
CoreVersions/Baikal_0.1/Frameworks/Baikal/res/template.html
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Baïkal Admin</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="author" content="">
|
||||||
|
|
||||||
|
<!-- Le styles -->
|
||||||
|
<link href="/res/TwitterBootstrap/css/bootstrap.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="/res/TwitterBootstrap/css/bootstrap-responsive.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</a>
|
||||||
|
<a class="brand" href="#">Baïkal Admin</a>
|
||||||
|
<div class="nav-collapse">
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="active"><a href="#">Home</a></li>
|
||||||
|
<li><a href="#about">About</a></li>
|
||||||
|
<li><a href="#contact">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!--/.nav-collapse -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<h1><?= $pagetitle ?></h1>
|
||||||
|
<p>Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>
|
||||||
|
<?= $pagecontent ?>
|
||||||
|
|
||||||
|
</div> <!-- /container -->
|
||||||
|
|
||||||
|
<!-- Le javascript
|
||||||
|
================================================== -->
|
||||||
|
<!-- Placed at the end of the document so the pages load faster -->
|
||||||
|
<script src="/res/TwitterBootstrap/js/jquery-1.7.1.min.js"></script>
|
||||||
|
<script src="/res/TwitterBootstrap/js/bootstrap.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -7,13 +7,21 @@ require_once($sDir . "Tabulator.php");
|
||||||
class TabulatorColumnHtml extends TabulatorColumn {
|
class TabulatorColumnHtml extends TabulatorColumn {
|
||||||
|
|
||||||
protected function wrap($sString) {
|
protected function wrap($sString) {
|
||||||
|
return $this->htmlWrap($sString, "td");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function wrapHeader($sString) {
|
||||||
|
return $this->htmlWrap($sString, "th");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function htmlWrap($sString, $sTag) {
|
||||||
if(in_array($this->getType(), array("numeric", "duration"))) {
|
if(in_array($this->getType(), array("numeric", "duration"))) {
|
||||||
$sAlign = "right";
|
$sAlign = "right";
|
||||||
} else {
|
} else {
|
||||||
$sAlign = "left";
|
$sAlign = "left";
|
||||||
}
|
}
|
||||||
|
|
||||||
return "<td class=\"col-" . $this->getName() . " align-" . $sAlign . "\">" . $sString . "</td>";
|
return "<" . $sTag . " class=\"col-" . $this->getName() . " align-" . $sAlign . "\">" . $sString . "</" . $sTag . ">";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderUnderline() {
|
public function renderUnderline() {
|
||||||
|
|
|
@ -50,10 +50,15 @@ abstract class Tabulator {
|
||||||
return implode("", $aRes) . "\n";
|
return implode("", $aRes) . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render($aValues) {
|
public function renderAndDisplay($aValues) {
|
||||||
|
echo $this->render($aValues);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render($aValues) {
|
||||||
$this->iNbValues = count($aValues);
|
$this->iNbValues = count($aValues);
|
||||||
|
|
||||||
|
$sRes = "";
|
||||||
|
|
||||||
reset($aValues);
|
reset($aValues);
|
||||||
while(list($iRow,) = each($aValues)) {
|
while(list($iRow,) = each($aValues)) {
|
||||||
reset($aValues[$iRow]);
|
reset($aValues[$iRow]);
|
||||||
|
@ -64,10 +69,12 @@ abstract class Tabulator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $this->renderOpen();
|
$sRes .= $this->renderOpen();
|
||||||
echo $this->renderHeader();
|
$sRes .= $this->renderHeader();
|
||||||
echo $this->renderValues();
|
$sRes .= $this->renderValues();
|
||||||
echo $this->renderClose();
|
$sRes .= $this->renderClose();
|
||||||
|
|
||||||
|
return $sRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract protected function getSep();
|
abstract protected function getSep();
|
||||||
|
|
4
CoreVersions/Baikal_0.1/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js
vendored
Normal file
4
CoreVersions/Baikal_0.1/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -35,6 +35,4 @@ require_once(BAIKAL_PATH_FRAMEWORKS . "Baikal/Includes.php");
|
||||||
BaikalAdmin::assertEnabled();
|
BaikalAdmin::assertEnabled();
|
||||||
BaikalAdmin::assertAuthentified();
|
BaikalAdmin::assertAuthentified();
|
||||||
|
|
||||||
echo "<h1>Baïkal Admin</h1>";
|
echo BaikalAdmin::wrapWithInterface(BaikalAdmin::displayUsers());
|
||||||
|
|
||||||
BaikalAdmin::displayUsers();
|
|
1
CoreVersions/Baikal_0.1/WWWRoot/res/TwitterBootstrap
Symbolic link
1
CoreVersions/Baikal_0.1/WWWRoot/res/TwitterBootstrap
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../../Frameworks/TwitterBootstrap
|
1
html/res
Symbolic link
1
html/res
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../Core/WWWRoot/res
|
Loading…
Reference in a new issue