Dotclear

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

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 Re : [dc2] Questions et aide » Dotclear et la gestion des sous-domaines » 2017-04-21 15:52:04

Car marche, merci Philippe. J'ai hâte de lancer mon nouveau site dot', avec le script de requête perso en guise de contenu des billets, ça va en jeter :-)

M'enfin, y'a du boulot encore...

Encore merci, @plus.

#2 [dc2] Questions et aide » Dotclear et la gestion des sous-domaines » 2017-04-21 14:27:00

Jacques l'Effaceur
Réponses : 2

Bonjour,

Sauf erreur de ma part, on peut à partir d'un blog dotclear installé sur un domaine, créer plusieurs autres blogs administrés depuis d'autres nom de domaines. On a donc une installe et plusieurs sites. C'est la "gestion multiblog" c'est ça ?

Mais est-ce que ça fonctionne aussi avec des sous domaines ?

Par exemple, j'installe dotclear sur www.siteprincipal.com.
Puis j'ai :
http://rubrique-a.siteprincipal.com
http://rubrique-b.siteprincipal.com
http://rubrique-c.siteprincipal.com
http://rubrique-d.siteprincipal.com

Peut-on faire cela ? Et si oui, n'est-ce pas trop complexe ?


Merci d'avance

#3 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-20 11:50:55

J'y vais de suite. Avec un peu de théorie sur l'Objet aussi...

Peut-être ouvrirai-je un topic dédié à la compréhension de la doc', dans les prochains jours.

Merci encore Philippe et @plus pour de nouvelles aventures avec Dotclear.

#4 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-19 15:04:55

Purée, la taille du fichier, je vais lutter...
Il va falloir que je passe deux semaines pour comprendre un peu comment Dotclear fonctionne, dans les grandes lignes. Sinon je vais vous prendre la tête avec des questions sans queue.

Bon allez, faisons simple :

Le fichier Numero Uno pour commencer à comprendre Dotclear, c'est lequel ?

#5 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-19 13:43:16

Et paf, du premier coup ! Ca s'affiche bien, merci Philippe (et les autres aussi).

Mèzanfain, ce n'est point fini. Continuons donc avec un peu de théorie, si vous le voulez bien.
En fait, il y a 1001 questions pour tout piger dans le précédent code, étape par étape.

Alors avant toute chose, cette variable $core qui revient plusieurs fois, elle est instanciée où ?
Elle prends quoi au juste comme valeur ?
Elle sert à quoi, ailleurs dans le script ?

#6 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-19 12:26:24

Salut,

Ah oui, le cache doit expliquer qu'à chaque modif, s'affiche toujours 'xhtml'. Parce que même avec post_content comme champ, j'ai toujours 'xhtml' sur la page...  N'est-ce pas...

Ceci dit, dans le FTP, j'ai ça :
www/cache
/cbfeed
/cbtpl
/dcrepo
/versions

Que faut-il vider, au juste ?

#7 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-18 16:49:56

Salut Philippe,

J'essaie ton deuxième code. J'en comprends la logique à deux trois questions près à propos des variables.
Mais lorsque je l'insère via  {{tpl:myContent}} dans post.html, le seul résultat que j'obtiens à l'endroit concerné, c'est le message 'xhtml'.

Le problème vient peut-être de la ligne de la requête, parce que le code que tu utilises, c'est la première fois que je le vois donc j'essaie de me dépatouiller avec.

Ton requête, donc  :

	$query = \'SELECT post_content FROM \'.$core->prefix.\'post WHERE post_id="\'.$id.\'"\';

Et la mienne (j'ai essayé de changer la table)  :

	$query = \'SELECT post_content FROM \'dot_post\'post WHERE post_id="\'.$id.\'"\';

Et dans les deux cas, le seul résultat que j'obtiens à l'affichage est le message 'xhtml'.

???

#8 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-18 14:48:08

Salut Mirovinben,

Effectivement, c'était une première erreur de logique. Sans approfondir tout de suite la question de la fonction return(), il faut dire qu'après avoir enlevé ce premier "return $p;" j'obtiens néanmoins une grosse erreur php sur la page :

Fatal error: Uncaught Error: Call to a member function prepare() on null in /home/site/www/themes/MistyLook2013

Si j'en crois cette page : https://openclassrooms.com/forum/sujet/ … re-on-null

C'est parce qu'en fait dans la requête ci-dessus $dbh n'est pas la variable de connexion utilisée par dotclear (j'ai repris cette variable d'un autre script utilisé en dehors de dotclear).

Mais où donc trouver la bonne variable de connexion à la base de donnée ?

#9 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-18 14:13:41

Bien reprenons !
Et bonjour à tous au passage.

Bon alors, j'ai pigé dans les grandes lignes, mais question classe et objet, c'est la première fois que je m'y essaie.
Et là, je dois dire que mon "script" (j'ose le terme) ne fonctionne point. Si vous voulez bien m'expliquer où je me plante (surement à chaque ligne mais bon), je vous en remercie par avance... Il s'agit donc de récupérer l'id du billet et de faire une simple requête sql pour afficher le contenu à l'endroit voulu de la page (template post.html). Il faut déjà que je réussisse ça, pour approfondir les autres questions déjà évoquées.

The script, donc :

$core->tpl->addValue('myContent',array('myTpl','myContent'));

class myTpl {
   
    public static function myContent ()
    {

//1ere partie, on récupère l'id de la page
		$p = $_ctx->posts->post_id;
   		return $p; 


//2eme partie, on utilise l'id de la page dans la requête 
   $sql = "
SELECT
post_content
FROM
dot_post
WHERE post_id=".$p."
";
$stmt = $dbh->prepare ($sql); 
$stmt->execute();
while($lettre= $stmt->fetch(PDO::FETCH_OBJ))
{
$post_content=$lettre->post_content;

echo' <u>'.$post_content.'</u><br>'
;}//ferme while  

    	return $sql;

    }

}

On ne se moque pas, merci.

#10 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-15 14:04:12

Une autre question, au passage.

Je suis en train de lire la doc' histoire de ne pas trop vous prendre la tête avec des questions inutiles.
Là je suis sur cette page : https://fr.dotclear.org/documentation/2 … -la-balise

Pour savoir : Absolument tout code ajouté dans Dotclear doit-ele nécessairement l'être au moyen d'une fonction déclarée à l'intérieur d'une class à son tour appelée par la ligne

$core->tpl->addValue('myContent',array('myTpl','myContent')); 

    ?


Ce n'est pas que je veuille faire autrement, mais c'est pour comprendre.

#11 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-15 12:15:01

Magnifique, ça s'affiche ! C'est la première fois que j'arrive à interagir avec dotclear.
Petite erreur dans ton code ceci dit adjaya, mais peu importe, la logique est la bonne. Merci.

Bon, j'ai répondu moi-même à ma question un peu simpliste, concernant le nom des balises de modèle. Passons sur ça.

Deuxième étape importante, donc :

Maintenant que je sais comment afficher un bout de code où je veux au moyen d'une balise, comment est-ce que je fais pour récupérer l'id du billet ?
Par exemple, j'ai ce titre-là :

 http://www.lesite.com/index.php?post/2017/04/04/Bienvenue-sur-Dotclear-%21 

Soit je récupère le champ post_id, soit le champ post_url, peu importe. Mais comment je fais, dans un cas comme dans l'autre ?
Comment connaître le nom des variables correspondantes ?
Il s'agit donc de les récupérer, pour les passer en paramètre à l'intérieur d'une requête sql.

Merci d'avance.

#12 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-14 15:11:15

Salut Philippe,

Je viens de me lancer avec ton aide dans les entrailles de Dotclear et cela s'avère une aventure passionnante. C'est la première fois que j'essaie de visiter le code.
J'ai quelques questions à poser, mais déjà j'ai un petit soucis. Je programme des sites souvent assez compliqués dans leur structure (jusqu'à des forums complets) par contre j'utilise un style de code très rudimentaire.
Et les fonctions utilisateurs, je les maîtrise très mal.

Ce qui fait que lorsque j'essaie de suivre ton tuto avec un code simpliste comme ça, j'ai déjà une erreur :

if (!defined('DC_RC_PATH')) { return; }
$core->tpl->addValue('myContent',array('myTpl','myContent'));
class myTpl {
   
    public static function myContent ()
    {
		$p=echo'<h1> TEST AFFICHAGE </h1>';
		return $p;
    }
 
}  ;
l10n::set(dirname(__FILE__).'/locales/'.$_lang.'/public');

Bilan :

 
Parse error: syntax error, unexpected 'echo' (T_ECHO) in /home/site/www/themes/MistyLook2013/_public.php on line 37

La ligne 37 c'est la ligne avec "test affichage". J'ai essayé diverses formules mais au plus, ça n'affiche rien.

Okay, je sais, j'ai besoin d'une mise à niveau.

A part ça donc, à propos de ton message ci-dessus, quelques questions :
1) Dans cette ligne : $core->tpl->addValue('myContent',array('myTpl','myContent'))
myContent doit obligatoirement être le nom rapporté de la balise de template {{tpl:myContent}} , c'est ça ?
2) Et si j'ai bien compris, on pourrait donc écrire {{tpl:bananesBio}} , c'est ça ?

J'ai d'autres questions, mais il faut déjà que je comprenne cela, avec ton (votre) aide.

Merci d'avance.

#13 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-13 16:07:49

Euh... Attendez, j'étais sur deux scripts à la fois... Je vais revenir avec des questions un peu plus précises (quoi que celles du dessus m'intéressent aussi).

Merci pour votre patience.

#14 Re : [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-13 13:04:27

Salut Philippe,

{{tpl:myContent}} ce n'est pas du wiki dis-tu, mais c'est tout de même bien une syntaxe propre à dotclear, non ? Et c'est dans le core qu'on trouve comment est décodée cette balise, c'est ça ?

En fait, avant de préciser ce que je dois ajouter et où je dois l'ajouter, ce qu'il faudrait, c'est que je comprenne ligne par ligne le bout de code que tu nous indiques. Par exemple en essayant de le commenter :

//DC_RC_PATH -> C'est quoi ? C'est où ? Pourquoi ? 
//  { return; } -> Retourne quoi ?

if (!defined('DC_RC_PATH')) { return; }

//$core fait appel à quel dossier et quelle fonction ? Même question pour $tpl
$core->tpl->addValue('myContent',array('myTpl','myContent'));

// Cette classe est-elle créée pour l'occasion où est-ce une classe préexistante ?
class myTpl {
   
//idem : est-ce là une fonction pré-existante, où alors créée pour réaliser ce script en particulier ?
    public static function myContent ()
    {
		$p = '<?php $id = $_ctx->posts->post_id;
		echo $id ?>';
		return $p;
    }

}

Déjà avec ça, je saurai mieux si j'ai affaire à une voiture ou à une pirogue. Ensuite, je verrai mieux comment ça fonctionne...

Merci encore par avance.

#15 [dc2] Questions et aide » Contenu d'un billet remplacé par une requête personnalisée » 2017-04-13 10:30:19

Jacques l'Effaceur
Réponses : 25

Bonjour,

Je reprends donc le fil de la conversation ici créée et dans lequel le sieur Philippe a commencé à apporter un début de réponse, pour lequel je l'en remercie bien bas.
Un topic à part entière sciera mieux à la résolution du problème.
Il s'agit donc de remplacer le contenu d'un billet par une requête personnalisée. Peut importe le contenu de la requête, la question est ici de récupérer l'identifiant du billet (numérique ou textuel) afin de pouvoir le passer en paramètre dans la requête perso, laquelle génère le contenu du billet.

Philippe propose donc de commencer ainsi :
 

<?php
# -- BEGIN LICENSE BLOCK ---------------------------------------
#
# This file is part of Dotclear 2.
#
# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK -----------------------------------------
if (!defined('DC_RC_PATH')) { return; }

$core->tpl->addValue('myContent',array('myTpl','myContent'));

class myTpl {
   
    public static function myContent ()
    {
		$p = '<?php $id = $_ctx->posts->post_id;
		echo $id ?>';
		return $p;
    }

}
?>

-----------------
à utiliser en insérant {{tpl:myContent}} dans le fichier post.html

Ensuite, au lieu de faire un echo de l'id, tu fais ta requête et tu fais un echo du résultat ;)

Moi je n'ai rien contre au contraire, d'autant plus que ce bout de code m'est quasiment abscons. Plusieurs questions, donc :

1) La syntaxe  {{tpl:myContent}} est une sorte de code wiki pour insérer dans les modèles de page dotclear des bouts de code extérieurs, c'est ça ?
Mais en pratique, que veut dire "à insérer en utilisant  {{tpl:myContent}}" ?
Il faut que je crée un fichier php, je lui donne le nom ma_requete.php, j'enregistre ce fichier dans un dossier spécifique, puis j'écris {{tpl:ma_requete}} dans le fichier post.html, à l'endroit voulu ? C'est ça ?

Je ne pose pas d'autres questions tout de suite, je ne vais plus m'y retrouver.

Merci d'avance !

#16 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-10 14:09:11

Merci Philippe !

Comme écrit dans mon dernier topic, là je dois terminer un script justement pour pouvoir faire fonctionner celui évoqué ici.
Ensuite, je me lance dans l'aventure, en ouvrant un nouveau topic dédié. D'ici une bonne semaine je pense.
M'est avis que le topic fera plusieurs pages, parce qu'il va falloir que je plonge dans les abysses de Dotclear... Mais je suis sûr que vous saurez me donner de l'oxygène.

Allez @plus et merci encore.

**edit**
En plus c'est du codage de haute volée, moi je fais dans l'amateurisme mais enfin, c'est aussi une bonne manière de se perfectionner.

#17 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-08 15:45:06

Ok, ok, ok...

Je finis un truc et je me lance dans l'aventure, d'ici une semaine je pense.

Je reviendrons.


Avec des questions plus précises.


On va entrer dans le vif du sujet. A coup de machettes et sans dormir, on finira par sortir de la jungle.

Ca va être sauvage.


@plus pour de nouvelles aventures.

#18 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-08 11:35:16

Salut Philippe, merci pour ta réponse complète.

En admettant qu'après quelques prises de tête, j'arrive à réaliser ce que tu schématises là.

Lors des mises à jour, est-ce que cela génèrera un surcroît de travail ? Faudra-t'il simplement réitérer l'opération, en modifiant les templates et fichiers que tu évoques ?

Bon ce que je vais faire dans un premier temps, c'est que je vais développer ma propre interface client, en utilisant dotclear pour des tâches annexes.
Puis je vais bosser sur l'idée ci-dessus, sur un serveur local. Ce sera une bonne manière de comprendre comment fonctionne la machine.

#19 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-07 15:27:01

Ouais, j'ai pensé à la deuxième soluce en effet (l'injection).

Un pluggin serait plus classe, mais commencer d'emblée par ça, c'est un peu du rambo programmatoire.

Quand tu dis "des plombes" gnieark, tu penses plutôt 10h ou plutôt 200 heures ?

#20 Re : [dc2] Questions et aide » Dotclear et Softaculous » 2017-04-07 15:24:41

Bah, le temps de poster ça, t'aurais déjà installé le blog manuellement. Un tournevis, deux coups de marteau et le voilà fixé sur ton écran.

#21 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-07 13:33:44

Salut gnieark,

En fait, je vais requêter des tables spécifiques, mais dans la même base de données. Donc, pas de problème à prévoir de ce côté-là.

Dans un premier temps, je n'ai pas besoin d'un pluggin.

Il faut seulement que pour le contenu d'un billet, je remplace la requête dotclear par une de mon cru. La requête, je sais l'écrire bien sûr. Mais où donc trouver où ça se passe dans dotclear ?

Et est-ce que cela risque de poser problème lors des mises à jour, ou ailleurs dans le script ? Auquel, je laisse tomber l'idée.

#22 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-05 17:10:23

Ah hum... Le temps passe vite !

Bien en effet, j'ai un script précis à réaliser là, maintenant, avec votre aide, sans quoi c'est comme d'aller sur la lune en franchissant la barrière de radiations équipé d'un short adidas...

Bon, soyons sérieux.
A l'affichage d'un billet, je ne veux pas récupérer le contenu du billet dans la table dc_post. M'plait pas.
Ce que je souhaite, c'est effectuer une requête spéciale, de ma composition, qui va aller récupérer le contenu de différents champs dans d'autres tables de mon cru.

Il faut donc :
1) Que je sache comment récupérer l'id du billet (valeur numérique ou texte).
2) Que je sache où insérer ma requête perso et comment l'afficher à la place de la requête dotclear qui affiche normalement le contenu du billet.

C'est tout, mais c'est déjà pas mal pour commencer.
Si j'arrive à faire ça, je m'inscris dans votre association dotclear, garantie sans tabac.


Merci d'avance !

**edit**
Si vous supputez que c'est là une opération de haute volée que vous même n'oseriez effectuer qu'avec beaucoup de recul et qu'il y a un risque d'avoir des crises de tremblements en programmant ce truc-là, alors n'hésitez pas à le dire d'emblée avant de vous lancer dans des explications niveau ceinture noire. Je n'ai pas 12 années de programmation intensive derrière moi et je ne vais pas me lancer de but en blanc dans des scripts niveau ingénieur...
Dans le cas contraire, merci encore par avance !

#23 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-05 12:11:57

Je vais y revenir dans un proche avenir. Là, je dois coder quelques scripts annexes.

Bien, je vous remercie pour votre support et je suis bien heureux de développer un nouveau site avec dotclear. Je n'ai jamais eu de déconvenue avec ce script, au contraire.

Allez @plus et encore merci.

#24 Re : [dc2] Questions et aide » Comment sont gérés les topics en cas de multisites ? » 2017-04-04 14:57:41

Oui, je vois que la bête a le poil bien entretenu, si je puis dire. Bravo !


Là je suis en train de (re)découvrir la machine.
J'ai failli utiliser wordpress à la place de dotclear - une trahison somme toute - parce que sur wordpress, il y a de nombreux tutos pour comprendre le fonctionnement et développer ses propres pluggins.

Avec dotclear, je ne vois point par où commencer. Par exemple, je voudrais créer une requête personnalisée sous chaque billet, bah là comme ça, je galère...

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

Pied de page des forums

Propulsé par FluxBB

Sites map