dolibarr 20.0.0
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)
32if (!$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;
37while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
38 $i--;
39 $j--;
40}
41if (!$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}
44if (!$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
48if (!$res && file_exists("../../main.inc.php")) {
49 $res = @include "../../main.inc.php";
50}
51if (!$res && file_exists("../../../main.inc.php")) {
52 $res = @include "../../../main.inc.php";
53}
54if (!$res) {
55 die("Include of main fails");
56}
57
58require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
59require_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
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
74if (!$user->admin) {
76}
77
78
79/*
80 * Actions
81 */
82
83require 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
96llxHeader('', $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>';
100print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
101
102
104
105print dol_get_fiche_head($head, 'myobject_extrafields', $langs->trans($page_name), -1, 'mymodule@mymodule');
106
107require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
108
109print dol_get_fiche_end();
110
111
112// Buttons
113if ((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 */
125if ($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 */
135if ($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
143llxFooter();
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.