updating files for the Menu class (test_menu)

+ add functionnalities

updating files for the AMenuManager plugin
 + fixes some bugs
 + add functionnalities

updating common classes grum_plugins_classes-2
(needed for the AMenuManager plugin)
 + add functionalities for google_translator use


git-svn-id: http://piwigo.org/svn/trunk@2468 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
grum
2008-08-07 21:52:45 +00:00
parent 5e3d71c9ca
commit 526d8006a1
21 changed files with 1324 additions and 253 deletions
+20 -5
View File
@@ -35,6 +35,15 @@
objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
}
function do_translation()
{
var inputid = document.getElementById('iamm_links_title');
var tolang = objlang.options[objlang.options.selectedIndex].value.substr(0,2);
google_translate(inputid.value, '{/literal}{$datas.fromlang}{literal}', tolang, inputid, 'value', apply_changes, inputid.id);
}
</script>
{/literal}
@@ -46,7 +55,7 @@
<form method="post" action="" class="general">
<fieldset>
<legend>{'g002_setting_link_block_menu'|@translate}</legend>
<legend>{'g002_setting_block_menu'|@translate}</legend>
{if isset($datas.language_list) and count($datas.language_list)}
{foreach from=$datas.language_list key=name item=language_row}
@@ -57,7 +66,7 @@
<table class="formtable">
<tr>
<td>{'g002_setting_link_block_active'|@translate}</td>
<td>{'g002_setting_block_active'|@translate}</td>
<td>
<select name="famm_links_active" id="iamm_links_active">
{html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.active_selected}
@@ -66,12 +75,18 @@
</tr>
<tr>
<td>{'g002_setting_link_block_title'|@translate}</td>
<td>{'g002_setting_block_title'|@translate}</td>
<td>
<input type="text" id="iamm_links_title" value="" maxlength="50" onkeyup="apply_changes('iamm_links_title');" />
<input type="text" id="iamm_links_title" value="" maxlength="50" onkeyup="apply_changes('iamm_links_title');" onblur="apply_changes('iamm_links_title');"/>
<select onchange="change_lang();" id="islang">
{html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
</select>
</select><br>
</td>
</tr>
<tr>
<td></td>
<td style="font-size:80%;">
<a style="cursor:pointer;" onclick="do_translation()">{'g002_translate'|@translate}</a>
</td>
</tr>
@@ -0,0 +1,50 @@
{literal}
<script type="text/javascript">
function load_list(do_action, item)
{
/*
do_action
'list' : just load list
'delete' : delete the item in list
*/
var doc = document.getElementById("isections");
action_todo='';
if(do_action=='delete')
{
if(confirm('{/literal}{'g002_confirm_delete_link'|@translate}{literal}'))
{
action_todo='personalised_delete&fItem='+item;
}
}
else
{
action_todo='personalised_list';
}
if(action_todo!='')
{
http_request=create_httpobject('get', '', '{/literal}{$datas.AMM_AJAX_URL_LIST}{literal}'+action_todo, false);
http_request.send(null);
doc.innerHTML=http_request.responseText;
}
}
</script>
{/literal}
<h3>{'g002_personalisedlist'|@translate}</h3>
[{$datas.nbsections}]<br/>
<a href="{$datas.lnk_create}" title="{'g002_addsection'|@translate}">{'g002_addsection'|@translate}</a>
<br/>
<div id="isections"></div>
<script type="text/javascript">
load_list('list', 0);
</script>
@@ -0,0 +1,22 @@
{if isset($datas.sections) and count($datas.sections)}
<table class="table2 littlefont">
<tr class="throw">
<th>{'g002_setting_personalised_nfo'|@translate}</th>
<th>{'g002_title'|@translate}</th>
<th>{'g002_visible'|@translate}</th>
<th colspan=2>&nbsp;</th>
</tr>
{foreach from=$datas.sections key=name item=section}
<tr>
<td>{$section.nfo}</td>
<td>{$section.title}</td>
<td style="text-align:center;">{$section.visible}</td>
<td width="15px"><a href="{$section.edit}"><img src='{$themeconf.icon_dir}/category_edit.png'/></a></td>
<td width="15px"><a style="cursor:pointer;" onclick="load_list('delete', {$section.ID})"><img src='{$themeconf.icon_dir}/delete.png'/></a></td>
</tr>
{/foreach}
</table>
{/if}
@@ -0,0 +1,155 @@
{literal}
<script type="text/javascript">
//global var ; need to not have to initialize them every time a value is changed
var objlang;
var objnames = new Array('iamm_personalised_title', 'iamm_personalised_content');
var objinput = new Array(); //input text from form => objinput[name]
var objhidden = new Array(); //input hidden from form => objhidden[name][lang]
function init()
{
objlang = document.getElementById('islang');
for(i=0;i<objnames.length;i++)
{
objinput[i] = document.getElementById(objnames[i]);
objhidden[i] = new Array();
for(j=0;j<objlang.options.length;j++)
{
objhidden[i][j] = document.getElementById(objnames[i]+'_'+objlang.options[j].value);
}
}
}
function change_lang()
{
for(i=0;i<objnames.length;i++)
{
objinput[i].value = objhidden[i][objlang.options.selectedIndex].value;
}
}
function apply_changes(input_id)
{
var obj=document.getElementById(input_id);
objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
}
function do_translation()
{
var inputid = document.getElementById('iamm_personalised_title');
var tolang = objlang.options[objlang.options.selectedIndex].value.substr(0,2);
google_translate(inputid.value, '{/literal}{$datas.fromlang}{literal}', tolang, inputid, 'value', apply_changes, inputid.id);
}
</script>
{/literal}
{if isset($datas.modeedit)}
<h3>
{if $datas.modeedit=='create'}
{'g002_createofpersonalised'|@translate}
{else}
{'g002_editofpersonalised'|@translate}
{/if}
/ <span style="font-weight:normal"><a href="{$datas.personalised_list}">{'g002_personalisedlist'|@translate}</a></span></h3>
</h3>
<form method="post" action="" class="general">
<fieldset>
<legend>{'g002_setting_personalised_properties'|@translate}</legend>
<table class="formtable">
<tr>
<td>{'g002_setting_block_active'|@translate}</td>
<td>
<select name="famm_personalised_visible" id="iamm_personalised_visible">
{html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.visible_selected}
</select>
</td>
</tr>
<tr>
<td>{'g002_setting_personalised_nfo'|@translate}</td>
<td>
<input type="text" name="famm_personalised_nfo" id="iamm_personalised_nfo" value="{$datas.nfo}" maxlength="25"/>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>{'g002_setting_block_menu'|@translate}</legend>
{if isset($datas.language_list) and count($datas.language_list)}
{foreach from=$datas.language_list key=name item=language_row}
<input type="hidden" name="famm_personalised_title_{$language_row.LANG}"
id="iamm_personalised_title_{$language_row.LANG}" value="{$language_row.MENUBARTIT}">
<input type="hidden" name="famm_personalised_content_{$language_row.LANG}"
id="iamm_personalised_content_{$language_row.LANG}" value="{$language_row.MENUBARCONTENT}">
{/foreach}
{/if}
<table class="formtable">
<tr>
<td>{'g002_setting_block_langchoice'|@translate}</td>
<td>
<select onchange="change_lang();" id="islang">
{html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
</select><br>
</td>
</tr>
<tr>
<td colspan=2><hr/></td>
</tr>
<tr>
<td>{'g002_setting_block_title'|@translate}</td>
<td>
<input type="text" id="iamm_personalised_title" value="" maxlength="50" onkeyup="apply_changes('iamm_personalised_title');" onblur="apply_changes('iamm_personalised_title');"/>
</td>
</tr>
<tr>
<td></td>
<td style="font-size:80%;">
<a style="cursor:pointer;" onclick="do_translation()">{'g002_translate'|@translate}</a>
</td>
</tr>
<tr>
<td>{'g002_setting_personalised_content'|@translate}</td>
<td>
<textarea id="iamm_personalised_content" cols=80 rows=25 onkeyup="apply_changes('iamm_personalised_content');" /></textarea>
</td>
</tr>
</table>
</fieldset>
<p>
<input type="submit" name="famm_submit_apply" id="iamm_submit_apply" value="{'g002_apply'|@translate}" >
</p>
<input type="hidden" name="famm_modeedit" value="{$datas.modeedit}">
<input type="hidden" name="famm_id" value="{$datas.id}">
</form>
<script type="text/javascript">
init();
change_lang();
</script>
{/if}
@@ -0,0 +1,132 @@
{literal}
<script type="text/javascript">
//global var ; need to not have to initialize them every time a value is changed
var objlang;
var objnames = new Array('iamm_randompicture_title');
var objinput = new Array(); //input text from form => objinput[name]
var objhidden = new Array(); //input hidden from form => objhidden[name][lang]
function init()
{
objlang = document.getElementById('islang');
for(i=0;i<objnames.length;i++)
{
objinput[i] = document.getElementById(objnames[i]);
objhidden[i] = new Array();
for(j=0;j<objlang.options.length;j++)
{
objhidden[i][j] = document.getElementById(objnames[i]+'_'+objlang.options[j].value);
}
}
}
function change_lang()
{
for(i=0;i<objnames.length;i++)
{
objinput[i].value = objhidden[i][objlang.options.selectedIndex].value;
}
}
function apply_changes(input_id)
{
var obj=document.getElementById(input_id);
objhidden[objnames.indexOf(input_id)][objlang.options.selectedIndex].value = obj.value;
}
function do_translation()
{
var inputid = document.getElementById('iamm_randompicture_title');
var tolang = objlang.options[objlang.options.selectedIndex].value.substr(0,2);
google_translate(inputid.value, '{/literal}{$datas.fromlang}{literal}', tolang, inputid, 'value', apply_changes, inputid.id);
}
</script>
{/literal}
<h3>{'g002_configrandompic'|@translate}</h3>
<form method="post" action="" class="general">
<fieldset>
<legend>{'g002_setting_block_menu'|@translate}</legend>
{if isset($datas.language_list) and count($datas.language_list)}
{foreach from=$datas.language_list key=name item=language_row}
<input type="hidden" name="famm_randompicture_title_{$language_row.LANG}"
id="iamm_randompicture_title_{$language_row.LANG}" value="{$language_row.MENUBARTIT}">
{/foreach}
{/if}
<table class="formtable">
<tr>
<td>{'g002_setting_block_active'|@translate}</td>
<td>
<select name="famm_randompicture_active" id="iamm_randompicture_active">
{html_options values=$datas.yesno_values output=$datas.yesno_labels selected=$datas.active_selected}
</select>
</td>
</tr>
<tr>
<td>{'g002_setting_block_title'|@translate}</td>
<td>
<input type="text" id="iamm_randompicture_title" value="" maxlength="50" onkeyup="apply_changes('iamm_randompicture_title');" onblur="apply_changes('iamm_randompicture_title');"/>
<select onchange="change_lang();" id="islang">
{html_options values=$datas.language_list_values output=$datas.language_list_labels selected=$datas.lang_selected}
</select><br>
</td>
</tr>
<tr>
<td></td>
<td style="font-size:80%;">
<a style="cursor:pointer;" onclick="do_translation()">{'g002_translate'|@translate}</a>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>{'g002_setting_randompic_aboutpicture'|@translate}</legend>
<table class="formclass">
<tr>
<td>{'g002_setting_randompic_showname'|@translate}</td>
<td>
<select name="famm_randompicture_showname" id="iamm_randompicture_showname">
{html_options values=$datas.show_values output=$datas.show_labels selected=$datas.showname_selected}
</select>
</td>
</tr>
<tr>
<td>{'g002_setting_randompic_showcomment'|@translate}</td>
<td>
<select name="famm_randompicture_showcomment" id="iamm_randompicture_showcomment">
{html_options values=$datas.show_values output=$datas.show_labels selected=$datas.showcomment_selected}
</select>
</td>
</tr>
</table>
</fieldset>
<p>
<input type="submit" name="famm_submit_apply" id="iamm_submit_apply" value="{'g002_apply'|@translate}" >
</p>
<input type="hidden" name="famm_modeedit" value="config">
</form>
<script type="text/javascript">
init();
change_lang();
</script>
@@ -0,0 +1,58 @@
{literal}
<script type="text/javascript">
function load_list(do_action, item, position)
{
/*
do_action
'list' : just load list
'permut' : permut items in list
'delete' : delete the item in list
*/
var doc = document.getElementById("isections");
action_todo='';
if(do_action=='position')
{
action_todo='sections_position&fItem='+item+'&fPosition='+position;
}
else if(do_action=='showhide')
{
action_todo='sections_showhide&fItem='+item;
}
else
{
action_todo='sections_list';
}
if(action_todo!='')
{
http_request=create_httpobject('get', '', '{/literal}{$datas.AMM_AJAX_URL_LIST}{literal}'+action_todo, false);
http_request.send(null);
doc.innerHTML=http_request.responseText;
}
}
</script>
{/literal}
<h3>
{foreach from=$datas.LIST item=data}
{$data.separator}
{if $data.link!=''}
<span style="font-weight:normal"><a href="{$data.link}" title="{$data.label|@translate}">
{/if}
{$data.label|@translate}
{if $data.link!=''}
</a></span>
{/if}
{/foreach}
</h3>
<div id="isections"></div>
<script type="text/javascript">
load_list('list', 0, 0);
</script>
@@ -0,0 +1,17 @@
{if isset($datas.LIST) and count($datas.LIST)}
<table class="table2 littlefont">
<tr class="throw">
<th>{'g002_labelmenu'|@translate}</th>
<th>{'g002_visible'|@translate}</th>
</tr>
{foreach from=$datas.LIST key=name item=data}
<tr>
<td>{$data.LABEL|@translate}</td>
<td style="text-align:center;"><a style="cursor:pointer;" onclick="load_list('showhide', '{$data.ID}', '')">{$data.VISIBLE|@translate}</a></td>
</tr>
{/foreach}
</table>
{/if}
-25
View File
@@ -1,25 +0,0 @@
-- *************************************************************** -- EOQ
-- * SQL export made with Grum Plugins Classes (Export tool r1.3) -- EOQ
-- * Export date :2008-08-02 02:51:37 -- EOQ
-- * Export options : [drop] [create] [insert] -- EOQ
-- *************************************************************** -- EOQ
-- *************************************************************** -- EOQ
-- * Statements for piwigo_amm_urls table -- EOQ
-- *************************************************************** -- EOQ
DROP TABLE `piwigo_amm_urls`; -- EOQ
CREATE TABLE `piwigo_amm_urls` (
`id` int(11) NOT NULL auto_increment,
`label` varchar(50) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`mode` int(11) NOT NULL default '0',
`icon` varchar(50) NOT NULL default '',
`position` int(11) NOT NULL default '0',
`visible` char(1) NOT NULL default 'y',
PRIMARY KEY (`id`),
KEY `order_key` (`position`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- EOQ
INSERT INTO `piwigo_amm_urls` VALUES('1', 'Test', 'http://192.168.1.1', '0', 'internet.png', '0', 'y'); -- EOQ
+495 -27
View File
@@ -20,9 +20,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/css.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/ajax.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/genericjs.class.inc.php');
include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/translate.class.inc.php');
class AMM_AIP extends AMM_root
{
protected $google_translate;
protected $tabsheet;
protected $css; //the css object
protected $ajax;
@@ -51,6 +53,7 @@ class AMM_AIP extends AMM_root
$this->page_link.'&amp;fAMM_tabsheet=personnalblock');
$this->css = new css(dirname($this->filelocation).'/'.$this->plugin_name_files.".css");
$this->ajax = new Ajax();
$this->google_translate = new translate();
}
@@ -115,7 +118,8 @@ class AMM_AIP extends AMM_root
}
else
{
$this->display_links_manage_page($_REQUEST['action']);
($_REQUEST['action']=='modify')?$urlid=$_REQUEST['fItem']:$urlid=0;
$this->display_links_manage_page($_REQUEST['action'], $urlid);
}
break;
case 'config':
@@ -123,7 +127,7 @@ class AMM_AIP extends AMM_root
{
if(!$this->adviser_abort())
{
$this->action_modify_config();
$this->action_links_modify_config();
}
}
$this->display_links_config_page();
@@ -133,15 +137,46 @@ class AMM_AIP extends AMM_root
elseif($_REQUEST['fAMM_tabsheet']=='randompict')
{
$page_nfo=l10n('g002_randompict_nfo');
if($post_action=='config')
{
if(!$this->adviser_abort())
{
$this->action_randompic_modify_config();
}
}
$this->display_randompic_config_page();
}
elseif($_REQUEST['fAMM_tabsheet']=='personnalblock')
{
$page_nfo=l10n('g002_personnalblock_nfo');
switch($_REQUEST['action'])
{
case 'list':
$this->display_personalised_list_page();
break;
case 'create':
case 'modify':
if($post_action==$_REQUEST['action'])
{
if(!$this->adviser_abort())
{
$this->action_create_modify_personalised();
}
$this->display_personalised_list_page();
}
else
{
($_REQUEST['action']=='modify')?$sectionid=$_REQUEST['fItem']:$sectionid=0;
$this->display_personalised_manage_page($_REQUEST['action'], $sectionid);
}
break;
}
}
elseif($_REQUEST['fAMM_tabsheet']=='setmenu')
{
$page_nfo=l10n('g002_setmenu_nfo');
$this->display_sections_list_page();
$this->display_sections_list_page($_REQUEST['action']);
}
$template->assign('page_nfo', $page_nfo);
@@ -184,14 +219,35 @@ class AMM_AIP extends AMM_root
case 'links_delete':
$result=$this->ajax_amm_links_delete($_REQUEST['fItem']);
break;
case 'sections_list':
$result=$this->ajax_amm_section_list();
case 'setmenu_list_sections_list':
$result=$this->ajax_amm_setmenu_list_section_list();
break;
case 'sections_position':
$result=$this->ajax_amm_section_position($_REQUEST['fItem'], $_REQUEST['fPosition']);
case 'setmenu_list_sections_position':
$result=$this->ajax_amm_setmenu_list_section_position($_REQUEST['fItem'], $_REQUEST['fPosition']);
break;
case 'sections_showhide':
$result=$this->ajax_amm_section_showhide($_REQUEST['fItem']);
case 'setmenu_list_sections_showhide':
$result=$this->ajax_amm_setmenu_list_section_showhide($_REQUEST['fItem']);
break;
case 'setmenu_modmenu_sections_list':
$result=$this->ajax_amm_setmenu_mod_section_list('amm_sections_modmenu');
break;
case 'setmenu_modmenu_sections_showhide':
$result=$this->ajax_amm_setmenu_mod_section_showhide('amm_sections_modmenu', $_REQUEST['fItem']);
break;
case 'setmenu_modspecial_sections_list':
$result=$this->ajax_amm_setmenu_mod_section_list('amm_sections_modspecial');
break;
case 'setmenu_modspecial_sections_showhide':
$result=$this->ajax_amm_setmenu_mod_section_showhide('amm_sections_modspecial', $_REQUEST['fItem']);
break;
case 'personalised_list':
$result=$this->ajax_amm_personalised_list();
break;
case 'personalised_delete':
$result=$this->ajax_amm_personalised_delete($_REQUEST['fItem']);
break;
}
//$template->
@@ -210,7 +266,9 @@ class AMM_AIP extends AMM_root
$_REQUEST['fAMM_tabsheet']='setmenu';
}
if(($_REQUEST['fAMM_tabsheet']=='links') and !isset($_REQUEST['action']))
if((($_REQUEST['fAMM_tabsheet']=='links') or
($_REQUEST['fAMM_tabsheet']=='personnalblock') or
($_REQUEST['fAMM_tabsheet']=='setmenu')) and !isset($_REQUEST['action']))
{
$_REQUEST['action']='list';
}
@@ -268,7 +326,8 @@ class AMM_AIP extends AMM_root
'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
'show_icons_selected' => $this->my_config['amm_links_show_icons'],
'active_selected' => $this->my_config['amm_links_active'],
'lang_selected' => $user['language']
'lang_selected' => $user['language'],
'fromlang' => substr($user['language'],0,2)
);
$template_datas['language_list'] = array();
@@ -327,7 +386,7 @@ class AMM_AIP extends AMM_root
$template_datas=array(
'id' => $urlid,
'modeedit' => 'modify',
'label' => $url['label'],
'label' => htmlentities($url['label'], ENT_QUOTES, 'UTF-8'),
'url' => $url['url'],
'icons_selected' => $url['icon'],
'mode_selected' => $url['mode'],
@@ -397,29 +456,73 @@ class AMM_AIP extends AMM_root
/*
manage urls config save into database
*/
protected function action_modify_config()
protected function action_links_modify_config()
{
$this->my_config['amm_links_show_icons']=$_POST['famm_links_show_icons'];
$this->my_config['amm_links_active']=$_POST['famm_links_active'];
$languages=get_languages();
foreach($languages as $key => $val)
{
$this->my_config['amm_links_title'][$key]=base64_encode(stripslashes($_POST['famm_links_title_'.$key]));
$this->my_config['amm_links_title'][$key]=base64_encode($_POST['famm_links_title_'.$key]);
}
$this->save_config();
}
/*
manage randompic config save into database
*/
protected function action_randompic_modify_config()
{
$this->my_config['amm_randompicture_active']=$_POST['famm_randompicture_active'];
$this->my_config['amm_randompicture_showname']=$_POST['famm_randompicture_showname'];
$this->my_config['amm_randompicture_showcomment']=$_POST['famm_randompicture_showcomment'];
$languages=get_languages();
foreach($languages as $key => $val)
{
$this->my_config['amm_randompicture_title'][$key]=base64_encode(stripslashes($_POST['famm_randompicture_title_'.$key]));
}
$this->save_config();
}
/*
manage display for sections table page
*/
private function display_sections_list_page()
private function display_sections_list_page($action)
{
global $template, $user;
$template->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_sectionslist.tpl');
dirname($this->filelocation).'/admin/amm_sections.tpl');
switch($action)
{
case 'list':
$tmp_list=array(
array('separator' => '', 'link' => '', 'label' => 'g002_sectionslist'),
array('separator' => ' / ', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=modmenu', 'label' => 'g002_modmenu'),
array('separator' => ' / ', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=modspecial', 'label' => 'g002_modspecial')
);
break;
case 'modmenu':
$tmp_list=array(
array('separator' => '', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=list', 'label' => 'g002_sectionslist'),
array('separator' => ' / ', 'link' => '', 'label' => 'g002_modmenu'),
array('separator' => ' / ', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=modspecial', 'label' => 'g002_modspecial')
);
break;
case 'modspecial':
$tmp_list=array(
array('separator' => '', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=list', 'label' => 'g002_sectionslist'),
array('separator' => ' / ', 'link' => $this->page_link.'&amp;fAMM_tabsheet=setmenu&amp;action=modmenu', 'label' => 'g002_modmenu'),
array('separator' => ' / ', 'link' => '', 'label' => 'g002_modspecial')
);
break;
}
$template_datas=array(
'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=setmenu_".$action."_",
'LIST' => $tmp_list
);
$template->assign("datas", $template_datas);
@@ -427,6 +530,220 @@ class AMM_AIP extends AMM_root
}
/*
manage display for randompic config page
*/
private function display_randompic_config_page()
{
global $template, $user;
$template->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_randompicconfig.tpl');
$template_datas=array(
'lnk_list' => $this->page_link.'&amp;fAMM_tabsheet=links',
'active_selected' => $this->my_config['amm_randompicture_active'],
'showname_selected' => $this->my_config['amm_randompicture_showname'],
'showcomment_selected' => $this->my_config['amm_randompicture_showcomment'],
'lang_selected' => $user['language'],
'fromlang' => substr($user['language'],0,2)
);
$template_datas['language_list'] = array();
foreach($this->my_config['amm_randompicture_title'] as $key => $val)
{
$template_datas['language_list'][] = array(
'LANG' => $key,
'MENUBARTIT' => htmlentities(base64_decode($val), ENT_QUOTES, 'UTF-8')
);
}
$lang=get_languages();
foreach($lang as $key => $val)
{
$template_datas['language_list_values'][] = $key;
$template_datas['language_list_labels'][] = $val;
}
$template_datas['yesno_values'] = array('y','n');
$template_datas['yesno_labels'][] = l10n('g002_yesno_y');
$template_datas['yesno_labels'][] = l10n('g002_yesno_n');
$template_datas['show_values'] = array('n', 'o', 'u');
$template_datas['show_labels'][] = l10n('g002_show_n');
$template_datas['show_labels'][] = l10n('g002_show_o');
$template_datas['show_labels'][] = l10n('g002_show_u');
$template->assign("datas", $template_datas);
$template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
}
/*
manage display for personalised sections list page
*/
private function display_personalised_list_page()
{
global $template, $user;
$template->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_personalisedlist.tpl');
$sql="SELECT COUNT(DISTINCT ID) as countid FROM ".$this->tables['personalised'];
$result=pwg_query($sql);
if($result)
{
$tmp=mysql_fetch_row($result);
$tmp=$tmp[0];
}
else
{
$tmp=0;
}
if($tmp==0)
{
$tmp=l10n("g002_nosections");
}
elseif($tmp==1)
{
$tmp="1 ".l10n("g002_section");
}
else
{
$tmp=$tmp." ".l10n("g002_sections");
}
$template_datas=array(
'lnk_create' => $this->page_link.'&amp;fAMM_tabsheet=personnalblock&amp;action=create',
'AMM_AJAX_URL_LIST' => $this->page_link."&ajaxfct=",
'nbsections' => $tmp
);
$template->assign("datas", $template_datas);
$template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
}
/*
manage display for personalised sections create/modify page
*/
private function display_personalised_manage_page($modeedit = 'create', $sectionid=0)
{
global $template, $user;
$template->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_personalisedlist_edit.tpl');
$template_datas=array();
$lang=get_languages();
$lang['all']=l10n('g002_all_languages');
foreach($lang as $key => $val)
{
$template_datas['language_list_values'][] = $key;
$template_datas['language_list_labels'][] = $val;
$template_datas['language_list'][$key]=array(
'LANG' => $key,
'MENUBARTIT' => '',
'MENUBARCONTENT' => ''
);
}
if($modeedit=='modify')
{
$sections=$this->get_personalised($sectionid);
$template_datas['id'] = $sectionid;
$template_datas['modeedit'] = 'modify';
$template_datas['visible_selected'] = $sections[0]['visible'];
$template_datas['nfo'] = htmlentities($sections[0]['nfo'], ENT_QUOTES, 'UTF-8');
foreach($sections as $key => $val)
{
$lang=($val['lang']=='*')?'all':$val['lang'];
$template_datas['language_list'][$lang] = array(
'LANG' => $lang,
'MENUBARTIT' => htmlentities($val['title'], ENT_QUOTES, 'UTF-8'),
'MENUBARCONTENT' => htmlentities($val['content'], ENT_QUOTES, 'UTF-8'),
);
}
}
else
{
$template_datas['nfo'] = '';
$template_datas['id'] = '';
$template_datas['modeedit'] = 'create';
$template_datas['visible_selected'] = 'y';
}
$template_datas['lang_selected'] = $user['language'];
$template_datas['personalised_list'] = $this->page_link.'&amp;fAMM_tabsheet=personnalblock';
$template_datas['yesno_values'] = array('y','n');
$template_datas['yesno_labels'][] = l10n('g002_yesno_y');
$template_datas['yesno_labels'][] = l10n('g002_yesno_n');
$template->assign("datas", $template_datas);
$template->assign_var_from_handle('AMM_BODY_PAGE', 'body_page');
}
/*
manage create/modify pesonalised sections into database and display result
*/
protected function action_create_modify_personalised()
{
global $menu, $user;
if($_POST['famm_modeedit']=='create')
{
$id=$this->get_personalised_id();
}
else
{
$id=$_POST['famm_id'];
}
$languages=get_languages();
$languages['all']='*';
foreach($languages as $key => $val)
{
$datas=array(
'id' => $id,
'lang' => ($key=='all')?'*':$key,
'visible' => $_POST['famm_personalised_visible'],
'nfo' => ($_POST['famm_personalised_nfo']=='')?$_POST['famm_personalised_title_'.$user['language']]:$_POST['famm_personalised_nfo'],
'title' => $_POST['famm_personalised_title_'.$key],
'content' => $_POST['famm_personalised_content_'.$key]
);
switch($_POST['famm_modeedit'])
{
case 'create':
$this->add_personalised($datas);
break;
case 'modify':
$this->modify_personalised($datas);
}
}
if($_POST['famm_modeedit']=='create')
{
$menu->register('mbAMM_personalised'.$id, ($_POST['famm_personalised_nfo']=='')?$_POST['famm_personalised_title_'.$user['language']]:$_POST['famm_personalised_nfo'], 0, 'AMM');
}
}
@@ -460,6 +777,7 @@ class AMM_AIP extends AMM_root
if($result)
{
$returned=mysql_fetch_array($result);
//$returned['label']=stripslashes($returned['label']);
}
return($returned);
}
@@ -495,7 +813,7 @@ class AMM_AIP extends AMM_root
{
$numurl=$this->get_count_url();
$sql="INSERT INTO ".$this->tables['urls']." (id, label, url, mode, icon, position, visible)
VALUES ('', '".addslashes($datas['label'])."', '".$datas['url']."', '".$datas['mode']."',
VALUES ('', '".$datas['label']."', '".$datas['url']."', '".$datas['mode']."',
'".$datas['icon']."', '".$numurl."', '".$datas['visible']."')";
return(pwg_query($sql));
}
@@ -503,7 +821,7 @@ class AMM_AIP extends AMM_root
// modify an url
private function modify_url($datas)
{
$sql="UPDATE ".$this->tables['urls']." SET label = '".addslashes($datas['label'])."',
$sql="UPDATE ".$this->tables['urls']." SET label = '".$datas['label']."',
url = '".$datas['url']."', mode = '".$datas['mode']."', icon = '".$datas['icon']."',
visible = '".$datas['visible']."'
WHERE id = '".$datas['id']."'";
@@ -518,6 +836,67 @@ class AMM_AIP extends AMM_root
return(pwg_query($sql));
}
/* ---------------------------------------------------------------------------
functions to manage sections tables
--------------------------------------------------------------------------- */
// protected function get_sections($only_visible=false, $lang="")
// => defined in root class
// return properties of a given section (return each languages)
private function get_personalised($section_id)
{
$returned=array();
$sql="SELECT * FROM ".$this->tables['personalised']." WHERE id = '".$section_id."'";
$result=pwg_query($sql);
if($result)
{
while($returned[]=mysql_fetch_array($result));
}
return($returned);
}
// delete a section
private function delete_personalised($section_id)
{
$sql="DELETE FROM ".$this->tables['personalised']." WHERE id = '".$section_id."' ";
return(pwg_query($sql));
}
// add a section
private function add_personalised($datas)
{
$sql="INSERT INTO ".$this->tables['personalised']." (id, lang, title, content, visible, nfo)
VALUES ('".$datas['id']."', '".$datas['lang']."', '".$datas['title']."', '".$datas['content']."', '".$datas['visible']."', '".$datas['nfo']."')";
return(pwg_query($sql));
}
// modify a section
private function modify_personalised($datas)
{
$sql="UPDATE ".$this->tables['personalised']." SET title = '".$datas['title']."',
content = '".$datas['content']."', visible = '".$datas['visible']."',
nfo = '".$datas['nfo']."'
WHERE id = '".$datas['id']."'
AND lang = '".$datas['lang']."'";
return(pwg_query($sql));
}
// return the next personalised id
private function get_personalised_id()
{
$sql='SELECT MAX(ID) FROM '.$this->tables['personalised'];
$result=pwg_query($sql);
if($result)
{
$row=mysql_fetch_row($result);
if(is_array($row))
{
return($row[0]+1);
}
}
return(0);
}
/* ---------------------------------------------------------------------------
ajax functions
@@ -582,7 +961,7 @@ class AMM_AIP extends AMM_root
// return a html formatted list of menu's sections
private function ajax_amm_section_list()
private function ajax_amm_setmenu_list_section_list()
{
global $menu;
$local_tpl = new Template(AMM_PATH."admin/", "");
@@ -614,27 +993,116 @@ class AMM_AIP extends AMM_root
}
// move item to the specified position
private function ajax_amm_section_position($urlid, $position)
private function ajax_amm_setmenu_list_section_position($urlid, $position)
{
global $menu;
$menu->register_position($urlid, $position);
return($this->ajax_amm_section_list());
return($this->ajax_amm_setmenu_list_section_list());
}
// move item to the specified position
private function ajax_amm_section_showhide($urlid)
// show/hide item to the specified position
private function ajax_amm_setmenu_list_section_showhide($urlid)
{
global $menu;
$switchvisible=array('y'=>'n', 'n'=>'y');
$this->my_config['amm_sections_visible'][$urlid]=$switchvisible[$this->my_config['amm_sections_visible'][$urlid]];
$this->save_config();
return($this->ajax_amm_section_list());
return($this->ajax_amm_setmenu_list_section_list());
}
// return a html formatted list of personalised sections
private function ajax_amm_personalised_list()
{
global $template, $user;
$local_tpl = new Template(AMM_PATH."admin/", "");
$local_tpl->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_personalisedlist_detail.tpl');
$template_datas['sections']=array();
$sections=$this->get_sections(false, '', false);
$is_done=array();
foreach($sections as $key => $val)
{
if(!isset($is_done[$val['id']]))
{
$template_datas['sections'][]=array(
'title' => ($val['title']!='')?$val['title']:l10n('g002_notitle'),
'edit' => $this->page_link.'&amp;fAMM_tabsheet=personnalblock&amp;action=modify&amp;fItem='.$val['id'],
'ID' => $val['id'],
'visible' => l10n('g002_yesno_'.$val['visible']),
'nfo' => $val['nfo']
);
$is_done[$val['id']]='';
}
}
$themeconf=array(
'icon_dir' => $template->get_themeconf('icon_dir')
);
$local_tpl->assign('themeconf', $themeconf);
$local_tpl->assign('datas', $template_datas);
$local_tpl->assign('plugin', array('PATH' => AMM_PATH));
return($local_tpl->parse('body_page', true));
}
// delete a section and returns a html formatted list
private function ajax_amm_personalised_delete($sectionid)
{
global $menu;
if(!$this->adviser_abort())
{
$this->delete_personalised($sectionid);
$menu->unregister('mbAMM_personalised'.$sectionid);
}
return($this->ajax_amm_personalised_list());
}
// return a html formatted list of special menu sections items
private function ajax_amm_setmenu_mod_section_list($menuname)
{
$local_tpl = new Template(AMM_PATH."admin/", "");
$local_tpl->set_filename('body_page',
dirname($this->filelocation).'/admin/amm_sectionsmod_detail.tpl');
$template_datas = array('LIST' => array());
foreach($this->my_config[$menuname] as $key => $val)
{
$template_datas['LIST'][] = array(
'ID' => base64_encode($key),
'LABEL' => $key,
'VISIBLE' => 'g002_yesno_'.$val
);
}
$local_tpl->assign('datas', $template_datas);
$local_tpl->assign('plugin', array('PATH' => AMM_PATH));
return($local_tpl->parse('body_page', true));
}
// move item to the specified position
private function ajax_amm_setmenu_mod_section_showhide($menuname, $urlid)
{
$switchvisible=array('y'=>'n', 'n'=>'y');
$this->my_config[$menuname][base64_decode($urlid)]=$switchvisible[$this->my_config[$menuname][base64_decode($urlid)]];
$this->save_config();
return($this->ajax_amm_setmenu_mod_section_list($menuname));
}
} // AMM_AIP class
+11 -1
View File
@@ -47,8 +47,18 @@
`visible` char(1) NOT NULL default 'y',
PRIMARY KEY (`id`),
KEY `order_key` (`position`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1",
"CREATE TABLE `".$this->tables['personalised']."` (
`id` int(11) NOT NULL default '0',
`lang` varchar(5) NOT NULL default '',
`title` varchar(50) NOT NULL default '',
`content` text NOT NULL,
`visible` char(1) NOT NULL default 'y',
`nfo` varchar(25) NOT NULL default '',
PRIMARY KEY (`id`,`lang`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1"
);
);
//$table_def array
$result=$this->tablef->create_tables($tables_def);
+78 -2
View File
@@ -49,7 +49,6 @@ class AMM_PIP extends AMM_root
global $menu, $user;
/*
Add a new section (links)
*/
@@ -67,11 +66,72 @@ class AMM_PIP extends AMM_root
$section = new Section('mbAMM_links', base64_decode($this->my_config['amm_links_title'][$user['language']]), dirname(__FILE__).'/menu_templates/menubar_links.tpl');
$section->set_items(array(
'LINKS' => $urls,
'icons' => 'y'
'icons' => $this->my_config['amm_links_show_icons']
));
$menu->add($section->get());
}
/*
Add a new random picture section
*/
if($this->my_config['amm_randompicture_active']=='y')
{
$sql="SELECT i.id as image_id, i.file as image_file, i.comment, i.path, i.tn_ext, c.id as catid, c.name, c.permalink, RAND() as rndvalue, i.name as imgname
FROM ".CATEGORIES_TABLE." c, ".IMAGES_TABLE." i, ".IMAGE_CATEGORY_TABLE." ic
WHERE c.status='public'
AND c.id = ic.category_id
AND ic.image_id = i.id
ORDER BY rndvalue
LIMIT 0,1
";
$result=pwg_query($sql);
if($result)
{
$nfo = mysql_fetch_array($result);
$nfo['section']='category';
$nfo['category']=array(
'id' => $nfo['catid'],
'name' => $nfo['name'],
'permalink' => $nfo['permalink']
);
$section = new Section('mbAMM_randompict', base64_decode($this->my_config['amm_randompicture_title'][$user['language']]), dirname(__FILE__).'/menu_templates/menubar_randompic.tpl');
$section->set_items(array(
'LINK' => make_picture_url($nfo),
'IMG' => get_thumbnail_url($nfo),
'IMGNAME' => $nfo['imgname'],
'IMGCOMMENT' => $nfo['comment'],
'SHOWNAME' => $this->my_config['amm_randompicture_showname'],
'SHOWCOMMENT' => $this->my_config['amm_randompicture_showcomment']
));
$menu->add($section->get());
}
}
/*
Add personnal blocks random picture section
*/
$sections=$this->get_sections(true);
if(count($sections))
{
$id_done=array();
foreach($sections as $key => $val)
{
if(!isset($id_done[$val['id']]))
{
$section = new Section('mbAMM_personalised'.$val['id'], $val['title'], dirname(__FILE__).'/menu_templates/menubar_personalised.tpl');
$section->set_items(array(
'CONTENT' => stripslashes($val['content'])));
$menu->add($section->get());
$id_done[$val['id']]="";
}
}
}
/*
Hide sections
*/
@@ -83,6 +143,22 @@ class AMM_PIP extends AMM_root
}
}
/*
hide items from special & menu sections
*/
foreach(array('mbMenu' => 'amm_sections_modmenu', 'mbSpecial' =>'amm_sections_modspecial') as $key0 => $val0)
{
$section_menu=$menu->section($key0);
foreach($this->my_config[$val0] as $key => $val)
{
if($val=='n')
{
unset($section_menu['ITEMS'][$key]);
}
}
$menu->replace($section_menu);
}
}
+78 -4
View File
@@ -26,7 +26,7 @@ class AMM_root extends common_plugin
$this->plugin_name_files="amm";
parent::__construct($prefixeTable, $filelocation);
$list=array('urls');
$list=array('urls', 'personalised');
$this->set_tables_list($list);
}
@@ -43,7 +43,28 @@ class AMM_root extends common_plugin
'amm_links_show_icons' => 'y',
'amm_links_active' => 'y',
'amm_links_title' => array(),
'amm_sections_visible' => array()
'amm_sections_visible' => array(),
'amm_randompicture_active' => 'n',
'amm_randompicture_showname' => 'n', //n:no, o:over, u:under
'amm_randompicture_showcomment' => 'n', //n:no, o:over, u:under
'amm_randompicture_title' => array(),
'amm_sections_modspecial' => array(
'favorite_cat' => 'y',
'most_visited_cat' => 'y',
'best_rated_cat' => 'y',
'random_cat' => 'y',
'recent_pics_cat' => 'y',
'recent_cats_cat' => 'y',
'calendar' => 'y'
),
'amm_sections_modmenu' => array(
'qsearch' => 'y',
'Tags' => 'y',
'Search' => 'y',
'comments' => 'y',
'About' => 'y',
'Notification' => 'y'
)
);
$languages=get_languages();
@@ -51,11 +72,13 @@ class AMM_root extends common_plugin
{
if($key=='fr_FR')
{
$this->my_config['amm_links_title'][$key]='Liens';
$this->my_config['amm_links_title'][$key]=base64_encode('Liens');
$this->my_config['amm_randompicture_title'][$key]=base64_encode('Une image au hasard');
}
else
{
$this->my_config['amm_links_title'][$key]='Links';
$this->my_config['amm_links_title'][$key]=base64_encode('Links');
$this->my_config['amm_randompicture_title'][$key]=base64_encode('A random picture');
}
}
@@ -66,6 +89,22 @@ class AMM_root extends common_plugin
}
}
public function load_config()
{
global $menu;
parent::load_config();
$sections=$menu->registered();
foreach($sections as $key => $val)
{
if(!isset($this->my_config['amm_sections_visible'][$key]))
{
$this->my_config['amm_sections_visible'][$key]='y';
}
}
}
// return an array of urls (each url is an array)
protected function get_urls($only_visible=false)
@@ -82,6 +121,7 @@ class AMM_root extends common_plugin
{
while($row=mysql_fetch_array($result))
{
$row['label']=stripslashes($row['label']);
$returned[]=$row;
}
}
@@ -106,6 +146,40 @@ class AMM_root extends common_plugin
return($returned);
}
// return an array of sections (each section is an array)
protected function get_sections($only_visible=false, $lang="", $only_with_content=true)
{
global $user;
if($lang=="")
{
$lang=$user['language'];
}
$returned=array();
$sql="SELECT * FROM ".$this->tables['personalised']."
WHERE (lang = '*' OR lang = '".$lang."') ";
if($only_visible)
{
$sql.=" AND visible = 'y' ";
}
if($only_with_content)
{
$sql.=" AND content != '' ";
}
$sql.=" ORDER BY id, lang DESC ";
$result=pwg_query($sql);
if($result)
{
while($row=mysql_fetch_array($result))
{
$returned[]=$row;
}
}
return($returned);
}
} // amm_root class
@@ -38,11 +38,12 @@ $lang['g002_createthelink'] = 'Add link';
$lang['g002_editthelink'] = 'Edit link';
$lang['g002_configlinks'] = 'Links settings';
$lang['g002_setting_link_block_menu'] = 'Menu integration';
$lang['g002_setting_link_links']='Links';
$lang['g002_setting_link_show_icon'] = 'Display links representative picture';
$lang['g002_setting_link_block_active'] = 'Display block in menu';
$lang['g002_setting_link_block_title'] = 'Block title';
$lang['g002_setting_block_menu'] = 'Menu integration';
$lang['g002_setting_block_active'] = 'Display block in menu';
$lang['g002_setting_block_title'] = 'Block title';
$lang['g002_apply'] = 'Apply';
$lang['g002_sectionslist'] = 'Menu\'s blocks';
@@ -54,5 +55,35 @@ $lang['g002_owner'] = 'Owner';
$lang['g002_sectionid'] = 'Identifier';
$lang['g002_name'] = 'Label';
$lang['g002_translate'] = 'Translate with Google Translate';
$lang['g002_configrandompic'] = 'Random picture settings';
$lang['g002_setting_randompic_aboutpicture'] = 'Displayed datas';
$lang['g002_setting_randompic_showname'] = 'Show picture\'s name';
$lang['g002_setting_randompic_showcomment'] = 'Show picure\'s comment';
$lang['g002_show_n'] = 'No';
$lang['g002_show_o'] = 'Display over the picture';
$lang['g002_show_u'] = 'Display under thpicture';
$lang['g002_personalisedlist'] = "Liste of personalised blocks";
$lang['g002_notitle'] = '[No title]';
$lang['g002_title'] = 'Title';
$lang['g002_sections'] = 'blocks';
$lang['g002_section'] = 'block';
$lang['g002_nosections'] = 'No blocks';
$lang['g002_addsection'] = 'Add a new block';
$lang['g002_createofpersonalised'] = 'Create a new personalized block';
$lang['g002_editofpersonalised'] = 'Modify a personalized block';
$lang['g002_setting_block_langchoice'] = 'Lang choice';
$lang['g002_setting_personalised_content'] = 'Block\'s content';
$lang['g002_setting_personalised_properties'] = 'Properties';
$lang['g002_setting_personalised_nfo'] = 'Description';
$lang['g002_all_languages'] = "All languages";
$lang['g002_modmenu'] = '\'menu\' block';
$lang['g002_modspecial'] = '\'special\' block';
$lang['g002_labelmenu'] = 'Menu\'s label';
?>
@@ -15,7 +15,7 @@ $lang['g002_personnalblock'] = 'Menu personnalisé';
$lang['g002_setmenu_nfo'] = 'Gestion de l\'affichage des sections affichées dans le menu';
$lang['g002_addlinks_nfo'] = 'Section permettant d\'afficher dans le menu une liste d\'hyperliens vers d\'autres sites internet';
$lang['g002_randompict_nfo'] = 'Section permettant d\'afficher dans le menu une image prise au hasard dans la gallerie';
$lang['g002_personnalblock_nfo'] = 'Afficher dans le menu des sections au contenu personnalisés';
$lang['g002_personnalblock_nfo'] = 'Afficher dans le menu des sections au contenu personnalisé';
$lang['g002_mode_new_window'] = 'Nouvelle fenêtre';
@@ -38,11 +38,12 @@ $lang['g002_createthelink'] = 'Ajouter le lien';
$lang['g002_editthelink'] = 'Modifier le lien';
$lang['g002_configlinks'] = 'Configuration des liens';
$lang['g002_setting_link_block_menu'] = 'Intégration dans le menu';
$lang['g002_setting_link_links']='Liens';
$lang['g002_setting_link_show_icon'] = 'Afficher les icônes de liens';
$lang['g002_setting_link_block_active'] = 'Afficher la section dans le menu';
$lang['g002_setting_link_block_title'] = 'Titre de la section dans le menu';
$lang['g002_setting_block_menu'] = 'Intégration dans le menu';
$lang['g002_setting_block_active'] = 'Afficher la section dans le menu';
$lang['g002_setting_block_title'] = 'Titre de la section dans le menu';
$lang['g002_apply'] = 'Appliquer';
$lang['g002_sectionslist'] = 'Sections du menu';
@@ -54,5 +55,34 @@ $lang['g002_owner'] = 'Propriétaire';
$lang['g002_sectionid'] = 'Identifiant';
$lang['g002_name'] = 'Libellé';
$lang['g002_translate'] = 'Traduire avec Google Translate';
$lang['g002_configrandompic'] = 'Configuration de l\'image aléatoire';
$lang['g002_setting_randompic_aboutpicture'] = 'Données affichées';
$lang['g002_setting_randompic_showname'] = 'Afficher le nom de la photo';
$lang['g002_setting_randompic_showcomment'] = 'Afficher le commentaire de la photo';
$lang['g002_show_n'] = 'Non';
$lang['g002_show_o'] = 'Afficher au-dessus de la photo';
$lang['g002_show_u'] = 'Afficher en-dessous de la photo';
$lang['g002_personalisedlist'] = "Liste des sections personnalisées";
$lang['g002_notitle'] = '[Pas de titre]';
$lang['g002_title'] = 'Titre';
$lang['g002_sections'] = 'sections';
$lang['g002_section'] = 'section';
$lang['g002_nosections'] = 'Pas de sections';
$lang['g002_addsection'] = 'Ajouter une section';
$lang['g002_createofpersonalised'] = 'Ajout d\'une section personnalisée';
$lang['g002_editofpersonalised'] = 'Modification d\'une section personnalisée';
$lang['g002_setting_block_langchoice'] = 'Choix de la langue';
$lang['g002_setting_personalised_content'] = 'Contenu de la section';
$lang['g002_setting_personalised_properties'] = 'Propriétés';
$lang['g002_setting_personalised_nfo'] = 'Description';
$lang['g002_all_languages'] = "Toutes langues";
$lang['g002_modspecial'] = 'Section \'speciale\'';
$lang['g002_modmenu'] = 'Section \'menu\'';
$lang['g002_labelmenu'] = 'Libellé du menu';
?>
@@ -0,0 +1,8 @@
<!-- personalised menu bar -->
{if $section.NAME!=""}
<dt>{$section.NAME|@translate}</dt>
{/if}
<dd>
{if $section.ITEMS.CONTENT!=""}{$section.ITEMS.CONTENT}{/if}
</dd>
@@ -0,0 +1,14 @@
<!-- random picture menu bar -->
{if $section.NAME!=""}
<dt>{$section.NAME|@translate}</dt>
{/if}
<dd>
<div class="illustration" style="text-align:center;padding:5px;font-size:85%;">
{if $section.ITEMS.IMGNAME!="" and $section.ITEMS.SHOWNAME=="o"}{$section.ITEMS.IMGNAME}<br/>{/if}
{if $section.ITEMS.IMGCOMMENT!="" and $section.ITEMS.SHOWCOMMENT=="o"}{$section.ITEMS.IMGCOMMENT}<br/>{/if}
<a href="{$section.ITEMS.LINK}"><img src="{$section.ITEMS.IMG}"/></a>
{if $section.ITEMS.IMGNAME!="" and $section.ITEMS.SHOWNAME=="u"}<br/>{$section.ITEMS.IMGNAME}{/if}
{if $section.ITEMS.IMGCOMMENT!="" and $section.ITEMS.SHOWCOMMENT=="u"}<br/>{$section.ITEMS.IMGCOMMENT}{/if}
</div>
</dd>
@@ -12,7 +12,8 @@
------------------------------------------------------------------------------
HISTORY VERSION
v2.0.0 +
v2.0.0 + adapted for piwigo
+ add of a 5th&6th parameters for the google_translate function
-------------------------------------------------------------------------- */
@@ -21,15 +22,57 @@
var global_google_translate_plugin_objdest;
var global_google_translate_plugin_objproperty;
var global_google_translate_plugin_objcallback;
var global_google_translate_plugin_objcallback_param;
function google_translate(text, pfrom, pto, objdest, objproperty)
{
/*
** args needed **
1st arg : text to translate
2nd arg : translate from lang ("en", "fr", "es", ...)
3rd arg : translate to lang ("en", "fr", "es", ...)
4th arg : target of result (id)
5th arg : affected propertie ('value' or 'innerHTML')
** facultative args **
6th arg : pointer on a function definition (callback is made when
translation is done ; notice that translation is made asynchronous)
7th arg : arg for the callback (or array of arg if callbakc need more than
one parameter)
*/
if(arguments.length>=6)
{
global_google_translate_plugin_objcallback=arguments[5];
}
else
{
global_google_translate_plugin_objcallback=null;
}
if(arguments.length>=7)
{
if(arguments[6].pop)
{
global_google_translate_plugin_objcallback_param=arguments[6];
}
else
{
global_google_translate_plugin_objcallback_param=new Array(arguments[6]);
}
}
else
{
global_google_translate_plugin_objcallback_param=null;
}
global_google_translate_plugin_objdest = objdest;
global_google_translate_plugin_objproperty = objproperty;
google.language.translate(text, pfrom, pto, google_translate_do);
}
function google_translate_do(result)
{
if (!result.error)
@@ -42,6 +85,17 @@
{
global_google_translate_plugin_objdest.innerHTML = result.translation;
}
if(global_google_translate_plugin_objcallback!=null)
{
if(global_google_translate_plugin_objcallback_param!=null)
{
global_google_translate_plugin_objcallback.apply(null, global_google_translate_plugin_objcallback_param);
}
else
{
global_google_translate_plugin_objcallback();
}
}
}
}
+15 -4
View File
@@ -1,9 +1,9 @@
<?php
/* -----------------------------------------------------------------------------
class name: menu, blocks
class version: 1.0
date: 2008-07-25
classes names : menu, section
class version : 1.0
date : 2008-07-25
------------------------------------------------------------------------------
Author : Grum
@@ -56,6 +56,7 @@
unregister($id)
registered()
apply()
get_registered_filename()
How to use Menu class :
1/ create an instance
@@ -99,14 +100,24 @@ class Menu
protected $registered_sections=array();
protected $registered_file="registered.dat";
public function Menu()
public function Menu($registered_path='')
{
if($registered_path!='')
{
$this->registered_file=$registered_path.$this->registered_file;
}
$this->load_registered();
}
/*
public functions
*/
public function get_registered_filename()
{
// return filename of file for maintain of registered sections
return($this->registered_file);
}
public function add($section_datas)
{
// add a section to the menu ; datas can be made with the Section class
@@ -1,165 +0,0 @@
{* $Id: menubar.tpl 2409 2008-07-01 02:09:21Z rvelices $ *}
<div id="menubar">
{if not empty($links)}
<dl id="mbLinks">
<dt>{'Links'|@translate}</dt>
<dd>
<ul>
{foreach from=$links item=link}
<li>
<a href="{$link.URL}"
{if isset($link.new_window) }onclick="window.open(this.href, '{$link.new_window.NAME|@escape:'javascript'}','{$link.new_window.FEATURES|@escape:'javascript'}'); return false;"{/if}
>
{$link.LABEL}
</a>
</li>
{/foreach}{*links*}
</ul>
</dd>
</dl>
{/if}{*links*}
{if isset($U_START_FILTER)}
<a href="{$U_START_FILTER}" title="{'start_filter_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_filter.png" class="button" alt="start filter"></a>
{/if}
{if isset($U_STOP_FILTER)}
<a href="{$U_STOP_FILTER}" title="{'stop_filter_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/stop_filter.png" class="button" alt="stop filter"></a>
{/if}
<dl id="mbCategories">
<dt><a href="{$U_CATEGORIES}">{'Categories'|@translate}</a></dt>
<dd>
{$MENU_CATEGORIES_CONTENT}
{if isset($U_UPLOAD)}
<ul><li>
<a href="{$U_UPLOAD}">{'upload_picture'|@translate}</a>
</li></ul>
{/if}
<p class="totalImages">{$pwg->l10n_dec('%d element', '%d elements', $NB_PICTURE)}</p>
</dd>
</dl>
{if not empty($related_tags)}
<dl id="mbTags">
<dt>{'Related tags'|@translate}</dt>
<dd>
<ul id="menuTagCloud">
{foreach from=$related_tags item=tag}
<li>
{if !empty($tag.U_ADD) }
<a href="{$tag.U_ADD}"
title="{$pwg->l10n_dec('%d element are also linked to current tags', '%d elements are also linked to current tags', $tag.counter)}"
rel="nofollow">
<img src="{$ROOT_URL}{$themeconf.icon_dir}/add_tag.png" alt="+" />
</a>
{/if}
<a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{'See elements linked to this tag only'|@translate}">{$tag.name}</a>
</li>
{/foreach}
</ul>
</dd>
</dl>
{/if}
<dl id="mbSpecial">
<dt>{'special_categories'|@translate}</dt>
<dd>
<ul>
{foreach from=$special_categories item=cat}
<li><a href="{$cat.URL}" title="{$cat.TITLE}" {if isset($cat.REL)}{$cat.REL}{/if}>{$cat.NAME}</a></li>
{/foreach}
</ul>
</dd>
</dl>
<dl id="mbMenu">
<dt>{'title_menu'|@translate}</dt>
<dd>
<form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch">
<p>
<input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" />
</p>
</form>
<script type="text/javascript">var qsearch_prompt="{'qsearch'|@translate|@escape:'javascript'}"; document.getElementById('qsearchInput').value=qsearch_prompt;</script>
<ul>
{foreach from=$summaries item=sum}
<li><a href="{$sum.U_SUMMARY}" title="{$sum.TITLE}" {if isset($sum.REL)}{$sum.REL}{/if}>{$sum.NAME}</a></li>
{/foreach}
</ul>
</dd>
</dl>
<dl id="mbIdentification">
<dt>{'identification'|@translate}</dt>
<dd>
{if isset($USERNAME)}
<p>{'hello'|@translate}&nbsp;{$USERNAME}&nbsp;!</p>
{/if}
<ul>
{if isset($U_REGISTER)}
<li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow">{'Register'|@translate}</a></li>
{/if}
{if isset($U_IDENTIFY)}
<li><a href="{$U_IDENTIFY}" rel="nofollow">{'Connection'|@translate}</a></li>
{/if}
{if isset($U_LOGOUT)}
<li><a href="{$U_LOGOUT}">{'logout'|@translate}</a></li>
{/if}
{if isset($U_PROFILE)}
<li><a href="{$U_PROFILE}" title="{'hint_customize'|@translate}">{'customize'|@translate}</a></li>
{/if}
{if isset($U_ADMIN)}
<li><a href="{$U_ADMIN}" title="{'hint_admin'|@translate}">{'admin'|@translate}</a></li>
{/if}
</ul>
{if isset($U_IDENTIFY)}
<form method="post" action="{$U_IDENTIFY}" class="filter" id="quickconnect">
<fieldset>
<legend>{'Quick connect'|@translate}</legend>
<label>
{'Username'|@translate}
<input type="text" name="username" size="15" value="">
</label>
<label>
{'Password'|@translate}
<input type="password" name="password" size="15">
</label>
{if $AUTHORIZE_REMEMBERING}
<label>
{'remember_me'|@translate}
<input type="checkbox" name="remember_me" value="1">
</label>
{/if}
<p>
<input class="submit" type="submit" name="login" value="{'Submit'|@translate}">
</p>
<ul class="actions">
<li><a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"></a></li>
{if isset($U_REGISTER)}
<li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"/></a></li>
{/if}
</ul>
</fieldset>
</form>
{/if}
</dd>
</dl>
</div> <!-- menubar -->
@@ -2,16 +2,20 @@
<!-- menu menu bar -->
<dt>{$section.NAME|@translate}</dt>
<dd>
<form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch">
<p>
<input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" />
</p>
</form>
<script type="text/javascript">var qsearch_prompt="{'qsearch'|@translate|@escape:'javascript'}"; document.getElementById('qsearchInput').value=qsearch_prompt;</script>
{if isset($section.ITEMS.qsearch) and $section.ITEMS.qsearch=='y'}
<form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch">
<p>
<input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" />
</p>
</form>
<script type="text/javascript">var qsearch_prompt="{'qsearch'|@translate|@escape:'javascript'}"; document.getElementById('qsearchInput').value=qsearch_prompt;</script>
{/if}
<ul>
{foreach from=$section.ITEMS item=sum}
<li><a href="{$sum.U_SUMMARY}" title="{$sum.TITLE}" {if isset($sum.REL)}{$sum.REL}{/if}>{$sum.NAME}</a></li>
{if is_array($sum)}
<li><a href="{$sum.U_SUMMARY}" title="{$sum.TITLE}" {if isset($sum.REL)}{$sum.REL}{/if}>{$sum.NAME}</a></li>
{/if}
{/foreach}
</ul>
</dd>
+37 -5
View File
@@ -110,7 +110,30 @@ if ('tags' == @$page['section'])
//---------------------------------------------------------- special categories
// favorites categories
/*
** note for usage with Menu class **
items of Special section are defined with a named key rather than a
numeric key
Example :
$datas['special']=array(
'favorite_cat' => array( ... ),
'most_visited_cat' => array( ... ),
'best_rated_cat' => array( ... ),
[...]
);
This permits to easily find datas and modify content with a callback on the
'loc_begin_menubar' event.
Example :
$section_special=$menu->section('mbSpecial');
unset($section['ITEMS']['favorite_cat']);
$menu->replace($section_special);
this code permit to remove the items "favorite_cat" from the
section "mbSpecial"
*/
$datas['special']=array();
if ( !is_a_guest() )
{
@@ -213,16 +236,25 @@ else
//--------------------------------------------------------------- menu summaries
/*
** note for usage with Menu class **
items of menu section are defined with a named key rather than a numeric key
see notes from "sepcial categories" for more informations
*/
$datas['menu']=array();
//qsearch input zone visible y/n ; if set to 'n' the qsearch zone isn't visible
$datas['menu']['qsearch']='y';
// tags link
$datas['menu']['tags']=array(
$datas['menu']['Tags']=array(
'TITLE' => l10n('See available tags'),
'NAME' => l10n('Tags'),
'U_SUMMARY'=> get_root_url().'tags.php',
);
// search link
$datas['menu']['search']=array(
$datas['menu']['Search']=array(
'TITLE'=>l10n('hint_search'),
'NAME'=>l10n('Search'),
'U_SUMMARY'=> get_root_url().'search.php',
@@ -237,14 +269,14 @@ $datas['menu']['comments']=array(
);
// about link
$datas['menu']['about']=array(
$datas['menu']['About']=array(
'TITLE' => l10n('about_page_title'),
'NAME' => l10n('About'),
'U_SUMMARY' => get_root_url().'about.php',
);
// notification
$datas['menu']['notification']=array(
$datas['menu']['Notification']=array(
'TITLE'=>l10n('RSS feed'),
'NAME'=>l10n('Notification'),
'U_SUMMARY'=> get_root_url().'notification.php',