Templates comment faire ?

More
12 years 9 months ago #36471 by webscom
Bonjour à tous,

J'avoue que je débute avec Flexi, ma contrainte est d'avoir une fichier à télécharger dans le formulaire (admin, donc pas de soucis là), mais que dans le rendu de la page cela ne soit pas un fichier à télécharger mais qui va charger une page avec le chemin du fichier.

admin:
fichier du type STL (fichier normal)
nom du champ --> file_3d_stl

l'url que je voudrais intégrer dans ma page de rendu:
Code:
<a class="triview" href="index.php?option=com_content&view=article&id=10&Itemid=155&myobject3d=<?php echo $fichier_object_3d ;?> " rel="rokbox[820 620]" target="_blank">&nbsp;

(myobject3d= ma variable que je passe dans l'url pour une nouvelle page joomla avec un autre template)

Donc je présume que je dois faire un template personnalisé , donc j'aimerai savoir si le tuto
extensions.netassopro.com/9-tutorials/02...part-1-the-structure
est aussi valable pour joomla 2.5 et Flexi pour 2.5.

car j'ai créer via l'admin un nouveau template 'object_3d' mais je ne vois aucune structure dans le fichier 'item_html5.php' ou 'item.php' .

Donc dois-je réalisé la structure du type:
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <div id="stade_contenu"> <div id="stade_entete"> </div> <div id="stade_adresse"> </div> <div id="stade_contact"> </div> <div id="stade_image"> </div> <div id="stade_description"> </div> <div id="stade_informations"> </div> <div id="stade_gmap"> </div> <div id="stade_bas"> </div> </div

merci d'avance (en espérant avoir été assez clair dans ma demande)

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36472 by micker
Replied by micker on topic Templates comment faire ?
hello oui le tuto est à pret à jour
mon conseil
duplique un template genre défaut
puis check les fichiers regarde la structure d'une position pour comprendre le tout
Après explique nous olus en détail ton objectif
a plus

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36475 by webscom
Replied by webscom on topic Templates comment faire ?
Merci de m'avoir répondu,

J'ai suivi le principe suivant:

Copié le répertoire 'default' (dans le répertoire template)

J'ai ajouter une 'position' -->'entete' dans le fichier 'item.xml'
qui apparait bien dans l'édition des templates dans l'admin
j'ai intégré dans mon fichier item.php ceci
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <h1 class="componentheading"> <?php echo $this->params->get('page_heading'); ?> </h1> <div id="tri_object_entete"> </div>

Le titre apparait bien, mais comment je fais pour que ma position 'entete' fasse apparaitre le champ que je veux ?
Sous entendu est-ce qu'entre mes balises
Code:
<div id="tri_object_entete"> je dois intégrer du code php pour afficher du contenu ? </div>
ou c'est juste le nom de l'ID de la div (ici 'tri_object_entete') qui permet d'intégrer automatiquement les champs que j'ai choisi à intégrer dans l'admin ?

En faite j'ai pas compris cette manip , comme lui dire je veux afficher dans cette position tel contenu de champs que j'ai pourtant bien positionné dans l'admin.

Merci de votre aide

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36477 by ggppdk
Replied by ggppdk on topic Templates comment faire ?
Hello,
to make you position appear, copy an existing position e.g. and change the name of it to be 'header':

e.g.
$item->positions
will become:
$item->positions

e.g.
Code:
<!-- BOF header block --> <?php if (isset($item->positions['header'])) : ?> <div class="flexi lineinfo header group"> <?php foreach ($item->positions['header'] as $field) : ?> <div class="flexi element"> <?php if ($field->label) : ?> <span class="flexi label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <div class="flexi value field_<?php echo $field->name; ?>"><?php echo $field->display; ?></div> </div> <?php endforeach; ?> </div> <?php endif; ?> <!-- EOF header block -->


-- Flexicontent is Free but involves a big effort on our part.
Like the our support? (for a bug-free FC, despite having a long list of functions) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing with a 5-star review. Thanks!

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36480 by webscom
Replied by webscom on topic Templates comment faire ?
merci...

Hélas cela ne fonctionne pas j'ai intégré ceci:
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <h1 class="componentheading"> <?php echo $this->params->get('page_heading'); ?> </h1> <?php echo $item->positions['entete'] ?>

j'ai testé aussi comme-ceci :
Code:
<div class="flexi lineinfo header group"> <?php foreach ($item->positions['entete'] as $field) : ?> <div class="flexi element"> <?php if ($field->label) : ?> <span class="flexi label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <div class="flexi value field_<?php echo $field->name; ?>"><?php echo $field->display; ?></div> </div> <?php endforeach; ?> </div>

Là je n'ai plus rien qui s'affiche même pas le titre (h1) juste une erreur:
Code:
Notice: Undefined variable: item in W:\var\www\joom_flexi\components\com_flexicontent\templates\tri_object\item.php on line 9
(j'ai testé aussi avec cela fait pareil)
Dois-je en amont déclarer une variable pour que cela fonctionne ?

j'ai essayé plus simplement
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <h1 class="componentheading"> <?php echo $this->params->get('page_heading'); ?> </h1> <?php echo $item->positions['entete'] ?>

En même temps que j'écrivais ce post je viens de trouver ce qui fonctionne (j'ai pris le modèle existant dans le fichier template\blog\item_html5.php)
Code:
<div class="customblock beforedescription group"> <?php foreach ($this->item->positions['entete'] as $field) : ?> <span class="element <?php echo $columnmode; ?>"> <?php if ($field->label) : ?> <span class="fclabel field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <span class="fcvalue field_<?php echo $field->name; ?><?php echo !$field->label ? ' nolabel ' : ''; ?>"><?php echo $field->display; ?></span> </span> <?php endforeach; ?> </div>

Je vais comparer tout ça et enlever les mauvaises classes etc.

Merci en tout cas de m'avoir répondu, je me permettrais si j'ai d'autre question de vous les posez.

Merci encore

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36481 by micker
Replied by micker on topic Templates comment faire ?
fait nous tes retours au fur et à mesure
courage

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36485 by webscom
Replied by webscom on topic Templates comment faire ?
merci...

Je me rends compte que j'ai travailler un peu pour rien, je croyais que les fichiers (un fichiers charger dans l'admin joomla) était intégré dans un répertoire spécifique par rapport à l'id de l'article par exemple, mais il n'en est rien, cela sous entend que des conflits pourraient exister si 2 fichiers du même nom était chargé (avec ma méthode)

Finalement le fichier et son chemin est du type
Code:
/joom_flexi/index.php/mon-premier-object/download/12/1/17/vase.stl

mais le stockage ne se fait pas dans ce répertoire mais:
Code:
\components\com_flexicontent\uploads

Mon fichier item.php était ainsi:
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <article class="item-page"> <!-- BOF header block --> <Header> <h1> <?php echo $this->params->get('page_heading'); ?> </h1> <ul> <?php foreach ($this->item->positions['header'] as $field) : ?> <li> <?php echo $field->label; ?> <?php echo $field->display; ?> </li> <?php endforeach; ?> </ul> </header> <!-- EOF header block --> <div id="object_tri"> <div> <?php foreach ($this->item->positions['subtitle1'] as $field) : ?> <?php echo $field->label; ?> <?php echo $field->display; ?> <?php endforeach; ?> </div> <div> <?php foreach ($this->item->positions['subtitle2'] as $field) : ?> <?php echo $field->label; ?><br /> <?php echo $field->display; ?> <?php endforeach; ?> </div> <div id="bt"> <?php foreach ($this->item->positions['subtitle3'] as $field) : ?> <?php $fichier = $field->display; echo $fichier; preg_match('`href="([^"]+)"`i',$fichier,$chemin); preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $fichier, $matches, PREG_SET_ORDER); foreach ($matches as $val) { $nom_du_fichier = $val[3]; } $chemin = $chemin[1].'/'.$nom_du_fichier; echo $chemin ; ?> <a class="triview" target="_blank" rel="rokbox[820 620]" href="index.php?option=com_content&view=article&id=2&Itemid=123&myobject3d=<?php echo $chemin ;?>">&nbsp; <?php endforeach; ?> </div> </div> </div> </ARTICLE>
Je pourrais en php définir le chemin exacte, mais n'est-t-il pas possible dans Flexicontent d'avoir un répertoire différents pour chaques fichiers ? (je sais je sors de ma question initial sur les templates, si je dois ouvrir un nouveau post dans une nouvelle section n'hésitez pas à me l'indiquer.)

Donc globalement j'ai compris comment fonctionnait l'overide d'un template. Mais mon soucis maintenant est la gestion des fichiers.

Merci d'avance de vos lumières

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36489 by micker
Replied by micker on topic Templates comment faire ?
désoler je ne comprend rien .. ;)
pris tu être plus explicite ?... que veus tu faire exactement ?
pourquoi y aurait il un soucis de fichier ?
pareil pour l administration ... je comprends pas ton but

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36496 by webscom
Replied by webscom on topic Templates comment faire ?
Bonjour,

J'ai ce matin réglé mes soucis :

Mon but était de récupérer un fichier ajouter par un type de champ 'file', dans une autre page (en popup exactement),donc pour récuperer ce fichier (format .stl pour information), était d'avoir le nom réel du fichier (Flexicontent renomme le nom réel des fichiers si 2 fichiers portent le même nom), et bien sur son chemin (path), je pensais qu'il était possible directement d'avoir ces informations, mais il n'en était rien du tout.

J'ai demandé donc dans un autre poste -> www.flexicontent.org/forum/index.php?f=9&t=6263&rb_v=viewtopic comment je pouvais récupérer le nom réel du fichier (pour le chemin c'était simple)

Juste pour information:

Je joins une image de ce que je voulais faire (cela fonctionne maintenant)
1 -> bouton pour ouvrir une page dans une popup qui vient charger le fichier au format stl qui est transmit dans l'url.
2 -> Ma nouvelle page dans un popup qui va charger le fichier .stl pour l'afficher en 3d

Le code de mon template devient : (il n'est pas fini)
Code:
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); // on définit ici le nom du template $tmpl = $this->tmpl; ?> <article class="item-page"> <!-- BOF header block --> <Header> <h1> <?php echo $this->params->get('page_heading'); ?> </h1> <ul> <?php foreach ($this->item->positions['header'] as $field) : ?> <li> <?php echo $field->label; ?> <?php echo $field->display; ?> </li> <?php endforeach; ?> </ul> </header> <!-- EOF header block --> <!-- BOF object_tri block --> <div id="object_tri"> <?php if (isset($this->item->positions['subtitle1'])) : ?> <div> <?php foreach ($this->item->positions['subtitle1'] as $field) : ?> <?php echo $field->label; ?> <?php echo $field->display; ?> <?php endforeach; ?> </div> <?php endif; ?> <?php if (isset($this->item->positions['subtitle2'])) : ?> <div> <?php foreach ($this->item->positions['subtitle2'] as $field) : ?> <?php echo $field->label; ?><br /> <?php echo $field->display; ?> <?php endforeach; ?> </div> <?php endif; ?> <?php if (isset($this->item->positions['subtitle3'])) : ?> <div id="bt"> <?php foreach ($this->item->positions['subtitle3'] as $field) : ?> <?php $fichier = $field->display; echo $fichier; preg_match('`href="([^"]+)"`i',$fichier,$chemin); preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $fichier, $matches, PREG_SET_ORDER); foreach ($matches as $val) { $nom_du_fichier = $val[3]; } //---vérification si le fichier est existant dans le répertoire components\com_flexicontent\medias //premier chemin (path) $chemin1 = "components/com_flexicontent/medias/".$nom_du_fichier; if (file_exists($chemin1)) { $chemin_nom = $chemin1; echo $chemin_nom ; } ?> <a class="triview" target="_blank" rel="rokbox[820 620]" href="index.php?option=com_content&view=article&id=2&Itemid=123&myobject3d=<?php echo $chemin_nom ;?>">&nbsp; <?php endforeach; ?> </div> <?php endif; ?> </div> <!-- EOF object_tri block --> </ARTICLE>

Donc au final avec ma modification de plugin (voir autre post), j'ai réussi à faire ce que je voulais, je suis en phase test et faisabilité, donc je vais amélioré le code.

Merci de votre aide en tout cas ;)

Please Log in or Create an account to join the conversation.

More
12 years 9 months ago #36502 by micker
Replied by micker on topic Templates comment faire ?
ok si tu trouves super
regarde la faq tu trouveras plein de choses
a.plus

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline
Save