...
Retailler
...
automatiquement
...
les
...
canaux
...
iFrame
...
pour
...
éviter
...
les
...
doubles
...
assenceur
...
Pour
...
des
...
raisons
...
de
...
confort
...
pour
...
l'utilisateur,
...
on
...
retaille
...
les
...
canaux
...
de
...
façon
...
à
...
supprimer
...
les
...
doubles
...
assenceurs.
...
Cette
...
page
...
présente
...
une
...
méthode
...
possible
...
pour
...
les
...
applications
...
PHP
...
Version
...
concernée
...
:
...
uPortal-esup
...
et
...
esupdev
...
2.6
...
versions
...
ALM
...
et
...
DLM
Patcher la classe CInlineFrame
Patcher 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),
| Bloc de code |
|---|
} --- CInlineFrame.java 2008-12-09 10:14:52.000000000 +0100 +++ CInlineFrame.java.new 2008-12-09 10:15:12.000000000 +0100 @@ -51,6 +51,7 @@ // Obtain url and height, both static parameters String srcUrl = staticData.getParameter("url"); // the url for the IFrame content String frameHeight = staticData.getParameter("height"); // the height of the IFrame in pixels + String iFrameName = staticData.getParameter("iFrameName"); // the name of the IFrame in pixels Document doc = null; try { @@ -62,12 +63,19 @@ // Create XML doc Element iframeE = doc.createElement("iframe"); + Element urlE = doc.createElement("url"); urlE.appendChild(doc.createTextNode(srcUrl)); iframeE.appendChild(urlE); + Element heightE = doc.createElement("height"); heightE.appendChild(doc.createTextNode(frameHeight)); iframeE.appendChild(heightE); + + Element iFrameNameE = doc.createElement("iFrameName"); + iFrameNameE.appendChild(doc.createTextNode(iFrameName)); + iframeE.appendChild(iFrameNameE); + doc.appendChild(iframeE); XSLT xslt = XSLT.getTransformer(this, runtimeData.getLocales()); @@ -105,4 +113,4 @@ sbKey.append("locales:").append(LocaleManager.stringValueOf(runtimeData.getLocales())); return sbKey.toString(); } -} \ Pas de fin de ligne à la fin du fichier. +} {code} 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> _ |
Paramétre à ajouter dans le pubChan
On définit le nom de la frame qui sera utilisé dans la feuille de randu
| Bloc de code |
|---|
<parameter> <name>iFrameName</name> <value>nomdeliframe</value> ==> nom de la frame qui sera utilisé dans les applications pour la retailler_ <description></description> <ovrd>N</ovrd> </parameter> |
Modifier
...
la
...
feuille 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="
...
domaine.
...
univ.fr";
Modifier les applications PHP
1 - declarer la variable $iFrameName qui correspond au parametre défini dans le pubchan.
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 :
| Bloc de code |
|---|
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 document.domain="bretagnedomaine.iufmuniv.fr"; function function resizeIframe(maframe){ { if if (navigator.userAgent.indexOf('Safari') == \-1) { { var 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 { var } else{ 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
...
:
| Bloc de code |
|---|
<script type="text/javascript"> document document.domain="bretagnedomaine.iufmuniv.fr"; try { try{ maframe = parent.document.getElementById('<?=$iFrameName?>'); maframe.onload = resizeIframe(maframe); window.onresize = resizeIframe(maframe); } catch catch(e){} </script> \\ La partie ajoutée dans 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ées.
Notes:
Si vous utilisez FCKeditior, il faut alors le mettre a jour, la notion de domaine n'est prise en compte qu'a partir de la v 2.6.3.
Preciser votre nom de domaine dans le fichier de constantes : editor/_source/fckconstants.js
| Bloc de code |
|---|
var FCK_RUNTIME_DOMAIN = "domaine.univ.fr";
|
Modifier Moodle (v1.9)
C'est un peu plus et ca ne fonctionne pas sous IE qui pose des probleme avec l'editeur utiliser (cet éditeur devrait changer dans la v2), on test donc le test de navigateur.
1- Déclarer le domaine dans l'entête des pages.
Ajouter dans theme/votre-themes/header.html (ligne 9)
| Bloc de code |
|---|
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 if (navigator.appName \!= "Microsoft Internet Explorer") { document.domain="bretagnedomaine.iufmuniv.fr"; } // on ne gere pas sous ie, on verra avec la v2 ou l'editeur change dans theme/iufm </script> |
2 - Calculer la hauteur de la page et retailler
Ajouter dans theme/votre-themes/footer.html
...
(
...
ligne 30)
| Bloc de code |
|---|
<script type="text/javascript">if if (navigator.appName \!= "Microsoft Internet Explorer"){ document.domain="bretagnedomaine.iufmuniv.fr"; maframe = parent.document.getElementById('CMoodle'); // nom de la frame in the parent déclaré dans le pubchan (ici : CMoodle) function resizeIframe() { 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{ var height = document.body.offsetHeight + 35; } maframe.style.height = height \+"px"; }; maframe.onload = resizeIframe; window.onresize = resizeIframe; } </script> |
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
...
définir le domaine dans les fichiers suivants :
lib/editor/htmlarea/popups/popup.js
...
(ligne
...
15)
...
lib/editor/htmlarea/coursefiles.php
...
(ligne
...
54)
...
lib/editor/htmlarea/popups/fullscreen.php
...
(ligne
...
24)
la ligne à ajouter est :
| Bloc de code |
|---|
\\ Une autre correction est nécessaire pour l'ouverture en plein écran (popup) de l'éditeur. Il s'agit d'ajouter "parent" devant if (navigator.appName \!= "Microsoft Internet Explorer"){ document.domain="bretagne.iufm.fr"; } |
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)
| Bloc de code |
|---|
Remplacer Remplacer parent_object parent_object = opener.HTMLArea._object; par parent_object object = parent.opener.HTMLArea._object; et ca fonctionne Pour voir ce que ca donne vous pouvez allez sur notre ent |
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"