dolibarr 21.0.0-alpha
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'];
37$tmp2 = realpath(__FILE__);
38$i = strlen($tmp) - 1;
39$j = strlen($tmp2) - 1;
40while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
41 $i--;
42 $j--;
43}
44if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
45 $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
46}
47if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
48 $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
49}
50// Try main.inc.php using relative path
51if (!$res && file_exists("../../main.inc.php")) {
52 $res = @include "../../main.inc.php";
53}
54if (!$res && file_exists("../../../main.inc.php")) {
55 $res = @include "../../../main.inc.php";
56}
57if (!$res) {
58 die("Include of main fails");
59}
60
61require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
62require_once '../lib/mymodule.lib.php';
63
64// Load translation files required by the page
65$langs->loadLangs(array('mymodule@mymodule', 'admin'));
66
67$extrafields = new ExtraFields($db);
68$form = new Form($db);
69
70// List of supported format
72
73$action = GETPOST('action', 'aZ09');
74$attrname = GETPOST('attrname', 'alpha');
75$elementtype = 'mymodule_myobject'; //Must be the $table_element of the class that manage extrafield
76
77if (!$user->admin) {
79}
80
81
82/*
83 * Actions
84 */
85
86require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
87
88
89
90/*
91 * View
92 */
93
94$textobject = $langs->transnoentitiesnoconv("MyObject");
95
96$help_url = '';
97$page_name = "MyModuleSetup";
98
99llxHeader('', $langs->trans("MyModuleSetup"), $help_url, '', 0, 0, '', '', '', 'mod-mymodule page-admin_extrafields');
100
101
102$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
103print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
104
105
107
108print dol_get_fiche_head($head, 'myobject_extrafields', $langs->trans($page_name), -1, 'mymodule@mymodule');
109
110require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
111
112print dol_get_fiche_end();
113
114
115// Buttons
116if ((float) DOL_VERSION < 17) { // On v17+, the "New Attribute" button is included into tpl. @phpstan-ignore-line
117 if ($action != 'create' && $action != 'edit') {
118 print '<div class="tabsAction">';
119 print '<a class="butAction reposition" href="'.$_SERVER["PHP_SELF"].'?action=create">'.$langs->trans("NewAttribute").'</a>';
120 print "</div>";
121 }
122}
123
124
125/*
126 * Creation of an optional field
127 */
128if ($action == 'create') {
129 print '<br><div id="newattrib"></div>';
130 print load_fiche_titre($langs->trans('NewAttribute'));
131
132 require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
133}
134
135/*
136 * Edition of an optional field
137 */
138if ($action == 'edit' && !empty($attrname)) {
139 print "<br>";
140 print load_fiche_titre($langs->trans("FieldEdition", $attrname));
141
142 require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
143}
144
145// End of page
146llxFooter();
147$db->close();
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Definition wrapper.php:70
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.
llxFooter()
Footer empty.
Definition document.php:107
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.