Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Pages : 1
Bonjour,
J'essaie de faire fonctionner la fonction proposée par ce plugin. D'après ce que j'ai compris, il permet de faire apparaître sur un site php du contenu issu de dotclear. J'ai noté qu'il est nécessaire que dotclear et l'autre site soient sur le même serveur.
Donc, j'ai installé le plugin sur mon blog. Sur l'autre site, basé sur joomla! et installé sur le même serveur chez ovh, j'ai ajouté le code suivant :
<?php if (!defined('DC_ROOT')) {
define('DC_ROOT', dirname(__FILE__).'./../../blog');
}
$attr = array(
'blogid' => 'default',
'maxitems' => '40',
'formdate' => '%d/%m/%Y',
'formitem' => '%DATE% : %TITLE:POST%',
);
include_once(DC_ROOT.'/plugins/mrvbNextDoor/externe.php');
extNextDoor($attr);
?>
Je n'obtiens rien d'autre que le message : Impossible de trouver le répertoire de Clearbricks...
Bien, me dis-je. Il y a quelque chose qui ne colle pas. J'essaie en local avec MAMP. Une installation toute neuve de dotclear, j'ajoute le plugin. A côté, j'installe un joomla! tout neuf lui aussi. Dans le fichier 'index.php' du template, j'ajoute le code qui appel le plugin. J'obtiens le message : Impossible de trouver le répertoire de Clearbricks...
Je me dis que, peut-être, cela fonctionnerait si les deux installations partageaient la même base de données. J'exporte les bases de données de dotclear et de joomla!, je crée une nouvelle base de données, j'importe les deux bases dans cette nouvelle base, je modifie les fichiers de configuration, je vérifie et je note que le message renvoyé est toujours : Impossible de trouver le répertoire de Clearbricks...
Alors, je me dis qu'il doit y avoir un truc que je ne comprends pas.
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Bonjour
En premier lieu, il y a quelque chose que je ne comprends pas dans ton chemin vers DC_ROOT :
./../../blog
En effet , sauf erreur de ma part, sur Linux le ./ revient à rester dans le même dossier, et le ../ à remonter d'un niveau
Du coup je crois que tu pourrais te passer du premier ./
Mais il faudrait surtout nous donner schématiquement l'arborescence de ton serveur pour en déduire le chemin entre la page où tu veux afficher les articles du blog et l'index du blog lui-même : en gros, la position du répertoire affecté au sous-domaine blog par rapport au www ;)
PS : les bases peuvent tout à fait être séparées, le fichier externe.php interrogera seulement la base de dc
Hors ligne
Moi non plus je ne comprends pas ce chemin. J'ai testé tout un tas de choses, tant en local que sur le serveur distant et c'est ça qui "marche".
La suite de ../ me permet de revenir à la racine du dossier 'web' de l'hébergement.
Pour l'installation joomla!, l'arborescence est : /home/michelloie/www/templates/it_blackwhite2/index.html
Pour l'installation dotclear, c'est : /home/michelloie/www/blog/
Si j'utilise tes conseils pour mettre le chemin du fichier externe.php, j'ai :
<div>
<?php
$attr = array(
'blogid' => 'default',
'maxitems' => '40',
'formdate' => '%d/%m/%Y',
'formitem' => '%DATE% : %TITLE:POST%',
);
include_once('/home/michelloie/www/blog/plugins/mrvbNextDoor/externe.php');
extNextDoor($attr);
?>
</div>
et alors, le message d'erreur change. A présent, j'ai : "La constante DC_ROOT n'est pas définie..."
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Euh... non, le code que tu indiques était un essai pour trouver la solution dans un autre fil.
Il faut laisser le define vers DC_ROOT et trouver le bon chemin. Je reviens dans la soirée ou demain matin.
Hors ligne
Pour l'installation joomla!, l'arborescence est : /home/michelloie/www/templates/it_blackwhite2/index.html
Pour l'installation dotclear, c'est : /home/michelloie/www/blog/
De ces deux chemins, on déduit que le dotclear est dans le répertoire /blog , lui-même dans /www, et que chacun des CMS est installé à la racine de son sous-domaine
Le joomla! répond à la racine du www, donc son index.php est là : /home/michelloie/www/ . Ce qui apparaît ensuite (templates/it_blackwhite2/index.html) est le chemin vers le template utilisé, mais ce n'est pas une URL que l'on peut atteindre : index.php appelle simplement ce template pour construire une des page du site et son URL. Il faut donc partir de l'index.php de joomla! et trouver le chemin vers celui de dotclear
Donc DC_ROOT est dans le répertoire blog, lui-même dans le répertoire www contenant le index.php de joomla!, ce qui donne comme arborescence :
www
index.php (joomla!)
blog
index.php (dotclear)
J'ai bon ?
Si c'est le cas, le code à insérer serait
<div class="mrvbNextDoor">
<?php
if (!defined('DC_ROOT')) {
define('DC_ROOT', dirname(__FILE__).'/blog');
}
$attr = array(
'maxitems' => '10',
'formdate' => '%d/%m/%Y',
'formitem' => '%DATE% : %TITLE:POST%',
'modifurl' => '1',
);
include_once(DC_ROOT.'/plugins/mrvbNextDoor/externe.php');
extNextDoor($attr);
?>
</div>
Hors ligne
Bonjour,
Oooops. Je me suis trompé. C'est bien "/home/michelloie/www/templates/it_blackwhite2/index.php"
Le index.php de la racine de joomla! ne fait "que" retourner la requête vers celui du template (si je comprends bien). Il ne décrit rien de la page affichée par le site.
<?php
/**
* @package Joomla.Site
*
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
/**
* Define the application's minimum supported PHP version as a constant so it can be referenced within the application.
*/
define('JOOMLA_MINIMUM_PHP', '5.3.10');
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<'))
{
die('Your host needs to use PHP ' . JOOMLA_MINIMUM_PHP . ' or higher to run this version of Joomla!');
}
// Saves the start time and memory usage.
$startTime = microtime(1);
$startMem = memory_get_usage();
/**
* Constant that is checked in included files to prevent direct access.
* define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
if (file_exists(__DIR__ . '/defines.php'))
{
include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', __DIR__);
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
// Set profiler start time and memory usage and mark afterLoad in the profiler.
JDEBUG ? JProfiler::getInstance('Application')->setStart($startTime, $startMem)->mark('afterLoad') : null;
// Instantiate the application.
$app = JFactory::getApplication('site');
// Execute the application.
$app->execute();
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Oui, l'index.php de joomla! ne contient pas la page d'accueil. Mais c'est lui qui dispatche les requêtes vers les différents composants du logiciel, ses gestionnaires d'URLs, ses modules, etc. pour délivrer la page demandée. Sans réécriture, toute page gérée par joomla! contient index.php? suivi d'un chemin ou de paramètres
Tout comme l'index.php de dotclear... l'URL monsite/dotclear/category/Ma-categorie est une URL générée par l'index.php de dotclear mais qui ne correspond pas à un emplacement physique sur le serveur (il n'y a pas de répertoire category)
Hors ligne
Bon. Le problème est que si j'insère le code dans le index.php de la racine, j'ai une page blanche. Je ne le place peut-être pas au bon endroit, ceci dit. J'ai essayé de placer le code en divers endroits du index.php racine, j'ai viré les <div>. Rien n'y fait.
Par contre, si je le mets dans le index.php du template, j'ai bien un retour m'indiquant que le chemin vers clearbricks est introuvable. Selon moi, ça signifie que ça cherche bien quelque chose dans le répertoire où est installé dotclear, non ?
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Il ne faut rien mettre dans l'index.php de joomla! à la racine. C'est bien dans l'index.php du template qu'il faut ajouter le code
Et oui, si le message "No clearbrick path defined" apparaît c'est que tu as trouvé le dotclear et qu'il couine ;) Et là, ça ressemble à un problème d'installation. Ton doctlear est à jour et fonctionne normalement ?
Et au fait as-tu essayé d'insérer le code donné en #6 dans l'index.php de ton template (désolé ce n'est pas clair) ?
Hors ligne
Nous sommes d'accord. Je comprenais que tu proposais d'ajouter le code dans le index.php de la racine.
Si je mets le code donné en #6 dans le index.php du template, ça me renvoit le message :
"Erreur: 0 - Call to undefined function extNextDoor()"
Le blog fonctionne à merveille et est à jour. Tu peux t'en assurer en allant le visiter, le lien est celui donné en regard de mon pseudo.
Sur des installations toute neuves de joomla! et de dotclear en local, j'ai le même résultat.
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Ajoute dans le code
ini_set('display_errors',true);
error_reporting(E_ALL | E_STRICT);
juste avant la ligne
if (!defined('DC_ROOT')) {
Tu auras ainsi peut-être un message d'erreur plus parlant.
Je reviens après le weekend, si personne n'a trouvé d'ici là
(pour le blog, je le visite régulièrement ;))
Hors ligne
Le message d'erreur "plus parlant" est :
Notice: Only variables should be assigned by reference in /home/michelloie/www/templates/it_blackwhite2/error.php on line 9
Notice: Constant IT_THEME already defined in /home/michelloie/www/templates/it_blackwhite2/error.php on line 14
Et bon week-end et merci de visiter mon petit blog !
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Ce n'est pas très parlant :D
je pense que le gestionnaire d'erreurs de joomla! prend la main. Je viens d'installer une copie neuve joomla! en local pour faire des tests, et un dotclear à l'intérieur. Mais comme je ne connais pas du tout ce CMS ça peut prendre un peu de temps.
Hors ligne
Bonjour,
Merci de ton aide.
Pour Joomla!, il me semble qu'il n'est pas possible nativement de lui faire passer du php dans les billets ou les modules. Pour ces tests, j'ai écrit le code directement dans le index.php du template.
Sinon, rien ne presse ! Et merci encore !
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Je viens de faire des tests en local avec joomla! installé à la racine et dotclear dans un répertoire nommé blog. Les deux logiciels fonctionnent bien
D'après le plugin sysInfo de dotclear, la valeur de DC_ROOT est /opt/lampp/htdocs/joomla/blog (c'est mon installation locale, le tien doit être différent)
Si je mets à la racine un simple fichier test.php avec :
<div class="mrvbNextDoor">
<?php
if (!defined('DC_ROOT')) {
define('DC_ROOT', '/opt/lampp/htdocs/joomla/blog');
}
$attr = array(
'maxitems' => '10',
'formdate' => '%d/%m/%Y',
'formitem' => '%DATE% : %TITLE:POST%',
'modifurl' => '1',
);
include_once(DC_ROOT.'/plugins/mrvbNextDoor/externe.php');
extNextDoor($attr);
?>
</div>
je récupère bien la liste de billets du blog
Si je mets ce même code dans le fichier /opt/lampp/htdocs/joomla/templates/protostar/index.php (soit le fichier template de l'installation par défaut), j'obtiens l'erreur
Class 'dt' not found
/opt/lampp/htdocs/joomla/blog/inc/libs/clearbricks/common/_main.php:57
J'en déduis que :
- le chemin vers le plugin mrvbNextDoor est bien trouvé
- le chemin vers clearbricks est bien trouvé
- quelque chose cloche entre le traitement des fichiers inclus par Joomla! et clearbricks
Je n'ai pas trouvé ce que ça pourrait bien être... mais tu pourrais peut-être essayer de reproduire mon exemple et avoir plus de chance si ton serveur est configuré différemment du mien ?
Hors ligne
Ah ! Ah ! Il y a du mieux.
A la racine, j'ai créé un fichier 'test.php' qui contient :
<div class="mrvbNextDoor">
<?php
if (!defined('DC_ROOT')) {
define('DC_ROOT', '/home/michelloie/www/blog');
}
$attr = array(
'maxitems' => '10',
'formdate' => '%d/%m/%Y',
'formitem' => '%DATE% : %TITLE:POST%',
'modifurl' => '1',
);
include_once(DC_ROOT.'/plugins/mrvbNextDoor/externe.php');
extNextDoor($attr);
?>
</div>
et là, ça fonctionne aussi chez moi.
Tu peux t'en assurer là
Merci encore !
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Essaie maintenant de coller le même code dans ton template ;)
Hors ligne
Chouette ! Nous avons la même erreur :D
Je viens d'essayer un module (jumi) qui permet d'insérer du code php dans un article : même résultat : test.php fonctionne s'il est appelé directement, mais s'il est inclus dans joomla! cette erreur apparaît.
Je ne sais pas si c'est la faute de clearbricks ou de joomla!, mais peut-être que sur leur forum de support tu aurais plus facilement une solution ;)
Hors ligne
Oui, j'étais juste en train d'essayer de comprendre le fonctionnement de jumi. J'ai aussi tenté avec sourcerer. Échec sur toute la ligne dans les deux cas.
En effet, je pourrais peut-être voir du côté de la communauté Joomla!.
A migré de dotclear 1.2.8 vers dotclear 2.3 le 28 mai 2011. Il essaie maintenant de comprendre ce que dotclear 2 lui apporte de plus.
Hors ligne
Pages : 1
Vous n'êtes pas identifié(e).