25include_once DOL_DOCUMENT_ROOT.
'/core/modules/DolibarrModules.class.php';
41 $this->numero = 10000;
45 $this->family =
"portal";
46 $this->module_position =
'50';
48 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
49 $this->
description =
"Enable to build and serve public web sites with CMS features";
51 $this->version =
'dolibarr';
53 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
55 $this->picto =
'website';
58 $this->dirs = array(
"/website/temp");
61 $this->config_page_url = array(
'website.php');
65 $this->depends = array(
'modFckeditor');
66 $this->requiredby = array();
67 $this->conflictwith = array();
68 $this->phpmin = array(7, 0);
69 $this->langfiles = array(
"website");
72 $this->
const = array();
78 $this->boxes = array();
81 $this->rights = array();
82 $this->rights_class =
'website';
85 $this->rights[$r][0] = 10001;
86 $this->rights[$r][1] =
'Read website content';
87 $this->rights[$r][3] = 0;
88 $this->rights[$r][4] =
'read';
91 $this->rights[$r][0] = 10002;
92 $this->rights[$r][1] =
'Create/modify website content (html and javascript content)';
93 $this->rights[$r][3] = 0;
94 $this->rights[$r][4] =
'write';
97 $this->rights[$r][0] = 10003;
98 $this->rights[$r][1] =
'Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers.';
99 $this->rights[$r][3] = 0;
100 $this->rights[$r][4] =
'writephp';
103 $this->rights[$r][0] = 10005;
104 $this->rights[$r][1] =
'Delete website content';
105 $this->rights[$r][3] = 0;
106 $this->rights[$r][4] =
'delete';
109 $this->rights[$r][0] = 10008;
110 $this->rights[$r][1] =
'Export website content';
111 $this->rights[$r][3] = 0;
112 $this->rights[$r][4] =
'export';
117 $this->menu[$r] = array(
'fk_menu'=>
'0',
120 'prefix' =>
img_picto(
'', $this->picto,
'class="pictofixedwidth em092"'),
121 'mainmenu'=>
'website',
122 'url'=>
'/website/index.php',
125 'enabled'=>
'$conf->website->enabled',
126 'perms'=>
'$user->rights->website->read',
134 $this->export_code[$r] = $this->rights_class.
'_'.$r;
135 $this->export_label[$r] =
'MyWebsitePages';
136 $this->export_permission[$r] = array(array(
"website",
"export"));
137 $this->export_icon[$r] =
'globe';
138 $keyforclass =
'WebsitePage';
139 $keyforclassfile =
'/website/class/websitepage.class.php';
140 $keyforelement =
'Website';
141 include DOL_DOCUMENT_ROOT.
'/core/commonfieldsinexport.inc.php';
144 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
145 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'website_page as t, '.MAIN_DB_PREFIX.
'website as p';
146 $this->export_sql_end[$r] .=
' WHERE t.fk_website = p.rowid';
147 $this->export_sql_end[$r] .=
' AND p.entity IN ('.getEntity(
'website').
')';
160 public function init($options =
'')
162 global $conf, $langs;
166 $result = $this->
_load_tables(
'/install/mysql/',
'website');
172 $this->
remove($options);
175 $dirarray = array(
'common/flags'=>
'flags',
'common/octicons/build/svg'=>
'octicons');
176 foreach ($dirarray as $dirfrom => $dirtarget) {
177 $src = DOL_DOCUMENT_ROOT.
'/theme/'.$dirfrom;
178 $dest = DOL_DATA_ROOT.
'/medias/image/'.$dirtarget;
181 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
185 $langs->load(
"errors");
186 $this->error = $langs->trans(
'ErrorFailToCopyDir', $src, $dest);
187 $this->errors[] = $langs->trans(
'ErrorFailToCopyDir', $src, $dest);
198 $srcroot = DOL_DOCUMENT_ROOT.
'/install/doctemplates/websites';
199 $destroot = DOL_DATA_ROOT.
'/doctemplates/websites';
204 $docs =
dol_dir_list($srcroot,
'files', 0,
'website_.*(\.zip|\.jpg)$');
205 foreach ($docs as $cursorfile) {
206 $src = $srcroot.
'/'.$cursorfile[
'name'];
207 $dest = $destroot.
'/'.$cursorfile[
'name'];
209 $result =
dol_copy($src, $dest, 0, 1);
211 $langs->load(
"errors");
212 $this->error = $langs->trans(
'ErrorFailToCopyFile', $src, $dest);
213 $this->errors[] = $langs->trans(
'ErrorFailToCopyFile', $src, $dest);
219 $docs =
dol_dir_list($srcroot,
'directories', 0,
'website_.*$');
220 foreach ($docs as $cursorfile) {
221 $src = $srcroot.
'/'.$cursorfile[
'name'];
222 $dest = $destroot.
'/'.$cursorfile[
'name'];
227 $result = dol_compress_dir($src, $dest.
'.zip',
'zip');
230 $this->error = ($errormsg ? $errormsg : $langs->trans(
'ErrorFailToCreateZip', $dest));
231 $this->errors[] = ($errormsg ? $errormsg : $langs->trans(
'ErrorFailToCreateZip', $dest));
241 return $this->
_init($sql, $options);
_init($array_sql, $options='')
Enables a module.
_load_tables($reldir, $onlywithsuffix='')
Create tables and keys required by module:
Class to describe Websites module.
__construct($db)
Constructor.
init($options='')
Function called when module is enabled.
print $script_file $mode $langs defaultlang(is_numeric($duration_value) ? " delay=". $duration_value :"").(is_numeric($duration_value2) ? " after cd cd cd description as description
Only used if Module[ID]Desc translation string is not found.
dol_copy($srcfile, $destfile, $newmask='0', $overwriteifexists=1, $testvirus=0, $indexdatabase=0)
Copy a file to another file.
dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayreplacement=null, $excludesubdir=0, $excludefileext=null, $excludearchivefiles=0)
Copy a dir to another dir.
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_mkdir($dir, $dataroot='', $newmask='')
Creation of a directory (this can create recursive subdir)
$conf db name
Only used if Module[ID]Name translation string is not found.