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 ;?>">
<?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