/**
  * 	Show a HTML Tab with boxes of a particular area including personalized choices of user
  *
  * 	@param	   User         $user		 Object User
  * 	@param	   String       $areacode    Code of area for pages (0=value for Home page)
  * 	@return    int                       <0 if KO, Nb of boxes shown of OK (0 to n)
  */
 static function printBoxesArea($user, $areacode)
 {
     global $conf, $langs, $db;
     include_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
     //$infobox=new InfoBox($db);
     $boxactivated = InfoBox::listboxes($db, 'activated', $areacode, $user);
     $arrayboxactivatedid = array();
     foreach ($boxactivated as $box) {
         $arrayboxactivatedid[$box->id] = $box->id;
     }
     $selectboxlist = '';
     if ($conf->use_javascript_ajax) {
         $emptyuser = new User($db);
         $boxavailable = InfoBox::listboxes($db, 'activated', $areacode, $emptyuser, $arrayboxactivatedid);
         // Available here is activated for empty user
         $arrayboxtoactivatelabel = array();
         foreach ($boxavailable as $box) {
             $arrayboxtoactivatelabel[$box->id] = $box->boxlabel;
         }
         $form = new Form($db);
         $selectboxlist = $form->selectarray('boxcombo', $arrayboxtoactivatelabel, '', 1);
     }
     print '<script type="text/javascript" language="javascript">
     jQuery(document).ready(function() {
     	jQuery("#boxcombo").change(function() {
     	var boxid=jQuery("#boxcombo").val();
     		if (boxid > 0) {
         		var left_list = cleanSerialize(jQuery("#left").sortable("serialize"));
         		var right_list = cleanSerialize(jQuery("#right").sortable("serialize"));
         		var boxorder = \'A:\' + left_list + \'-B:\' + right_list;
 				jQuery.ajax({ url: \'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&boxid=\'+boxid+\'&zone=' . $areacode . '&userid=' . $user->id . '\',
 			        async:   false
 		        });
     			//jQuery.get(\'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&boxid=\'+boxid+\'&zone=' . $areacode . '&userid=' . $user->id . '\');
     			window.location.search=\'mainmenu=' . GETPOST("mainmenu") . '&leftmenu=' . GETPOST('leftmenu') . '&action=addbox&boxid=\'+boxid;
 				//window.location.href=\'' . $_SERVER["PHP_SELF"] . '\';
             }
     	});';
     if (!count($arrayboxtoactivatelabel)) {
         print 'jQuery("#boxcombo").hide();';
     }
     print '
 	});
     </script>';
     print load_fiche_titre(count($boxactivated) ? $langs->trans("OtherInformationsBoxes") : '', $selectboxlist, '', '', 'otherboxes');
     if (count($boxactivated)) {
         print '<table width="100%" class="notopnoleftnoright">';
         print '<tr><td class="notopnoleftnoright">' . "\n";
         print '<div class="fichehalfleft">';
         print "\n<!-- Box left container -->\n";
         print '<div id="left" class="connectedSortable">' . "\n";
         // Define $box_max_lines
         $box_max_lines = 5;
         if (!empty($conf->global->MAIN_BOXES_MAXLINES)) {
             $box_max_lines = $conf->global->MAIN_BOXES_MAXLINES;
         }
         $ii = 0;
         foreach ($boxactivated as $key => $box) {
             if (preg_match('/^A/i', $box->box_order)) {
                 $ii++;
                 //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                 //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
                 // Affichage boite key
                 $box->loadBox($box_max_lines);
                 $box->showBox();
             }
         }
         $emptybox = new ModeleBoxes($db);
         $emptybox->box_id = 'A';
         $emptybox->info_box_head = array();
         $emptybox->info_box_contents = array();
         $emptybox->showBox(array(), array());
         print "</div>\n";
         print "<!-- End box container -->\n";
         print '</div><div class="fichehalfright"><div class="ficheaddleft">';
         print "\n<!-- Box right container -->\n";
         print '<div id="right" class="connectedSortable">' . "\n";
         $ii = 0;
         foreach ($boxactivated as $key => $box) {
             if (preg_match('/^B/i', $box->box_order)) {
                 $ii++;
                 //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                 //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
                 // Affichage boite key
                 $box->loadBox($box_max_lines);
                 $box->showBox();
             }
         }
         $emptybox = new ModeleBoxes($db);
         $emptybox->box_id = 'B';
         $emptybox->info_box_head = array();
         $emptybox->info_box_contents = array();
         $emptybox->showBox(array(), array());
         print "</div>\n";
         print "<!-- End box container -->\n";
         print '</div></div>';
         print "\n";
         print "</td></tr>";
         print "</table>";
         if ($conf->use_javascript_ajax) {
             print "\n";
             print '<script type="text/javascript" language="javascript">';
             // For moving
             print 'jQuery(function() {
                         jQuery("#left, #right").sortable({
                             /* placeholder: \'ui-state-highlight\', */
                             handle: \'.boxhandle\',
                             revert: \'invalid\',
                             items: \'.box\',
                             containment: \'.fiche\',
                             connectWith: \'.connectedSortable\',
                             stop: function(event, ui) {
                                 updateOrder(0);
                             }
                         });
                     });
             ' . "\n";
             print 'function updateOrder() {
             		var left_list = cleanSerialize(jQuery("#left").sortable("serialize"));
             		var right_list = cleanSerialize(jQuery("#right").sortable("serialize"));
             		var boxorder = \'A:\' + left_list + \'-B:\' + right_list;
 					jQuery.get(\'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&zone=' . $areacode . '&userid=\'+' . $user->id . ');
             		}' . "\n";
             // For closing
             print 'jQuery(document).ready(function() {
                       	jQuery(".boxclose").click(function() {
                       		var self = this;	// because JQuery can modify this
                           	var boxid=self.id.substring(8);
                             jQuery(\'#boxto_\'+boxid).remove();
                             updateOrder();
                        	});
                    });' . "\n";
             print '</script>' . "\n";
         }
     }
     return count($boxactivated);
 }
 /**
  * Adds boxes
  *
  * @param   string  $option Options when disabling module ('newboxdefonly'=insert only boxes definition)
  *
  * @return  int             Error count (0 if OK)
  */
 function insert_boxes($option = '')
 {
     require_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
     global $conf;
     $err = 0;
     if (is_array($this->boxes)) {
         $pos_name = InfoBox::getListOfPagesForBoxes();
         foreach ($this->boxes as $key => $value) {
             $file = isset($this->boxes[$key]['file']) ? $this->boxes[$key]['file'] : '';
             $note = isset($this->boxes[$key]['note']) ? $this->boxes[$key]['note'] : '';
             $enabledbydefaulton = isset($this->boxes[$key]['enabledbydefaulton']) ? $this->boxes[$key]['enabledbydefaulton'] : 'Home';
             if (empty($file)) {
                 $file = isset($this->boxes[$key][1]) ? $this->boxes[$key][1] : '';
             }
             // For backward compatibility
             if (empty($note)) {
                 $note = isset($this->boxes[$key][2]) ? $this->boxes[$key][2] : '';
             }
             // For backward compatibility
             // Search if boxes def already present
             $sql = "SELECT count(*) as nb FROM " . MAIN_DB_PREFIX . "boxes_def";
             $sql .= " WHERE file = '" . $this->db->escape($file) . "'";
             $sql .= " AND entity = " . $conf->entity;
             if ($note) {
                 $sql .= " AND note ='" . $this->db->escape($note) . "'";
             }
             dol_syslog(get_class($this) . "::insert_boxes", LOG_DEBUG);
             $result = $this->db->query($sql);
             if ($result) {
                 $obj = $this->db->fetch_object($result);
                 if ($obj->nb == 0) {
                     $this->db->begin();
                     if (!$err) {
                         $sql = "INSERT INTO " . MAIN_DB_PREFIX . "boxes_def (file, entity, note)";
                         $sql .= " VALUES ('" . $this->db->escape($file) . "', ";
                         $sql .= $conf->entity . ", ";
                         $sql .= $note ? "'" . $this->db->escape($note) . "'" : "null";
                         $sql .= ")";
                         dol_syslog(get_class($this) . "::insert_boxes", LOG_DEBUG);
                         $resql = $this->db->query($sql);
                         if (!$resql) {
                             $err++;
                         }
                     }
                     if (!$err && !preg_match('/newboxdefonly/', $option)) {
                         $lastid = $this->db->last_insert_id(MAIN_DB_PREFIX . "boxes_def", "rowid");
                         foreach ($pos_name as $key2 => $val2) {
                             //print 'key2='.$key2.'-val2='.$val2."<br>\n";
                             if ($enabledbydefaulton && $val2 != $enabledbydefaulton) {
                                 continue;
                             }
                             // Not enabled by default onto this page.
                             $sql = "INSERT INTO " . MAIN_DB_PREFIX . "boxes (box_id,position,box_order,fk_user,entity)";
                             $sql .= " VALUES (" . $lastid . ", " . $key2 . ", '0', 0, " . $conf->entity . ")";
                             dol_syslog(get_class($this) . "::insert_boxes onto page " . $key2 . "=" . $val2 . "", LOG_DEBUG);
                             $resql = $this->db->query($sql);
                             if (!$resql) {
                                 $err++;
                             }
                         }
                     }
                     if (!$err) {
                         $this->db->commit();
                     } else {
                         $this->error = $this->db->lasterror();
                         $this->db->rollback();
                     }
                 }
                 // else box already registered into database
             } else {
                 $this->error = $this->db->lasterror();
                 $err++;
             }
         }
     }
     return $err;
 }
$userid = GETPOST('userid');
$zone = GETPOST('zone', 'int');
$userid = GETPOST('userid', 'int');
/*
 * View
 */
// Ajout directives pour resoudre bug IE
//header('Cache-Control: Public, must-revalidate');
//header('Pragma: public');
//top_htmlhead("", "", 1);  // Replaced with top_httphead. An ajax page does not need html header.
top_httphead();
print '<!-- Ajax page called with url ' . $_SERVER["PHP_SELF"] . '?' . $_SERVER["QUERY_STRING"] . ' -->' . "\n";
// Add a box
if ($boxid > 0 && $zone != '' && $userid > 0) {
    $tmp = explode('-', $boxorder);
    $nbboxonleft = substr_count($tmp[0], ',');
    $nbboxonright = substr_count($tmp[1], ',');
    print $nbboxonleft . '-' . $nbboxonright;
    if ($nbboxonleft > $nbboxonright) {
        $boxorder = preg_replace('/B:/', 'B:' . $boxid . ',', $boxorder);
    } else {
        $boxorder = preg_replace('/^A:/', 'A:' . $boxid . ',', $boxorder);
    }
    // Insert id of new box into list
}
// Registering the location of boxes after a move
if ($boxorder && $zone != '' && $userid > 0) {
    // boxorder value is the target order: "A:idboxA1,idboxA2,A-B:idboxB1,idboxB2,B"
    dol_syslog("AjaxBox boxorder=" . $boxorder . " zone=" . $zone . " userid=" . $userid, LOG_DEBUG);
    $result = InfoBox::saveboxorder($db, $zone, $boxorder, $userid);
}
    /**
     * 	Show a HTML Tab with boxes of a particular area including personalized choices of user.
     *  Class 'Form' must be known.
     *
     * 	@param	   User         $user		 Object User
     * 	@param	   String       $areacode    Code of area for pages (0=value for Home page)
     * 	@return    int                       <0 if KO, Nb of boxes shown of OK (0 to n)
     */
    static function printBoxesArea($user, $areacode)
    {
        global $conf, $langs, $db;
        include_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
        $confuserzone = 'MAIN_BOXES_' . $areacode;
        $boxactivated = InfoBox::listBoxes($db, 'activated', $areacode, empty($user->conf->{$confuserzone}) ? null : $user);
        // Search boxes of common+user (or common only if user has no specific setup)
        $boxidactivatedforuser = array();
        foreach ($boxactivated as $box) {
            if (empty($user->conf->{$confuserzone}) || $box->fk_user == $user->id) {
                $boxidactivatedforuser[$box->id] = $box->id;
            }
            // We keep only boxes to show for user
        }
        $selectboxlist = '';
        $arrayboxtoactivatelabel = array();
        if (!empty($user->conf->{$confuserzone})) {
            $boxorder = '';
            $langs->load("boxes");
            // Load label of boxes
            foreach ($boxactivated as $box) {
                if (!empty($boxidactivatedforuser[$box->id])) {
                    continue;
                }
                // Already visible for user
                $label = $langs->transnoentitiesnoconv($box->boxlabel);
                if (preg_match('/graph/', $box->class)) {
                    $label .= ' (' . $langs->trans("Graph") . ')';
                }
                $arrayboxtoactivatelabel[$box->id] = $label;
                // We keep only boxes not shown for user, to show into combo list
            }
            foreach ($boxidactivatedforuser as $boxid) {
                if (empty($boxorder)) {
                    $boxorder .= 'A:';
                }
                $boxorder .= $boxid . ',';
            }
            //var_dump($boxidactivatedforuser);
            // Class Form must have been already loaded
            $selectboxlist .= '<form name="addbox" method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
            $selectboxlist .= '<input type="hidden" name="addbox" value="addbox">';
            $selectboxlist .= '<input type="hidden" name="userid" value="' . $user->id . '">';
            $selectboxlist .= '<input type="hidden" name="areacode" value="' . $areacode . '">';
            $selectboxlist .= '<input type="hidden" name="boxorder" value="' . $boxorder . '">';
            $selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, '', 1);
            if (empty($conf->use_javascript_ajax)) {
                $selectboxlist .= ' <input type="submit" class="button" value="' . $langs->trans("AddBox") . '">';
            }
            $selectboxlist .= '</form>';
        }
        // Javascript code for dynamic actions
        if (!empty($conf->use_javascript_ajax)) {
            print '<script type="text/javascript" language="javascript">

	        // To update list of activated boxes
	        function updateBoxOrder(closing) {
	        	var left_list = cleanSerialize(jQuery("#left").sortable("serialize"));
	        	var right_list = cleanSerialize(jQuery("#right").sortable("serialize"));
	        	var boxorder = \'A:\' + left_list + \'-B:\' + right_list;
	        	if (boxorder==\'A:A-B:B\' && closing == 1)	// There is no more boxes on screen, and we are after a delete of a box so we must hide title
	        	{
	        		jQuery.ajax({
	        			url: \'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&zone=' . $areacode . '&userid=\'+' . $user->id . ',
	        			async: false
	        		});
	        		// We force reload to be sure to get all boxes into list
	        		window.location.search=\'mainmenu=' . GETPOST("mainmenu") . '&leftmenu=' . GETPOST('leftmenu') . '&action=delbox\';
	        	}
	        	else
	        	{
	        		jQuery.ajax({
	        			url: \'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&zone=' . $areacode . '&userid=\'+' . $user->id . ',
	        			async: true
	        		});
	        	}
	        }

	        jQuery(document).ready(function() {
	        	jQuery("#boxcombo").change(function() {
	        	var boxid=jQuery("#boxcombo").val();
	        		if (boxid > 0) {
	            		var left_list = cleanSerialize(jQuery("#left").sortable("serialize"));
	            		var right_list = cleanSerialize(jQuery("#right").sortable("serialize"));
	            		var boxorder = \'A:\' + left_list + \'-B:\' + right_list;
	    				jQuery.ajax({
	    					url: \'' . DOL_URL_ROOT . '/core/ajax/box.php?boxorder=\'+boxorder+\'&boxid=\'+boxid+\'&zone=' . $areacode . '&userid=' . $user->id . '\',
	    			        async: false
	    		        });
	        			window.location.search=\'mainmenu=' . GETPOST("mainmenu") . '&leftmenu=' . GETPOST('leftmenu') . '&action=addbox&boxid=\'+boxid;
	                }
	        	});';
            if (!count($arrayboxtoactivatelabel)) {
                print 'jQuery("#boxcombo").hide();';
            }
            print '

	        	jQuery("#left, #right").sortable({
		        	/* placeholder: \'ui-state-highlight\', */
	    	    	handle: \'.boxhandle\',
	    	    	revert: \'invalid\',
	       			items: \'.box\',
	        		containment: \'.fiche\',
	        		connectWith: \'.connectedSortable\',
	        		stop: function(event, ui) {
	        			updateBoxOrder(0);
	        		}
	    		});

	        	jQuery(".boxclose").click(function() {
	        		var self = this;	// because JQuery can modify this
	        		var boxid=self.id.substring(8);
	        		var label=jQuery(\'#boxlabelentry\'+boxid).val();
	        		jQuery(\'#boxto_\'+boxid).remove();
	        		if (boxid > 0) jQuery(\'#boxcombo\').append(new Option(label, boxid));
	        		updateBoxOrder(1);
	        	});

        	});' . "\n";
            print '</script>' . "\n";
        }
        $nbboxactivated = count($boxidactivatedforuser);
        print load_fiche_titre($nbboxactivated ? $langs->trans("OtherInformationsBoxes") : '', $selectboxlist, '', '', 'otherboxes');
        if ($nbboxactivated) {
            $langs->load("boxes");
            $langs->load("projects");
            $emptybox = new ModeleBoxes($db);
            print '<table width="100%" class="notopnoleftnoright">';
            print '<tr><td class="notopnoleftnoright">' . "\n";
            print '<div class="fichehalfleft">';
            print "\n<!-- Box left container -->\n";
            print '<div id="left" class="connectedSortable">' . "\n";
            // Define $box_max_lines
            $box_max_lines = 5;
            if (!empty($conf->global->MAIN_BOXES_MAXLINES)) {
                $box_max_lines = $conf->global->MAIN_BOXES_MAXLINES;
            }
            $ii = 0;
            foreach ($boxactivated as $key => $box) {
                if (!empty($user->conf->{$confuserzone}) && $box->fk_user == 0 || empty($user->conf->{$confuserzone}) && $box->fk_user != 0) {
                    continue;
                }
                if (empty($box->box_order) && $ii < $nbboxactivated / 2) {
                    $box->box_order = 'A' . sprintf("%02d", $ii + 1);
                }
                // When box_order was not yet set to Axx or Bxx and is still 0
                if (preg_match('/^A/i', $box->box_order)) {
                    $ii++;
                    //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                    //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
                    // Affichage boite key
                    $box->loadBox($box_max_lines);
                    $box->showBox();
                }
            }
            if (empty($conf->browser->phone)) {
                $emptybox->box_id = 'A';
                $emptybox->info_box_head = array();
                $emptybox->info_box_contents = array();
                $emptybox->showBox(array(), array());
            }
            print "</div>\n";
            print "<!-- End box left container -->\n";
            print '</div><div class="fichehalfright"><div class="ficheaddleft">';
            print "\n<!-- Box right container -->\n";
            print '<div id="right" class="connectedSortable">' . "\n";
            $ii = 0;
            foreach ($boxactivated as $key => $box) {
                if (!empty($user->conf->{$confuserzone}) && $box->fk_user == 0 || empty($user->conf->{$confuserzone}) && $box->fk_user != 0) {
                    continue;
                }
                if (empty($box->box_order) && $ii < $nbboxactivated / 2) {
                    $box->box_order = 'B' . sprintf("%02d", $ii + 1);
                }
                // When box_order was not yet set to Axx or Bxx and is still 0
                if (preg_match('/^B/i', $box->box_order)) {
                    $ii++;
                    //print 'box_id '.$boxactivated[$ii]->box_id.' ';
                    //print 'box_order '.$boxactivated[$ii]->box_order.'<br>';
                    // Affichage boite key
                    $box->loadBox($box_max_lines);
                    $box->showBox();
                }
            }
            if (empty($conf->browser->phone)) {
                $emptybox->box_id = 'B';
                $emptybox->info_box_head = array();
                $emptybox->info_box_contents = array();
                $emptybox->showBox(array(), array());
            }
            print "</div>\n";
            print "<!-- End box right container -->\n";
            print '</div></div>';
            print "\n";
            print "</td></tr>";
            print "</table>";
        }
        return count($boxactivated);
    }
Exemple #5
0
    // Pour chaque position possible, on affiche un lien d'activation si boite non deja active pour cette position
    print '<td class="center">';
    print $form->selectarray("boxid[" . $box->box_id . "][pos]", $pos_name, 0, 1, 0, 0, '', 1) . "\n";
    print '<input type="hidden" name="boxid[' . $box->box_id . '][value]" value="' . $box->box_id . '">' . "\n";
    //print '<input type="checkbox" class="flat" name="boxid['.$box->box_id.'][active]">'."\n";
    print '</td>';
    print '</tr>' . "\n";
}
print '</table>' . "\n";
print '<div class="right">';
print '<input type="submit" class="button"' . (count($boxtoadd) ? '' : ' disabled="disabled"') . ' value="' . $langs->trans("Activate") . '">';
print '</div>' . "\n";
print '</form>';
print "\n" . '<!-- End Boxes Available -->' . "\n";
// Activated boxes
$boxactivated = InfoBox::listBoxes($db, 'activated', -1, null);
//var_dump($boxactivated);
print "<br>\n\n";
print_titre($langs->trans("BoxesActivated"));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td width="300">' . $langs->trans("Box") . '</td>';
print '<td>' . $langs->trans("Note") . '/' . $langs->trans("Parameters") . '</td>';
print '<td align="center" width="160">' . $langs->trans("ActiveOn") . '</td>';
print '<td align="center" width="60" colspan="2">' . $langs->trans("PositionByDefault") . '</td>';
print '<td align="center" width="80">' . $langs->trans("Disable") . '</td>';
print '</tr>' . "\n";
$var = true;
$box_order = 1;
$foundrupture = 1;
foreach ($boxactivated as $key => $box) {
Exemple #6
0
if (! defined('NOREQUIRETRAN'))  define('NOREQUIRETRAN','1');

require('../main.inc.php');
require_once(DOL_DOCUMENT_ROOT."/boxes.php");


/*
 * View
 */

// Ajout directives pour resoudre bug IE
//header('Cache-Control: Public, must-revalidate');
//header('Pragma: public');

//top_htmlhead("", "", 1);  // Replaced with top_httphead. An ajax page does not need html header.
top_httphead();

print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";

// Registering the location of boxes
if((isset($_GET['boxorder']) && !empty($_GET['boxorder'])) && (isset($_GET['userid']) && !empty($_GET['userid'])))
{
	// boxorder value is the target order: "A:idboxA1,idboxA2,A-B:idboxB1,idboxB2,B"
	dol_syslog("AjaxBox boxorder=".$_GET['boxorder']." userid=".$_GET['userid'], LOG_DEBUG);

	$infobox=new InfoBox($db);
	$result=$infobox->saveboxorder("0",$_GET['boxorder'],$_GET['userid']);
}

?>
Exemple #7
0
    print '<td>' . img_object("", $logo) . ' ' . $box->boxlabel . '</td>';
    print '<td>' . ($box->note ? $box->note : '&nbsp;') . '</td>';
    print '<td>' . $box->sourcefile . '</td>';
    // Pour chaque position possible, on affiche un lien d'activation si boite non deja active pour cette position
    print '<td>';
    print $form->selectarray("pos", $pos_name);
    print '<input type="hidden" name="action" value="add">';
    print '<input type="hidden" name="boxid" value="' . $box->box_id . '">';
    print ' <input type="submit" class="nice button tiny" name="button" value="' . $langs->trans("Activate") . '">';
    print '</td>';
    print '</tr>';
    print '</form>';
}
print '</table>';
// Activated boxes
$boxactivated = InfoBox::listboxes($db, 'activated', -1, $emptyuser);
print "<br>\n\n";
print_titre($langs->trans("BoxesActivated"));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td width="300">' . $langs->trans("Box") . '</td>';
print '<td>' . $langs->trans("Note") . '/' . $langs->trans("Parameters") . '</td>';
print '<td align="center" width="160">' . $langs->trans("ActiveOn") . '</td>';
print '<td align="center" width="60" colspan="2">' . $langs->trans("PositionByDefault") . '</td>';
print '<td align="center" width="80">' . $langs->trans("Disable") . '</td>';
print '</tr>' . "\n";
$var = true;
$box_order = 1;
$foundrupture = 1;
foreach ($boxactivated as $key => $box) {
    $var = !$var;
Exemple #8
0
/**
 * 		Show a HTML Tab with boxes of a particular area including personalized choices of user
 *
 * 		@param	   User         $user		 Object User
 * 		@param	   String       $areacode    Code of area for pages (0=value for Home page)
 * 		@return    int                       <0 if KO, Nb of boxes shown of OK (0 to n)
 */
function printBoxesArea($user,$areacode)
{
	global $conf,$langs,$db;

	$infobox=new InfoBox($db);
	$boxarray=$infobox->listboxes($areacode,$user);

	//$boxid_left = array();
	//$boxid_right = array();
	if (count($boxarray))
	{
		print_fiche_titre($langs->trans("OtherInformationsBoxes"),'','','','otherboxes');
		print '<table width="100%" class="notopnoleftnoright">';
		print '<tr><td class="notopnoleftnoright">'."\n";

		print '<table width="100%" style="border-collapse: collapse; border: 0px; margin: 0px; padding: 0px;"><tr>';

		// Affichage colonne gauche
		print '<td width="50%" valign="top" class="notopnoleft" style="padding-right: 8px;">'."\n";

		print "\n<!-- Box left container -->\n";
		print '<div id="left" class="connectedSortable">'."\n";

		$ii=0;
		foreach ($boxarray as $key => $box)
		{
			if (preg_match('/^A/i',$box->box_order)) // column A
			{
				$ii++;
				//print 'box_id '.$boxarray[$ii]->box_id.' ';
				//print 'box_order '.$boxarray[$ii]->box_order.'<br>';
				//$boxid_left[$key] = $box->box_id;
				// Affichage boite key
				$box->loadBox($conf->box_max_lines);
				$box->showBox();
			}
		}

		// If no box on left, we add an invisible empty box
//		if ($ii==0)
//		{
			$emptybox=new ModeleBoxes($db);
			$emptybox->box_id='A';
			$emptybox->info_box_head=array();
			$emptybox->info_box_contents=array();
			$emptybox->showBox(array(),array());
//		}

		print "</div>\n";
		print "<!-- End box container -->\n";

		print "</td>\n";
		// Affichage colonne droite
		print '<td width="50%" valign="top">';

		print "\n<!-- Box right container -->\n";
		print '<div id="right" class="connectedSortable">'."\n";

		$ii=0;
		foreach ($boxarray as $key => $box)
		{
			if (preg_match('/^B/i',$box->box_order)) // colonne B
			{
				$ii++;
				//print 'box_id '.$boxarray[$ii]->box_id.' ';
				//print 'box_order '.$boxarray[$ii]->box_order.'<br>';
				//$boxid_right[$key] = $boxarray[$key]->box_id;
				// Affichage boite key
				$box->loadBox($conf->box_max_lines);
				$box->showBox();
			}
		}

		// If no box on right, we show add an invisible empty box
//		if ($ii==0)
//		{
			$emptybox=new ModeleBoxes($db);
			$emptybox->box_id='B';
			$emptybox->info_box_head=array();
			$emptybox->info_box_contents=array();
			$emptybox->showBox(array(),array());
//		}

		print "</div>\n";
		print "<!-- End box container -->\n";
		print "</td>";
		print "</tr></table>\n";
		print "\n";

		print "</td></tr>";
		print "</table>";

		if ($conf->use_javascript_ajax)
		{
			print "\n";
			print '<script type="text/javascript" language="javascript">';
            print 'jQuery(function() {
                        jQuery("#left, #right").sortable({
                            /* placeholder: \'ui-state-highlight\', */
                            handle: \'.boxhandle\',
                            revert: \'invalid\',
                            items: \'.box\',
                            containment: \'.fiche\',
                            connectWith: \'.connectedSortable\',
                            stop: function(event, ui) {
                                updateOrder();
                            }
                        });
                    });
            ';
            print "\n";
            print 'function updateOrder(){'."\n";
		    print 'var left_list = cleanSerialize(jQuery("#left").sortable( "serialize" ));'."\n";
		    print 'var right_list = cleanSerialize(jQuery("#right").sortable( "serialize" ));'."\n";
		    print 'var boxorder = \'A:\' + left_list + \'-B:\' + right_list;'."\n";
		    //print 'alert( \'boxorder=\' + boxorder );';
		    print 'var userid = \''.$user->id.'\';'."\n";
		    print 'jQuery.get(\'core/ajaxbox.php?boxorder=\'+boxorder+\'&userid=\'+'.$user->id.');'."\n";
		  	print '}'."\n";
			print '</script>'."\n";
		}
	}

	return count($boxarray);
}