changeset 55:13972ea0af0c

Merge
author Franck Deroche <webmaster@defr.org>
date Tue, 29 Jan 2008 11:59:14 +0100
parents d0b737b2b398 (diff) 77b3ed19aab9 (current diff)
children 0aa843c6571b
files
diffstat 5 files changed, 55 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- a/admin.js	Wed Nov 21 23:33:48 2007 +0100
+++ b/admin.js	Tue Jan 29 11:59:14 2008 +0100
@@ -47,7 +47,8 @@
 
 var editFilter = {
 	acceptNode: function(node) {
-		if(node.nodeName == 'a' && node.firstChild && node.firstChild.nodeValue == 'Editer') return NodeFilter.FILTER_ACCEPT;
+		if(node.nodeName == 'a' && node.firstChild && node.firstChild.nodeValue == 'Editer') 
+			return NodeFilter.FILTER_ACCEPT;
 		return NodeFilter.FILTER_SKIP;
 	}
 }
@@ -181,6 +182,7 @@
 	var data = xmlRequest.get("admin_xml.php?type=" + type + "&id=" + id);
 	el.parentNode.appendChild(editPost);
 	el.editPostIsShown = 1;
+	el.parentNode.parentNode.className = 'Pinned';
 	editPost.style.display = 'block';
 	editPost.Titre.value = data.getElementsByTagName('titre')[0].textContent;
 	editPost.Contenu.value = data.getElementsByTagName('contenu')[0].firstChild.data;
@@ -206,8 +208,9 @@
 	}
 	
  } else {
-	 hideForms();
-	 el.editPostIsShown = 0;
+	hideForms();
+	el.parentNode.parentNode.className = '';
+	el.editPostIsShown = 0;
  }
 }
 
--- a/admin.php	Wed Nov 21 23:33:48 2007 +0100
+++ b/admin.php	Tue Jan 29 11:59:14 2008 +0100
@@ -138,7 +138,7 @@
 	$ar_Version[] = $versionAc;
 	$i++;
   }
-  $Titre=$Data->utf8_ensure($val['Titre']);
+  $Titre=TextUtils::EnsureUTF8($val['Titre']);
   echo("
   \t  <li>{$Titre}<span class='Admin'><a href='#id={$val['num_mess']}'>Editer</a>  --  <a href='#id={$val['num_mess']}'>Supprimer</a>  --  <a href='?id={$val['num_mess']}'>Gérer les commentaires</a></span></li>");
  }
--- a/includes/class.dataaccess.php	Wed Nov 21 23:33:48 2007 +0100
+++ b/includes/class.dataaccess.php	Tue Jan 29 11:59:14 2008 +0100
@@ -4,38 +4,41 @@
   var $user;
   var $pass;
   var $db;
-  var $arResult;
-  var $query;
+  var $link;
   var $connOpen;
+  var $results;
+  var $queries;
   var $_nbQueries;
   
-  var $infos; // Cache contenant les informations sur le visiteur
-  
-  function DataAccess($host=DB_HOST, $user=DB_USER, $pass=DB_PASSWORD) {
+  function DataAccess($host=DB_HOST, $user=DB_USER, $pass=DB_PASSWORD, $db=DB_NAME) {
    $this->host=$host;
    $this->user=$user;
    $this->pass=$pass;
+   $this->db = $db;
+   $this->connOpen = 0;
    $this->_nbQueries = 0;
+   $this->queries = array();
+   $this->results = array();
    $this->Connect();
  }
  
-  function Connect($db=DB_NAME) {
-   if($this->connOpen == 1) return;
-   $this->db=$db;
-   $this->connOpen=1;
-   mysql_connect($this->host, $this->user, $this->pass);
-   mysql_select_db($this->db);
+  function Connect() {
+   if($this->connOpen == 0) {
+     $this->link = mysql_connect($this->host, $this->user, $this->pass);
+     mysql_select_db($this->db, $this->link);
+   }
+   $this->connOpen++;
   }
   
   function Query($query, $id=0) {
-   $this->query=$query;
-   if($this->connOpen != 1) $this->Connect();
-   $this->arResult[$id]=mysql_query($this->query);
-   if($this->connOpen != 1) $this->Close();
-   if(@$num_rows=mysql_num_rows($this->arResult[$id]))
+   $this->_nbQueries++;
+   $this->queries[$id]=$query;
+   $this->Connect();
+   $this->results[$id]=mysql_query($this->queries[$id], $this->link);
+   $this->Close();
+   if(@$num_rows=mysql_num_rows($this->results[$id]))
 	return $num_rows;
-   else
-	return 0;
+   return 0;
   }
   
   function debugQuery($query, $id=0) {
@@ -46,24 +49,17 @@
   }
   
   function GetRow($id=0) {
-   if(@$row=mysql_fetch_assoc($this->arResult[$id])) {
-    foreach($row as $key => $value)
-        $row_utf[$key]=$this->utf8_ensure($value);
-    return $row_utf;
-   }
-   return 0; 
-  }
-  
-  function GetRawRow($id=0) {
-   if(@$row=mysql_fetch_array($this->arResult[$id])) {
+   if(@$row=mysql_fetch_array($this->results[$id])) {
     return $row;
    }
    return 0;    
   }
   
   function Close() {
-   $this->connOpen=0;
-   mysql_close();
+   $this->connOpen--;
+   if($this->connOpen == 0) {
+    mysql_close($this->link);
+   }
   }
   
   function getNbQueries() {
@@ -73,27 +69,5 @@
   function formatDate($timestamp, $decallage=2, $pattern='d/m/Y H:i:s') {
    return gmdate($pattern, $timestamp + $decallage * 3600);
   }
-  
-  function seems_utf8($Str) {
-     for ($i=0; $i<strlen($Str)/10 || $i < 100; $i++) {
-	if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
-	elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
-	elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
-	elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
-	elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
-	elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
-	else return false; # Does not match any model
-	for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
-		if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
-		return false;
-	}
-     }
-     return true;
-  }
-  
-  function utf8_ensure($Str) {
-   return $this->seems_utf8($Str)?$Str:utf8_encode($Str);
-  }
-  
 }
 ?>
--- a/includes/class.post.php	Wed Nov 21 23:33:48 2007 +0100
+++ b/includes/class.post.php	Tue Jan 29 11:59:14 2008 +0100
@@ -19,7 +19,7 @@
                     array('<P>', '</P>'), 
                     array('<p>', '</p>'), 
                     $infos['Message']);
-    $Mess = Factory::getDB()->utf8_ensure($Mess);
+    $Mess = TextUtils::EnsureUTF8($Mess);
     $this->mess = $this->tpl->getDocumentFragment();
     $this->mess->appendXML($Mess);
     
--- a/includes/class.textutils.php	Wed Nov 21 23:33:48 2007 +0100
+++ b/includes/class.textutils.php	Tue Jan 29 11:59:14 2008 +0100
@@ -40,5 +40,26 @@
     public static function getMonthName($monthNumber) {
         return ucfirst(strftime('%B', strtotime('2007-' . $monthNumber . '-01')));
     }
+
+    public static function EnsureUTF8($string) {
+        return TextUtils::SeemsUTF8($string) ? $string : utf8_encode($string);
+    }
+
+    public static function SeemsUTF8($Str) {
+        for ($i=0; $i<strlen($Str)/10 || $i < 100; $i++) {
+            if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
+            elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
+            elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
+            elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
+            elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
+            elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
+            else return false; # Does not match any model
+            for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
+                if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
+                    return false;
+	        }
+        }
+        return true;
+    }
     }
 ?>