[resolu]Création d'un plugin

Archive

Messagepar chever » Lun 17 Aoû 2009, 19:04

Bonjour,

J'essaie de creer un plugin pour le defilement des images.

Pour cela je m'inspire de ce qui est fait dans le templates Oscss pour le plugin fancy.

Donc j'ai recrée la même structure et j'ai 2 dossier plugin.
Malheureusement ca desactive le plugin fancy.

Question :

Peut on avoir 2 fichiers include_header.php (1 par dossier plugin) ?
Dernière édition par chever le Lun 17 Aoû 2009, 20:21, édité 1 fois.
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar oscim » Lun 17 Aoû 2009, 20:19

Salut,

Oui, justement, c'est là l'interet.

Ils sont chargée successivement ...
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar chever » Lun 17 Aoû 2009, 20:21

Resolu, une faute de frappe de ma part dans le code = 1 apres midi de perdu
Desole pour le derangement
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar oscim » Lun 17 Aoû 2009, 20:48

pas grave

plugin slideshow, ? suite post defilement d'une boite ??

Donc sur base jquery. Pris note des remarques faites à la suite ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar chever » Lun 17 Aoû 2009, 23:08

bien vu et remarque pris en compte
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar oscim » Mer 19 Aoû 2009, 12:42

Pour la descativation de la fancy, c'est normal ..;

En fait si jquery est appelé 2 fois, alors ca le fait planter. Donc il est necessaire d'être sur que celui-ci ne soit applé qu'une seul fois.

Perso j'ai ajouté dans l'admin une fonction qui evite un doublon sur l'appel, elle peut peut être t'inspiré
Code: Tout sélectionner
/**
* @author oscim - OscssTeam
* @version 1.1
Appel des fichiers est evite doublon
([[[$value(string) path ou url de base],(option)$ref (boolean|string) le path ou url absolu, si true, ref sur base admin si false ref public],(option)$force(boolean) pour forcer chargement meme deja chargee])
*/
function tep_include_file ($value,$ref=false,$force=false) {
  static $deja_charge;
  if (!tep_not_null($value)) return false;
  if ($ref){
    $refe['url']= HTTP_CATALOG_SERVER . DIR_WS_ADMIN;
    $refe['path']= DIR_FS_ADMIN;
  } else  {
    $refe['url']= HTTP_CATALOG_SERVER;
    $refe['path']= DIR_FS_CATALOG;
  }

  $long=strlen($value);
  $key=md5($value);
  if (!isset($deja_charge[$key]) || $force) {
          if (substr($value,($long-3),$long)=='css') print "<link rel="stylesheet" href="".$refe['url'].$value.""  type="text/css" media="all" />n";
          elseif (substr($value,($long-2),$long)=='js') print '<script type="text/javascript" src="'.$refe['url'].$value.'"></script>'."n";
          elseif(substr($value,($long-3),$long)=='php'||substr($value,($long-3),$long)=='inc') include_once ($refe['path'].$value);
  }
  $deja_charge[$key]='';
}

Pour son utilisation:
Code: Tout sélectionner
tep_include_file ("includes/javascript/jquery-1.3.2.min.js",true);

Tous les apples doivent utiliser cette fonction. L'avantage est de ne plus ce préoccuper de savoir si un autre plugin l'as déjà utilisé.

PS, attention, function tiré de l'admin, donc les chemin ne sont pas les bons.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar oscim » Mer 19 Aoû 2009, 12:46

Ben voila, même fonction adapté au coté public
Code: Tout sélectionner
/**
* @author oscim - OscssTeam
* @version 1.2
Appel des fichiers est evite doublon
([[$value(string) path ou url de base],(option)$force(boolean) pour forcer chargement meme deja chargee])
*/
function tep_include_file ($value,$force=false) {
  static $deja_charge;
  if (!tep_not_null($value)) return false;

  $refe['url']= HTTP_SERVER.DIR_WS_HTTP_CATALOG;
  $refe['path']= DIR_FS_CATALOG;

  $long=strlen($value);
  $key=md5(basename($value));
  if (!isset($deja_charge[$key]) || $force) {
          if (substr($value,($long-3),$long)=='css') print "<link rel="stylesheet" href="".$refe['url'].$value.""  type="text/css" media="all" />n";
          elseif (substr($value,($long-2),$long)=='js') print '<script type="text/javascript" src="'.$refe['url'].$value.'"></script>'."n";
          elseif(substr($value,($long-3),$long)=='php'||substr($value,($long-3),$long)=='inc') include ($refe['path'].$value);
  }
  $deja_charge[$key]=basename($value);
}
Dernière édition par oscim le Mer 19 Aoû 2009, 13:09, édité 1 fois.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar chever » Mer 19 Aoû 2009, 14:08

Bonjour Oscim
Euh la tu m'inquiètes !!!
En fait pour résoudre le pb ci dessus avec fancy :
1/supprimer jquery-1.3.2.min.js et je l'ai remplacé par jquery-1.2.6.min.js (nécessaire pour defilement des images)
que j'ai placé dans includes/js/
2/ appel de jquery-1.2.6.min.js dans header du template.

Ainsi j'arrive à faire tourner fancy et defilement d'image

Est ce le hasard et dois je m'attendre à des problèmes ?

Stef
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar oscim » Mer 19 Aoû 2009, 15:33

Non,
puisque tu as placé jquery ds le repertoire central /includes/js

Dans l'idée d'un plugin, donc d'une solution qui une fois dé-zziper ds le template fonctionne sans autre intervention, il est nécessaire d'anticiper un conflit entre 2 plugin.

Dans cette idée, la fonction evite l'appel en double d'un même fichier. c'est tout.

Chacun des 2plugins embarque son jquery pour être indépendant, et si jquery est déjà utilisé, alors il ne sera chargée qu'une seule fois.

Mais ta solution reste coherante, et sans soucis.

Juste, je suis étonné qu'il faille 1.2.6 plutot que 1.3.2.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar chever » Mer 19 Aoû 2009, 17:52

j'avais que 1.2.6 sous la main mais ca sera 1.3.2 pour le plugin.

Si je comprends tout je place ton code dans includes/function/general.php

Par contre, je ne vois pas ou placer ou ce que remplace tep_include_file ("includes/javascript/jquery-1.3.2.min.js",true);
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar oscim » Mer 19 Aoû 2009, 18:29

En remplacant l'appel js,

celui placé dans include_header.php.

Il faut remplacer les appels, ex pour le plugin de la fancy
Code: Tout sélectionner
<?php
      tep_include_file ("templates/".$template."/includes/plugins/productImage/inc/jquery.fancybox.css");
      tep_include_file ("templates/".$template."/includes/plugins/productImage/inc/jquery-1.3.2.min.js");
      tep_include_file ("templates/".$template."/includes/plugins/productImage/inc/jquery.easing.1.3.js");
      tep_include_file ("templates/".$template."/includes/plugins/productImage/inc/jquery.fancybox-1.2.1.js");
?>
<script type="text/javascript">
$(document).ready(function() {
  $("p.fancy a").fancybox({
   'hideOnContentClick': true,  'zoomSpeedIn': 0, 'zoomSpeedOut': 0, 'overlayShow': true, 'overlayOpacity': 0.6, 'easingIn': 'easeOutBack', 'easingOut': 'easeOutBack'
 });
 $("#productDescription a").fancybox({
   'hideOnContentClick': true,  'zoomSpeedIn': 0, 'zoomSpeedOut': 0, 'overlayShow': true, 'overlayOpacity': 0.6
  });

 $("a.fancy").fancybox({
   'zoomSpeedIn': 0, 'zoomSpeedOut': 0
 });
});
</script>
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33


Retourner vers osCSS 1.2.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité