Re: Besoin d'un coup de main codage

Bon, finalement après une quasi nuit blanche j'ai fini par y arriver comme un grand.

J'utilisais des echo dans ma fonction, ça ne pouvait pas fonctionner. Donc voici la version fonctionnelle.

Pour la fonction:

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. function mg3_aff_gal_multi( $galerie, $fordre, $colonnes ) 
  5. {
  6.     $aff_gal = '';
  7. $req_mg3_gal_multi = reqmysql('
  8.         SELECT    * 
  9.         FROM `mg3_images` 
  10.         WHERE    `mg3_images`.`img_alb_id` = '.$galerie.'
  11.         ORDER  BY    `mg3_images`.`img_chemin` '.$fordre.'    
  12.             
  13.     ');    
  14.     
  15. $aff_gal = '<div id="macy-container-'.$galerie.'"  data-photo-swipe-gallery="gallery">' ;    
  16. while ($rep_mg3gal_multi = Kws_mysql_fetch_object($req_mg3_gal_multi))
  17. {
  18. $dim=getimagesize($rep_mg3gal_multi->img_chemin);
  19. $aff_gal .='<div class="demo item">   
  20. <a class="img-thumbnail-variant-1" href="'.$rep_mg3gal_multi->img_chemin.'" data-photo-swipe-item="" data-size="'.$dim[0].'x'.$dim[1].'">
  21. <figure><img src="'.mg3_image_tn( $rep_mg3gal_multi->img_chemin ).'" alt="'.$rep_mg3gal_multi->img_intitule.'" title="'.$rep_mg3gal_multi->img_intitule.'" /></figure>
  22. <div class="caption"><span class="icon icon-lg linear-icon-magnifier" style="clear:both;margin-left:10px;"></span>
  23. <br style="clear:both;" />'.$rep_mg3gal_multi->img_intitule.'</div></a>
  24. <a href="pagephoto" title="" class="pasla">index.php?mod=mg3&amp;ac=image&amp;alb='.$galerie.'&amp;img='.$rep_mg3gal_multi->img_id.'</a>
  25. </div>';
  26. }
  27. $aff_gal .='</div>
  28. <script>
  29.         Macy({
  30.             container: \'#macy-container-'.$galerie.'\',
  31.             trueOrder: false,
  32.             waitForImages: false,
  33.             margin: 2,
  34.             columns: '.$colonnes.',
  35.             breakAt: {
  36.                 1100: 2,
  37.                 790: 1
  38.             }
  39.         });
  40.     </script>';    
  41. return $aff_gal;    
  42. }
  43.  
  44. #####!!!#####
  45. ?>


et pour le fichier page:

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. preg_match_all("#{galerie=(.*)(})#Ui",$PageContenu,$out);
  5. $count=count($out[0]); 
  6. $donnemg3=array();
  7. for($i=0;$i<$count;$i++){ 
  8. preg_match("#{galerie=(.*)\+(ordre=)(.*)\+(colonnes=)(.*)(})#Ui", $out[0][$i], $values_keywords[$i]);
  9. $donnemg3[] = mg3_aff_gal_multi( ''.$values_keywords[$i][1].'', ''.$values_keywords[$i][3].'', ''.$values_keywords[$i][5].'' );
  10. } 
  11. echo str_replace($out[0],$donnemg3,$PageContenu);
  12.  
  13. #####!!!#####
  14. ?>


Du coup, si j'écris un texte entrecoupé de {galerie=xxx+ordre=ASC+colonnes=xxx}, ça m'affiche bien les galeries voulues avec les paramètres choisis.

Donc ça fonctionne.

PS: si y a des trucs à améliorer dans le code je suis preneur.


Sujet écrit par jacknikolson le lundi 4 septembre 2017 à 10:34

[ Imprimer ] - [ Fermer la fenêtre ]