Ignore:
Timestamp:
Jan 28, 2011, 5:10:45 PM (14 years ago)
Author:
grum
Message:

release 3.0.0
fix bug:1716, bug:2128, bug:1296, bug:2052, bug:1910, bug:1723, bug:1709, bug:1680, bug:1477, bug:2129
rewrite plugin core, implement ajax interface, optimize JS

Location:
extensions/AMenuManager/admin
Files:
8 added
4 edited

Legend:

Unmodified
Added
Removed
  • extensions/AMenuManager/admin/amm_admin.tpl

    r5421 r8962  
    11<h2 style="float:right;top:-24px;position:relative;height:auto;font-size:12px;font-weight:normal;">{$plugin.AMM_VERSION}</h2>
    22
    3 <div style="position:relative;top:-24px;clear:right;">
    4   {if isset($page_nfo)}
    5   <p>{$page_nfo}</p>
     3<div class='helps'>
     4  {if isset($pageNfo)}
     5  <p>{$pageNfo}</p>
    66  {/if}
     7</div>
     8
     9<div id='iBDProcessing' style="display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000000;opacity:0.75;z-index:800;">
     10  <img src="plugins/GrumPluginClasses/icons/processing.gif" style="margin-top:20%;">
     11</div>
     12
     13<div id='iConfigState' style='display:none;'>
    714</div>
    815
  • extensions/AMenuManager/admin/amm_linksconfig.tpl

    r3681 r8962  
    11{literal}
    22<script type="text/javascript">
     3  var ulc;
    34
    4   //global var ; need to not have to initialize them every time a value is changed
    5   var objlang;
    6   var objnames = new Array('iamm_links_title');
    7   var objinput = new Array();   //input text from form => objinput[name]
    8   var objhidden = new Array();  //input hidden from form => objhidden[name][lang]
    9 
    10   function init()
    11   {
    12     objlang = document.getElementById('islang');
    13     for(i=0;i<objnames.length;i++)
     5  $(window).load(
     6    function ()
    147    {
    15       objinput[i] = document.getElementById(objnames[i]);
    16       objhidden[i] = new Array();
    17       for(j=0;j<objlang.options.length;j++)
    18       {
    19         objhidden[i][j] = document.getElementById(objnames[i]+'_'+objlang.options[j].value);
    20       }
     8      ulc=new userLinksConfig(
     9        {}, {},
     10        '{/literal}{$token}{literal}',
     11        {
     12          'showIcons':'{/literal}{$datas.config.showIcons}{literal}',
     13          'userLang':'{/literal}{$datas.selectedLang}{literal}',
     14          'titles':
     15            {
     16            {/literal}
     17            {foreach from=$datas.config.titles name=items key=langCode item=title}
     18              "{$langCode}":"{$title}"{if !$smarty.foreach.items.last},{/if}
     19            {/foreach}
     20            {literal}
     21            },
     22          'langs':[
     23              {/literal}
     24              {foreach from=$datas.config.titles name=items key=langCode item=title}
     25                "{$langCode}"{if !$smarty.foreach.items.last},{/if}
     26              {/foreach}
     27              {literal}
     28            ]
     29        }
     30      );
    2131    }
    22   }
    23 
    24   function change_lang()
    25   {
    26     for(i=0;i<objnames.length;i++)
    27     {
    28       objinput[i].value = objhidden[i][objlang.options.selectedIndex].value;
    29     }
    30   }
    31 
    32   function apply_changes(input_id)
    33   {
    34     var obj=document.getElementById(input_id);
    35     objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
    36   }
    37 
    38   function do_translation()
    39   {
    40     var inputid = document.getElementById('iamm_links_title');
    41     var tolang = objlang.options[objlang.options.selectedIndex].value.substr(0,2);
    42 
    43     google_translate(inputid.value, '{/literal}{$datas.fromlang}{literal}', tolang, inputid, 'value', apply_changes, inputid.id);
    44   }
    45 
    46 
     32  );
    4733</script>
    4834{/literal}
    4935
     36<form method="post" action="" class="general">
    5037
    51 
    52 <h3><span style="font-weight:normal"><a href="{$datas.lnk_list}" title="{'g002_configlinks'|@translate}">{'g002_linkslist'|@translate} </span></a> / {'g002_configlinks'|@translate}
    53 </h3>
    54 
    55 
    56 <form method="post" action="" class="general">
    5738  <fieldset>
    5839    <legend>{'g002_setting_block_menu'|@translate}</legend>
    59 
    60     {if isset($datas.language_list) and count($datas.language_list)}
    61       {foreach from=$datas.language_list key=name item=language_row}
    62         <input type="hidden" name="famm_links_title_{$language_row.LANG}"
    63                 id="iamm_links_title_{$language_row.LANG}" value="{$language_row.MENUBARTIT}">
    64       {/foreach}
    65     {/if}
    6640
    6741    <table class="formtable">
     
    6943        <td>{'g002_setting_block_title'|@translate}</td>
    7044        <td>
    71           <input type="text" id="iamm_links_title" value="" maxlength="50" onkeyup="apply_changes('iamm_links_title');" onblur="apply_changes('iamm_links_title');"/>
    72           <select onchange="change_lang();" id="islang">
    73             {html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
    74           </select><br>
     45          <div id="iamm_links_title"></div>
     46          <div id="islang">
     47            [
     48            {foreach from=$datas.langs key=langCode item=langLabel name=items}
     49              {ldelim}"value":"{$langCode}","cols":["{$langLabel}"]{rdelim}{if !$smarty.foreach.items.last},{/if}
     50            {/foreach}
     51            ]
     52          </div>
    7553        </td>
    7654      </tr>
     
    7856        <td></td>
    7957        <td style="font-size:80%;">
    80           <a style="cursor:pointer;" onclick="do_translation()">{'g002_translate'|@translate}</a>
     58          <a style="cursor:pointer;" onclick="$('#iamm_links_title').inputText('doTranslation');">{'g002_translate'|@translate}</a>
    8159        </td>
    8260      </tr>
    8361
    8462    </table>
    85 
    86 
    8763  </fieldset>
    8864
     
    9369        <td>{'g002_setting_link_show_icon'|@translate}</td>
    9470        <td>
    95           <select name="famm_links_show_icons" id="iamm_links_show_icons">
    96             {html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.show_icons_selected}
    97           </select>
     71          <div id='iamm_links_show_icons'>
     72            <label><input type="radio" value="y">&nbsp;{'g002_yesno_y'|@translate}<br></label>
     73            <label><input type="radio" value="n">&nbsp;{'g002_yesno_n'|@translate}</label>
     74          </div>
    9875        </td>
    9976      </tr>
     
    10279
    10380  <p>
    104     <input type="submit" name="famm_submit_apply" id="iamm_submit_apply" value="{'g002_apply'|@translate}" >
     81    <input type="button" id="iamm_submit_apply" value="{'g002_apply'|@translate}" onclick="ulc.submit();">
    10582  </p>
    106 
    107   <input type="hidden" name="famm_modeedit" value="config">
    10883
    10984</form>
    11085
    111 <script type="text/javascript">
    112   init();
    113   change_lang();
    114 </script>
  • extensions/AMenuManager/admin/amm_randompicconfig.tpl

    r5545 r8962  
    1 {known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
    2 {known_script id="jquery.ui.slider" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.slider.packed.js"}
    3 
    41{literal}
    52<style>
    63 .ui-slider {
    7     width:350px;
     4    width:360px;
    85    height:10px;
    96    border-width:1px;
     
    2219  }
    2320</style>
     21
    2422<script type="text/javascript">
     23  var rpc;
    2524
    26   //global var ; need to not have to initialize them every time a value is changed
    27   var objlang;
    28   var objnames = new Array('iamm_randompicture_title');
    29   var objinput = new Array();   //input text from form => objinput[name]
    30   var objhidden = new Array();  //input hidden from form => objhidden[name][lang]
    31 
    32   function init()
    33   {
    34     objlang = document.getElementById('islang');
    35     for(i=0;i<objnames.length;i++)
     25  $(window).load(
     26    function ()
    3627    {
    37       objinput[i] = document.getElementById(objnames[i]);
    38       objhidden[i] = new Array();
    39       for(j=0;j<objlang.options.length;j++)
    40       {
    41         objhidden[i][j] = document.getElementById(objnames[i]+'_'+objlang.options[j].value);
    42       }
     28      rpc=new randomPictConfig(
     29        {},
     30        {
     31          g002_setting_randompic_periodicchange_deactivated:"{/literal}{'g002_setting_randompic_periodicchange_deactivated'|@translate}{literal}",
     32          g002_setting_randompic_height_auto:"{/literal}{'g002_setting_randompic_height_auto'|@translate}{literal}"
     33        },
     34        '{/literal}{$token}{literal}',
     35        {
     36          'selectMode':"{/literal}{$datas.config.selectMode}{literal}",
     37          'selectCat':{/literal}{$datas.config.selectCat}{literal},
     38          'infosName':"{/literal}{$datas.config.infosName}{literal}",
     39          'infosComment':"{/literal}{$datas.config.infosComment}{literal}",
     40          'freqDelay':"{/literal}{$datas.config.freqDelay}{literal}",
     41          'blockHeight':"{/literal}{$datas.config.blockHeight}{literal}",
     42          'blockTitles':
     43            {
     44            {/literal}
     45            {foreach from=$datas.config.blockTitles name=items key=langCode item=title}
     46              "{$langCode}":"{$title}"{if !$smarty.foreach.items.last},{/if}
     47            {/foreach}
     48            {literal}
     49            },
     50          'userLang':'{/literal}{$datas.selectedLang}{literal}',
     51          'langs':[
     52              {/literal}
     53              {foreach from=$datas.config.blockTitles name=items key=langCode item=title}
     54                "{$langCode}"{if !$smarty.foreach.items.last},{/if}
     55              {/foreach}
     56              {literal}
     57            ]
     58        }
     59      );
    4360    }
    44 
    45     formatDelay({/literal}{$datas.periodic_change}{literal});
    46     $("#iamm_rp_pc_slider").slider(
    47       {
    48         min:0,
    49         max:60000,
    50         steps:120,
    51         value:{/literal}{$datas.periodic_change}{literal},
    52         slide: function(event, ui) { formatDelay(ui.value); }
    53       });
    54     $("#iamm_rp_pc_slider a").addClass('gcBgInput');
    55 
    56     formatHeight({/literal}{$datas.height}{literal});
    57     $("#iamm_rp_height_slider").slider(
    58       {
    59         min:99,
    60         max:300,
    61         steps:201,
    62         value:affectHeight({/literal}{$datas.height}{literal}),
    63         slide: function(event, ui) { formatHeight(ui.value); }
    64       });
    65     $("#iamm_rp_height_slider a").addClass('gcBgInput');
    66   }
    67 
    68   function formatDelay(delay)
    69   {
    70     $("#iamm_randompicture_periodicchange").val(delay);
    71     if(delay==0)
    72     {
    73       $("#iamm_rp_pc_display").html("{/literal}{'g002_setting_randompic_periodicchange_deactivated'|@translate}{literal}");
    74     }
    75     else
    76     {
    77       $("#iamm_rp_pc_display").html((delay/1000).toFixed(2)+"s");
    78     }
    79   }
    80 
    81   function formatHeight(height)
    82   {
    83     (height==99)?vheight=0:vheight=height;
    84 
    85     $("#iamm_randompicture_height").val(vheight);
    86     if(vheight==0)
    87     {
    88       $("#iamm_rp_height_display").html("{/literal}{'g002_setting_randompic_height_auto'|@translate}{literal}");
    89     }
    90     else
    91     {
    92       $("#iamm_rp_height_display").html(vheight+"px");
    93     }
    94   }
    95 
    96   function affectHeight(height)
    97   {
    98     if(height==0)
    99     {return(0);}else{return(height);}
    100   }
    101 
    102   function change_lang()
    103   {
    104     for(i=0;i<objnames.length;i++)
    105     {
    106       objinput[i].value = objhidden[i][objlang.options.selectedIndex].value;
    107     }
    108   }
    109 
    110   function apply_changes(input_id)
    111   {
    112     var obj=document.getElementById(input_id);
    113     objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
    114   }
    115 
    116   function do_translation()
    117   {
    118     var inputid = document.getElementById('iamm_randompicture_title');
    119     var tolang = objlang.options[objlang.options.selectedIndex].value.substr(0,2);
    120 
    121     google_translate(inputid.value, '{/literal}{$datas.fromlang}{literal}', tolang, inputid, 'value', apply_changes, inputid.id);
    122 
    123   }
    124 
     61  );
    12562
    12663</script>
    12764{/literal}
    12865
     66<div id='iBDProcessing' style="display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000000;opacity:0.75;z-index:800;">
     67  <img src="plugins/GrumPluginClasses/icons/processing.gif" style="margin-top:20%;">
     68</div>
    12969
    130 
    131 <h3>{'g002_configrandompic'|@translate}</h3>
    132 
     70<div id='iConfigState' style='display:none;'>
     71</div>
    13372
    13473<form method="post" action="" class="general">
     
    13675    <legend>{'g002_setting_block_menu'|@translate}</legend>
    13776
    138     {if isset($datas.language_list) and count($datas.language_list)}
    139       {foreach from=$datas.language_list key=name item=language_row}
    140         <input type="hidden" name="famm_randompicture_title_{$language_row.LANG}"
    141                 id="iamm_randompicture_title_{$language_row.LANG}" value="{$language_row.MENUBARTIT}">
    142       {/foreach}
    143     {/if}
    144 
    14577    <table class="formtable">
    14678      <tr>
    14779        <td>{'g002_setting_block_title'|@translate}</td>
    14880        <td colspan="2">
    149           <input type="text" id="iamm_randompicture_title" value="" maxlength="50" onkeyup="apply_changes('iamm_randompicture_title');" onblur="apply_changes('iamm_randompicture_title');"/>
    150           <select onchange="change_lang();" id="islang">
    151             {html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
    152           </select><br>
     81          <div id="iamm_randompicture_title"></div>
     82
     83          <div id="islang">
     84            [
     85            {foreach from=$datas.langs key=langCode item=langLabel name=items}
     86              {ldelim}"value":"{$langCode}","cols":["{$langLabel}"]{rdelim}{if !$smarty.foreach.items.last},{/if}
     87            {/foreach}
     88            ]
     89          </div>
    15390        </td>
    15491      </tr>
     92
    15593      <tr>
    15694        <td></td>
    15795        <td style="font-size:80%;" colspan="2">
    158           <a style="cursor:pointer;" onclick="do_translation()">{'g002_translate'|@translate}</a>
     96          <a style="cursor:pointer;" onclick="$('#iamm_randompicture_title').inputText('doTranslation');">{'g002_translate'|@translate}</a>
    15997        </td>
    16098      </tr>
     
    163101        <td>{'g002_setting_randompic_height'|@translate}</td>
    164102        <td>
    165           <input type="hidden" name="famm_randompicture_height" id="iamm_randompicture_height" value="{$datas.height}">
    166103          <div id="iamm_rp_height_slider" class="gcBgInput gcBorderInput"></div>
    167104        </td>
     
    178115  <fieldset>
    179116    <legend>{'g002_setting_randompic_aboutpicture'|@translate}</legend>
    180       <table class="formclass">
     117      <table class="formtable">
    181118        <tr>
    182119          <td>{'g002_setting_randompic_showname'|@translate}</td>
    183120          <td>
    184             <select name="famm_randompicture_showname" id="iamm_randompicture_showname">
    185               {html_options values=$datas.show_values output=$datas.show_labels selected=$datas.showname_selected}
    186             </select>
     121            <div id="iamm_randompicture_showname">
     122              [
     123                {ldelim}"value":"n","cols":["{'g002_show_n'|@translate}"]{rdelim},
     124                {ldelim}"value":"o","cols":["{'g002_show_o'|@translate}"]{rdelim},
     125                {ldelim}"value":"u","cols":["{'g002_show_u'|@translate}"]{rdelim}
     126              ]
     127            </div>
    187128          </td>
    188129        </tr>
     
    191132          <td>{'g002_setting_randompic_showcomment'|@translate}</td>
    192133          <td>
    193             <select name="famm_randompicture_showcomment" id="iamm_randompicture_showcomment">
    194               {html_options values=$datas.show_values output=$datas.show_labels selected=$datas.showcomment_selected}
    195             </select>
     134            <div id="iamm_randompicture_showcomment">
     135              [
     136                {ldelim}"value":"n","cols":["{'g002_show_n'|@translate}"]{rdelim},
     137                {ldelim}"value":"o","cols":["{'g002_show_o'|@translate}"]{rdelim},
     138                {ldelim}"value":"u","cols":["{'g002_show_u'|@translate}"]{rdelim}
     139              ]
     140            </div>
    196141          </td>
    197142        </tr>
     
    203148  <fieldset>
    204149    <legend>{'g002_setting_randompic_periodicchange'|@translate}</legend>
    205       <table class="formclass">
     150      <table class="formtable">
    206151        <tr>
    207152          <td>{'g002_setting_randompic_periodicchange_delay'|@translate}</td>
    208153          <td>
    209             <input type="hidden" name="famm_randompicture_periodicchange" id="iamm_randompicture_periodicchange" value="{$datas.periodic_change}">
    210154            <div id="iamm_rp_pc_slider" class="gcBgInput gcBorderInput"></div>
    211155          </td>
     
    214158          </td>
    215159        </tr>
     160      </table>
     161  </fieldset>
    216162
    217163
     164  <fieldset>
     165    <legend>{'g002_selectedpict'|@translate}</legend>
     166      <table class="formtable">
     167        <tr>
     168          <td>
     169            <div id='iamm_randompicture_selectedMode'>
     170              <label><input type="radio" value="a">&nbsp;{'g002_selected_all_gallery'|@translate}<br></label>
     171              <label><input type="radio" value="f">&nbsp;{'g002_selected_favorites_wm'|@translate}<br></label>
     172              <label><input type="radio" value="c">&nbsp;{'g002_selected_categories'|@translate}<br></label>
     173                <div id='iamm_randompicture_selectedCat'></div>
     174            </div>
     175          </td>
     176        </tr>
    218177      </table>
    219178  </fieldset>
    220179
    221180  <p>
    222     <input type="submit" name="famm_submit_apply" id="iamm_submit_apply" value="{'g002_apply'|@translate}" >
     181    <input type="button" id="iamm_submit_apply" value="{'g002_apply'|@translate}" onclick="rpc.submit();">
    223182  </p>
    224183
    225   <input type="hidden" name="famm_modeedit" value="config">
    226184
    227185</form>
    228 
    229 <script type="text/javascript">
    230   init();
    231   change_lang();
    232 </script>
  • extensions/AMenuManager/admin/plugin_admin.php

    r5545 r8962  
    33  Plugin     : Advanced Menu Manager
    44  Author     : Grum
    5     email    : grum@grum.dnsalias.com
     5    email    : grum@piwigo.org
    66    website  : http://photos.grum.dnsalias.com
    77    PWG user : http://forum.phpwebgallery.net/profile.php?id=3706
Note: See TracChangeset for help on using the changeset viewer.