diff options
Diffstat (limited to 'utils')
| -rw-r--r-- | utils/admin.php | 158 | ||||
| -rw-r--r-- | utils/forms.php | 8 | ||||
| -rw-r--r-- | utils/user.php | 53 | 
3 files changed, 172 insertions, 47 deletions
diff --git a/utils/admin.php b/utils/admin.php index d0303c9..ab22a9a 100644 --- a/utils/admin.php +++ b/utils/admin.php @@ -1,5 +1,7 @@ -<div class="admin"> -  <div class="header">Admin</div> +<?php /* -*- Mode: php; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ?> +<div class="admin" id="admin"> +  <span class="header">Admin</span> +  <div class="button close"><a href="?page=">X</a></div>  <?php  global $loggedin; @@ -12,8 +14,7 @@ global $DATA_DIR;    else $UID = $HTTP_COOKIE_VARS["UserID"];    $user = $users->findUser($UID);  ?> -<div class="close"><a href="?page=">[X]</a></div> -<div class="logout"><a href="?page=admin&action=logout">Logout <em><?php echo $UID;?></em></a></div> +<a class="logout" href="?page=admin&action=logout">Logout <span class="user"><?php echo $UID;?></span></a>  <div class="menu">  <?php  include_once($UTIL_DIR . "/modules.php"); @@ -21,20 +22,32 @@ include_once($UTIL_DIR . "/modules.php");  loadAllModules();  foreach($modules as $modulename => $module) { -  if($m == $modulename) $admin_module = $module; -  echo "<a class=\"entry\" href=\"?page=admin&m=$modulename\">$module->admin_title</a>\n"; +  if($user->checkModule($modulename) == false) continue; +  $active = ""; +  if($m == $modulename) { +    $admin_module = $module; +    $admin_modulename = $modulename; +    $active = " active"; +  } +  echo "<a class=\"entry$active\" href=\"?page=admin&m=$modulename\">"; +  echo $module->admin_title; +  echo "</a>\n";  }  ?>  </div>  <div class="submenu">  <?php -if($admin_module) { +if($admin_module && $user->checkModule($admin_modulename)) {    foreach($admin_module->admin_submodules as $submodulename => $submodule) { +		$active = "";      if($s == $submodule) {        $admin_submodule = $s;        $admin_submodule_name = $submodulename; +			$active = " active";      } -    echo "<a class=\"entry\" href=\"?page=admin&m=$m&s=$submodule\">$submodulename</a>\n"; +    echo "<a class=\"entry$active\" href=\"?page=admin&m=$m&s=$submodule\">"; +		echo $submodulename; +		echo "</a>\n";    }  }  ?> @@ -62,3 +75,132 @@ if($admin_submodule) {  }  ?>  </div> +<script language="JavaScript" type="text/javascript">  +<!-- + +function ExtractNumber(value) +{ +    var n = parseInt(value); +	 +    return n == null || isNaN(n) ? 0 : n; +} + +		 function createCookie(name,value,days) { +	if (days) { +		var date = new Date(); +		date.setTime(date.getTime()+(days*24*60*60*1000)); +		var expires = "; expires="+date.toGMTString(); +	} +	else var expires = ""; +	document.cookie = name+"="+value+expires+"; path=/"; +} + +function readCookie(name) { +	var nameEQ = name + "="; +	var ca = document.cookie.split(';'); +	for(var i=0;i < ca.length;i++) { +		var c = ca[i]; +		while (c.charAt(0)==' ') c = c.substring(1,c.length); +		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); +	} +	return null; +} + +// this is simply a shortcut for the eyes and fingers +function $(id) +{ +    return document.getElementById(id); +} + +InitDragDrop(); + +function InitDragDrop() +{ +	document.onmousedown = OnMouseDown; +	document.onmouseup = OnMouseUp; + +	var x = readCookie('admin_x'); +	var y = readCookie('admin_y'); + +	var _dragElement = document.getElementById('admin'); + +	_dragElement.style.left = x + 'px'; +	_dragElement.style.top = y + 'px'; +} + +function OnMouseDown(e) +{ +	// IE is retarded and doesn't pass the event object +	if (e == null)  +		e = window.event;  +     +	// IE uses srcElement, others use target +	var target = e.target != null ? e.target : e.srcElement; +     +	// for IE, left click == 1 +	// for Firefox, left click == 0 +	if ((e.button == 1 && window.event != null || e.button == 0) &&  target.className == 'admin') { +		// grab the mouse position +		_startX = e.clientX; +		_startY = e.clientY; +         +		// grab the clicked element's position +		_offsetX = ExtractNumber(target.style.left); +		_offsetY = ExtractNumber(target.style.top); +     +		// bring the clicked element to the front while it is being dragged +		_oldZIndex = target.style.zIndex; +		target.style.zIndex = 10000; +     +		// we need to access the element in OnMouseMove +		_dragElement = target; +		 +		// tell our code to start moving the element with the mouse +		document.onmousemove = OnMouseMove; +     +		// cancel out any text selections +		document.body.focus(); +		 +		// prevent text selection in IE +		document.onselectstart = function () { return false; }; +		// prevent IE from trying to drag an image +		target.ondragstart = function() { return false; }; +     +		// prevent text selection (except IE) +		return false; +	} +} + +function OnMouseMove(e) +{ +	if (e == null)  +		var e = window.event;  +	 +	// this is the actual "drag code" +	_dragElement.style.left = (_offsetX + e.clientX - _startX) + 'px'; +	_dragElement.style.top = (_offsetY + e.clientY - _startY) + 'px'; +} + +function OnMouseUp(e) +{ +	if (_dragElement != null) { +		_dragElement.style.zIndex = _oldZIndex; + +		// we're done with these events until the next OnMouseDown +		document.onmousemove = null; +		document.onselectstart = null; +		_dragElement.ondragstart = null; +		 +		// this is how we know we're not dragging       +		_dragElement = null; +		 +		if (e == null)  +			var e = window.event;  +		 +		// Store new coordinate +		createCookie('admin_x', _offsetX + e.clientX - _startX); +		createCookie('admin_y', _offsetY + e.clientY - _startY); +	} +} +//--> +</script> diff --git a/utils/forms.php b/utils/forms.php index 5694c03..45939e7 100644 --- a/utils/forms.php +++ b/utils/forms.php @@ -338,12 +338,12 @@ class ListEditor {  			}  		}  		$str .= $indent . "</select><br/>\n"; -		$str .= $indent . "<img src=\"gfx/up.png\" button onclick=\"moveUp()\"/><br/>\n"; -		$str .= $indent . "<img src=\"gfx/down.png\" onclick=\"moveDown()\"/><br/>\n"; +		$str .= $indent . "<div class=\"button\" button onclick=\"moveUp()\">/\</div><br/>\n"; +		$str .= $indent . "<div class=\"button\" onclick=\"moveDown()\">\/</div><br/>\n";  		$str .= $this->namewidget->render($indent);  		$str .= $this->valuewidget->render($indent); -		$str .= "<img src=\"gfx/add.png\" onclick=\"addItem()\"/><br/>\n"; -		$str .= $indent . "<img src=\"gfx/del.png\" onclick=\"deleteItem()\"/><br/>\n"; +		$str .= "<div class=\"button\" onclick=\"addItem()\">+</div><br/>\n"; +		$str .= $indent . "<div class=\"button\" onclick=\"deleteItem()\">-</div><br/>\n";  		return $str;  	} diff --git a/utils/user.php b/utils/user.php index 508f83d..f189987 100644 --- a/utils/user.php +++ b/utils/user.php @@ -1,18 +1,11 @@ -<?php +<?php /* -*- Mode: php; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */  include_once("convert.php");  class User {  	public $userid;  	public $password; -	public $users; -	public $news; -	public $events; -	public $guestbook; -	public $gallery; -	public $user; -	public $newsletter; -	public $pressrelease; +	public $modules;  	public function checkPassword($password) {  		return $this->password == sha1(md5($password)); @@ -35,18 +28,22 @@ class User {  		return 0;  	} -	public function User($userid, $password, $users, $news, $events, $guestbook, $gallery, $user, $newsletter, $pressrelease) +	public function checkModule($module)  +	{ +		if($this->modules == "*") return true; +		if($this->modules == "") return false; + +		$modulelist = explode(" ", $this->modules); +		return in_array($module, $modulelist); + +    return true; +	} + +	public function User($userid, $password, $modules)  	{  		$this->userid = $userid;  		$this->password = $password; -		$this->users = $users; -		$this->news = $news; -		$this->events = $events; -		$this->guestbook = $guestbook; -		$this->gallery = $gallery; -		$this->user = $user; -		$this->newsletter = $newsletter; -		$this->pressrelease = $pressrelease; +		$this->modules = $modules;  	}  } @@ -70,14 +67,7 @@ class Users {  			fwrite($fp, "  <user userid=\"" .  						 htmlspecialchars($user->userid, ENT_QUOTES, "UTF-8") . "\"\n");  			fwrite($fp, "        password=\"" . $user->password . "\"\n"); -			fwrite($fp, "        users=\"" . $user->users . "\"\n"); -			fwrite($fp, "        news=\"" . $user->news . "\"\n"); -			fwrite($fp, "        events=\"" . $user->events . "\"\n"); -			fwrite($fp, "        guestbook=\"" . $user->guestbook . "\"\n"); -			fwrite($fp, "        gallery=\"" . $user->gallery . "\"\n"); -			fwrite($fp, "        user=\"" . $user->user . "\"\n"); -			fwrite($fp, "        newsletter=\"" . $user->newsletter . "\"\n"); -			fwrite($fp, "        pressrelease=\"" . $user->pressrelease . "\">\n"); +			fwrite($fp, "        modules=\"" . $user->modules . "\">\n");  			fwrite($fp, "  </user>\n");  		}  		fwrite($fp, "</users>\n"); @@ -127,15 +117,8 @@ class Users {  		foreach ($params as $param) {  			$user = new User($param->getAttribute('userid'), -					 $param->getAttribute('password'), -					 $param->getAttribute('users'), -					 $param->getAttribute('news'), -					 $param->getAttribute('events'), -					 $param->getAttribute('guestbook'), -					 $param->getAttribute('gallery'), -					 $param->getAttribute('user'), -					 $param->getAttribute('newsletter'), -					 $param->getAttribute('pressrelease')); +											 $param->getAttribute('password'), +											 $param->getAttribute('modules'));  			$this->add($user);  		}  | 
