dolibarr  20.0.0-beta
myobject_extrafields.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
4  * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
5  * Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
6  * Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
7  * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <https://www.gnu.org/licenses/>.
21  */
22 
29 // Load Dolibarr environment
30 $res = 0;
31 // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
32 if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
33  $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
34 }
35 // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
36 $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
37 while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
38  $i--;
39  $j--;
40 }
41 if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
42  $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
43 }
44 if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
45  $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
46 }
47 // Try main.inc.php using relative path
48 if (!$res && file_exists("../../main.inc.php")) {
49  $res = @include "../../main.inc.php";
50 }
51 if (!$res && file_exists("../../../main.inc.php")) {
52  $res = @include "../../../main.inc.php";
53 }
54 if (!$res) {
55  die("Include of main fails");
56 }
57 
58 require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
59 require_once '../lib/mymodule.lib.php';
60 
61 // Load translation files required by the page
62 $langs->loadLangs(array('mymodule@mymodule', 'admin'));
63 
64 $extrafields = new ExtraFields($db);
65 $form = new Form($db);
66 
67 // List of supported format
68 $type2label = ExtraFields::getListOfTypesLabels();
69 
70 $action = GETPOST('action', 'aZ09');
71 $attrname = GETPOST('attrname', 'alpha');
72 $elementtype = 'mymodule_myobject'; //Must be the $table_element of the class that manage extrafield
73 
74 if (!$user->admin) {
76 }
77 
78 
79 /*
80  * Actions
81  */
82 
83 require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
84 
85 
86 
87 /*
88  * View
89  */
90 
91 $textobject = $langs->transnoentitiesnoconv("MyObject");
92 
93 $help_url = '';
94 $page_name = "MyModuleSetup";
95 
96 llxHeader('', $langs->trans("MyModuleSetup"), $help_url, '', 0, 0, '', '', '', 'mod-mymodule page-admin_extrafields');
97 
98 
99 $linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
100 print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
101 
102 
103 $head = mymoduleAdminPrepareHead();
104 
105 print dol_get_fiche_head($head, 'myobject_extrafields', $langs->trans($page_name), -1, 'mymodule@mymodule');
106 
107 require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
108 
109 print dol_get_fiche_end();
110 
111 
112 // Buttons
113 if ((float) DOL_VERSION < 17) { // On v17+, the "New Attribute" button is included into tpl.
114  if ($action != 'create' && $action != 'edit') {
115  print '<div class="tabsAction">';
116  print '<a class="butAction reposition" href="'.$_SERVER["PHP_SELF"].'?action=create">'.$langs->trans("NewAttribute").'</a>';
117  print "</div>";
118  }
119 }
120 
121 
122 /*
123  * Creation of an optional field
124  */
125 if ($action == 'create') {
126  print '<br><div id="newattrib"></div>';
127  print load_fiche_titre($langs->trans('NewAttribute'));
128 
129  require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
130 }
131 
132 /*
133  * Edition of an optional field
134  */
135 if ($action == 'edit' && !empty($attrname)) {
136  print "<br>";
137  print load_fiche_titre($langs->trans("FieldEdition", $attrname));
138 
139  require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
140 }
141 
142 // End of page
143 llxFooter();
144 $db->close();
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:55
llxFooter()
Empty footer.
Definition: wrapper.php:69
Class to manage standard extra fields.
static getListOfTypesLabels()
Return array with all possible types and labels of extrafields.
Class to manage generation of HTML components Only common components must be here.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
mymoduleAdminPrepareHead()
Prepare admin pages header.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.