Source de preferences.inc
<?
define("BOXES_COOKIE","boxesBar");
$boxesList = array("nav-bar" => 'Barre de navigation',"sponsor-bar" => 'Publicité',"quick-bar" => 'Liens rapides',"themes-bar" => 'Préférences',"bookmarks-bar" => 'Marque-pages',"news-bar" => 'Liste de diffusion');
function getBoxesTable()
{
global $boxesList;
$result = '';
$displayed = array();
if (isset($_COOKIE[BOXES_COOKIE]))
{
$bx_list = explode('|', $_COOKIE[BOXES_COOKIE]);
array_shift($bx_list);
}
else
{
$bx_list = array_keys($boxesList);
}
$displayed = array();
$actionned = getCurrentId($bx_list);
while(list($index, $id) = each($bx_list))
{
if ($actionned == $index)
{
$selected = 'checked="checked" ';
}
else
{
$selected = '';
}
if (!isset($_REQUEST['bx-command']) || (isset($_REQUEST['bxn-'.$id]) && ($_REQUEST['bxn-'.$id])=='on'))
{
$checked = 'checked="checked" ';
}
else
{
$checked = "";
}
$result .= ' <tr id="bx-'.$id.'"><td><input '.$selected.'type="radio" name="bx-id" id="bxr-'.$id.'" value="'.$id.'" /></td><td><label for="bxr-'.$id.'">'.$boxesList[$id].'</label></td><td><input '.'type="checkbox" '.$checked.'name="bxn-'.$id.'" id="bxc-'.$id.'" title="Si cette case est cochée, la boîte '.$boxesList[$id].' sera affichée" /></td></tr>
';
$displayed[$id] = $boxesList[$id];
}
if (isset($_COOKIE[BOXES_COOKIE]))
{
$remaining = array_diff_assoc($boxesList, $displayed);
while(list($id, $label) = each($remaining))
{
if (isset($_REQUEST['bxn-'.$id]) && ($_REQUEST['bxn-'.$id])=='on')
{
$checked = 'checked="checked" ';
}
else
{
$checked = "";
}
$result .= ' <tr id="bx-'.$id.'"><td><input '.'type="radio" name="bx-id" id="bxr-'.$id.'" value="'.$id.'" /></td><td><label for="bxr-'.$id.'">'.$label.'</label></td><td><input '.$checked.'type="checkbox" name="bxn-'.$id.'" id="bxc-'.$id.'" title="Si cette case est cochée, la boîte'.$label.' sera affichée" /></td></tr>
';
$displayed[$id] = $boxesList[$id];
}
}
return $result;
}
function getCurrentId($array)
{
if (isset($_REQUEST['bx-id']))
{
$id = array_search($_REQUEST['bx-id'], $array);
}
else
{
$id = 0;
}
return $id;
}
function updatePreferences()
{
global $boxesList;
if (isset($_REQUEST['bx-command']))
{
if (!isset($_COOKIE[BOXES_COOKIE]))
{
$bx_list = array_keys($boxesList);
}
else
{
$bx_list = explode('|', $_COOKIE[BOXES_COOKIE]);
array_shift($bx_list);
}
$id = getCurrentId($bx_list);
switch($_REQUEST['bx-command'][0])
{
case 'M':
if($id > 0)
{
array_flip_values($bx_list, $id, $id-1);
}
break;
case 'D':
if($id < (count($bx_list) - 1))
{
array_flip_values($bx_list, $id, $id+1);
}
break;
case 'S':
$bx_list = array();
while (list($key, $value) = each($_REQUEST))
{
if ((substr($key,0,4) == 'bxn-') && ($value == 'on'))
{
array_push($bx_list,substr($key,4));
}
}
break;
}
$cookieValue = '|'.implode('|', $bx_list);
setCookie(BOXES_COOKIE, $cookieValue, time() + (365*24*3600), "/");
$_COOKIE[BOXES_COOKIE] = $cookieValue;
}
}
?>
define("BOXES_COOKIE","boxesBar");
$boxesList = array("nav-bar" => 'Barre de navigation',"sponsor-bar" => 'Publicité',"quick-bar" => 'Liens rapides',"themes-bar" => 'Préférences',"bookmarks-bar" => 'Marque-pages',"news-bar" => 'Liste de diffusion');
function getBoxesTable()
{
global $boxesList;
$result = '';
$displayed = array();
if (isset($_COOKIE[BOXES_COOKIE]))
{
$bx_list = explode('|', $_COOKIE[BOXES_COOKIE]);
array_shift($bx_list);
}
else
{
$bx_list = array_keys($boxesList);
}
$displayed = array();
$actionned = getCurrentId($bx_list);
while(list($index, $id) = each($bx_list))
{
if ($actionned == $index)
{
$selected = 'checked="checked" ';
}
else
{
$selected = '';
}
if (!isset($_REQUEST['bx-command']) || (isset($_REQUEST['bxn-'.$id]) && ($_REQUEST['bxn-'.$id])=='on'))
{
$checked = 'checked="checked" ';
}
else
{
$checked = "";
}
$result .= ' <tr id="bx-'.$id.'"><td><input '.$selected.'type="radio" name="bx-id" id="bxr-'.$id.'" value="'.$id.'" /></td><td><label for="bxr-'.$id.'">'.$boxesList[$id].'</label></td><td><input '.'type="checkbox" '.$checked.'name="bxn-'.$id.'" id="bxc-'.$id.'" title="Si cette case est cochée, la boîte '.$boxesList[$id].' sera affichée" /></td></tr>
';
$displayed[$id] = $boxesList[$id];
}
if (isset($_COOKIE[BOXES_COOKIE]))
{
$remaining = array_diff_assoc($boxesList, $displayed);
while(list($id, $label) = each($remaining))
{
if (isset($_REQUEST['bxn-'.$id]) && ($_REQUEST['bxn-'.$id])=='on')
{
$checked = 'checked="checked" ';
}
else
{
$checked = "";
}
$result .= ' <tr id="bx-'.$id.'"><td><input '.'type="radio" name="bx-id" id="bxr-'.$id.'" value="'.$id.'" /></td><td><label for="bxr-'.$id.'">'.$label.'</label></td><td><input '.$checked.'type="checkbox" name="bxn-'.$id.'" id="bxc-'.$id.'" title="Si cette case est cochée, la boîte'.$label.' sera affichée" /></td></tr>
';
$displayed[$id] = $boxesList[$id];
}
}
return $result;
}
function getCurrentId($array)
{
if (isset($_REQUEST['bx-id']))
{
$id = array_search($_REQUEST['bx-id'], $array);
}
else
{
$id = 0;
}
return $id;
}
function updatePreferences()
{
global $boxesList;
if (isset($_REQUEST['bx-command']))
{
if (!isset($_COOKIE[BOXES_COOKIE]))
{
$bx_list = array_keys($boxesList);
}
else
{
$bx_list = explode('|', $_COOKIE[BOXES_COOKIE]);
array_shift($bx_list);
}
$id = getCurrentId($bx_list);
switch($_REQUEST['bx-command'][0])
{
case 'M':
if($id > 0)
{
array_flip_values($bx_list, $id, $id-1);
}
break;
case 'D':
if($id < (count($bx_list) - 1))
{
array_flip_values($bx_list, $id, $id+1);
}
break;
case 'S':
$bx_list = array();
while (list($key, $value) = each($_REQUEST))
{
if ((substr($key,0,4) == 'bxn-') && ($value == 'on'))
{
array_push($bx_list,substr($key,4));
}
}
break;
}
$cookieValue = '|'.implode('|', $bx_list);
setCookie(BOXES_COOKIE, $cookieValue, time() + (365*24*3600), "/");
$_COOKIE[BOXES_COOKIE] = $cookieValue;
}
}
?>
Si avez des problèmes ou des questions concernant ce fichier source, vous pouvez utiliser le Forum Sources du site