Changeset 41699 in spip-zone


Ignore:
Timestamp:
Oct 12, 2010, 12:51:30 AM (9 years ago)
Author:
webmaster@…
Message:

ACS:

  • amelioration du schema de page
  • gestion des librairies javascript requises par les composants : chaque composant déclare les librairies dont il a besoin et celles-ci ne sont incluses qu'une fois.


Cat :

  • pages du squelette : transformation de toutes les pages en pages constituées de composants Modules,
  • Audio : gestion automatisee de l'inclusion de la librairie jQuery drag/drop pour gerer le slider du lecteur audio
  • Login : fichiers de langues
Location:
_plugins_/acs
Files:
5 added
28 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acs/Changelog

    r41617 r41699  
    22
    33ACS version 0.7
     4 - amelioration du schema de page
     5 - gestion des librairies javascript requises par les composants : chaque composant déclare les librairies dont il a besoin et celles-ci ne sont incluses qu'une fois.
    46 - changement des chemins d'images installées par les composants : img->IMG
    57 - les composants instanciables peuvent être nommés
     
    2224 - modele doc_player : reactualisation
    2325 - Mise à jour de TOUS les composants (en cours)
    24  - Audio : toilettage du composant / nouveau modèle. drag/drop sur le slider
     26 - Audio : toilettage du composant / nouveau modèle. drag/drop sur le slider, gestion automatisee de l'inclusion de la librairie jQuery drag/drop pour gerer le slider du lecteur audio
    2527 - Cadre : remplace le composant Module
    2628 - Edito : nouvelles variables - boutons de navigation precedent / suivant
  • _plugins_/acs/acs_options.php

    r41411 r41699  
    66# Copyright Daniel FAIVRE, 2007-2010
    77# Copyleft: licence GPL - Cf. LICENCES.txt
    8 
    9 // Pages de l'espace ecrire à accès contrôlé comme ACS - ACS access rules controlled pages
    10 // Les administrateurs sont ceux d'ACS
    11 $GLOBALS['ACS_ACCES'] = array('mots_type');
    12 // Contrôle d'accès ACS aux pages d'administration de certains plugins, s'ils sont installés
    13 // Deux tests, en raison de changements dans SPIP : à suivre (ok avec spip 2.0.8)
    14 $plugs = isset($GLOBALS['meta']['plugin']) ? unserialize($GLOBALS['meta']['plugin']) : $GLOBALS['plugins'];
    15 if (is_array($plugs)) {
    16         if(isset($plugs['CFG']))
    17                 $GLOBALS['ACS_ACCES'][] = 'cfg';
    18         if(isset($plugs['NOTATION']))
    19                 $GLOBALS['ACS_ACCES'][] = 'notation_param';
    20         if(isset($plugs['W3C_GO_HOME']))
    21                 $GLOBALS['ACS_ACCES'][] = 'w3c_go_home';
    22         if(isset($plugs['OPENPUBLISHING'])) {
    23                 $GLOBALS['ACS_ACCES'][] = 'op';
    24                 $GLOBALS['ACS_ACCES'][] = 'op_effacer';
    25         }
    26 }
    278
    289// Uncomment for debug :
  • _plugins_/acs/acs_style_prive.css.html

    r41666 r41699  
    101101  width: 208px;
    102102}
     103.acs_box_composants_hidden {
     104  width: 200px;
     105  position: absolute;
     106  display : none;
     107}
    103108
    104109fieldset.apercu {
     
    243248  background: #e5f6e8;
    244249  border: 1px outset #GET{foncee};
     250  white-space: nowrap;
    245251}
    246252.widgy:hover {
     
    258264}
    259265.widgy_included {
    260   border: thin dashed #GET{claire};
     266  border: thin dotted #GET{claire};
    261267  border-right: 0;
    262268  border-bottom: 0;
     
    265271.widgy_included_label {
    266272  text-align : right;
     273  vertical-align: top;
     274}
     275.widgy img {
     276  vertical-align:middle;
    267277}
    268278
     
    405415}
    406416
     417.edit_composant {
     418; z-index: 99999000;
     419  position: absolute;
     420  display: block;
     421}
     422
    407423.editeur_composant .acs_box_texte{
    408424  padding: 0;
  • _plugins_/acs/balise/acs_balises.php

    r41666 r41699  
    113113    // et tient compte de l'override éventuel
    114114    $done = array();
     115    $jslibs = array();
    115116    foreach (composants_liste() as $class=>$cp) {
    116117        foreach($cp['instances'] as $nic=>$c) {
     
    137138        }
    138139      }
     140      // on fait la liste des librairies javascripts a inclure (declarees dans chaque composant, dans moncomposant_balises.php,
     141      // sous la forme d'une fonction moncomposant_jslib() qui retourne un tableau des librairies js a inclure pour ce composant)
     142      if(strtolower($type) == 'javascript') {
     143        if (is_callable($class.'_jslib')) {
     144                $c_jslibs = $class.'_jslib';
     145                foreach($c_jslibs() as $lib) {
     146                        $jslibs[$lib] = true;
     147                }
     148        }
     149      }
     150    }
     151    // on recupere les librairies js requises pour tous les composants, une seule fois chacune
     152    foreach($jslibs as $jslib => $ok) {
     153      $file = find_in_path($jslib.'.html');
     154      if (!$file) {
     155        $file = find_in_path($jslib);
     156        if ($file)
     157          $libs .= file_get_contents($file)."\r";
     158      }
     159      else {
     160        $libs .= recuperer_fond($jslib)."\r";
     161      }
    139162    }
    140163  }
    141   return $r;
     164  return $libs.$r;
    142165}
    143166/* inutilisee pour l'instant : à elargir pour usage avec les groupes acs voire pour droits sur le public
  • _plugins_/acs/controleurs/composant.php

    r41666 r41699  
    1313  include_spip('inc/acs_presentation');
    1414  include_spip('lib/composant/classComposantPrive');
     15        include_spip('inc/acs_widgets');
    1516
    1617  list(,$crayon,$type,$class,$id) = $regs;
     
    3839    '<a href="'._DIR_RESTREINT.'?exec=acs&amp;onglet=composants&amp;composant='.$class.'&amp;nic='.$id.'"><img src="'.$icon.'" alt="'.$class.'" title="'._T('crayons:editer').' '._T($champ).'"  class="bouton_edit_composant" /></a>'.
    3940        '</div>'.
    40         '<div class="edit_composant" style="position: absolute; display: block; top:0; left:'.$left.'px; z-index: 99999999">'.
     41        '<div class="edit_composant" style="top:0; left:'.$left.'px">'.
    4142    acs_box(
    4243      $composant->T('nom').($id==0 ? '' : ' '.$id),
     
    5051      '</form>',
    5152      $composant->icon,
    52       'editeur_composant'
     53      'editeur_composant',
     54      (($composant->nb_widgets > 0) ? '<a class="btn_show_widgets" href="'._DIR_RESTREINT.'?exec=acs&amp;onglet=composants&amp;composant='.$class.'&amp;nic='.$id.'"><img src="'. _DIR_PLUGIN_ACS.'/images/composant-24.gif" alt="widgets" height="16px" width="16px" style="float:right" /></a>' : '')
    5355    ).
    5456    '</div>'.
    5557        '</div>'.
    56 '<script language="javascript"> init_controleur_composant();</script>';
     58'<script language="javascript">$(document).ready(
     59        function() {
     60        init_controleur_composant();
     61        }
     62);</script>';
    5763  $status = NULL;
    5864
  • _plugins_/acs/exec/acs_rechercher_admin.php

    r27782 r41699  
    2727                $where= ("(nom LIKE " . join(" AND nom LIKE ", $where) . ")");
    2828        }
    29 
     29       
     30        $admid = _request('admid');
     31       
    3032        $q = spip_query("SELECT * FROM spip_auteurs WHERE $where AND statut='0minirezo' ORDER BY nom");
    3133        include_spip('inc/acs_selectionner_admin');
    32         ajax_retour(selectionner_admin_boucle($q, $idom));
     34        ajax_retour(selectionner_admin_boucle($q, $idom, $admid));
    3335}
    3436?>
  • _plugins_/acs/inc/acs_adm.php

    r41411 r41699  
    4848print_r($_POST);
    4949
    50 echo "<br>_______________________________________________\$GLOBALS['meta']['acsGroups']<br>\n";
    51 print_r(unserialize($GLOBALS['meta']['acsGroups']));
     50echo "<br>_______________________________________________\$GLOBALS['meta']['ACS_GROUPS']<br>\n";
     51print_r(unserialize($GLOBALS['meta']['ACS_GROUPS']));
    5252
    53 echo "<br>_______________________________________________\$GLOBALS['meta']['acsCadenasse']<br>\n";
    54 print_r(unserialize($GLOBALS['meta']['acsCadenasse']));
     53echo "<br>_______________________________________________\$GLOBALS['meta']['ACS_CADENASSE']<br>\n";
     54print_r(unserialize($GLOBALS['meta']['ACS_CADENASSE']));
    5555*/
    5656
  • _plugins_/acs/inc/acs_groups.php

    r40892 r41699  
    99/**
    1010 * Retourne un tableau des groupes d'admins
    11  * (acsCadenasse est structurée pour le controle d'accès)
     11 * (ACS_CADENASSE est structurée pour le controle d'accès)
    1212 */
    1313function acs_groups() {
    14   $groups = unserialize($GLOBALS['meta']['acsGroups']);
     14  $groups = unserialize($GLOBALS['meta']['ACS_GROUPS']);
    1515  if (is_array($groups))
    1616    return $groups;
     
    3131 */
    3232function acs_members($grid) {
    33   $groups = unserialize($GLOBALS['meta']['acsGroups']);
     33  $groups = unserialize($GLOBALS['meta']['ACS_GROUPS']);
    3434  if (is_array($groups) && isset($groups[$grid]))
    3535    return array_keys($groups[$grid]);
     
    5656        $acsGroups[$group] = array(1=>$group);
    5757    }
    58     ecrire_meta('acsGroups', serialize($acsGroups));
     58    ecrire_meta('ACS_GROUPS', serialize($acsGroups));
    5959  }
    6060  else {
    61     ecrire_meta('acsGroups', '');
    62     ecrire_meta('acsCadenasse', '');
     61    ecrire_meta('ACS_GROUPS', '');
     62    ecrire_meta('ACS_CADENASSE', '');
    6363  }
    6464  ecrire_metas();
     
    7373  foreach($pages_array as $key=>$page)
    7474    $pages_array[$key] = trim($page);
    75   $acsPages = unserialize($GLOBALS['meta']['acsCadenasse']);
     75  $acsPages = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
    7676  if (is_array($acsPages)) {
    7777    foreach ($acsPages as $page=>$admins) { // remove old or empty pages from group
     
    9595    }
    9696  }
    97   ecrire_meta('acsCadenasse', serialize($acsPages));
     97  ecrire_meta('ACS_CADENASSE', serialize($acsPages));
    9898  ecrire_metas();
    9999  acs_log("acs_group_update_pages ($grid) : ".$pages);
     
    105105  if (!in_array($id_admin, array_keys($groups[$grid]))) {
    106106    $groups[$grid][$id_admin] = $grid;
    107     $pages = unserialize($GLOBALS['meta']['acsCadenasse']);
     107    $pages = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
    108108    foreach ($pages as $page => $admins) {
    109109      if (in_array($page, acs_group($grid, 'pages')))
    110110        $pages[$page] = $groups[$grid];
    111111    }
    112     ecrire_meta('acsGroups', serialize($groups));
    113     ecrire_meta('acsCadenasse', serialize($pages));
     112    ecrire_meta('ACS_GROUPS', serialize($groups));
     113    ecrire_meta('ACS_CADENASSE', serialize($pages));
    114114    ecrire_metas();
    115115    acs_log("acs_group_add_admin (nouvel admin dans le groupe $id ".$grid."): ".$GLOBALS['auteur_session']['id_auteur']."+$id_admin");
     
    118118
    119119function acs_group_del_admin($id, $id_admin) {
    120   $acsGroups = unserialize($GLOBALS['meta']['acsGroups']);
     120  $acsGroups = unserialize($GLOBALS['meta']['ACS_GROUPS']);
    121121  if (is_array($acsGroups)) {
    122122    $grid = acs_grid($id);
     
    125125      if (in_array($id_admin, $admins)) {
    126126        unset($acsGroups[$grid][$id_admin]);
    127         $pages = unserialize($GLOBALS['meta']['acsCadenasse']);
     127        $pages = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
    128128        foreach ($pages as $page => $admins) {
    129129          if (in_array($page, acs_group($grid, 'pages')))
     
    138138      unset($acsGroups[$grid]);
    139139    }
    140     ecrire_meta('acsGroups', serialize($acsGroups));
    141     ecrire_meta('acsCadenasse', serialize($pages));
     140    ecrire_meta('ACS_GROUPS', serialize($acsGroups));
     141    ecrire_meta('ACS_CADENASSE', serialize($pages));
    142142    ecrire_metas();
    143143    acs_log("acs_group_del_admin (efface admin $id_admin du groupe $id $grid): ".$GLOBALS['auteur_session']['id_auteur']."-$id_admin");
     
    148148  $groups = array();
    149149
    150   $acsCadenasse = unserialize($GLOBALS['meta']['acsCadenasse']);
     150  $acsCadenasse = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
    151151  if (!is_array($acsCadenasse))
    152152    return $groups;
     
    170170/**
    171171 * Retourne les pages gérées par le groupe $grid,
    172  * ou les membres du groupe, à partir de la méta acsCadenasse
     172 * ou les membres du groupe, à partir de la méta ACS_CADENASSE
    173173 */
    174174
  • _plugins_/acs/inc/acs_onload_ecrire.php

    r28258 r41699  
    44#     http://acs.geomaticien.org
    55#
    6 # Copyright Daniel FAIVRE, 2007-2009
     6# Copyright Daniel FAIVRE, 2007-2010
    77# Copyleft: licence GPL - Cf. LICENCES.txt
    88
     
    1313
    1414// Contrôle l'accès aux pages de configuration, dont celles déclarées dans $GLOBALS['ACS_ACCES'] (acs_options)
    15 // et celles déclarées dans $GLOBALS['meta']['acsCadenasse'] (inc/acs_adm)
     15// et celles déclarées dans $GLOBALS['meta']['ACS_CADENASSE'] (inc/acs_adm)
    1616if (_request('exec'))
    1717  acs_acces(_request('exec'));
     
    2020   * Contrôle l'accès à la page $page
    2121   * Les pages à contrôler sont déclarées dans $GLOBALS['ACS_ACCES'] (acs_options)
    22    * et dans $GLOBALS['meta']['acsCadenasse'] (inc/acs_adm)
     22   * et dans $GLOBALS['meta']['ACS_CADENASSE'] (inc/acs_adm)
    2323   *
    2424   * @param string $page
     
    4040    'admin_plugin');
    4141 
    42   // Les pages définies dans options, administrés par les mêmes admins qu'ACS
     42  // Les pages administrés par les mêmes admins qu'ACS
    4343  if (isset($GLOBALS['ACS_ACCES']) && is_array($GLOBALS['ACS_ACCES']) && count($GLOBALS['ACS_ACCES']))
    4444    $enfer = array_merge($GLOBALS['ACS_ACCES'], $enfer);
     
    4747  if (isset($GLOBALS['meta']['ACS_ADMINS'])) { // Pas d'action avant initialisation d'ACS !
    4848    // Les pages à accès contrôlé par ACS, avec choix des admins
    49     if (isset($GLOBALS['meta']['acsCadenasse']) && $GLOBALS['meta']['acsCadenasse']) {
    50       $acsCadenasse = unserialize($GLOBALS['meta']['acsCadenasse']);
     49    if (isset($GLOBALS['meta']['ACS_CADENASSE']) && $GLOBALS['meta']['ACS_CADENASSE']) {
     50      $acsCadenasse = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
    5151      if (is_array($acsCadenasse) && isset($acsCadenasse[$page])) {
    5252        if (!in_array($GLOBALS['auteur_session']['id_auteur'], array_keys($acsCadenasse[$page])))
  • _plugins_/acs/inc/acs_page_get_infos.php

    r41133 r41699  
    109109  else {
    110110    if (count($includes['tags'])) {
    111       $r .= '<div class="onlinehelp">'._T('acs:structure_page').' : </div><div style="line-height: 1.5em;">';
     111      $r .= '<div class="onlinehelp">'._T('acs:structure_page').' : </div><div>';
    112112      foreach ($includes['tags'] as $debut=>$tag) {
    113113        $schema .= ' '.$tag['contenu'];
  • _plugins_/acs/inc/acs_pipeline_ecrire.php

    r41424 r41699  
    2626
    2727function acs_header_prive($flux) {
    28 /*
    29   $url_css = '../spip.php?page=acs_style_prive.css&couleur_foncee='.substr($GLOBALS['couleur_foncee'],1).'&couleur_claire='.substr($GLOBALS['couleur_claire'],1);
    30   $r = '<link rel="stylesheet" href="'.$url_css.'" type="text/css" media="projection, screen, tv" />';
    31 */
    3228  $url_css = _ACS_DIR_SITE_ROOT.'spip.php?page=acs_style_prive.css&couleur_foncee='.substr($GLOBALS['couleur_foncee'],1).'&couleur_claire='.substr($GLOBALS['couleur_claire'],1);
    33         $r = '<link rel="stylesheet" href="'.$url_css.'" />';
     29        $r = '<link rel="stylesheet" href="'.$url_css.'" type="text/css" media="projection, screen, tv" />';
    3430       
    3531
  • _plugins_/acs/inc/acs_pipeline_public.php

    r41666 r41699  
    2424        $r .= '<link rel="stylesheet" href="'.direction_css(generer_url_public('acs_style_prive.css')).'" type="text/css" media="projection, screen, tv" />';
    2525        $js_dragdrop = find_in_path('javascript/dragdrop_interface.js');
     26        $jquery_version = 0;
    2627        // A partir de spip 2.1, l'interface dragdrop de JQuery a changé de nom:
    27         if (!$js_dragdrop)
     28        if (!$js_dragdrop) {
    2829                $js_dragdrop = find_in_path('javascript/jquery-ui-1.8-drag-drop.min.js');
     30                $jquery_version = 1;
     31        }
     32        $js_params = array('jquery_version' => 1);
    2933        $r .= '<script type="text/javascript" src="'.$js_dragdrop.'"></script>';
    30         $r .= '<script type="text/javascript" src="'.generer_url_public('javascript/acs_controleur_composant.js').'"></script>';
     34        $r .= '<script type="text/javascript" src="'.generer_url_public('javascript/acs_controleur_composant.js', $js_params).'"></script>';
    3135  }
    3236  return $flux.$r;
  • _plugins_/acs/inc/acs_selectionner_admin.php

    r27782 r41699  
    5555                // fonctionne (faudrait concentrer tout ca).
    5656
    57                 $res .= "<a class='pashighlight'"
     57                $res .= "<a class='highlight off'"
    5858                . "\nonclick=\"changerhighlight(this);"
    5959                . "findObj_forcer('nouv_admin_$admid').value="
     
    6767                . "\"><b>"
    6868                . typo(extraire_multi($row["nom"]))
    69                 . "</b></a>";
     69                . "</b></a> ";
    7070        }
    7171
  • _plugins_/acs/inc/acs_widgets.php

    r41617 r41699  
    1111 * Show a contextual widget list - Used by pages AND composants
    1212 */
    13 function liste_widgets() {
     13function liste_widgets($visible = true) {
    1414        $composants = composants_liste();
    1515       
     
    2222        foreach($cp['instances'] as $nic=>$c) {
    2323                $vpi = $vp.($nic ? $nic : '');
     24                /*
    2425                // Si le composant possède une propriete orientation ET une icone correspondante on oriente l'icone
    2526                $wicon = (isset($GLOBALS['meta'][$vpi.'Orientation']) && $GLOBALS['meta'][$vpi.'Orientation'] == 'horizontal') ? 'horizontal' : 'icon';
     
    2728      if (!file_exists($wicon))
    2829        $wicon = _DIR_PLUGIN_ACS.'images/composant-24.gif';
     30*/
    2931      // Si le composant possede une variable Nom on l'affiche en nom et le nom du composant en info-bulle
    3032      $v = $vpi.'Nom';
     
    3739        $title = _T('composant');
    3840      }     
    39                 $r .= '<div id="'.$class.($nic ? '-'.$nic : '').'" class="'.get_widget_class($cp['over'], $c['on'], 'widget').'">'.
    40         '<table><tr><td><a href="'._DIR_RESTREINT.'?exec=acs&amp;onglet=composants&amp;composant='.$class.($nic ? '&amp;nic='.$nic : '').'" title="'._T('composant').'"><img src="'.$wicon.'" /></a>'.
     41                $r .= '<div id="widget_'.$class.($nic ? '-'.$nic : '').'" class="'.get_widget_class($cp['over'], $c['on'], 'widget').'">'.
     42        '<table><tr><td><a href="'._DIR_RESTREINT.'?exec=acs&amp;onglet=composants&amp;composant='.$class.($nic ? '&amp;nic='.$nic : '').'" title="'._T('composant').'">'.widget_icon($class, $nic).'</a>'.
    4143        '</td><td title="'.$title.'" style="width: 95%;"><div><a href="'._DIR_RESTREINT.'?exec=acs&amp;onglet=composants&amp;composant='.$class.($nic ? '&amp;nic='.$nic : '').'" title="'.$title.'">'.$nom.'</a></div></td></tr></table>'.
    4244      '</div>';
     
    4648  }
    4749  $r .= '</div>';
    48   return acs_box($nbci.' '.(($nbci==1) ? strtolower(_T('composant')) : strtolower(_T('composants'))).' ('.$nbc.')', $r, _DIR_PLUGIN_ACS."/images/composant-24.gif", 'acs_box_composants');
     50  return acs_box($nbci.' '.(($nbci==1) ? strtolower(_T('composant')) : strtolower(_T('composants'))).' ('.$nbc.')', $r, _DIR_PLUGIN_ACS."/images/composant-24.gif", 'acs_box_composants'.($visible ? '' : '_hidden').'');
    4951}
    5052
     
    5759  return $ov;
    5860}
     61
     62function widget_icon($class, $nic, $size=24) {
     63        $o = 'acs'.ucfirst($class).($nic ? $nic : '').'Orientation';
     64        // Si le composant possède une propriete orientation ET une icone correspondante on oriente l'icone
     65        $wicon = (isset($GLOBALS['meta'][$o]) && $GLOBALS['meta'][$o] == 'horizontal') ? 'horizontal' : 'icon';
     66  $wicon = find_in_path('composants/'.$class.'/images/'.$class.'_'.$wicon.'.gif');
     67  if (!file_exists($wicon))
     68    $wicon = _DIR_PLUGIN_ACS.'images/composant-24.gif';
     69        return '<img src="'.$wicon.'" height="'.$size.'px" width="'.$size.'px" />';
     70}
    5971?>
  • _plugins_/acs/javascript/acs_controleur_composant.js.html

    r41666 r41699  
    1212
    1313]#HTTP_HEADER{'Content-Type: text/javascript'}
     14[(#INCLURE{fond=javascript/acs_lib.js})]
     15
    1416
    1517function init_controleur_composant() {
     18[(#ENV{jquery_version}|=={1}|?{
     19   [(#INCLURE{javascript/acs_dragdrop.js})],
     20   [(#INCLURE{javascript/acs_dragdrop_for_older_jquery.js})]
     21})]
    1622  jQuery(".edit_composant").each(
    1723        function(i, composant) {
    18         jQuery(this).draggable({zIndex: 99999000, handle: ".acs_box_titre"});
    19         jQuery(this).find(".acs_box_titre").css("cursor", "move");
     24        jQuery(this)
     25        .draggable({handle: ".acs_box_titre"})
     26        .find(".acs_box_titre").css("cursor", "move");
    2027        }
    2128  );
     29  jQuery(".btn_show_widgets, .edit_composant .ctlWidget").each(
     30    function(i, btn) {
     31      btn.onclick = function(e) {
     32        e.preventDefault();
     33        jQuery(btn).parents().find(".acs_box_composants_hidden:first")
     34          .css("top", "-15px")
     35          .css("left", "-203px")
     36          .css("z-index", 99999002)
     37          .css("display", ((jQuery(".acs_box_composants_hidden:eq(0)").css("display") == "none") ? "block" : "none"));
     38        return false;
     39      };
     40    }
     41  );
     42 
     43
    2244  jQuery(".type_pinceau").each(
    2345        function(i, composant) {
     
    4062                hoverClass: "ctlWidget_droppable_over",
    4163                over: function(e, cc) {
    42       var dropid = cQuery(this).attr("id");
    43       var current = cQuery(this).find(".type_pinceau");
     64      var dropid = jQuery(this).attr("id");
     65      var current = jQuery(this).find(".type_pinceau");
    4466      if (!current) return false;
    4567      if (!current.attr("class")) return false;
     
    5476                },
    5577    drop: function(e, cc) {
    56       cQuery(".cadre-composant").removeClass("ctlWidget_droppable_over");
    57       cQuery(this).addClass("ctlWidget_droppable_drop");
    58       var dropid = cQuery(this).attr("id");
    59       var current = cQuery(this).find(".type_pinceau");
     78      jQuery(".cadre-composant").removeClass("ctlWidget_droppable_over");
     79      jQuery(this).addClass("ctlWidget_droppable_drop");
     80      var dropid = jQuery(this).attr("id");
     81      var current = jQuery(this).find(".type_pinceau");
    6082      var current_i = current.attr("class").match(/\b\w+-(\w+)-(\d+)\b/);
    6183      var current_c = current_i[1];
     
    82104      var cFrom_c = cFrom_i[1];
    83105      var cFrom_nic = cFrom_i[2];
    84       var ccf = cFrom.find(".edit_composant");
    85       if (!cQuery.isPlainObject(ccf)) {
     106      [(#REM) on cherche si le controleur du pinceau du composant est déjà ouvert
     107      ]var ccf = jQuery("#composant-" + cFrom_c + "-" + cFrom_nic + " .edit_composant");
     108      if (ccf.length == 0) {
    86109        cQuery(cFrom).opencrayon(e);
    87110      }
     
    89112
    90113      [(#REM) On recupere ou on ouvre le controleur du composant "cTo", qui contient le composant avec la variable de type widget "dropid"
    91       ]var cTo = cQuery(this).parents('.crayon:eq(0)');
     114      ]var cTo = jQuery(this).parents('.crayon:eq(0)');
    92115      [(#REM)  Si le parent n'a pas de pinceau, prendre le grand-parent
    93116      ]if (!cTo.hasClass("type_pinceau")) {
    94         cTo = cQuery(this).parent().parents('.crayon:eq(0)');
     117        cTo = jQuery(this).parent().parents('.crayon:eq(0)');
    95118        [(#REM) Si le grand-parent non plus n'a pas de pinceau, echec
    96119        ]if (!cTo.hasClass("type_pinceau")) return false;
     
    99122      var cTo_c = cTo_i[1];
    100123      var cTo_nic = cTo_i[2];
    101       var cct = cTo.find(".edit_composant");
    102       if (!cQuery.isPlainObject(cct)) {
     124      var cct = jQuery("#composant-" + cTo_c + "-" + cTo_nic + " .edit_composant");
     125      if ((cTo_i.toString() != cFrom_i.toString()) && (cct.length == 0)) {
    103126        cQuery(cTo).opencrayon(e);
    104127      }
    105       setSelectValueThreaded(dropid, new_value, cQuery(this), cc.draggable, '#composant-' + cTo_c + '-' + cTo_nic);     
     128      setSelectValueThreaded(dropid, new_value, jQuery(this), cc.draggable, '#composant-' + cTo_c + '-' + cTo_nic);
    106129     
    107130      window.status = dropid + ' = ' + current_value + ' => ' + new_value + ' (' + from.attr("id") +')';
    108       cQuery(this).removeClass("ctlWidget_droppable_drop");
    109131    }
    110132        });
     133  draw_ctlWidgets();
    111134}
    112135
     
    121144
    122145]var todo = new Array();
     146var ccUpdateDelay = 50; // ms
    123147
    124 function setSelectValueThreaded(acsvarname, value, parent, c, crayon_c) {
    125   todo[acsvarname] = new Array(value, parent, c, crayon_c);
     148function setSelectValueThreaded(acsvarname, value, widget_cible, c, crayon_composant) {
     149  todo[acsvarname] = new Array(value, widget_cible, c, crayon_composant);
    126150  todo.length++;
    127151  setSelectValueDoThreads();
     
    132156  var try_again = false;
    133157  for(var avar in todo) {
    134     if (setSelectValue(avar, todo[avar][0])) {
    135       cQuery(todo[avar][3]).css('opacity', '0.1');
    136       todo[avar][1].append(todo[avar][2]);
    137       todo[avar][2].css('visibility', 'visible').css('opacity', '1');
     158    var value = todo[avar][0]; // nouvelle valeur
     159    if (setSelectValue(avar, value)) {
     160      var widget_cible = todo[avar][1];
     161      var c = todo[avar][2];
     162      var crayon_composant = todo[avar][3];
     163      jQuery(crayon_composant).css('visibility', 'visible').css('opacity', '0.1');
     164      widget_cible.append(c);
     165      [(#REM) widget_cible.parent() est la vue du composant puisque le controleur du composant est ouvert,
     166        et son parent est donc le crayon du composant qui contient ce controle de type widget
     167
     168      ]widget_cible.parent().parent().css('visibility', 'visible').css('opacity', '1');
     169      widget_cible.removeClass("ctlWidget_droppable_drop");
    138170      delete todo[avar];
     171      draw_ctlWidgets();
    139172      todo.length--;
    140173    }
     
    143176  }
    144177  if (try_again)
    145     window.setTimeout(setSelectValueDoThreads, 100);
     178    window.setTimeout(setSelectValueDoThreads, ccUpdateDelay);
    146179}
    147180
    148181function setSelectValue(acsvarname, value) {
    149   var select =  cQuery("select[id^='select_" + acsvarname + "_']");
     182  var select =  jQuery("select[id^='select_" + acsvarname + "_']");
    150183  select.val(value);
    151184  if (select.val() == value)
  • _plugins_/acs/javascript/acs_dragdrop.js

    r41262 r41699  
    3434                        dropid = "#select_" + event.target.id;
    3535                        var oldval = $(dropid).val();
    36                         $(dropid).val(dragid);
    37                         if ($(dropid).val() == dragid) {
     36                        var val_dragid = dragid.substring(7);
     37                        $(dropid).val(val_dragid);
     38                        if ($(dropid).val() == val_dragid) {
    3839                                if ($("#" + dragid).parent().is(".ctlWidget")) {
    3940                                        var olddropid = "#select_" + $("#" + dragid).parent().attr("id");
  • _plugins_/acs/javascript/acs_ecrire.js.html

    r41311 r41699  
    99  JS interface d'admin d'ACS - ACS admin GUI
    1010]#HTTP_HEADER{'Content-Type: text/javascript'}
     11[(#INCLURE{fond=javascript/acs_lib.js})]
    1112
    1213function detail() {
     
    7374        );
    7475
    75   // Mask select controls on start (they works even without javascript !)
    76   $(".ctlWidget").each(
    77     function(i,cw) {
    78       var selectid = "#select_" + cw.id;
    79       $(selectid).attr("style", "visibility: hidden;");
    80       if ($(selectid).get(0)) $(selectid).get(0).style.visibility = "hidden"; // for IE damned browser
    81       if ($(selectid).val() != '') {
    82         var dragid = "#" + $(selectid).val();
    83         $(this).append($(dragid));
    84       }
    85     }
    86   );
    87 
    8876[(#ENV{jquery_version}|=={1}|?{
    8977   [(#INCLURE{javascript/acs_dragdrop.js})],
     
    10492    );
    10593  }
     94
     95  draw_ctlWidgets();
    10696
    10797  [(#REM) Donne leur fonction onclick aux plieurs (générique)]
  • _plugins_/acs/lib/composant/classComposantPrive.php

    r41666 r41699  
    4747    $this->vars = array();
    4848    $this->cvars = array(); // Variables issues d'un autre composant
     49    $this->necessite = array(); // Dependances du composant
     50    $this->nb_widgets = 0; // Nb de variables de type widget
    4951    $this->rootDir = find_in_path('composants/'.$class);// Dossier racine du composant
    5052    $this->icon = $this->rootDir.'/images/'.$class.'_icon.gif';
     
    6668
    6769                // Lit les dépendances (necessite)
    68                 $this->necessite = array();
    6970                if (spip_xml_match_nodes(',^necessite,',$c,$needs)){
    7071                foreach(array_keys($c) as $tag){
     
    122123                        foreach($c['variable'] as $k=>$var) {
    123124                                if (!is_array($var))
    124                                         continue; // Peut se produire en cas d'erreur dans compoant.xml
     125                                        continue; // Peut se produire en cas d'erreur dans composant.xml
    125126                                foreach($var as $varname=>$value) {
    126127                                        if (count($value) > 1)
     
    131132                                                $this->errors['vars'] .= $class.($nic ? '#'.$nic : '').'->vars['.$k.']['.$varname.'] = '.htmlentities((is_array($v) ? 'Array('.implode($v, ', ').')' : $v))."<br />\n"; // dbg composant
    132133                                        $this->vars[$k+1][$varname] = $v;
     134                                        if (($varname == 'type') && ($v == 'widget'))
     135                                                $this->nb_widgets++;
    133136                                        if ($varname == 'valeur') { // Default values
    134137                                                if (substr($v,0,4) == '=acs') {
     
    362365                          $mep = str_replace($tag, $html, $mep);
    363366                        }
    364                         if ($mode=='controleur')
     367                        // en mode controleur, on ajoute si besoin est la liste des widgets, invisible
     368                        if ($mode=='controleur') {
    365369                                $mep = preg_replace('%<admin>(.*?)</admin>%s', '', $mep);
     370                                if ($this->nb_widgets > 0)
     371                                        $mep .= liste_widgets(false);
     372                        }
    366373                }
    367374                // Ajoute les contrôles non mis en page
  • _plugins_/acs/lib/composant/composants_variables.php

    r41495 r41699  
    4545
    4646                // Lecture des parametres : todo
    47                
     47
    4848                // Lecture des variables
    4949    if (is_array($c['variable'])) {
  • _plugins_/acs/lib/composant/controles.php

    r41495 r41699  
    2222  if ($param['label'] != 'non')
    2323    $r .= '<td align="'.$GLOBALS['spip_lang_right'].'">&nbsp;<label for "'.$var.'_'.$wid.'" title="'.$var.'"  class="label">'._TC($composant, $nom).'</label>&nbsp;</td>';
    24   $r .= '<td><input type="text" name="'.$var.'_'.$wid.'"'.(is_array($s) ? ' title="'.$s[0].'x'.$s[1].'"' : '').' value="'.$image.'" size="40" class="forml" /></td>';
     24  $r .= '<td><input type="text" id="'.$var.'_'.$wid.'" name="'.$var.'_'.$wid.'"'.(is_array($s) ? ' title="'.$s[0].'x'.$s[1].'"' : '').' value="'.$image.'" size="40" class="forml" /></td>';
    2525  $r .= '<td>&nbsp;</td><td><a href="javascript:TFP.popup(document.forms[\'acs\'].elements[\''.$var.'_'.$wid.'\'], document.forms[\'acs\'].elements[\''.$var.'_'.$wid.'\'].value, \''.$path.'\', \''._ACS_DIR_SITE_ROOT.'\');" title="'._T('acs:choix_image').'"><img src="'._DIR_ACS.'images/folder_image.png" class="icon" alt="'._T('acs:choix_image').'" /></a></td></tr></table></div>';
    2626  return $r;
  • _plugins_/acs/lib/composant/page_source.php

    r41617 r41699  
    148148  }
    149149  if (substr($include, 0, 11) == 'composants/') {
    150     $r = affiche_widgy($include, $param, indent($args[1]['indentation']), $nic);
     150    $r = affiche_widgy($include, $param, $args[1]['indentation'], $nic);
    151151  }
    152152  else {
     
    203203}
    204204
    205 /* vieille méthode : à remplacer par une analyse des balises VAR et CONFIG
    206 function pi_VAR($args) {
    207   $var = $args[0][0];
    208   $vars = $args[1]['vars'];
    209   $v = $vars[substr($var, 3)];
    210 
    211   $html = '<a class="col_VAR" href="?exec=acs&onglet=composants&composant='.$v['composant'].'" title="'._T('acs:composant').' '.ucfirst(str_replace('_', ' ', $v['composant'])).'">'.$var.'</a>';
    212   $args[2]['vars'][$var] = $html;
    213 
    214   if ($args[1]['mode_source']) return $html;
    215   //return $html;
    216 }
    217 */
    218205function affiche_widgy($include, $param, $indentation, $nic) {
    219206  $include = substr($include, 11);
     
    230217}
    231218
    232 function widgy($composant, $param, $label='', $indentation='', $nic = '') {
     219function widgy($composant, $param, $label='', $indentation=0, $nic = '', $recursive_indent = 0, $in_horizontal = false) {
    233220  $label = ucfirst(str_replace('_', ' ', $label));
    234 
     221 
     222  $horizontal = ($GLOBALS['meta']['acs'.ucfirst($composant).$nic.'Orientation'] == "horizontal") ? true : false;
     223  $content .= $horizontal ? '<tr>' : ''; 
     224 
    235225  // On recherche ce que contient le widgy, recursivement
    236226  $cv = composants_variables();
     227
    237228  if (is_array($cv) && is_array($cv[$composant]) && is_array($cv[$composant]['vars'])) {
    238229    foreach($cv[$composant]['vars'] as $varname=>$v) {
    239         if ($v['type'] != 'widget') continue;
     230        if ($v['type'] != 'widget')
     231                continue;
    240232      $var = 'acs'.ucfirst($composant).$nic.ucfirst($varname);
    241233      if (isset($GLOBALS['meta'][$var]) && $GLOBALS['meta'][$var]) {
     
    243235        $cinom = $ci[0];
    244236        $cinic = $ci[1];
    245         $content .= '<tr class="widgy_included"><td class="widgy_included_label"><a class="nompage" href="?exec=acs&onglet=composants&composant='.$composant.($nic ? '&nic='.$nic : '').'" title="acs'.$varname.'">'.substr($varname, strlen($composant.$nic)).'</a></td><td>'.widgy($cinom, '', $cinom, '', $cinic).'</td></tr>';
     237        $cilabel = $cinom;
     238        $content .= (!$horizontal ? '<tr>' : '');
     239        $content .= '<td class="widgy_included_label"><a class="nompage" href="?exec=acs&onglet=composants&composant='.$composant.($nic ? '&nic='.$nic : '').'" title="acs'.$varname.'">'.substr($varname, strlen($composant.$nic)).'</a>'.widgy($cinom, '', $cilabel, $indentation, $cinic, 1, $horizontal).'</td>';
     240        $content .= (!$horizontal ? '</tr>' : '');
    246241      }
    247242    }
    248243  }
     244  $content .= $horizontal ? '</tr>' : '';
    249245 
    250246        // On recupere le Nom du composant
    251247        $cvn = 'acs'.ucfirst($composant).$nic.'Nom';
    252         if (isset($GLOBALS['meta'][$cvn]))
    253                 $title = $GLOBALS['meta'][$cvn];
    254         else
     248        if (isset($GLOBALS['meta'][$cvn])) {
     249                $lbl = $GLOBALS['meta'][$cvn];
     250                $title = $label.($nic ? ' '.$nic : ''). ' ('.$lbl.')';
     251                $lbl = str_replace(' ', '&nbsp;', couper($lbl, 18));
     252        }
     253        else {
     254                $lbl =  $label.($nic ? '&nbsp;'.$nic : '');
    255255                $title = _T('acs:composant').' '.$label.' '.$nic;
    256         $title = ' title="'.$title.'"';
    257   // affichage du contenu du widgy
    258   $r = '<table><tr><td>'.$indentation.'</td><td>';
    259   $r .= '<table><tr><th><a class="'.get_widget_class('', 'oui', 'widgy').'" href="?exec=acs&onglet=composants&composant='.$composant.($nic ? '&nic='.$nic : '').'"'.$title.'>'.$label.($nic ? '&nbsp;'.$nic : '').'</a></th></tr>';
     256        }
     257        $titleHTML = ' title="'.$title.'"';
     258  // affichage du contenu du widgy avec l'indentation voulue
     259  $indentationHTML = $in_horizontal ? '' : '<td>'.indent($indentation + $recursive_indent).'</td>';
     260  $over = $cv[$composant]['over'];
     261  $on = ($GLOBALS['meta']['acs'.ucfirst($composant).$nic.'Use'] == "oui") ? true : false;;
     262  $r = '<table><tr>'.$indentationHTML.'<td'.($recursive_indent ? ' class="widgy_included"' : '').'>';
     263  $r .= '<table><tr><th><a class="'.get_widget_class($over, $on, 'widgy').'" href="?exec=acs&onglet=composants&composant='.$composant.($nic ? '&nic='.$nic : '').'"'.$titleHTML.'>'.widget_icon($composant, $nic, 10).'&nbsp;'.$lbl.'</a></th></tr>';
    260264  $r .= $content;
    261265  $r .= '</table></td></tr></table>';
     
    265269function indent($l) {
    266270  for($i = 0; $i < $l; $i++) {
    267     $r .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
     271    $r .= '&nbsp;&nbsp;&nbsp;';
    268272  }
    269273  return $r;
  • _plugins_/acs/models/cat/composants/audio/audio.css.html

    r41666 r41699  
    2323  line-height: #VAR{acsFondNavSize,0.65em};
    2424  height: #VAR{acsFondNavSize,0.65em};
    25   color: #VAR{acsAudioTrackStatus,#00afdf};
     25  color: #VAR{acsAudioTrackStatus,#00afdf}; 
    2626}
    2727
     
    128128  [border-style: (#VAR{acsAudioBord/Style});]
    129129  [border-color: (#VAR{acsAudioBord/Color});]
     130  [(#MODELE{c_css_shadow}{c=Audio})]
    130131}
    131132.playlist .pagination {
     
    134135  [border-top: 1px solid (#VAR{acsRubnavSep});]
    135136  margin : 0;
     137  padding-left: 5px;
     138  padding-right: 5px;
    136139}
    137140.playlist .bloc-title {
  • _plugins_/acs/models/cat/composants/audio/audio_balises.php

    r27960 r41699  
    22
    33function joli_titre($titre) {
    4   $titre=basename($titre);
    5   $titre=ereg_replace('.mp3','',$titre);
    6   $titre=ereg_replace('^ ','',$titre);
     4  $titre = basename($titre);
     5  $titre = ereg_replace('.mp3','',$titre);
     6  $titre = ereg_replace('^ ','',$titre);
    77  $titre = eregi_replace("_"," ", $titre );
    88  $titre = eregi_replace("'"," ",$titre );
    99  return $titre ;
    1010}
     11
     12// Librairies javascript a inclure pour ce composant
     13function audio_jslib() {
     14        if (find_in_path('javascript/dragdrop_interface.js'))
     15                $js_dragdrop = 'javascript/dragdrop_interface.js';
     16        // A partir de spip 2.1, l'interface dragdrop de JQuery a changé de nom:
     17        elseif (find_in_path('javascript/jquery-ui-1.8-drag-drop.min.js'))
     18                $js_dragdrop = 'javascript/jquery-ui-1.8-drag-drop.min.js';
     19        return array($js_dragdrop);
     20}
    1121?>
  • _plugins_/acs/models/cat/composants/audio/inc-playlist.html

    r41516 r41699  
    33<B_doc>
    44#ANCRE_PAGINATION
    5 <div class="playlist bsize">
    6   <div class="bloc-title">
     5<div class="playlist">
     6  <div class="bloc-title bsize">
    77    <a style="align: left" href="spip.php?page=wrap&amp;c=composants/audio/inc-playlist" target="_playlist" title="Ouvre la playlist dans une nouvelle fenêtre"><:acs:audio_audio:></a>
    88  </div>
    9   [<p class="pagination">(#PAGINATION)</p>]
     9  [<p class="pagination nsize">(#PAGINATION)</p>]
    1010  <INCLURE{fond=composants/audio/player}{autostart=#AUTOSTART}{hp=#GET{hp}}{lp=#GET{lp}}{mmfile=#URL_DOCUMENT}>
    11   <ul class="playliste">
     11  <ul class="playliste bsize">
    1212  <BOUCLE_doc (DOCUMENTS) {extension==mp3}{!par date}{pagination #VAR{acsAudioNbMp3, 20}}>[(#EVAL{$NB++}|?{'',''})]
    13     <li class="play_ pl_l#EVAL{$NB}">
    14       [(#VAR{acsAudioDownload,oui}|=={oui}|?{' '})<small><a href="#URL_DOCUMENT" title="<:acs:audio_download:>" class="podcast">MP3</a></small>]<a href="#FICHIER" rel="enclosure" class="mp3" title="[(#DESCRIPTIF|sinon{#FICHIER|joli_titre}|couper{100})]">[(#TITRE|sinon{#ID_DOCUMENT}|couper{28})]</a>
    15       <BOUCLE_ART (ARTICLES){id_document}><small><i><a href="#URL_ARTICLE" class="article" title="<:acs:audio_lire_article:>">(<:acs:audio_article:>)</a></i></small></BOUCLE_ART> <span class="track_status nsize pl_dl#EVAL{$NB}" ></span></li>
     13    <li class="play_ pl_l#EVAL{$NB}">[(#VAR{acsAudioDownload,oui}|=={oui}|?{' '})<a href="#URL_DOCUMENT" title="<:acs:audio_download:>" class="podcast nsize">MP3</a>&nbsp;]<a href="#FICHIER" rel="enclosure" class="mp3" title="[(#DESCRIPTIF|sinon{#FICHIER|joli_titre}|couper{100})]">[(#TITRE|sinon{#ID_DOCUMENT}|couper{28})]</a><BOUCLE_ART (ARTICLES){id_document}><i class="nsize">&nbsp;<a href="#URL_ARTICLE" class="article" title="<:acs:audio_lire_article:>">(<:acs:audio_article:>)</a></i></BOUCLE_ART><span class="track_status nsize pl_dl#EVAL{$NB}" ></span></li>
    1614  </BOUCLE_doc>
    1715  </ul>
  • _plugins_/acs/models/cat/composants/cadre/cadre_instances.css.html

    r41093 r41699  
    88  border: #VAR{#EVAL{'acsCadre'.'#NIC'.'Bord/Width'},thin}[ (#VAR{#EVAL{'acsCadre'.'#NIC'.'Bord/Style'},solid}) ](#VAR{#EVAL{'acsCadre'.'#NIC'.'Bord/Color'}});][
    99  color: (#VAR{#EVAL{'acsCadre'.'#NIC'.'Text'}});][
    10   box-shadow: #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowBlur'},5}px (#VAR{#EVAL{'acsCadre'.'#NIC'.'Shadow'}});
    11   -webkit-box-shadow: #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowBlur'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'Shadow'}};
    12   -moz-box-shadow: #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowBlur'},5}px #VAR{#EVAL{'acsCadre'.'#NIC'.'Shadow'}};
    13   filter: progid:DXImageTransform.Microsoft.dropShadow(color=#VAR{#EVAL{'acsCadre'.'#NIC'.'Shadow'}}, offX=#VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'}}, offY=#VAR{#EVAL{'acsCadre'.'#NIC'.'ShadowSize'}}, positive=true);]
     10  (#MODELE{c_css_shadow}{c=Cadre}{nic=#NIC})]
    1411}[
    1512.cCadre#NIC a:link, .cCadre#NIC a:visited {text-decoration: none; color: (#VAR{#EVAL{'acsCadre'.'#NIC'.'Link'}});}][
  • _plugins_/acs/models/cat/composants/encart/encart_instances.css.html

    r41617 r41699  
    66  [border-color: (#VAR{#EVAL{'acsEncart'.'#NIC'.'Bord/Color'}});]
    77  [-moz-border-radius: (#VAR{#EVAL{'acsEncart'.'#NIC'.'BordRond'}});][
    8   box-shadow: #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowBlur'},5}px (#VAR{#EVAL{'acsEncart'.'#NIC'.'Shadow'}});
    9   -webkit-box-shadow: #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowBlur'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'Shadow'}};
    10   -moz-box-shadow: #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowBlur'},5}px #VAR{#EVAL{'acsEncart'.'#NIC'.'Shadow'}};
    11   filter: progid:DXImageTransform.Microsoft.dropShadow(color=#VAR{#EVAL{'acsEncart'.'#NIC'.'Shadow'}}, offX=#VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'}}, offY=#VAR{#EVAL{'acsEncart'.'#NIC'.'ShadowSize'}}, positive=true);]
    12  
     8  (#MODELE{c_css_shadow}{c=Encart}{nic=#NIC})]
    139}
    1410.cEncart#NIC .entete {
  • _plugins_/acs/models/cat/composants/fond/ecrire/lang/fond_ecrire_en.php

    r41411 r41699  
    88'info' => 'Define general website look and feel and default values for other components.',
    99'help' => 'Website content is defined with <a href="?nic=201&exec=acs&composant=cadre&onglet=composants">Cadre</a> components.<br /><br />
    10 Size for little navigation links set the size of pagination, notes, post-scriptums and all small navigation elements.',
     10Size for little navigation links set the size of pagination, notes, post-scriptums and all small navigation elements.
     11<br /><br />
     12 * typo size<br />
     13 * Base       100%<br />
     14 * -------------------------------------<br />
     15 * 20px       1.27em<br />
     16 * 19px       1.21em<br />
     17 * 18px       1.15em<br />
     18 * 17px       1.09em<br />
     19 * 16px       1.03em<br />
     20 * 15px       0.96em<br />
     21 * 14px       0.88em<br />
     22 * 13px       0.82em<br />
     23 * 12px       0.77em<br />
     24 * 11px       0.71em<br />
     25 * 10px       0.65em<br />
     26 *  9px       0.59em<br />
     27 * Caution : under 0.71em texte is unreadable in text smallest on MSIE
     28',
    1129
    1230'Favicon' => 'Favicon',
  • _plugins_/acs/models/cat/composants/fond/ecrire/lang/fond_ecrire_fr.php

    r41411 r41699  
    77'description' => 'Fond de page. Image ou couleur de fond pour toutes les pages du site.',
    88'info' => 'Définit le style général du site et les valeurs par d&eacute;faut des autres composants.',
    9 'help' => 'Le contenu des pages du site est défini avec des composants <a href="?nic=201&exec=acs&composant=cadre&onglet=composants">Cadre</a>.<br /><br />
    10 La taille des petits liens de navigation s\'applique aux paginations, aux notes, aux post-scriptums et &agrave; tous les petits &eacute;l&eacute;ments de navigation.',
     9'help' => 'Le contenu des pages du site est défini avec des composants <a href="?nic=201&amp;exec=acs&amp;composant=cadre&amp;onglet=composants">Cadre</a>.<br /><br />
     10La taille des petits liens de navigation s\'applique aux paginations, aux notes, aux post-scriptums et &agrave; tous les petits &eacute;l&eacute;ments de navigation.
     11<br /><br />
     12 * taille typo<br />
     13 * Base       100%<br />
     14 * -------------------------------------<br />
     15 * 20px       1.27em<br />
     16 * 19px       1.21em<br />
     17 * 18px       1.15em<br />
     18 * 17px       1.09em<br />
     19 * 16px       1.03em<br />
     20 * 15px       0.96em<br />
     21 * 14px       0.88em<br />
     22 * 13px       0.82em<br />
     23 * 12px       0.77em<br />
     24 * 11px       0.71em<br />
     25 * 10px       0.65em<br />
     26 *  9px       0.59em<br />
     27 * Attention : en dessous de 0.71em le texte devient illisible en text smallest sur MSIE
     28',
    1129
    1230'Favicon' => 'Ic&ocirc;ne de signet',
Note: See TracChangeset for help on using the changeset viewer.