Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 Re : [dc2] Questions et aide » Erreur quand je clique sur Import/Export » 2012-11-11 12:26:12

je suis sous free et la version php 5.1.3 crée des problèmes. Je propose le patch suivant qui paraît contourné le problème pour les versions de php avant la 5.2.

Les -- sont des lignes supprimées ou modifiées et ++ des lignes ajoutées

[code=php]
Index: _prepend.php
===================================================================
--- _prepend.php    (revision 483)
+++ _prepend.php    (working copy)
@@ -29,14 +29,27 @@

function registerIeModules($modules)
{
-    $modules['import'][] = 'dcImportFlat';
-    $modules['import'][] = 'dcImportFeed';
-   
-    $modules['export'][] = 'dcExportFlat';
-   
-    if ($GLOBALS['core']->auth->isSuperAdmin()) {
-        $modules['import'][] = 'dcImportDC1';
-        $modules['import'][] = 'dcImportWP';
-    }
+    if (version_compare(PHP_VERSION, '5.2', '>=')) {
+        $modules['import'][] = 'dcImportFlat';
+        $modules['import'][] = 'dcImportFeed';
+
+        $modules['export'][] = 'dcExportFlat';
+
+        if ($GLOBALS['core']->auth->isSuperAdmin()) {
+            $modules['import'][] = 'dcImportDC1';
+            $modules['import'][] = 'dcImportWP';
+        }
+    } else {
+        $tmp = $modules->getArrayCopy();
+        $tmp['import'][] = 'dcImportFlat';
+        $tmp['import'][] = 'dcImportFeed';
+        $tmp['export'][] = 'dcExportFlat';
+
+        if ($GLOBALS['core']->auth->isSuperAdmin()) {
+            $tmp['import'][] = 'dcImportDC1';
+            $tmp['import'][] = 'dcImportWP';
+        }
+        $old = $modules->exchangeArray($tmp);
+    }
}
?>
\ No newline at end of file
[/code]

#2 Re : [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-11-11 12:23:35

J'ai remplacé mon patch par le suivant car j'ai constaté que la transformation $params=new arrayobject($params) n'était pas utile dans le corps de la fonction.

Index: class.dc.blog.php
===================================================================
--- class.dc.blog.php	(revision 518)
+++ class.dc.blog.php	(working copy)
@@ -670,8 +670,8 @@
 	public function getPosts($params=array(),$count_only=false)
 	{
 		# --BEHAVIOR-- coreBlogBeforeGetPosts
-		$params = new ArrayObject($params);
-		$this->core->callBehavior('coreBlogBeforeGetPosts',$params);
+		$params_object = new ArrayObject($params);
+		$this->core->callBehavior('coreBlogBeforeGetPosts',$params_object);
 
 		if ($count_only)
 		{
@@ -819,7 +819,7 @@
 			{
 				# --BEHAVIOR-- corePostSearch
 				if ($this->core->hasBehavior('corePostSearch')) {
-					$this->core->callBehavior('corePostSearch',$this->core,array(&$words,&$strReq,&$params));
+					$this->core->callBehavior('corePostSearch',$this->core,array(&$words,&$strReq,&$params_object));
 				}
 				
 				if ($words)
@@ -845,8 +845,8 @@
 			}
 		}
 
-		if (!$count_only && !empty($params['limit']) && (intval($params['limit']) > 0)) {
-			$strReq .= $this->con->limit($params['limit']);
+		if (!$count_only && !empty($params['limit']) ) {
+            $strReq .= $this->con->limit($params['limit']);
 		}
 		
 		if (!empty($params['sql_only'])) {

#3 Re : [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-09-07 19:56:38

ce n'est peut-être pas la solution "officielle" mais cela marche sur mon site :

[-] ligne supprimée
[+] ligne ajoutée

dans dotclear_test\inc\core

Index: class.dc.blog.php

===================================================================
--- class.dc.blog.php	(revision 483)
+++ class.dc.blog.php	(working copy)
@@ -709,7 +709,7 @@
 		$strReq .=
 		'FROM '.$this->prefix.'post P '.
 		'INNER JOIN '.$this->prefix.'user U ON U.user_id = P.user_id '.
-		'LEFT OUTER JOIN '.$this->prefix.'category C ON P.cat_id = C.cat_id ';
+		'LEFT JOIN '.$this->prefix.'category C ON P.cat_id = C.cat_id ';
 		
 		if (!empty($params['from'])) {
 			$strReq .= $params['from'].' ';
@@ -845,7 +845,7 @@
 			}
 		}
 		
-		if (!$count_only && !empty($params['limit'])) {
+		if (!$count_only && !empty($params['limit']) && (intval($params['limit']) > 0)) {
 			$strReq .= $this->con->limit($params['limit']);
 		}

#4 Re : [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-08-23 19:52:05

Après quelques recherches complémentaires, ce n'est pas un problème de cache; Cela vient de la version php 5.1 qui est celle de Free mon hébergeur.

Il apparait que dans getPosts, mon script produit une requête SQL qui se termine par limit 0. ce qui conduit à ne jamais avoir de réponse.

cette limite est ajoutée car dans un test : empty($params[limit]) est vrai avec une valeur de 0

=>cela proviendrait d'un bug dans le traitement des objets arrayObject dans PHP version 5.1

Les versions suivantes ne paraissent pas impactées.

J'ai donc patché le script pour ajouter un test complémentaire pour vérifier explicitement que le contenu de la valeur est strictement positif et là tout marche bien.

Petite question: l'utilisation des objets arrayObjects apporte-t-il vraiment beaucoup d'avantages par rapport aux inconvénients constatés sur certaines version ?

Remarque: dans la requete SQL il apparait que l'usage de LEFT OUTER JOIN est compliqué par rapport au besoin d'avoir des infos sur la catégorie en balayant les posts. Je suggère de remplacer par : LEFT JOIN.

De plus les pages n'ont pas de catégories, ce serait pas mal d'en tenir compte dans la requête.

#5 Re : [dc2] Questions et aide » Erreur quand je clique sur Import/Export » 2012-08-23 19:40:29

Je suis également sous Free et j'ai le même problème.

Après quelques recherches sur internet, c'est un bug de la version 5.1 avec les objets ArrayObject et malheureusement c'est la version de Free. Il ne parait pas y avoir de contournement à part changer de version.

#6 Re : [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-08-22 17:48:49

Merci pour cette réponse rapide qui m'incite à chercher des causes dans les caches et non pas un bug dans une nouvelle version;

#7 Re : [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-08-21 21:28:14

Je ne le constate qu'avec Pages

Les navigateurs sont FF et Chrome.

Je n'ai pas pu aller très loin dans mes investigations car l'architecture logicielle nécessite d'y consacrer un temps que je n'ai pas.

#8 [dc2] Questions et aide » Widget Pages et version 2.4.4 » 2012-08-21 17:32:18

Alain091
Réponses : 22

Je suis en version 2.4.4 et il apparaît que la liste des pages ne s'affiche plus dans la zone de navigation.

Il apparaît que mes essais de modificationsde position des widgets (pages) n'ont pas marché.

Est-ce un constat connu ? est-ce lié au widget pages ?

Comment affiché une liste des pages existantes dans un widget de la navigation ?

Vous n'êtes pas identifié(e).

Pied de page des forums

Propulsé par FluxBB

Sites map