Pages enfant
  • Retailler automatiquement les canaux iFrame pour éviter les doubles ascenceurs

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=44990470) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) afficher la version suivante »

Retailler automatiquement les canaux iFrame pour éviter les doubles assenceur

J'ai patché la class CInlineFrame de façon à rajouter un nom à la frame (c'est plus simple si on en a plusieurs sur la même page), le fichier est joint et commenté (partie ajout IUFM)
et la partie a ajouter dans le pubchan :

     <parameter>
            <name>iFrameName</name>
            <value>cdoc-masterisation</value> ==> nom de la frame qui sera utilisé pour la retailler
            <description></description>
            <ovrd>N</ovrd>
        </parameter>

Modifier la fauille xhtml-theme.xsl de façon a définir le domaine :
Ajouter dans le bloc javascript (ligne 26, 65, 141 suivant si on est connecté ou pas )  la ligne :
document.domain="bretagne.iufm.fr";

ensuite dans les applis PHP ,
1 - declarer la variable $iFrameName qui correspond au parametre ci dessus.
    Pour certaines applis qui comporte des frames ca ne fonctionne pas alors j'ai declarer la variable $iFrameHeight qui force la hauteur de la page

2 - ajouter dans l'entete  de page :
<script type="text/javascript">
    document.domain="bretagne.iufm.fr";
    function resizeIframe(maframe)

Unknown macro: {                               if (navigator.userAgent.indexOf('Safari') == -1){                         var height = document.body.scrollHeight + 35;   // (on ajoute  + 35 car le calcul de la page peut varier, sur le meme navigateur ca peut se jouer et quelques px)                 }

                else

Unknown macro: {                         var height = document.body.offsetHeight + 35;                 }


        <?
        if (isset($iFrameHeight) && $iFrameHeight != "") echo "\nheight=$iFrameHeight;\n";
        ?>
                maframe.style.height = height +"px";
        };
</script>

3 - ajouter dans le pied de page :

<script type="text/javascript">
        document.domain="bretagne.iufm.fr";
    try

Unknown macro: {             maframe = parent.document.getElementById('');             maframe.onload = resizeIframe(maframe);             window.onresize = resizeIframe(maframe);     }

    catch(e){}
</script>

La partie ajoutée dans l'entete pourait etre fait dans le pied, mais si on veut agrandir la taille quand on clic un menu déroulant type arbre, il faut que la fonction soit connue.

C'est tout, c'est relativement simple a mettre en place mais demande bcp de travail pour repasser dans toutes les applis et que celles ci soit bien formatée. J'ai quelques probleme sur safari qui devrait etre réglé rapidemement.
Il faut noter également que seul la derniere version de FCKeditior prend en compte la notion de domaine.
Enfin, c'est un peu plus compliquer pour Moodle, voici ce qu'il faut modifier (sauf sous IE qui pose des probleme avec l'editeur)

Ajouter sans theme/iufm/header.html (ligne 9)

<script type="text/javascript">
if (navigator.appName != "Microsoft Internet Explorer")

Unknown macro: { document.domain="bretagne.iufm.fr"; }

  // on ne gere pas sous ie, on verra avec la v2 ou l'editeur change

dans theme/iufm/footer.html  (l. 30)

<br />        if (navigator.appName != "Microsoft Internet Explorer"){<br />        document.domain="bretagne.iufm.fr";<br />        maframe = parent.document.getElementById('CMoodle');  // nom de la frame in the parent<br />        function resizeIframe()

Unknown macro: {<br />                        var height = document.body.scrollHeight + 35;<br />                        maframe.style.height = height +"px";<br />        }

;<br /><br />        maframe.onload = resizeIframe;<br />        window.onresize = resizeIframe;<br />      }<br />

L'éditeur de texte utilisé dans les forums, wiki, devoirs, bases de données, étiquettes... présente alors ses dysfonctionnements : - impossible d'ajouter une URL, - d'ajouter une image, - d'ouvrir en pleine fenêtre. Il faut ajouter le domaine bretagne dans les fichiers suivants :
la ligne est : if (navigator.appName != "Microsoft Internet Explorer")

dans les fichiers :
      
    * lib/editor/htmlarea/popups/popup.js (ligne 15)
    * lib/editor/htmlarea/coursefiles.php (ligne 54)
    * lib/editor/htmlarea/popups/fullscreen.php (ligne 24)

Une autre correction est nécessaire pour l'ouverture en plein écran (popup) de l'éditeur. Il s'agit d'ajouter "parent" devant "opener.HTMLArea._object" dans le fichier :

  • lib/editor/htmlarea/popups/fullscreen.php (ligne 120)

Remplacer
 parent_object      = opener.HTMLArea._object;
par
  parent_object      = parent.opener.HTMLArea._object;

et ca fonctionne

Pour voir ce que ca donne vous pouvez allez sur notre ent (ent.bretagne.iufm.fr), le canal "Votre nouvel Espace Numérique de Travail" inclus cette modif, ainsi que le menu "Aide"

  • Aucune étiquette