/**
 *  Show left menu bar
 *
 *  @param  array	$menu_array_before 	       	Table of menu entries to show before entries of menu handler
 *  @param  string	$helppagename    	       	Name of wiki page for help ('' by default).
 * 				     		                   	Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
 * 									         		       For other external page: http://server/url
 *  @param  string	$moresearchform             Search Form Permanent Supplemental
 *  @param  array	$menu_array_after           Table of menu entries to show after entries of menu handler
 *  @param  int		$leftmenuwithoutmainarea    Must be set to 1. 0 by default for backward compatibility with old modules.
 *  @param  string	$title                      Title of web page
 *  @return	void
 */
function left_menu($menu_array_before, $helppagename = '', $moresearchform = '', $menu_array_after = '', $leftmenuwithoutmainarea = 0, $title = '')
{
    global $user, $conf, $langs, $db;
    global $hookmanager, $menumanager;
    $searchform = '';
    $bookmarks = '';
    if (empty($conf->dol_hide_leftmenu)) {
        // Instantiate hooks of thirdparty module
        $hookmanager->initHooks(array('searchform', 'leftblock'));
        if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) {
            print "\n" . '<!-- Begin left layout -->' . "\n" . '<div class="ui-layout-west">' . "\n";
        } else {
            print "\n" . '<!-- Begin id-left -->' . "\n" . '<div class="side-nav"><div id="id-left">' . "\n";
        }
        print "\n";
        // Define $searchform
        if ((!empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) || !empty($conf->fournisseur->enabled)) && !empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire) {
            $langs->load("companies");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/societe/list.php', DOL_URL_ROOT . '/societe/list.php', $langs->trans("ThirdParties"), 'soc', 'socname', 'T', 'searchleftt', img_object('', 'company'));
        }
        if (!empty($conf->societe->enabled) && !empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire) {
            $langs->load("companies");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/contact/list.php', DOL_URL_ROOT . '/contact/list.php', $langs->trans("Contacts"), 'contact', 'contactname', '', 'searchleftc', img_object('', 'contact'));
        }
        if ((!empty($conf->product->enabled) && $user->rights->produit->lire || !empty($conf->service->enabled) && $user->rights->service->lire) && !empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE)) {
            $langs->load("products");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/product/list.php', DOL_URL_ROOT . '/product/list.php', $langs->trans("Products") . "/" . $langs->trans("Services"), 'products', 'sall', 'P', 'searchleftp', img_object('', 'product'));
        }
        if ((!empty($conf->product->enabled) && $user->rights->produit->lire || !empty($conf->service->enabled) && $user->rights->service->lire) && !empty($conf->fournisseur->enabled) && !empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER)) {
            $langs->load("products");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/fourn/product/list.php', DOL_URL_ROOT . '/fourn/product/list.php', $langs->trans("SupplierRef"), 'products', 'srefsupplier', '', 'searchlefts', img_object('', 'product'));
        }
        if (!empty($conf->adherent->enabled) && !empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire) {
            $langs->load("members");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/adherents/list.php', DOL_URL_ROOT . '/adherents/list.php', $langs->trans("Members"), 'member', 'sall', 'M', 'searchleftm', img_object('', 'user'));
        }
        if (!empty($conf->projet->enabled) && !empty($conf->global->MAIN_SEARCHFORM_PROJECT) && $user->rights->projet->lire) {
            $langs->load("members");
            $searchform .= printSearchForm(DOL_URL_ROOT . '/projet/list.php', DOL_URL_ROOT . '/projet/list.php', $langs->trans("Projects"), 'project', 'search_all', 'M', 'searchleftproj', img_object('', 'projectpub'));
        }
        // Execute hook printSearchForm
        $parameters = array();
        $reshook = $hookmanager->executeHooks('printSearchForm', $parameters);
        // Note that $action and $object may have been modified by some hooks
        if (empty($reshook)) {
            $searchform .= $hookmanager->resPrint;
        } else {
            $searchform = $hookmanager->resPrint;
        }
        // Define $bookmarks
        if (!empty($conf->bookmark->enabled) && $user->rights->bookmark->lire) {
            include_once DOL_DOCUMENT_ROOT . '/bookmarks/bookmarks.lib.php';
            $langs->load("bookmarks");
            $bookmarks = printBookmarksList($db, $langs);
        }
        // Left column
        print '<!-- Begin left menu -->' . "\n";
        print '<div class="vmenu">' . "\n\n";
        $menumanager->menu_array = $menu_array_before;
        $menumanager->menu_array_after = $menu_array_after;
        $menumanager->showmenu('left');
        // output menu_array and menu found in database
        // Show other forms
        if ($searchform) {
            print "\n";
            print "<!-- Begin SearchForm -->\n";
            print '<div id="blockvmenusearch" class="blockvmenusearch">' . "\n";
            print $searchform;
            print '</div>' . "\n";
            print "<!-- End SearchForm -->\n";
        }
        // More search form
        if ($moresearchform) {
            print $moresearchform;
        }
        // Bookmarks
        if ($bookmarks) {
            print "\n";
            print "<!-- Begin Bookmarks -->\n";
            print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . "\n";
            print $bookmarks;
            print '</div>' . "\n";
            print "<!-- End Bookmarks -->\n";
        }
        print "\n";
        print "<!-- Begin Help Block-->\n";
        print '<div id="blockvmenuhelp" class="blockvmenuhelp">' . "\n";
        //Dolibarr version
        $doliurl = 'http://www.dolibarr.org';
        //local communities
        if (preg_match('/fr/i', $langs->defaultlang)) {
            $doliurl = 'http://www.dolibarr.fr';
        }
        if (preg_match('/es/i', $langs->defaultlang)) {
            $doliurl = 'http://www.dolibarr.es';
        }
        if (preg_match('/de/i', $langs->defaultlang)) {
            $doliurl = 'http://www.dolibarr.de';
        }
        if (preg_match('/it/i', $langs->defaultlang)) {
            $doliurl = 'http://www.dolibarr.it';
        }
        if (preg_match('/gr/i', $langs->defaultlang)) {
            $doliurl = 'http://www.dolibarr.gr';
        }
        $appli = 'Dolibarr';
        if (!empty($conf->global->MAIN_APPLICATION_TITLE)) {
            $appli = $conf->global->MAIN_APPLICATION_TITLE;
            $doliurl = '';
            if (preg_match('/\\d\\.\\d/', $appli)) {
                if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) {
                    $appli .= " (" . DOL_VERSION . ")";
                }
                // If new title contains a version that is different than core
            } else {
                $appli .= " " . DOL_VERSION;
            }
        } else {
            $appli .= " " . DOL_VERSION;
        }
        print '<div id="blockvmenuhelpapp" class="blockvmenuhelp">';
        if ($doliurl) {
            print '<a class="help" target="_blank" href="' . $doliurl . '">';
        }
        print $appli;
        if ($doliurl) {
            print '</a>';
        }
        print '</div>' . "\n";
        // Link to Dolibarr wiki pages
        if ($helppagename && empty($conf->global->MAIN_HELP_DISABLELINK)) {
            $langs->load("help");
            $helpbaseurl = '';
            $helppage = '';
            $mode = '';
            // Get helpbaseurl, helppage and mode from helppagename and langs
            $arrayres = getHelpParamFor($helppagename, $langs);
            $helpbaseurl = $arrayres['helpbaseurl'];
            $helppage = $arrayres['helppage'];
            $mode = $arrayres['mode'];
            // Link to help pages
            if ($helpbaseurl && $helppage) {
                print '<div id="blockvmenuhelpwiki" class="blockvmenuhelp">';
                print '<a class="help" target="_blank" title="' . $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage');
                if ($mode == 'wiki') {
                    print ' - ' . $langs->trans("PageWiki") . ' &quot;' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '&quot;';
                }
                print '" href="';
                if ($mode == 'wiki') {
                    print sprintf($helpbaseurl, urlencode(html_entity_decode($helppage)));
                } else {
                    print sprintf($helpbaseurl, $helppage);
                }
                print '">';
                print img_picto('', 'helpdoc') . ' ';
                print $langs->trans($mode == 'wiki' ? 'OnlineHelp' : 'Help');
                //if ($mode == 'wiki') print ' ('.dol_trunc(strtr($helppage,'_',' '),8).')';
                print '</a>';
                print '</div>' . "\n";
            }
        }
        // Link to bugtrack
        if (!empty($conf->global->MAIN_BUGTRACK_ENABLELINK)) {
            require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
            $bugbaseurl = 'https://github.com/Dolibarr/dolibarr/issues/new';
            $bugbaseurl .= '?title=';
            $bugbaseurl .= urlencode("Bug: ");
            $bugbaseurl .= '&body=';
            $bugbaseurl .= urlencode("# Environment\n");
            $bugbaseurl .= urlencode("- **Version**: " . DOL_VERSION . "\n");
            $bugbaseurl .= urlencode("- **OS**: " . php_uname('s') . "\n");
            $bugbaseurl .= urlencode("- **Web server**: " . $_SERVER["SERVER_SOFTWARE"] . "\n");
            $bugbaseurl .= urlencode("- **PHP**: " . php_sapi_name() . ' ' . phpversion() . "\n");
            $bugbaseurl .= urlencode("- **Database**: " . $db::LABEL . ' ' . $db->getVersion() . "\n");
            $bugbaseurl .= urlencode("- **URL**: " . $_SERVER["REQUEST_URI"] . "\n");
            $bugbaseurl .= urlencode("\n");
            $bugbaseurl .= urlencode("# Report\n");
            print '<p id="blockvmenuhelpbugreport" class="blockvmenuhelp">';
            print '<a class="help" target="_blank" href="' . $bugbaseurl . '">' . $langs->trans("FindBug") . '</a>';
            print '</p>';
        }
        print "</div>\n";
        print "<!-- End Help Block-->\n";
        print "\n";
        print "</div>\n";
        print "<!-- End left menu -->\n";
        print "\n";
        // Execute hook printLeftBlock
        $parameters = array();
        $reshook = $hookmanager->executeHooks('printLeftBlock', $parameters);
        // Note that $action and $object may have been modified by some hooks
        print $hookmanager->resPrint;
        if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) {
            print '</div> <!-- End left layout -->' . "\n";
        } else {
            print '</div></div> <!-- end id-left -->';
        }
        // End div id="id-left"
    }
    print "\n";
    print '<!-- Begin right area -->' . "\n";
    if (empty($leftmenuwithoutmainarea)) {
        main_area($title);
    }
}
/**
 *  Show left menu bar
 *
 *  @param  array	$menu_array_before 	       	Table of menu entries to show before entries of menu handler. This param is deprectaed and must be provided to ''.
 *  @param  string	$helppagename    	       	Name of wiki page for help ('' by default).
 * 				     		                   	Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
 * 									         		       For other external page: http://server/url
 *  @param  string	$notused             		Deprecated. Used in past to add content into left menu. Hooks can be used now.
 *  @param  array	$menu_array_after           Table of menu entries to show after entries of menu handler
 *  @param  int		$leftmenuwithoutmainarea    Must be set to 1. 0 by default for backward compatibility with old modules.
 *  @param  string	$title                      Title of web page
 *  @param  string  $acceptdelayedhtml          1 if caller request to have html delayed content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
 *  @return	void
 */
function left_menu($menu_array_before, $helppagename='', $notused='', $menu_array_after='', $leftmenuwithoutmainarea=0, $title='', $acceptdelayedhtml=0)
{
    global $user, $conf, $langs, $db, $form;
    global $hookmanager, $menumanager;

    $searchform='';
    $bookmarks='';

    if (! empty($menu_array_before)) dol_syslog("Deprecated parameter menu_array_before was used when calling main::left_menu function. Menu entries of module should now be defined into module descriptor and not provided when calling left_menu.", LOG_WARNING); 
        
    if (empty($conf->dol_hide_leftmenu))
    {
	    // Instantiate hooks of thirdparty module
	    $hookmanager->initHooks(array('searchform','leftblock'));

    	if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "\n".'<!-- Begin left layout -->'."\n".'<div class="ui-layout-west">'."\n";
		else print "\n".'<!-- Begin id-left -->'."\n".'<div class="side-nav"><div id="id-left">'."\n";

	    print "\n";

	    if ($conf->use_javascript_ajax && $conf->browser->layout != 'phone')
	    {
    	    if (! is_object($form)) $form=new Form($db);
    	    $selected=-1;
            $searchform.=$form->selectArrayAjax('searchselectcombo', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, '', '', 0, 1, 'vmenusearchselectcombo', 1, $langs->trans("Search"), 1);
	    }
	    else
	    {
    	    // Define $searchform
    	    if ((( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)) && $user->rights->societe->lire)
    	    {
    	        $langs->load("companies");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/societe/list.php', DOL_URL_ROOT.'/societe/list.php', $langs->trans("ThirdParties"), 'soc', 'sall', 'T', 'searchleftt', img_object('','company'));
    	    }
    
    	    if (! empty($conf->societe->enabled) && $user->rights->societe->lire)
    	    {
    	        $langs->load("companies");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/contact/list.php', DOL_URL_ROOT.'/contact/list.php', $langs->trans("Contacts"), 'contact', 'sall', 'A', 'searchleftc', img_object('','contact'));
    	    }
    
    	    if (((! empty($conf->product->enabled) && $user->rights->produit->lire) || (! empty($conf->service->enabled) && $user->rights->service->lire))
    	    )
    	    {
    	        $langs->load("products");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/product/list.php', DOL_URL_ROOT.'/product/list.php', $langs->trans("Products")."/".$langs->trans("Services"), 'products', 'sall', 'P', 'searchleftp', img_object('','product'));
    	    }
    
            if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
    	    {
    	        $langs->load("projects");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/projet/list.php', DOL_URL_ROOT.'/projet/list.php', $langs->trans("Projects"), 'project', 'search_all', 'Q', 'searchleftproj', img_object('','projectpub'));
    	    }
    
    	    if (! empty($conf->adherent->enabled) && $user->rights->adherent->lire)
    	    {
    	        $langs->load("members");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/adherents/list.php', DOL_URL_ROOT.'/adherents/list.php', $langs->trans("Members"), 'member', 'sall', 'M', 'searchleftm', img_object('','user'));
    	    }
    
    		if (! empty($conf->user->enabled) && $user->rights->user->user->lire)
    	    {
    	        $langs->load("users");
    	        $searchform.=printSearchForm(DOL_URL_ROOT.'/user/list.php', DOL_URL_ROOT.'/user/list.php', $langs->trans("Users"), 'user', 'sall', 'M', 'searchleftuser', img_object('','user'));
    	    }
	    }
        
	    // Execute hook printSearchForm
	    $parameters=array('searchform'=>$searchform);
	    $reshook=$hookmanager->executeHooks('printSearchForm',$parameters);    // Note that $action and $object may have been modified by some hooks
		if (empty($reshook))
		{
			$searchform.=$hookmanager->resPrint;
		}
		else $searchform=$hookmanager->resPrint;

		if ($conf->use_javascript_ajax && $conf->browser->layout == 'phone')
	    {
	        $searchform='<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="#" alt="'.dol_escape_htmltag($langs->trans("ShowSearchFields")).'">'.$langs->trans("Search").'...</a></div><div id="divsearchforms2" style="display: none">'.$searchform.'</div>';
	        $searchform.='<script type="text/javascript">
            	jQuery(document).ready(function () {
            		jQuery("#divsearchforms1").click(function(){
	                   jQuery("#divsearchforms2").toggle();
	               });
            	});
                </script>' . "\n";
	        $searchform.='</div>';
	    }
		
	    // Define $bookmarks
	    if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire)
	    {
	        include_once (DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php');
	        $langs->load("bookmarks");

	        $bookmarks=printBookmarksList($db, $langs);
	    }

	    // Left column
	    print '<!-- Begin left menu -->'."\n";

	    print '<div class="vmenu">'."\n\n";

    	// Show left menu with other forms
	    $menumanager->menu_array = $menu_array_before;
    	$menumanager->menu_array_after = $menu_array_after;
	    $menumanager->showmenu('left', array('searchform'=>$searchform, 'bookmarks'=>$bookmarks)); // output menu_array and menu found in database

        // Dolibarr version + help + bug report link
		print "\n";
	    print "<!-- Begin Help Block-->\n";
        print '<div id="blockvmenuhelp" class="blockvmenuhelp">'."\n";

        // Version
        $doliurl='http://www.dolibarr.org';
		//local communities
		if (preg_match('/fr/i',$langs->defaultlang)) $doliurl='http://www.dolibarr.fr';
		if (preg_match('/es/i',$langs->defaultlang)) $doliurl='http://www.dolibarr.es';
		if (preg_match('/de/i',$langs->defaultlang)) $doliurl='http://www.dolibarr.de';
		if (preg_match('/it/i',$langs->defaultlang)) $doliurl='http://www.dolibarr.it';
		if (preg_match('/gr/i',$langs->defaultlang)) $doliurl='http://www.dolibarr.gr';

        $appli=constant('DOL_APPLICATION_TITLE');
	    if (! empty($conf->global->MAIN_APPLICATION_TITLE))
	    {
	    	$appli=$conf->global->MAIN_APPLICATION_TITLE; $doliurl='';
	    	if (preg_match('/\d\.\d/', $appli))
	    	{
				if (! preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) $appli.=" (".DOL_VERSION.")";	// If new title contains a version that is different than core
	    	}
	    	else $appli.=" ".DOL_VERSION;
	    }
	    else $appli.=" ".DOL_VERSION;
	    print '<div id="blockvmenuhelpapp" class="blockvmenuhelp">';
	    if ($doliurl) print '<a class="help" target="_blank" href="'.$doliurl.'">';
	    print $appli;
	    if ($doliurl) print '</a>';
	    print '</div>'."\n";

		// Link to bugtrack
		if (! empty($conf->global->MAIN_BUGTRACK_ENABLELINK))
		{
			require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';

			$bugbaseurl = 'https://github.com/Dolibarr/dolibarr/issues/new';
			$bugbaseurl.= '?title=';
			$bugbaseurl.= urlencode("Bug: ");
			$bugbaseurl.= '&body=';
			$bugbaseurl.= urlencode("# Environment\n");
			$bugbaseurl.= urlencode("- **Version**: " . DOL_VERSION . "\n");
			$bugbaseurl.= urlencode("- **OS**: " . php_uname('s') . "\n");
			$bugbaseurl.= urlencode("- **Web server**: " . $_SERVER["SERVER_SOFTWARE"] . "\n");
			$bugbaseurl.= urlencode("- **PHP**: " . php_sapi_name() . ' ' . phpversion() . "\n");
			$bugbaseurl.= urlencode("- **Database**: " . $db::LABEL . ' ' . $db->getVersion() . "\n");
			$bugbaseurl.= urlencode("- **URL**: " . $_SERVER["REQUEST_URI"] . "\n");
			$bugbaseurl.= urlencode("\n");
			$bugbaseurl.= urlencode("# Report\n");
			print '<div id="blockvmenuhelpbugreport" class="blockvmenuhelp">';
			print '<a class="help" target="_blank" href="'.$bugbaseurl.'">'.$langs->trans("FindBug").'</a>';
			print '</div>';
		}

        print "</div>\n";
        print "<!-- End Help Block-->\n";
        print "\n";

        print "</div>\n";
        print "<!-- End left menu -->\n";
        print "\n";

	    // Execute hook printLeftBlock
	    $parameters=array();
	    $reshook=$hookmanager->executeHooks('printLeftBlock',$parameters);    // Note that $action and $object may have been modified by some hooks
	    print $hookmanager->resPrint;

	    if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div> <!-- End left layout -->'."\n";
	    else print '</div></div> <!-- end id-left -->';	// End div id="id-left"
    }

    print "\n";
    print '<!-- Begin right area -->'."\n";

    if (empty($leftmenuwithoutmainarea)) main_area($title);
}
Exemple #3
0
/**
 *  Show left menu bar
 *
 *  @param  array	$menu_array_before 	       	Table of menu entries to show before entries of menu handler
 *  @param  string	$helppagename    	       	Name of wiki page for help ('' by default).
 * 				     		                   	Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
 * 									         		       For other external page: http://server/url
 *  @param  string	$moresearchform             Search Form Permanent Supplemental
 *  @param  array	$menu_array_after           Table of menu entries to show after entries of menu handler
 *  @param  int		$leftmenuwithoutmainarea    Must be set to 1. 0 by default for backward compatibility with old modules.
 *  @param  string	$title                      Title of web page
 *  @return	void
 */
function left_menu($menu_array_before, $helppagename = '', $moresearchform = '', $menu_array_after = '', $leftmenuwithoutmainarea = 0, $title = '') {
    global $user, $conf, $langs, $db;
    global $hookmanager;

    $searchform = '';
    $bookmarks = '';

    // Instantiate hooks of thirdparty module
    if (!is_object($hookmanager)) {
        include_once(DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php');
        $hookmanager = new HookManager($db);
    }
    $hookmanager->initHooks(array('searchform', 'leftblock'));

    print "\n";

    // Define $searchform
    if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_SOCIETE && $user->rights->societe->lire) {
        $langs->load("companies");
        $searchform.=printSearchForm(DOL_URL_ROOT . '/societe/societe.php', DOL_URL_ROOT . '/societe/societe.php', img_object('', 'company') . ' ' . $langs->trans("ThirdParties"), 'soc', 'socname');
    }

    if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_CONTACT && $user->rights->societe->lire) {
        $langs->load("companies");
        $searchform.=printSearchForm(DOL_URL_ROOT . '/contact/list.php', DOL_URL_ROOT . '/contact/list.php', img_object('', 'contact') . ' ' . $langs->trans("Contacts"), 'contact', 'contactname');
    }

    if ((($conf->product->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
            && $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE) {
        $langs->load("products");
        $searchform.=printSearchForm(DOL_URL_ROOT . '/product/liste.php', DOL_URL_ROOT . '/product/liste.php', img_object('', 'product') . ' ' . $langs->trans("Products") . "/" . $langs->trans("Services"), 'products', 'sall');
    }

    if ($conf->adherent->enabled && $conf->global->MAIN_SEARCHFORM_ADHERENT && $user->rights->adherent->lire) {
        $langs->load("members");
        $searchform.=printSearchForm(DOL_URL_ROOT . '/adherents/liste.php', DOL_URL_ROOT . '/adherents/liste.php', img_object('', 'user') . ' ' . $langs->trans("Members"), 'member', 'sall');
    }

    // Execute hook printSearchForm
    $parameters = array();
    $searchform.=$hookmanager->executeHooks('printSearchForm', $parameters); // Note that $action and $object may have been modified by some hooks
    // Define $bookmarks
    if ($conf->bookmark->enabled && $user->rights->bookmark->lire) {
        include_once (DOL_DOCUMENT_ROOT . '/bookmarks/bookmarks.lib.php');
        $langs->load("bookmarks");

        $bookmarks = printBookmarksList($db, $langs);
    }

// Load the top menu manager (only if not already done)
    if (!class_exists('MenuLeft')) {
        $menufound = 0;
        $dirmenus = array_merge(array("/core/menus/"), $conf->menus_modules);
        foreach ($dirmenus as $dirmenu) {
            $menufound = dol_include_once($dirmenu . "standard/" . $left_menu);
            if ($menufound)
                break;
        }
        if (!$menufound) { // If failed to include, we try with standard
            $top_menu = 'eldy_backoffice.php';
            include_once(DOL_DOCUMENT_ROOT . "/core/menus/standard/" . $top_menu);
        }
    }

    /*
      // Left column
      print '<!--Begin left area - menu '.$left_menu.'-->'."\n";

      print '<div class = "row">'."\n";
      print '<div class = "three columns hide-on-phones">'."\n";

      //$menuleft=new MenuLeft($db,$menu_array_before,$menu_array_after);
      //$menuleft->showmenu(); // output menu_array and menu found in database


      // Show other forms
      if ($searchform)
      {
      print "\n";
      print "<!-- Begin SearchForm -->\n";
      print '<div id = "blockvmenusearch" class = "blockvmenusearch">'."\n";
      print $searchform;
      print '</div>'."\n";
      print "<!-- End SearchForm -->\n";
      }

      // More search form
      if ($moresearchform)
      {
      print $moresearchform;
      }

      // Bookmarks
      if ($bookmarks)
      {
      print "\n";
      print "<!-- Begin Bookmarks -->\n";
      print '<div id = "blockvmenubookmarks" class = "blockvmenubookmarks">'."\n";
      print $bookmarks;
      print '</div>'."\n";
      print "<!-- End Bookmarks -->\n";
      }

      // Link to Speedealing wiki pages
      if ($helppagename && empty($conf->global->MAIN_HELP_DISABLELINK))
      {
      $langs->load("help");

      $helpbaseurl='';
      $helppage='';
      $mode='';

      // Get helpbaseurl, helppage and mode from helppagename and langs
      $arrayres=getHelpParamFor($helppagename,$langs);
      $helpbaseurl=$arrayres['helpbaseurl'];
      $helppage=$arrayres['helppage'];
      $mode=$arrayres['mode'];

      // Link to help pages
      if ($helpbaseurl && $helppage)
      {
      print '<div id = "blockvmenuhelp" class = "blockvmenuhelp">';
      print '<a class = "help" target = "_blank" title = "'.$langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage': 'GoToHelpPage');
      if ($mode == 'wiki') print ' - '.$langs->trans("PageWiki").' &quot;'.dol_escape_htmltag(strtr($helppage,'_',' ')).'&quot;';
      print '" href = "';
      print sprintf($helpbaseurl,urlencode(html_entity_decode($helppage)));
      print '">';
      print img_picto('', 'helpdoc').' ';
      print $langs->trans($mode == 'wiki' ? 'OnlineHelp': 'Help');
      //if ($mode == 'wiki') print ' ('.dol_trunc(strtr($helppage,'_',' '),8).')';
      print '</a>';
      print '</div>';
      }
      }

      // Link to bugtrack
      if (! empty($conf->global->MAIN_SHOW_BUGTRACK_LINK))
      {
      $bugbaseurl='http://savannah.nongnu.org/bugs/?';
      $bugbaseurl.='func=additem&group=dolibarr&privacy=1&';
      $bugbaseurl.="&details=";
      $bugbaseurl.=urlencode("\n\n\n\n\n-------------\n");
      $bugbaseurl.=urlencode($langs->trans("Version") . ": " . DOL_VERSION . "\n");
      $bugbaseurl.=urlencode($langs->trans("Server") . ": " . $_SERVER["SERVER_SOFTWARE"] . "\n");
      $bugbaseurl.=urlencode($langs->trans("Url") . ": " . $_SERVER["REQUEST_URI"] . "\n");
      print '<div class="help"><a class="help" target="_blank" href="' . $bugbaseurl . '">' . $langs->trans("FindBug") . '</a></div>';
      }
      print "\n";

      print "</div>\n";
      print "<!-- End left vertical menu -->\n";

      print "\n";

      // Execute hook printLeftBlock
      $parameters = array();
      $leftblock = $hookmanager->executeHooks('printLeftBlock', $parameters);	// Note that $action and $object may have been modified by some hooks
      print $leftblock;

      //print '</td>';

      print "\n";
      print '<!-- End of left area -->' . "\n";
      print "\n";
      print '<!-- Begin right area -->'."\n";
     */

    if (empty($leftmenuwithoutmainarea))
        main_area($title);
}
Exemple #4
0
/**
 *  Show left menu bar
 *  @param      menu_array_before 	       Table of menu entries to show before entries of menu handler
 *  @param      helppagename    	       Name of wiki page for help ('' by default).
 * 				                           Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
 * 									                  For other external page: http://server/url
 *  @param      moresearchform             Search Form Permanent Supplemental
 *  @param      menu_array_after           Table of menu entries to show after entries of menu handler
 *  @param      leftmenuwithoutmainarea    Must be set to 1. 0 by default for backward compatibility with old modules.
 *  @param      title                      Title of web page
 */
function left_menu($menu_array_before, $helppagename = '', $moresearchform = '', $menu_array_after = '', $leftmenuwithoutmainarea = 0, $title = '')
{
    global $user, $conf, $langs, $db;
    $searchform = '';
    $bookmarks = '';
    if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
        print "\n" . '<div class="ui-layout-west"> <!-- Begin left layout -->' . "\n";
    } else {
        print '<td class="vmenu" valign="top">';
    }
    print "\n";
    // Instantiate hooks of thirdparty module
    if (is_array($conf->hooks_modules) && !empty($conf->hooks_modules)) {
        require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
        $object = new CommonObject($db);
        $object->callHooks(array('searchform', 'leftblock'));
    }
    // Define $searchform
    if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_SOCIETE && $user->rights->societe->lire) {
        $langs->load("companies");
        $searchform .= printSearchForm(DOL_URL_ROOT . '/societe/societe.php', DOL_URL_ROOT . '/societe/societe.php', img_object('', 'company') . ' ' . $langs->trans("ThirdParties"), 'soc', 'socname');
    }
    if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_CONTACT && $user->rights->societe->lire) {
        $langs->load("companies");
        $searchform .= printSearchForm(DOL_URL_ROOT . '/contact/index.php', DOL_URL_ROOT . '/contact/index.php', img_object('', 'contact') . ' ' . $langs->trans("Contacts"), 'contact', 'contactname');
    }
    if (($conf->product->enabled && $user->rights->produit->lire || $conf->service->enabled && $user->rights->service->lire) && $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE) {
        $langs->load("products");
        $searchform .= printSearchForm(DOL_URL_ROOT . '/product/liste.php', DOL_URL_ROOT . '/product/liste.php', img_object('', 'product') . ' ' . $langs->trans("Products") . "/" . $langs->trans("Services"), 'products', 'sall');
    }
    if ($conf->adherent->enabled && $conf->global->MAIN_SEARCHFORM_ADHERENT && $user->rights->adherent->lire) {
        $langs->load("members");
        $searchform .= printSearchForm(DOL_URL_ROOT . '/adherents/liste.php', DOL_URL_ROOT . '/adherents/liste.php', img_object('', 'user') . ' ' . $langs->trans("Members"), 'member', 'sall');
    }
    // Search form hook for external modules
    if (!empty($object->hooks)) {
        $searchform .= '<!-- Begin search form hook area -->' . "\n";
        foreach ($object->hooks as $hook) {
            if ($hook['type'] == 'searchform' && !empty($hook['modules'])) {
                foreach ($hook['modules'] as $module) {
                    if (method_exists($module, 'printSearchForm')) {
                        $searchform .= $module->printSearchForm();
                    }
                }
            }
        }
        $searchform .= "\n" . '<!-- End of search form hook area -->' . "\n";
    }
    // Define $bookmarks
    if ($conf->bookmark->enabled && $user->rights->bookmark->lire) {
        include_once DOL_DOCUMENT_ROOT . '/bookmarks/bookmarks.lib.php';
        $langs->load("bookmarks");
        $bookmarks = printBookmarksList($db, $langs);
    }
    $left_menu = isset($conf->browser->phone) ? $conf->smart_menu : $conf->top_menu;
    if (GETPOST('menu')) {
        $left_menu = GETPOST('menu');
    }
    // menu=eldy_backoffice.php
    // Load the left menu manager
    $result = dol_include_once("/includes/menus/standard/" . $left_menu);
    if (!$result) {
        $left_menu = 'eldy_backoffice.php';
        include_once DOL_DOCUMENT_ROOT . "/includes/menus/standard/" . $left_menu;
    }
    // Left column
    print '<!-- Begin left area - menu ' . $left_menu . ' -->' . "\n";
    print '<div class="vmenu">' . "\n";
    $menuleft = new MenuLeft($db, $menu_array_before, $menu_array_after);
    $menuleft->showmenu();
    // output menu_array and menu found in database
    // Show other forms
    if ($searchform) {
        print "\n";
        print "<!-- Begin SearchForm -->\n";
        print '<div id="blockvmenusearch" class="blockvmenusearch">' . "\n";
        print $searchform;
        print '</div>' . "\n";
        print "<!-- End SearchForm -->\n";
    }
    // More search form
    if ($moresearchform) {
        print $moresearchform;
    }
    // Bookmarks
    if ($bookmarks) {
        print "\n";
        print "<!-- Begin Bookmarks -->\n";
        print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . "\n";
        print $bookmarks;
        print '</div>' . "\n";
        print "<!-- End Bookmarks -->\n";
    }
    // Link to Dolibarr wiki pages
    if ($helppagename && empty($conf->global->MAIN_HELP_DISABLELINK)) {
        $langs->load("help");
        $helpbaseurl = '';
        $helppage = '';
        $mode = '';
        // Get helpbaseurl, helppage and mode from helppagename and langs
        $arrayres = getHelpParamFor($helppagename, $langs);
        $helpbaseurl = $arrayres['helpbaseurl'];
        $helppage = $arrayres['helppage'];
        $mode = $arrayres['mode'];
        // Link to help pages
        if ($helpbaseurl && $helppage) {
            print '<div id="blockvmenuhelp" class="blockvmenuhelp">';
            print '<a class="help" target="_blank" title="' . $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage');
            if ($mode == 'wiki') {
                print ' - ' . $langs->trans("PageWiki") . ' &quot;' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '&quot;';
            }
            print '" href="';
            print sprintf($helpbaseurl, urlencode(html_entity_decode($helppage)));
            print '">';
            print img_picto('', DOL_URL_ROOT . '/theme/common/helpdoc.png', '', 1) . ' ';
            print $langs->trans($mode == 'wiki' ? 'OnlineHelp' : 'Help');
            //if ($mode == 'wiki') print ' ('.dol_trunc(strtr($helppage,'_',' '),8).')';
            print '</a>';
            print '</div>';
        }
    }
    // Link to bugtrack
    if (!empty($conf->global->MAIN_SHOW_BUGTRACK_LINK)) {
        $bugbaseurl = 'http://savannah.nongnu.org/bugs/?';
        $bugbaseurl .= 'func=additem&group=dolibarr&privacy=1&';
        $bugbaseurl .= "&details=";
        $bugbaseurl .= urlencode("\n\n\n\n\n-------------\n");
        $bugbaseurl .= urlencode($langs->trans("Version") . ": " . DOL_VERSION . "\n");
        $bugbaseurl .= urlencode($langs->trans("Server") . ": " . $_SERVER["SERVER_SOFTWARE"] . "\n");
        $bugbaseurl .= urlencode($langs->trans("Url") . ": " . $_SERVER["REQUEST_URI"] . "\n");
        print '<div class="help"><a class="help" target="_blank" href="' . $bugbaseurl . '">' . $langs->trans("FindBug") . '</a></div>';
    }
    print "\n";
    print "</div>\n";
    print "<!-- End left vertical menu -->\n";
    print "\n";
    // Left block hook for external modules
    if (!empty($object->hooks)) {
        print '<!-- Begin left block hook area -->' . "\n";
        foreach ($object->hooks as $hook) {
            if ($hook['type'] == 'leftblock' && !empty($hook['modules'])) {
                foreach ($hook['modules'] as $module) {
                    if (method_exists($module, 'printLeftBlock')) {
                        $module->printLeftBlock();
                    }
                }
            }
        }
        print "\n" . '<!-- End of left block hook area -->' . "\n";
    }
    if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
        print '</div> <!-- End left layout -->' . "\n";
    } else {
        print '</td>';
    }
    print "\n";
    print '<!-- End of left area -->' . "\n";
    print "\n";
    print '<!-- Begin right area -->' . "\n";
    if (empty($leftmenuwithoutmainarea)) {
        main_area($title);
    }
}