Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] JS et CSS

Posted by wam_baloo on 05/19/2008 10:52

Bonjour à tous,

aujourd'hui je m'attèles à développer un petit projet sous Jelix pour une étude au sein de ma boite. J'ai une question toute simple à laquelle je n'ai pas trouvé de réponse dans la documentation ni dans les forums (du moins pas de réponse claire pour moi).

Je cherche à inclure dans mon projet un css et deux javascript, qui doivent être présents sur toutes mes pages. J'ai vu que l'on pouvait passer par des méthodes addJSLink et addCSSLink dans les actions que l'on exécute. Le problème c'est qu'en passant par ceci, je suis obligé d'écrire ces appels pour chacune de mes actions, ce qui est répétitif. N'y a t'il pas moyen d'inclure automatiquement pour tout mon site ce css et ce javascript ?

Merci d'avance !!

  [Opened] Re: JS et CSS

Reply #1 Posted by bballizlife on 05/19/2008 11:03

Hello,

Il suffit de créer une réponse personnalisée et de faire l'appel vers ces feuilles de styles et fichier JS dans le constructeur de celle-ci.

D'ailleurs si tu utilise une version nightly du trunk, en créant une application on fournit déjà le fichier de réponse personnalisé avec le petit commentaire qui va bien pour dire où déclarer les appels vers les CSS et JS commun à tout le site. (je parle du trunk car je ne me rappel plus mais je ne crois pas que ça soit implémenté dans la branche stable)


N'importe comment c'est dans la doc

  [Opened] Re: JS et CSS

Reply #2 Posted by wam_baloo on 05/19/2008 11:12

Je suis sur la version stable donc je n'ai pas ces informations à l'intérieur de celle-ci.

Vu que je suis plutôt habitué à des développements sur Symfony, je suis un peu dérouté de la méthode de fonctionnement de jelix qui est quand même bien différente donc j'avoue que j'ai un peu de mal à m'y faire.

Quand à créer pour chaque application une réponse personnalisée, je sais que ça ne plaira pas aux développeurs qui bossent avec moi, le but étant d'utiliser un framework pour ces fonctionnalités et non de le surcharger à chaque fois pour chaque projet.

  [Opened] Re: JS et CSS

Reply #3 Posted by bballizlife on 05/19/2008 11:24

Je ne comprends pas ton problème quant à créer une réponse personnalisée ?

Comme je disais, dans la future 1.1 de Jelix, le fichier sera déjà créé. C'est donc du travail en moins pour les développeurs.

Sinon, explique moi comment tu veux centraliser des informations (ici les CSS et JS communs) à toute une application si tu ne le spécifie pas à un endroit de cette application ?

Exemple pour une application que je suis en train de développer :

 <?php 
 require_once (JELIX_LIB_CORE_PATH.'response/jResponseHtml.class.php');
 
 class myHtmlResponse extends jResponseHtml {
 
    public $bodyTpl = 'default~main';
    
    function __construct() {
        parent::__construct();
        
        // Include your common CSS and JS files here
        global $gJConfig;
        $theme_path = $gJConfig->urlengine['basePath'].'themes/'.$gJConfig->theme.'/';
        
        $this->addCSSLink($theme_path . 'css/reset-fonts-grids.css');
        $this->addCSSLink($theme_path . 'css/base-min.css');
        $this->addCSSLink($theme_path . 'css/main.css');
    }
 
    protected function doAfterActions() {
        $this->body->assignIfNone('MAIN','<p>no content</p>');
    }
 }
 
 ?>

Ici je n'ai écrit que 5 lignes de code pour spécifier ajouter les CSS communes à mon application.

Tes arguments contre un tel fonctionnement m'intéresse cependant.


N'importe comment c'est dans la doc

  [Opened] Re: JS et CSS

Reply #4 Posted by wam_baloo on 05/19/2008 11:26

Je ne dis pas que c'est un gros problème et je ne critique pas. Comme je t'ai dis je suis habitué à développer sous Symfony, et pour tout ce qui est inclusions des css et des javascript, tout est centraliser dans un fichier de config, au format texte, dans lequel tu vas préciser les javascripts et css à inclure pour tout ton site, ou pour chaque template. Rien à ré-écrire ou à surcharger donc, juste des paramètres à préciser ou à enlever.

Après je ne critique rien, je cherche juste à comprendre comment Jelix fonctionne c'est tout :)

Cela dit, merci pour le bout de code, c'est le global qu'il me manquait. Désolé si j'ai pu froisser les esprit, je ne voulais en aucun cas paraitre offensant.

  [Opened] Re: JS et CSS

Reply #5 Posted by laurentj on 05/19/2008 14:31

@bballizlife : dans la version 1.0, quand tu crée une appli, il y a déjà la réponse personnalisée, dans tonappli/responses. C'est une nouveauté de la 1.0.3 et pas de la 1.1

@wam : voir personnalisation de réponse commune

Quand à créer pour chaque application une réponse personnalisée, je sais que ça ne plaira pas aux développeurs qui bossent avec moi, le but étant d'utiliser un framework pour ces fonctionnalités et non de le surcharger à chaque fois pour chaque projet.

Je ne vois pas en quoi c'est un problème. Dans chaque projet, de toute manière, les CSS, les JS et cie sont différentes. Donc il faut à chaque projet, que tu les indiques quelques part. Ensuite, que tu les indiques dans une classe (qui est en plus créée automatiquement par createapp) ou dans un fichier de config texte, je ne vois franchement pas la différence :-)

Faut que tu comprennes que les objets réponses, ce sont tes Views. Donc soit tu utilises une view existante, soit tu en crée une (dont la classe peut hériter d'une view existante), et qui prédéfinit un certain nombre de choses.

  [Opened] Re: JS et CSS

Reply #6 Posted by wam_baloo on 05/19/2008 14:47

Je passe par un DAO. J'ai pas encore regarder comment me servir de jDb, mais le côté DAO me plait bien, le fait de renseigner les champs et de balancer un insert comme ça plutôt que d'écrire une requête à la main ça me convient !!!

  [Opened] Re: JS et CSS

Reply #7 Posted by wam_baloo on 05/19/2008 14:55

Ok merci pour toutes ces réponses, j'apprécie beaucoup la réactivité de la communauté. Je vais faire mon bout de chemin tout seul maintenant et essayer de me dépatouiller un peu !!

  [Opened] Re: JS et CSS

Reply #8 Posted by manooweb on 05/19/2008 15:25

Salut je m'insère dans la discussion. je pense qu'il s'agit de récupérer l'id (qui vient d'être inséré automatiquement) pour l'utiliser en clé étrangère dans une autre table par exemple ?

me trompé-je ?


Manu

  [Opened] Re: JS et CSS

Reply #9 Posted by bballizlife on 05/19/2008 19:06

Tu peux passer par une méthode DAO xml, genre updateOrder() avec pour paramètres $lien_id et $order :

 foreach ($this->param('order') as $lien_id => $order){
    $lien_fact = jDao::get('lien~lien');
    $lien_fact->updateOrder($lien_id, $order);
 }

Avec updateOrder() :

 <method name="updateOrder" type="update">
    <parameter name="lien_id"/>
    <parameter name="order"/>
    <conditions>
        <eq property="lien_id" expr="$lien_id"/>
    </conditions>
    <values>
        <value property="lien_numordre" expr="$order"/>
    </values>
 </method>

N'importe comment c'est dans la doc

 
Page
  1. JS et CSS