diff --git a/ChangeLog b/ChangeLog index 969b7ec5ccd4c554ae4005b6623599686da00b1c..f40003bdb3298ab0d852dcb75b3b6e582b581a43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ $Id$ ***** ChangeLog for 3.1 compared to 3.0 ***** For users: +- New: A specialized menu is now used when using smartphones. - New: Can add information on current user on odt generation - New: Prefix on third party is not used by default. Hidden option SOCIETE_USEPREFIX can restore old feature. diff --git a/htdocs/admin/menus.php b/htdocs/admin/menus.php index bc7a429b165436012c9754150401163a736f12ae..30cc01bb3567fd908b4552e5c5b6063848b65458 100644 --- a/htdocs/admin/menus.php +++ b/htdocs/admin/menus.php @@ -164,18 +164,15 @@ if (isset($_GET["action"]) && $_GET["action"] == 'edit') print '</tr>'; // Menu smartphone - if ($conf->global->MAIN_FEATURES_LEVEL >= 1) - { - $var=!$var; - print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMenuSmartphoneManager").'</td>'; - print '<td>'; - print $htmladmin->select_menu(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED, 'main_menu_smartphone', $dirsmartphone, empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?'':' disabled="disabled"'); - print '</td>'; - print '<td>'; - print $htmladmin->select_menu(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED, 'main_menufront_smartphone', $dirsmartphone, empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?'':' disabled="disabled"'); - print '</td>'; - print '</tr>'; - } + $var=!$var; + print '<tr '.$bc[$var].'><td>'.$langs->trans("DefaultMenuSmartphoneManager").'</td>'; + print '<td>'; + print $htmladmin->select_menu(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED, 'main_menu_smartphone', array($dirtop,$dirsmartphone), empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?'':' disabled="disabled"'); + print '</td>'; + print '<td>'; + print $htmladmin->select_menu(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED, 'main_menufront_smartphone', array($dirtop,$dirsmartphone), empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?'':' disabled="disabled"'); + print '</td>'; + print '</tr>'; print '</table>'; diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index f7035f785ca028586d672ff3c6bba73bfdf18ba6..7ab11687460d5b68aa1bb1e93b0780e75d8333cc 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -31,7 +31,7 @@ /** * \class Conf - * \brief Classe de stockage de la config courante + * \brief Class to stock current configuration */ class Conf { @@ -207,8 +207,8 @@ class Conf // Clean some variables if (empty($this->global->MAIN_MENU_STANDARD)) $this->global->MAIN_MENU_STANDARD="eldy_backoffice.php"; if (empty($this->global->MAIN_MENUFRONT_STANDARD)) $this->global->MAIN_MENUFRONT_STANDARD="eldy_frontoffice.php"; - if (empty($this->global->MAIN_MENU_SMARTPHONE)) $this->global->MAIN_MENU_SMARTPHONE="iphone_backoffice.php"; - if (empty($this->global->MAIN_MENUFRONT_SMARTPHONE)) $this->global->MAIN_MENUFRONT_SMARTPHONE="iphone_frontoffice.php"; + if (empty($this->global->MAIN_MENU_SMARTPHONE)) $this->global->MAIN_MENU_SMARTPHONE="smartphone_backoffice.php"; + if (empty($this->global->MAIN_MENUFRONT_SMARTPHONE)) $this->global->MAIN_MENUFRONT_SMARTPHONE="smartphone_frontoffice.php"; // Variable globales LDAP if (empty($this->global->LDAP_FIELD_FULLNAME)) $this->global->LDAP_FIELD_FULLNAME=''; @@ -426,8 +426,26 @@ class Conf // For backward compatibility $this->produit=$this->product; - } + + // Define menu manager in setup + if (empty($user->societe_id)) // If internal user or not defined + { + $this->top_menu=(empty($this->global->MAIN_MENU_STANDARD_FORCED)?$this->global->MAIN_MENU_STANDARD:$this->global->MAIN_MENU_STANDARD_FORCED); + $this->smart_menu=(empty($this->global->MAIN_MENU_SMARTPHONE_FORCED)?$this->global->MAIN_MENU_SMARTPHONE:$this->global->MAIN_MENU_SMARTPHONE_FORCED); + // For backward compatibility + if ($this->top_menu == 'eldy.php') $this->top_menu='eldy_backoffice.php'; + if ($this->top_menu == 'rodolphe.php') $this->top_menu='eldy_backoffice.php'; + } + else // If external user + { + $this->top_menu=(empty($this->global->MAIN_MENUFRONT_STANDARD_FORCED)?$this->global->MAIN_MENUFRONT_STANDARD:$this->global->MAIN_MENUFRONT_STANDARD_FORCED); + $this->smart_menu=(empty($this->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$this->global->MAIN_MENUFRONT_SMARTPHONE:$this->global->MAIN_MENUFRONT_SMARTPHONE_FORCED); + // For backward compatibility + if ($this->top_menu == 'eldy.php') $this->top_menu='eldy_frontoffice.php'; + if ($this->top_menu == 'rodolphe.php') $this->top_menu='eldy_frontoffice.php'; + } + } } ?> diff --git a/htdocs/core/class/html.formadmin.class.php b/htdocs/core/class/html.formadmin.class.php index 4d43cf32ccd2c2febdc4ffbe5ef7965f3e84db32..dd215a8f0cd88d8f7ecd5d1735b73cd425592d4c 100644 --- a/htdocs/core/class/html.formadmin.class.php +++ b/htdocs/core/class/html.formadmin.class.php @@ -126,7 +126,7 @@ class FormAdmin * Return list of available menus (eldy_backoffice, ...) * @param selected Preselected menu value * @param htmlname Name of html select - * @param dirmenu Directory to scan + * @param dirmenu Directory to scan or array of directories to scan * @param moreattrib More attributes on html select tag */ function select_menu($selected='', $htmlname, $dirmenu, $moreattrib='') @@ -138,39 +138,44 @@ class FormAdmin $menuarray=array(); foreach ($conf->file->dol_document_root as $dirroot) { - $dir=$dirroot.$dirmenu; - if (is_dir($dir)) + if (is_array($dirmenu)) $dirmenus=$dirmenu; + else $dirmenus=array($dirmenu); + foreach($dirmenus as $dirtoscan) { - $handle=opendir($dir); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_file($dir."/".$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') - { - if (preg_match('/lib\.php$/i',$file)) continue; // We exclude library files - $filelib=preg_replace('/\.php$/i','',$file); - $prefix=''; - if (preg_match('/^eldy|^iphone/i',$file)) $prefix='0'; // 0=Recommanded, 1=Experimental, 2=Other - else $prefix='2'; - - if ($file == $selected) - { - $menuarray[$prefix.'_'.$file]='<option value="'.$file.'" selected="selected">'.$filelib.'</option>'; - } - else - { - $menuarray[$prefix.'_'.$file]='<option value="'.$file.'">'.$filelib.'</option>'; - } - } - } - closedir($handle); - } + $dir=$dirroot.$dirtoscan; + if (is_dir($dir)) + { + $handle=opendir($dir); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_file($dir."/".$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') + { + if (preg_match('/lib\.php$/i',$file)) continue; // We exclude library files + $filelib=preg_replace('/\.php$/i','',$file); + $prefix=''; + if (preg_match('/^eldy|^smartphone/i',$file)) $prefix='0'; // 0=Recommanded, 1=Experimental, 2=Other + else $prefix='2'; + + if ($file == $selected) + { + $menuarray[$prefix.'_'.$file]='<option value="'.$file.'" selected="selected">'.$filelib.'</option>'; + } + else + { + $menuarray[$prefix.'_'.$file]='<option value="'.$file.'">'.$filelib.'</option>'; + } + } + } + closedir($handle); + } + } } } ksort($menuarray); - // Affichage liste deroulante des menus + // Output combo list of menus print '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($moreattrib?' '.$moreattrib:'').'>'; $oldprefix=''; foreach ($menuarray as $key => $val) @@ -202,7 +207,8 @@ class FormAdmin { global $langs,$conf; - $expdevmenu=array('iphone_backoffice.php','iphone_frontoffice.php'); // Menu to disable if $conf->global->MAIN_FEATURES_LEVEL is not set + //$expdevmenu=array('smartphone_backoffice.php','smartphone_frontoffice.php'); // Menu to disable if $conf->global->MAIN_FEATURES_LEVEL is not set + $expdevmenu=array(); $menuarray=array(); diff --git a/htdocs/core/class/smartphone.class.php b/htdocs/core/class/smartphone.class.php index 14e391f7e3ea0966ed534696086b9876a9980287..af0535e69fb4024dd36648482a297608ed30bd6e 100644 --- a/htdocs/core/class/smartphone.class.php +++ b/htdocs/core/class/smartphone.class.php @@ -26,7 +26,7 @@ /** * \class Smartphone - * \brief Classe de gestion des smartphones + * \brief Class to manage Smartphones */ class Smartphone { @@ -41,52 +41,25 @@ class Smartphone { * Constructor for class * @param DB Handler acces base de donnees */ - function Smartphone($DB) + function Smartphone($DB,$phone) { $this->db = $DB; - } - /** - * Get template directory - */ - function getTemplateDir() - { - // iWebKit template - if (preg_match('/android|blackberry|iphone|maemo/i',$this->phone)) - { - $this->theme = 'default'; - $this->template_dir=DOL_DOCUMENT_ROOT."/theme/phones/smartphone/tpl/"; - } - // Special template - elseif (file_exists(DOL_DOCUMENT_ROOT."/theme/phones/".$this->phone)) - { - $this->theme = 'default'; - $this->template_dir=DOL_DOCUMENT_ROOT."/theme/phones/".$this->phone."/tpl/"; - } - // Default template - else - { - $this->template_dir=DOL_DOCUMENT_ROOT."/theme/phones/others/tpl/"; - } - } + $dirt='others'; // default - /** - * Show HTML header - * @param title Web page title - */ - function smartheader($type='default') - { - global $conf; - - if ($type == 'default') include_once($this->template_dir.'header.tpl.php'); - } + if (preg_match('/android|blackberry|iphone|maemo/i',$phone)) // iWebKit template + { + $this->theme = 'default'; + $dirt='smartphone'; + } + elseif (file_exists(DOL_DOCUMENT_ROOT."/theme/phones/".$phone)) // Special template + { + $this->theme = 'default'; + $dirt=$phone; + } - /** - * Show HTML footer - */ - function smartfooter() - { - include_once($this->template_dir.'footer.tpl.php'); + $this->phone=$phone; + $this->template_dir=DOL_DOCUMENT_ROOT.'/theme/phones/'.$dirt.'/tpl/'; } /** @@ -96,7 +69,7 @@ class Smartphone { { global $conf, $langs; - if (! $conf->smart_menu) $conf->smart_menu ='iphone_backoffice.php'; + if (! $conf->smart_menu) $conf->smart_menu ='smartphone_backoffice.php'; $smart_menu=$conf->smart_menu; if (GETPOST('top_menu')) $smart_menu=GETPOST('top_menu'); @@ -104,7 +77,7 @@ class Smartphone { $result=@include_once(DOL_DOCUMENT_ROOT ."/includes/menus/smartphone/".$smart_menu); if (! $result) // If failed to include, we try with standard { - $conf->smart_menu='iphone_backoffice.php'; + $conf->smart_menu='smartphone_backoffice.php'; include_once(DOL_DOCUMENT_ROOT ."/includes/menus/smartphone/".$smart_menu); } $menusmart = new MenuSmart($this->db); diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 3e81c765cac2a28d5562df9c785c3a004d87449f..9fc34c51571c6e86a604b9dff39083fd894b676d 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -92,7 +92,7 @@ function donnefocus() { <?php if ($captcha) { ?> <tr><td valign="middle" nowrap="nowrap"> <b><?php echo $langs->trans('SecurityCode'); ?></b></td> - <td valign="top" nowrap="nowrap" align="left" class="none"> + <td valign="middle" nowrap="nowrap" align="left" class="none"> <table style="width: 100px;"><tr> <td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="3"></td> diff --git a/htdocs/includes/menus/init_menu_iphone.sql b/htdocs/includes/menus/init_menu_smartphone.sql old mode 100644 new mode 100755 similarity index 100% rename from htdocs/includes/menus/init_menu_iphone.sql rename to htdocs/includes/menus/init_menu_smartphone.sql diff --git a/htdocs/includes/menus/smartphone/iphone.lib.php b/htdocs/includes/menus/smartphone/smartphone.lib.php old mode 100644 new mode 100755 similarity index 90% rename from htdocs/includes/menus/smartphone/iphone.lib.php rename to htdocs/includes/menus/smartphone/smartphone.lib.php index 1fb1688cbc12e788177a2368b4542ab98a3f8aca..d9a64f4bd65e729320d39e794f5cb0cd244dce88 --- a/htdocs/includes/menus/smartphone/iphone.lib.php +++ b/htdocs/includes/menus/smartphone/smartphone.lib.php @@ -19,30 +19,30 @@ */ /** - * \file htdocs/includes/menus/smartphone/iphone.lib.php - * \brief Library for file iphone menus + * \file htdocs/includes/menus/smartphone/smartphone.lib.php + * \brief Library for file smartphone menus * \version $Id$ */ /** - * Core function to output top menu iphone + * Core function to output top menu smartphone * * @param $db * @param $atarget * @param $type_user 0=Internal,1=External,2=All */ -function print_iphone_menu($db,$atarget,$type_user) +function print_smartphone_menu($db,$atarget,$type_user) { require_once(DOL_DOCUMENT_ROOT."/core/class/menubase.class.php"); global $user,$conf,$langs,$dolibarr_main_db_name; - + $submenus=''; - $menutop = new Menubase($db,'iphone','top'); - $menuleft = new Menubase($db,'iphone','left'); - $tabMenu = $menutop->menuTopCharger($type_user, '', 'iphone'); + $menutop = new Menubase($db,'smartphone','top'); + $menuleft = new Menubase($db,'smartphone','left'); + $tabMenu = $menutop->menuTopCharger($type_user, '', 'smartphone'); $numTabMenu = count($tabMenu); print_start_menu_array(); @@ -64,12 +64,12 @@ function print_iphone_menu($db,$atarget,$type_user) $title=$tabMenu[$i]['titre']; // To remove & and special chars: $title=dol_string_unaccent(dol_string_nospecial(dol_html_entity_decode($tabMenu[$i]['titre'],ENT_QUOTES,'UTF-8'),'',array('&'))); print_text_menu_entry($title); - + $newmenu = new Menu(); - $leftmenu = $menuleft->menuLeftCharger($newmenu,$tabMenu[$i]['mainmenu'],'',($user->societe_id?1:0),'iphone'); + $leftmenu = $menuleft->menuLeftCharger($newmenu,$tabMenu[$i]['mainmenu'],'',($user->societe_id?1:0),'smartphone'); $menus = $leftmenu->liste; //var_dump($menus); - + print '<ul>'; if (is_array($menus) && !empty($menus)) { @@ -89,11 +89,11 @@ function print_iphone_menu($db,$atarget,$type_user) print_text_menu_entry($title); if (empty($menus[$j+1]['level'])) print '</a>'; } - + if ($menus[$j]['level'] > 0) { if ($menus[$j-1]['level'] == 0) print_start_submenu_array(); - + $url=dol_buildpath($menus[$j]['url'],1); $url=preg_replace('/&.*/i','',$url); print_start_menu_entry(); @@ -103,10 +103,10 @@ function print_iphone_menu($db,$atarget,$type_user) print_text_menu_entry($title); print '</a>'; print_end_menu_entry(); - + if (empty($menus[$j+1]['level'])) print_end_menu(); } - + if (empty($menus[$j+1]['level'])) print_end_menu_entry(); } } @@ -115,7 +115,7 @@ function print_iphone_menu($db,$atarget,$type_user) } } } - + print_end_menu(); print "\n"; } diff --git a/htdocs/includes/menus/smartphone/iphone_backoffice.php b/htdocs/includes/menus/smartphone/smartphone_backoffice.php old mode 100644 new mode 100755 similarity index 72% rename from htdocs/includes/menus/smartphone/iphone_backoffice.php rename to htdocs/includes/menus/smartphone/smartphone_backoffice.php index b976eb44c6f822a7ec5d548f4a86f823f95afade..153437a7dcf53dbac853dee01da4749042b6a7f0 --- a/htdocs/includes/menus/smartphone/iphone_backoffice.php +++ b/htdocs/includes/menus/smartphone/smartphone_backoffice.php @@ -18,19 +18,19 @@ */ /** - * \file htdocs/includes/menus/smartphone/iphone_backoffice.php - * \brief Gestionnaire nomme iphone du menu smartphone + * \file htdocs/includes/menus/smartphone/smartphone_backoffice.php + * \brief Gestionnaire nomme smartphone du menu smartphone * \version $Id$ */ /** * \class MenuSmart - * \brief Class to manage smartphone menu Iphone (for internal users) + * \brief Class to manage smartphone menu smartphone (for internal users) */ class MenuSmart { - var $require_left=array("iphone_backoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier + var $require_left=array("smartphone_backoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier var $hideifnotallowed=0; // Put 0 for back office menu, 1 for front office menu var $atarget=""; // Valeur du target a utiliser dans les liens @@ -50,9 +50,9 @@ class MenuSmart { */ function showmenu() { - require_once(DOL_DOCUMENT_ROOT.'/includes/menus/smartphone/iphone.lib.php'); + require_once(DOL_DOCUMENT_ROOT.'/includes/menus/smartphone/smartphone.lib.php'); - print_iphone_menu($this->db,$this->atarget,$this->hideifnotallowed); + print_smartphone_menu($this->db,$this->atarget,$this->hideifnotallowed); } } diff --git a/htdocs/includes/menus/smartphone/iphone_frontoffice.php b/htdocs/includes/menus/smartphone/smartphone_frontoffice.php old mode 100644 new mode 100755 similarity index 73% rename from htdocs/includes/menus/smartphone/iphone_frontoffice.php rename to htdocs/includes/menus/smartphone/smartphone_frontoffice.php index 125f1b3fddb9bc283298a2bb2fdec3fac7426023..ce1e39d64aab90c3ab29dd0eb839f16de22aba28 --- a/htdocs/includes/menus/smartphone/iphone_frontoffice.php +++ b/htdocs/includes/menus/smartphone/smartphone_frontoffice.php @@ -18,19 +18,19 @@ */ /** - * \file htdocs/includes/menus/smartphone/iphone_frontoffice.php - * \brief Gestionnaire nomme iphone du menu smartphone + * \file htdocs/includes/menus/smartphone/smartphone_frontoffice.php + * \brief Gestionnaire nomme smartphone du menu smartphone * \version $Id$ */ /** * \class MenuSmart - * \brief Class to manage smartphone menu Iphone (for external users) + * \brief Class to manage smartphone menu smartphone (for external users) */ class MenuSmart { - var $require_left=array("iphone_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier + var $require_left=array("smartphone_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier var $hideifnotallowed=1; // Put 0 for back office menu, 1 for front office menu var $atarget=""; // Valeur du target a utiliser dans les liens @@ -50,9 +50,9 @@ class MenuSmart { */ function showmenu() { - require_once(DOL_DOCUMENT_ROOT.'/includes/menus/smartphone/iphone.lib.php'); + require_once(DOL_DOCUMENT_ROOT.'/includes/menus/smartphone/smartphone.lib.php'); - print_iphone_menu($this->db,$this->atarget,$this->hideifnotallowed); + print_smartphone_menu($this->db,$this->atarget,$this->hideifnotallowed); } } diff --git a/htdocs/index.php b/htdocs/index.php index 48ed24812439891e8d964dc12446d4ba1c4c09f8..297836d9b5aa9d9dd63ca92bfdb9657aabd842d5 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -46,16 +46,6 @@ if (! isset($_GET["mainmenu"])) $_GET["mainmenu"]="home"; * View */ -// Smartphone -if (class_exists('Smartphone')) -{ - // Template directory - $smartphone->getTemplateDir(); - $smartphone->title = $langs->trans("Home"); - $smartphone->smartmenu(); - exit; -} - // Check if company name is defined (first install) if (!isset($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_NOM)) { @@ -63,6 +53,18 @@ if (!isset($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_IN exit; } + +// If smartphone mode, we do no show main page, we show only menu +if (preg_match('/^smartphone/',$conf->smart_menu) && isset($conf->browser->phone)) +{ + include_once(DOL_DOCUMENT_ROOT.'/core/class/smartphone.class.php'); + $smartphone = new Smartphone($db,$conf->browser->phone); // This class is only to know template dir according to phone type + $smartphone->title = $langs->trans("Home"); + $smartphone->smartmenu(); + exit; +} + + llxHeader(); print_fiche_titre($langs->trans("HomeArea")); diff --git a/htdocs/install/mysql/data/llx_const.sql b/htdocs/install/mysql/data/llx_const.sql index 626788975b44bdd404a121f7d176ecb72d1bb620..acfd83d1396e7fb495a9fd9090f3f08cbe30f4df 100644 --- a/htdocs/install/mysql/data/llx_const.sql +++ b/htdocs/install/mysql/data/llx_const.sql @@ -62,8 +62,8 @@ insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_S insert into llx_const (name, value, type, note, visible) values ('MAIN_MENU_STANDARD','eldy_backoffice.php','chaine','Module de gestion de la barre de menu pour utilisateurs internes',0); insert into llx_const (name, value, type, note, visible) values ('MAIN_MENUFRONT_STANDARD','eldy_frontoffice.php','chaine','Module de gestion de la barre de menu pour utilisateurs externes',0); -insert into llx_const (name, value, type, note, visible) values ('MAIN_MENU_SMARTPHONE','iphone_backoffice.php','chaine','Module de gestion de la barre de menu smartphone pour utilisateurs internes',0); -insert into llx_const (name, value, type, note, visible) values ('MAIN_MENUFRONT_SMARTPHONE','iphone_frontoffice.php','chaine','Module de gestion de la barre de menu smartphone pour utilisateurs externes',0); +insert into llx_const (name, value, type, note, visible) values ('MAIN_MENU_SMARTPHONE','eldy_backoffice.php','chaine','Module de gestion de la barre de menu smartphone pour utilisateurs internes',0); +insert into llx_const (name, value, type, note, visible) values ('MAIN_MENUFRONT_SMARTPHONE','eldy_frontoffice.php','chaine','Module de gestion de la barre de menu smartphone pour utilisateurs externes',0); insert into llx_const (name, value, type, note, visible) values ('MAIN_THEME','eldy','chaine','Default theme',0); diff --git a/htdocs/lib/security.lib.php b/htdocs/lib/security.lib.php index d297804754d7ce052e76fb9af03e4169414c4e46..a1f178cfc6dbc0520865f76aeb68630f9bbafd71 100644 --- a/htdocs/lib/security.lib.php +++ b/htdocs/lib/security.lib.php @@ -57,10 +57,11 @@ function dol_loginfunction($langs,$conf,$mysoc) if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$conf->global->MAIN_APPLICATION_TITLE; // Select templates - if (class_exists('Smartphone')) + if (preg_match('/^smartphone/',$conf->smart_menu) && isset($conf->browser->phone)) { // Template directory - $smartphone->getTemplateDir(); + include_once(DOL_DOCUMENT_ROOT.'/core/class/smartphone.class.php'); + $smartphone = new Smartphone($db,$conf->browser->phone); // This class is only to know template dir according to phone type $smartphone->title = $title; $template_dir = $smartphone->template_dir; } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 007295de3cf75ce166f49889b8394c410240c8fe..98b1c393cc3c04931e3f50f1e63579ae664cb9ca 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -264,14 +264,6 @@ if (sizeof($conf->need_smarty) > 0) } } -// Init Smartphone (for dev only) -if ($conf->global->MAIN_FEATURES_LEVEL == 2 && isset($conf->browser->phone)) -{ - include_once(DOL_DOCUMENT_ROOT."/core/class/smartphone.class.php"); - - $smartphone = new Smartphone($db); - $smartphone->phone = $conf->browser->phone; -} /* * Phase authentication / login @@ -666,23 +658,6 @@ if (! empty($_GET["theme"])) $conf->css = "/theme/".$conf->theme."/style.css.php"; } -// Define menu manager to use -if (empty($user->societe_id)) // If internal user or not defined -{ - $conf->top_menu=(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED); - $conf->smart_menu=(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED); - // For backward compatibility - if ($conf->top_menu == 'eldy.php') $conf->top_menu='eldy_backoffice.php'; - if ($conf->top_menu == 'rodolphe.php') $conf->top_menu='eldy_backoffice.php'; -} -else // If external user -{ - $conf->top_menu=(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED); - $conf->smart_menu=(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED); - // For backward compatibility - if ($conf->top_menu == 'eldy.php') $conf->top_menu='eldy_frontoffice.php'; - if ($conf->top_menu == 'rodolphe.php') $conf->top_menu='eldy_frontoffice.php'; -} if (! defined('NOLOGIN')) { @@ -704,6 +679,7 @@ if (! defined('NOLOGIN')) $user->getrights(); } + dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]); //Another call for easy debugg //dol_syslog("Access to ".$_SERVER["PHP_SELF"].' GET='.join(',',array_keys($_GET)).'->'.join(',',$_GET).' POST:'.join(',',array_keys($_POST)).'->'.join(',',$_POST)); @@ -770,8 +746,8 @@ if (! function_exists("llxHeader")) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers top_menu($head, $title, $target, $disablejs, $disablehead, $arrayofjs, $arrayofcss, $morequerystring); - left_menu('', $help_url, '', '', 1); - main_area(); + left_menu('', $help_url, '', '', 1, $title); + main_area($title); } } @@ -1075,9 +1051,9 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a // Show menu $menutop = new MenuTop($db); $menutop->atarget=$target; - $menutop->showmenu(); + $menutop->showmenu(); // This contains a \n - print "\n</div>\n"; + print "</div>\n"; // Link to login card $loginhtmltext=''; $logintext=''; @@ -1180,6 +1156,8 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a print "<!-- End top horizontal menu -->\n"; if (! $conf->use_javascript_ajax || ! $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) print '<table width="100%" class="notopnoleftnoright" summary="leftmenutable" id="undertopmenu"><tr>'; + + } @@ -1192,16 +1170,15 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a * @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) +function left_menu($menu_array_before, $helppagename='', $moresearchform='', $menu_array_after='', $leftmenuwithoutmainarea=0, $title='') { global $user, $conf, $langs, $db; $searchform=''; $bookmarks=''; - // print '<div class="vmenuplusfiche">'."\n"; - 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">'; @@ -1262,7 +1239,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me } // Left column - print '<!-- Begin left vertical menu '.$left_menu.' -->'."\n"; + print '<!-- Begin left area - menu '.$left_menu.' -->'."\n"; print '<div class="vmenu">'."\n"; @@ -1351,17 +1328,19 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) print '</div> <!-- End left layout -->'."\n"; else print '</td>'; - print "\n".'<!-- End of left column, begin right area -->'."\n\n"; - // print '</div>'."\n"; - // print '<div class="vmenuplusfiche">'."\n"; + print "\n"; + print '<!-- End of left area -->'."\n"; + print "\n"; + print '<!-- Begin right area -->'."\n"; + - if (empty($leftmenuwithoutmainarea)) main_area(); + if (empty($leftmenuwithoutmainarea)) main_area($title); } /** * Begin main area */ -function main_area() +function main_area($title='') { global $conf, $langs; @@ -1371,12 +1350,26 @@ function main_area() print '<table width="100%" class="notopnoleftnoright" summary="centermenutable" id="undertopmenu"><tr>'; } - print '<td valign="top"><!-- Begin right area --> '."\n"; + print '<td valign="top">'."\n"; print "\n"; print '<div class="fiche"> <!-- begin div class="fiche" -->'."\n"; - + if (preg_match('/^smartphone/',$conf->smart_menu) && isset($conf->browser->phone)) + { + print '<div data-role="page"> <!-- begin div data-role="page" -->'; + + print '<div data-role="header" data-nobackbtn="false" data-theme="b">'; + print '<div id="dol-homeheader">'."\n"; + $appli='Dolibarr'; + if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; + print $appli; + print '</div>'."\n"; + print '</div>'."\n"; + print "\n"; + + print '<div data-role="content"> <!-- begin div data-role="content" -->'."\n"; + } if (! empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) print info_admin($langs->trans("WarningYouAreInMaintenanceMode",$conf->global->MAIN_ONLY_LOGIN_ALLOWED)); } @@ -1420,12 +1413,12 @@ function getHelpParamFor($helppagename,$langs) /** - * \brief Show a search area - * \param urlaction Url post - * \param urlobject Url of the link under the search box - * \param title Title search area - * \param htmlmodesearch 'search' - * \param htmlinputname Field Name input form + * Show a search area + * @param urlaction Url post + * @param urlobject Url of the link under the search box + * @param title Title search area + * @param htmlmodesearch 'search' + * @param htmlinputname Field Name input form */ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch='search',$htmlinputname) { @@ -1448,6 +1441,7 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch='search',$ /** * Return list of login method of third party module. * @return array + * TODO Move this into security.lib.php */ function getLoginMethod() { @@ -1500,9 +1494,9 @@ function getLoginMethod() } /** - * \brief Show HTML footer DIV + BODY + HTML - * \remarks Close 2 div - * \param foot A text to add in HTML generated page + * Show HTML footer + * Close div /DIV data-role=page + /DIV class=fiche + /DIV /DIV main layout + /BODY + /HTML + * @param foot A text to add in HTML generated page */ if (! function_exists("llxFooter")) { @@ -1529,12 +1523,19 @@ if (! function_exists("llxFooter")) define("MAIN_CORE_ERROR",0); } - print "\n\n".'</div> <!-- end div class="fiche" -->'."\n"; + print "\n\n"; + if (preg_match('/^smartphone/',$conf->smart_menu) && isset($conf->browser->phone)) + { + print '</div> <!-- end div data-role="content" -->'."\n"; + print '</div> <!-- end div data-role="page" -->'."\n"; + } + print '</div> <!-- end div class="fiche" -->'."\n"; + - // print "\n".'</div> <!-- end div class="vmenuplusfiche" -->'."\n"; print "\n".'</td></tr></table> <!-- end right area -->'."\n"; if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) print '</div></div> <!-- end main layout -->'."\n"; + if (! empty($_SERVER['DOL_TUNING'])) { $micro_end_time=dol_microtime_float(true); @@ -1562,6 +1563,7 @@ if (! function_exists("llxFooter")) if (defined('XDEBUGCOVERAGE')) { var_dump(xdebug_get_code_coverage()); } } + // If there is some logs in buffer to show if (sizeof($conf->logbuffer)) { @@ -1581,6 +1583,7 @@ if (! function_exists("llxFooter")) if (! empty($conf->global->MAIN_HTML_FOOTER)) print $conf->global->MAIN_HTML_FOOTER."\n"; + print "</body>\n"; print "</html>\n"; } diff --git a/htdocs/public/error-401.php b/htdocs/public/error-401.php index 1d98a248acab437b4507e9de87daa99132a74279..9648402e85b32d28f8f754435c8e5f0c583cf067 100644 --- a/htdocs/public/error-401.php +++ b/htdocs/public/error-401.php @@ -5,6 +5,16 @@ </head> <body> + + <div data-role="page"> + + <!-- <div data-role="header" data-theme="b"> + <h1>Introduction</h1> + <a href="../../" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Home</a> + </div> + --> + <div data-role="content"> + <h1>Error</h1> <br> @@ -14,5 +24,9 @@ <?php print isset($_SERVER["HTTP_REFERER"])?'You come from '.$_SERVER["HTTP_REFERER"].'.':''; ?> <hr> + + </div> + </div> + </body> </html> diff --git a/htdocs/public/error-404.php b/htdocs/public/error-404.php index ed5fafd01b62db9e393d86bb7f018dab3f2701bd..851401f07e8c7d3c2a3d987868d5d0f4d75771c4 100644 --- a/htdocs/public/error-404.php +++ b/htdocs/public/error-404.php @@ -5,6 +5,16 @@ </head> <body> + + <div data-role="page"> + + <!-- <div data-role="header" data-theme="b"> + <h1>Introduction</h1> + <a href="../../" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Home</a> + </div> + --> + <div data-role="content"> + <h2>Error</h2> <br> @@ -14,5 +24,9 @@ <?php print isset($_SERVER["HTTP_REFERER"])?'You come from '.$_SERVER["HTTP_REFERER"].'.':''; ?> <hr> + + </div> + </div> + </body> </html> diff --git a/htdocs/theme/phones/smartphone/theme/default/default.css.php b/htdocs/theme/phones/smartphone/theme/default/default.css.php index 501eae52c543d600303afb1aa6f2424365fbd799..968254b675e9b0b386560b80dd1ba47e0c7228d4 100644 --- a/htdocs/theme/phones/smartphone/theme/default/default.css.php +++ b/htdocs/theme/phones/smartphone/theme/default/default.css.php @@ -43,9 +43,12 @@ else header('Cache-Control: no-cache'); ?> +#dol-homeheader { height: 40px; font-size: 16px; } +.ui-header { height: 40px; font-size: 16px; } + /*.ui-mobile #dol-home { background: #e5e5e5 url(<?php echo DOL_URL_ROOT.'/theme/phones/smartphone/theme/default/menu/pinstripes.png'; ?>) top center repeat-x; }*/ .ui-mobile #dol-home { background: #e5e5e5 } -.ui-mobile #dol-homeheader { padding: 5px 5px 0; text-align: center } +.ui-mobile #dol-homeheader { padding: 10px 5px 0; text-align: center } .ui-mobile #dol-homeheader h1 { margin: 0 0 10px; } .ui-mobile #dol-homeheader p { margin: 0; } diff --git a/htdocs/theme/phones/smartphone/tpl/header.tpl.php b/htdocs/theme/phones/smartphone/tpl/header.tpl.php index 60187c99d711a550bfd7a3210f8ae8d4e134053d..fa4fa414a086b45ff300be530e84746598695edf 100644 --- a/htdocs/theme/phones/smartphone/tpl/header.tpl.php +++ b/htdocs/theme/phones/smartphone/tpl/header.tpl.php @@ -17,21 +17,15 @@ * * $Id$ */ -header('Cache-Control: Public, must-revalidate'); header("Content-type: text/html; charset=".$conf->file->character_set_client); ?> - <!DOCTYPE html> - -<!-- BEGIN HEADER SMARTPHONE TEMPLATE --> - <html> - <head> -<title><?php echo $this->title; ?></title> +<title><?php echo $title; ?></title> <meta name="robots" content="noindex,nofollow" /> <meta name="apple-mobile-web-app-capable" content="yes" /> -<link rel="apple-touch-icon" href="<?php echo DOL_URL_ROOT.'/theme/phones/smartphone/theme/'.$this->theme.'/thumbs/homescreen.png'; ?>" /> +<link rel="apple-touch-icon" href="<?php echo DOL_URL_ROOT.'/theme/phones/smartphone/theme/'.$conf->theme.'/img/homescreen.png'; ?>" /> <link rel="stylesheet" href="<?php echo DOL_URL_ROOT.'/includes/jquery/mobile/jquery.mobile-latest.min.css'; ?>" /> <link rel="stylesheet" href="<?php echo DOL_URL_ROOT.'/theme/phones/smartphone/theme/default/default.css.php'; ?>" /> <script type="text/javascript" src="<?php echo DOL_URL_ROOT.'/includes/jquery/js/jquery-latest.min.js'; ?>"></script> @@ -40,4 +34,4 @@ header("Content-type: text/html; charset=".$conf->file->character_set_client); <body> -<!-- END HEADER SMARTPHONE TEMPLATE --> \ No newline at end of file +<!-- END HEADER SMARTPHONE TEMPLATE --> diff --git a/htdocs/theme/phones/smartphone/tpl/login.tpl.php b/htdocs/theme/phones/smartphone/tpl/login.tpl.php index 9f37956ffbfbe4866ade34b2cfe0deea4b4bc130..23c8f33868bcb581874e91acda0335e1aecc2d24 100644 --- a/htdocs/theme/phones/smartphone/tpl/login.tpl.php +++ b/htdocs/theme/phones/smartphone/tpl/login.tpl.php @@ -17,67 +17,71 @@ * * $Id$ */ -$smartphone->smartheader(); +include('header.tpl.php'); ?> <!-- START LOGIN SMARTPHONE TEMPLATE --> - <div data-role="page" id="dol-home" data-theme="b"> <div data-role="header" data-nobackbtn="true" data-theme="b"> - <div id="dol-homeheader"> - <img src="<?php echo $dol_url_root.'/theme/phones/smartphone/theme/'.$smartphone->theme.'/img/dolibarr.png'; ?>"> - </div> + <div id="dol-homeheader"> + <?php + $appli='Dolibarr'; + if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; + print $appli; + ?> + </div> </div> <div data-role="content"> - + <form id="login" name="login" method="post" action="<?php echo $php_self; ?>"> <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" /> <input type="hidden" name="loginfunction" value="loginfunction" /> - + <div data-role="fieldcontain"> <label for="username"><?php echo $langs->trans('Login'); ?></label> <input type="text" name="username" id="username" value="<?php echo $login; ?>" /> - + <br><label for="password"><?php echo $langs->trans('Password'); ?></label> <input type="password" name="password" id="password" value="<?php echo $password; ?>" /> - + <?php if ($select_entity) { ?> <br><label for="entity" class="select"><?php echo $langs->trans('Entity'); ?></label> <?php echo $select_entity; ?> <?php } ?> - + <?php if ($captcha) { ?> <label for="securitycode"><?php echo $langs->trans('SecurityCode'); ?></label> <input type="text" id="securitycode" name="securitycode" /> <div align="center"><img src="<?php echo $dol_url_root.'/lib/antispamimage.php'; ?>" border="0" width="128" height="36" /></div> <?php } ?> </div> - + <input type="submit" data-theme="b" value="<?php echo $langs->trans('Connection'); ?>" /> - + </form><br> </div><!-- /content --> - + <?php if ($forgetpasslink || $helpcenterlink) { ?> <div data-role="footer" data-id="foo1" data-theme="b"> <div data-role="navbar"> <ul> - + <li> <?php if ($forgetpasslink) { ?> - <li><a href="<?php echo 'user/passwordforgotten.php'; ?>" data-icon="gear"><?php echo $langs->trans('PasswordForgotten'); ?></a></li> + <a href="<?php echo $dol_url_root.'/user/passwordforgotten.php'; ?>" data-icon="gear"><?php echo $langs->trans('PasswordForgotten'); ?></a> <?php } ?> - - <?php if ($helpcenterlink) { ?> - <li><a href="<?php echo 'support/index.php'; ?>" data-icon="info"><?php echo $langs->trans('NeedHelpCenter'); ?></a></li> - <?php } ?> - </ul> - </div><!-- /navbar --> - </div><!-- /footer --> + </li> + <li> + <?php if ($helpcenterlink && 1 == 2) { ?> + <a href="<?php echo $dol_url_root.'/support/index.php'; ?>" data-icon="info"><?php echo $langs->trans('NeedHelpCenter'); ?></a> + <?php } ?> + </li> + </ul> + </div> + </div> <?php } ?> - </div><!-- /page --> <?php if ($dol_loginmesg) { ?> @@ -85,7 +89,8 @@ $smartphone->smartheader(); alert('<?php echo $dol_loginmesg; ?>'); </script> <?php } ?> - <!-- END LOGIN SMARTPHONE TEMPLATE --> -<?php $smartphone->smartfooter(); ?> \ No newline at end of file +<?php +include('footer.tpl.php'); +?> \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/tpl/menu.tpl.php b/htdocs/theme/phones/smartphone/tpl/menu.tpl.php index 2d55bd8e41208789cbb654ea144ff5e39ec4898e..1f96e88b8e1dec09555ff5e3e73064caa135e550 100644 --- a/htdocs/theme/phones/smartphone/tpl/menu.tpl.php +++ b/htdocs/theme/phones/smartphone/tpl/menu.tpl.php @@ -17,25 +17,33 @@ * * $Id$ */ -$this->smartheader(); +require('header.tpl.php'); ?> +<div data-role="page" data-theme="b" id="dol-home"> -<!-- START MENU SMARTPHONE TEMPLATE --> - -<div data-role="page" id="dol-home"> - <div data-role="header" data-nobackbtn="true" data-theme="b"> <div id="dol-homeheader"> - <img src="<?php echo DOL_URL_ROOT.'/theme/phones/smartphone/theme/'.$this->theme.'/img/dolibarr.png'; ?>"> + <?php + $appli='Dolibarr'; + if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; + print $appli; + ?> </div> </div> - <div data-role="content"> + <div data-role="content"> +<!-- + <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b"> + <li data-role="list-divider">Overview</li> + <li><a href="http://jquerymobile.com/test/docs/about/intro.html">Intro to jQuery Mobile</a></li> + <li><a href="http://localhost/dolibarrnew/public/error-401.php">Features</a></li> + </ul> +--> <?php $menusmart->showmenu(); ?> - + </div><!-- /content --> - + <div data-role="footer" data-theme="b"> <div data-role="navbar"> <ul> @@ -44,9 +52,12 @@ $this->smartheader(); </ul> </div><!-- /navbar --> </div><!-- /footer --> - + </div><!-- /page --> <!-- END MENU SMARTPHONE TEMPLATE --> -<?php $this->smartfooter(); ?> \ No newline at end of file +<?php +require('footer.tpl.php'); +// $this->smartfooter(); +?> \ No newline at end of file diff --git a/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php b/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php index 17ceabdce2c225f3418dc5c43154c36687ac39b0..37c3957293f2b8489376800126945ec245267550 100644 --- a/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php +++ b/htdocs/theme/phones/smartphone/tpl/passwordforgotten.tpl.php @@ -17,7 +17,7 @@ * * $Id$ */ -$smartphone->smartheader(); +include('header.tpl.php'); ?> <!-- BEGIN SMARTPHONE TEMPLATE --> @@ -25,37 +25,39 @@ $smartphone->smartheader(); <div data-role="page" id="dol-home" data-theme="b"> <div data-role="header" data-theme="b" data-position="inline"> - <h1><?php echo $langs->trans('Identification'); ?></h1> + <div id="dol-homeheader"> + <?php echo $langs->trans('Identification'); ?> + </div> </div> <div data-role="content"> - + <form id="login" name="login" method="post" action="<?php echo $php_self; ?>"> <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" /> <input type="hidden" name="loginfunction" value="buildnewpassword" /> - + <div data-role="fieldcontain"> <label for="username"><?php echo $langs->trans('Login'); ?></label> <input type="text" name="username" id="username" value="<?php echo $login; ?>" /> - + <?php if ($select_entity) { ?> <label for="entity" class="select"><?php echo $langs->trans('Entity'); ?></label> <?php echo $select_entity; ?> <?php } ?> - + <?php if ($captcha) { ?> <label for="securitycode"><?php echo $langs->trans('SecurityCode'); ?></label> <input type="text" id="securitycode" name="securitycode" /> <div align="center"><img src="<?php echo $dol_url_root.'/lib/antispamimage.php'; ?>" border="0" width="256" height="48" /></div> <?php } ?> </div> - + <input type="submit" data-theme="b" value="<?php echo $langs->trans('SendByMail'); ?>" /> - + </form> </div><!-- /content --> - + <div data-role="footer" data-theme="b"> <?php if ($mode == 'dolibarr' || ! $disabled) { echo $langs->trans('SendNewPasswordDesc'); @@ -74,4 +76,6 @@ $smartphone->smartheader(); <!-- END SMARTPHONE TEMPLATE --> -<?php $smartphone->smartfooter(); ?> \ No newline at end of file +<?php +include('footer.tpl.php'); +?> \ No newline at end of file diff --git a/htdocs/user/passwordforgotten.php b/htdocs/user/passwordforgotten.php index 6b65b1163cd605843f4c0a339954ce1b4bc6f59e..19d62a1141e26128f8e49eba3c5ab27684bf7d5d 100644 --- a/htdocs/user/passwordforgotten.php +++ b/htdocs/user/passwordforgotten.php @@ -151,10 +151,10 @@ $title='Dolibarr '.DOL_VERSION; if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title=$conf->global->MAIN_APPLICATION_TITLE; // Select templates -if (class_exists('Smartphone')) +if (preg_match('/^smartphone/',$conf->smart_menu) && isset($conf->browser->phone)) { - // Template directory - $smartphone->getTemplateDir(); + include_once(DOL_DOCUMENT_ROOT.'/core/class/smartphone.class.php'); + $smartphone = new Smartphone($db,$conf->browser->phone); // This class is only to know template dir according to phone type $smartphone->title = $title; $template_dir = $smartphone->template_dir; } @@ -215,7 +215,7 @@ if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) $rowspan++; if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY) && ! $disabled) { global $db; - + $res=dol_include_once('/multicompany/class/actions_multicompany.class.php'); if ($res) {