1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* TDMDownload |
4
|
|
|
* |
5
|
|
|
* You may not change or alter any portion of this comment or credits |
6
|
|
|
* of supporting developers from this source code or any supporting source code |
7
|
|
|
* which is considered copyrighted (c) material of the original comment or credit authors. |
8
|
|
|
* This program is distributed in the hope that it will be useful, |
9
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
10
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
11
|
|
|
* |
12
|
|
|
* @copyright Gregory Mage (Aka Mage) |
13
|
|
|
* @license GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) |
14
|
|
|
* @author Gregory Mage (Aka Mage) |
15
|
|
|
*/ |
16
|
|
|
|
17
|
|
|
if (!defined("XOOPS_ROOT_PATH")) { |
18
|
|
|
die("XOOPS root path not defined"); |
19
|
|
|
} |
20
|
|
|
|
21
|
|
|
class TDMDownloads_mod extends XoopsObject |
22
|
|
|
{ |
23
|
|
|
// constructor |
24
|
|
|
public function __construct() |
25
|
|
|
{ |
26
|
|
|
$this->initVar("requestid",XOBJ_DTYPE_INT,null,false,11); |
27
|
|
|
$this->initVar("lid",XOBJ_DTYPE_INT,null,false,11); |
28
|
|
|
$this->initVar("cid",XOBJ_DTYPE_INT,null,false,5); |
29
|
|
|
$this->initVar("title",XOBJ_DTYPE_TXTBOX, null, false); |
30
|
|
|
$this->initVar("url",XOBJ_DTYPE_TXTBOX, null, false); |
31
|
|
|
$this->initVar("homepage",XOBJ_DTYPE_TXTBOX, null, false); |
32
|
|
|
$this->initVar("version",XOBJ_DTYPE_TXTBOX, null, false); |
33
|
|
|
$this->initVar("size",XOBJ_DTYPE_TXTBOX, null, false); |
34
|
|
|
$this->initVar("platform",XOBJ_DTYPE_TXTBOX, null, false); |
35
|
|
|
$this->initVar("logourl",XOBJ_DTYPE_TXTBOX, null, false); |
36
|
|
|
$this->initVar("description",XOBJ_DTYPE_TXTAREA, null, false); |
37
|
|
|
// Pour autoriser le html |
38
|
|
|
$this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false); |
39
|
|
|
$this->initVar("modifysubmitter",XOBJ_DTYPE_INT,null,false,11); |
40
|
|
|
} |
41
|
|
|
|
42
|
|
|
public function TDMDownloads_mod($lid) |
|
|
|
|
43
|
|
|
{ |
44
|
|
|
$this->__construct(); |
45
|
|
|
} |
46
|
|
|
public function get_new_enreg() |
47
|
|
|
{ |
48
|
|
|
global $xoopsDB; |
49
|
|
|
$new_enreg = $xoopsDB->getInsertId(); |
50
|
|
|
|
51
|
|
|
return $new_enreg; |
52
|
|
|
} |
53
|
|
|
public function getForm($lid, $erreur, $donnee = array(), $action = false) |
54
|
|
|
{ |
55
|
|
|
global $xoopsDB, $xoopsModule, $xoopsModuleConfig, $xoopsUser; |
56
|
|
|
if ($action === false) { |
57
|
|
|
$action = $_SERVER['REQUEST_URI']; |
58
|
|
|
} |
59
|
|
|
$groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS; |
60
|
|
|
$gperm_handler = xoops_gethandler('groupperm'); |
61
|
|
|
$perm_upload = ($gperm_handler->checkRight('tdmdownloads_ac', 32, $groups, $xoopsModule->getVar('mid'))) ? true : false ; |
62
|
|
|
//appel des class |
63
|
|
|
$downloads_Handler = xoops_getModuleHandler('tdmdownloads_downloads', 'TDMDownloads'); |
64
|
|
|
$downloadscat_Handler = xoops_getModuleHandler('tdmdownloads_cat', 'TDMDownloads'); |
|
|
|
|
65
|
|
|
|
66
|
|
|
$view_downloads = $downloads_Handler->get($lid); |
67
|
|
|
include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php"); |
68
|
|
|
|
69
|
|
|
// affectation des variables |
70
|
|
|
if ($erreur == true) { |
71
|
|
|
$d_title = $donnee['title']; |
72
|
|
|
$d_cid = $donnee['cid']; |
73
|
|
|
$d_homepage = $donnee['homepage']; |
74
|
|
|
$d_version = $donnee['version']; |
75
|
|
|
$d_size = $donnee['size']; |
|
|
|
|
76
|
|
|
$d_platform = $donnee['platform']; |
77
|
|
|
$d_description = $donnee['description']; |
78
|
|
|
} else { |
79
|
|
|
$d_title = $view_downloads->getVar('title'); |
80
|
|
|
$d_cid = $view_downloads->getVar('cid'); |
81
|
|
|
$d_homepage = $view_downloads->getVar('homepage'); |
82
|
|
|
$d_version = $view_downloads->getVar('version'); |
83
|
|
|
$d_size = $view_downloads->getVar('size'); |
84
|
|
|
$d_platform = $view_downloads->getVar('platform'); |
85
|
|
|
$d_description = $view_downloads->getVar('description', 'e'); |
86
|
|
|
} |
87
|
|
|
|
88
|
|
|
//nom du formulaire |
89
|
|
|
$title = sprintf(_AM_TDMDOWNLOADS_FORMEDIT); |
90
|
|
|
|
91
|
|
|
//cr�ation du formulaire |
92
|
|
|
$form = new XoopsThemeForm($title, 'form', $action, 'post', true); |
93
|
|
|
$form->setExtra('enctype="multipart/form-data"'); |
94
|
|
|
//titre |
95
|
|
|
$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMTITLE, 'title', 50, 255, $d_title), true); |
96
|
|
|
// fichier |
97
|
|
|
$fichier = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMFILE,'<br /><br />'); |
98
|
|
|
$url = $view_downloads->getVar('url'); |
99
|
|
|
$formurl = new XoopsFormText(_AM_TDMDOWNLOADS_FORMURL, 'url', 75, 255, $url); |
100
|
|
|
$fichier->addElement($formurl,false); |
101
|
|
|
if ($perm_upload == true) { |
|
|
|
|
102
|
|
|
$fichier->addElement(new XoopsFormFile(_AM_TDMDOWNLOADS_FORMUPLOAD , 'attachedfile', $xoopsModuleConfig['maxuploadsize']), false); |
103
|
|
|
} |
104
|
|
|
$form->addElement($fichier); |
105
|
|
|
|
106
|
|
|
//cat�gorie |
107
|
|
|
$downloadscat_Handler = xoops_getModuleHandler('tdmdownloads_cat', 'TDMDownloads'); |
108
|
|
|
$categories = TDMDownloads_MygetItemIds('tdmdownloads_submit', 'TDMDownloads'); |
109
|
|
|
$criteria = new CriteriaCompo(); |
110
|
|
|
$criteria->setSort('cat_weight ASC, cat_title'); |
111
|
|
|
$criteria->setOrder('ASC'); |
112
|
|
|
if ($xoopsUser) { |
113
|
|
|
if ( !$xoopsUser->isAdmin($xoopsModule->mid()) ) { |
114
|
|
|
$criteria->add(new Criteria('cat_cid', '(' . implode(',', $categories) . ')','IN')); |
115
|
|
|
} |
116
|
|
|
} else { |
117
|
|
|
$criteria->add(new Criteria('cat_cid', '(' . implode(',', $categories) . ')','IN')); |
118
|
|
|
} |
119
|
|
|
$downloadscat_arr = $downloadscat_Handler->getall($criteria); |
120
|
|
|
if (count($downloadscat_arr) == 0) { |
121
|
|
|
redirect_header('index.php', 2, _NOPERM); |
122
|
|
|
} |
123
|
|
|
$mytree = new XoopsObjectTree($downloadscat_arr, 'cat_cid', 'cat_pid'); |
124
|
|
|
$form->addElement($mytree->makeSelectElement('cid', 'cat_title', '--', $d_cid, true, 0, '', _AM_TDMDOWNLOADS_FORMINCAT), true); |
125
|
|
|
|
126
|
|
|
//affichage des champs |
127
|
|
|
$downloadsfield_Handler = xoops_getModuleHandler('tdmdownloads_field', 'TDMDownloads'); |
128
|
|
|
$criteria = new CriteriaCompo(); |
129
|
|
|
$criteria->setSort('weight ASC, title'); |
130
|
|
|
$criteria->setOrder('ASC'); |
131
|
|
|
$downloads_field = $downloadsfield_Handler->getall($criteria); |
132
|
|
|
foreach (array_keys($downloads_field) as $i) { |
133
|
|
|
if ($downloads_field[$i]->getVar('status_def') == 1) { |
134
|
|
|
if ($downloads_field[$i]->getVar('fid') == 1) { |
135
|
|
|
//page d'accueil |
136
|
|
|
if ($downloads_field[$i]->getVar('status') == 1) { |
137
|
|
|
$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMHOMEPAGE, 'homepage', 50, 255, $d_homepage)); |
138
|
|
|
} else { |
139
|
|
|
$form->addElement(new XoopsFormHidden('homepage', '')); |
140
|
|
|
} |
141
|
|
|
} |
142
|
|
|
if ($downloads_field[$i]->getVar('fid') == 2) { |
143
|
|
|
//version |
144
|
|
|
if ($downloads_field[$i]->getVar('status') == 1) { |
145
|
|
|
$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMVERSION, 'version', 10, 255, $d_version)); |
146
|
|
|
} else { |
147
|
|
|
$form->addElement(new XoopsFormHidden('version', '')); |
148
|
|
|
} |
149
|
|
|
} |
150
|
|
|
if ($downloads_field[$i]->getVar('fid') == 3) { |
151
|
|
|
//taille du fichier |
152
|
|
|
/*if ($downloads_field[$i]->getVar('status') == 1) { |
153
|
|
|
$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMSIZE, 'size', 10, 255, $d_size)); |
154
|
|
|
} else { |
155
|
|
|
$form->addElement(new XoopsFormHidden('size', '')); |
156
|
|
|
}*/ |
157
|
|
|
|
158
|
|
|
if ($downloads_field[$i]->getVar('status') == 1) { |
159
|
|
|
$size_value_arr = explode(' ', $view_downloads->getVar('size')); |
160
|
|
|
$size_value = $size_value_arr[0]; |
161
|
|
|
if ($erreur == false) { |
162
|
|
|
$type_value = $size_value_arr[1]; |
163
|
|
|
} else { |
164
|
|
|
$type_value = $donnee['type_size']; |
165
|
|
|
} |
166
|
|
|
$aff_size = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMSIZE,''); |
167
|
|
|
$aff_size->addElement(new XoopsFormText('', 'size', 10, 255, $size_value)); |
168
|
|
|
$type = new XoopsFormSelect('', 'type_size', $type_value); |
169
|
|
|
//$type_arr = array('[o]' => _AM_TDMDOWNLOADS_BYTES, '[Ko]' => _AM_TDMDOWNLOADS_KBYTES, '[Mo]' => _AM_TDMDOWNLOADS_MBYTES, '[Go]' => _AM_TDMDOWNLOADS_GBYTES, '[To]' => _AM_TDMDOWNLOADS_TBYTES); |
170
|
|
|
$type_arr = array(_AM_TDMDOWNLOADS_BYTES => '['._AM_TDMDOWNLOADS_BYTES.']', _AM_TDMDOWNLOADS_KBYTES => '['._AM_TDMDOWNLOADS_KBYTES.']', _AM_TDMDOWNLOADS_MBYTES => '['._AM_TDMDOWNLOADS_MBYTES.']', _AM_TDMDOWNLOADS_GBYTES => '['._AM_TDMDOWNLOADS_GBYTES.']', _AM_TDMDOWNLOADS_TBYTES => '['._AM_TDMDOWNLOADS_TBYTES.']'); |
171
|
|
|
$type->addOptionArray($type_arr); |
172
|
|
|
$aff_size->addElement($type); |
173
|
|
|
$form->addElement($aff_size); |
174
|
|
|
|
175
|
|
|
} else { |
176
|
|
|
$form->addElement(new XoopsFormHidden('size', '')); |
177
|
|
|
$form->addElement(new XoopsFormHidden('type_size', '')); |
178
|
|
|
} |
179
|
|
|
} |
180
|
|
|
if ($downloads_field[$i]->getVar('fid') == 4) { |
181
|
|
|
//plateforme |
182
|
|
|
if ($downloads_field[$i]->getVar('status') == 1) { |
183
|
|
|
$platformselect = new XoopsFormSelect(_AM_TDMDOWNLOADS_FORMPLATFORM, 'platform', explode('|',$d_platform), 5, true); |
184
|
|
|
$platform_array = explode('|',$xoopsModuleConfig['platform']); |
185
|
|
|
foreach ($platform_array as $platform) { |
186
|
|
|
$platformselect->addOption("$platform", $platform); |
187
|
|
|
} |
188
|
|
|
$form->addElement($platformselect, false); |
189
|
|
|
//$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMPLATFORM, 'platform', 50, 255, $d_platform)); |
190
|
|
|
} else { |
191
|
|
|
$form->addElement(new XoopsFormHidden('platform', '')); |
192
|
|
|
} |
193
|
|
|
} |
194
|
|
|
} else { |
195
|
|
|
$contenu = ''; |
196
|
|
|
$nom_champ = 'champ' . $downloads_field[$i]->getVar('fid'); |
197
|
|
|
$downloadsfielddata_Handler = xoops_getModuleHandler('tdmdownloads_fielddata', 'TDMDownloads'); |
198
|
|
|
$criteria = new CriteriaCompo(); |
199
|
|
|
$criteria->add(new Criteria('lid', $view_downloads->getVar('lid'))); |
200
|
|
|
$criteria->add(new Criteria('fid', $downloads_field[$i]->getVar('fid'))); |
201
|
|
|
$downloadsfielddata = $downloadsfielddata_Handler->getall($criteria); |
202
|
|
|
foreach (array_keys($downloadsfielddata) as $j) { |
203
|
|
|
if ($erreur == true) { |
204
|
|
|
$contenu = $donnee[$nom_champ]; |
205
|
|
|
} else { |
206
|
|
|
$contenu = $downloadsfielddata[$j]->getVar('data'); |
207
|
|
|
} |
208
|
|
|
} |
209
|
|
|
if ($downloads_field[$i]->getVar('status') == 1) { |
210
|
|
|
$form->addElement(new XoopsFormText($downloads_field[$i]->getVar('title'), $nom_champ, 50, 255, $contenu)); |
211
|
|
|
} else { |
212
|
|
|
$form->addElement(new XoopsFormHidden($nom_champ, '')); |
213
|
|
|
} |
214
|
|
|
} |
215
|
|
|
} |
216
|
|
|
//description |
217
|
|
|
$editor_configs=array(); |
218
|
|
|
$editor_configs["name"] ="description"; |
219
|
|
|
$editor_configs["value"] = $d_description; |
220
|
|
|
$editor_configs["rows"] = 20; |
221
|
|
|
$editor_configs["cols"] = 60; |
222
|
|
|
$editor_configs["width"] = "100%"; |
223
|
|
|
$editor_configs["height"] = "400px"; |
224
|
|
|
$editor_configs["editor"] = $xoopsModuleConfig['editor']; |
225
|
|
|
$form->addElement( new XoopsFormEditor(_AM_TDMDOWNLOADS_FORMTEXTDOWNLOADS, "description", $editor_configs), true); |
226
|
|
|
//image |
227
|
|
|
if ($xoopsModuleConfig['useshots']) { |
228
|
|
|
$uploaddir = XOOPS_ROOT_PATH . '/uploads/TDMDownloads/images/shots/' . $view_downloads->getVar('logourl'); |
229
|
|
|
$downloadscat_img = $view_downloads->getVar('logourl') ? $view_downloads->getVar('logourl') : 'blank.gif'; |
230
|
|
|
$uploadirectory='/uploads/TDMDownloads/images/shots'; |
231
|
|
|
if (!is_file($uploaddir)) { |
232
|
|
|
$downloadscat_img = 'blank.gif'; |
233
|
|
|
} |
234
|
|
|
$imgtray = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMIMG,'<br />'); |
235
|
|
|
$imgpath=sprintf(_AM_TDMDOWNLOADS_FORMPATH, $uploadirectory ); |
236
|
|
|
$imageselect= new XoopsFormSelect($imgpath, 'logo_img',$downloadscat_img); |
237
|
|
|
$topics_array = XoopsLists :: getImgListAsArray( XOOPS_ROOT_PATH . $uploadirectory ); |
238
|
|
|
foreach ($topics_array as $image) { |
239
|
|
|
$imageselect->addOption("$image", $image); |
240
|
|
|
} |
241
|
|
|
$imageselect->setExtra( "onchange='showImgSelected(\"image3\", \"logo_img\", \"" . $uploadirectory . "\", \"\", \"" . XOOPS_URL . "\")'" ); |
242
|
|
|
$imgtray->addElement($imageselect,false); |
243
|
|
|
$imgtray -> addElement( new XoopsFormLabel( '', "<br /><img src='" . XOOPS_URL . "/" . $uploadirectory . "/" . $downloadscat_img . "' name='image3' id='image3' alt='' />" ) ); |
244
|
|
|
$fileseltray= new XoopsFormElementTray('','<br />'); |
245
|
|
|
if ($perm_upload == true) { |
|
|
|
|
246
|
|
|
$fileseltray->addElement(new XoopsFormFile(_AM_TDMDOWNLOADS_FORMUPLOAD , 'attachedimage', $xoopsModuleConfig['maxuploadsize']), false); |
247
|
|
|
} |
248
|
|
|
$imgtray->addElement($fileseltray); |
249
|
|
|
$form->addElement($imgtray); |
250
|
|
|
} |
251
|
|
|
$form->addElement(new XoopsFormCaptcha(), true); |
252
|
|
|
$form->addElement(new XoopsFormHidden('lid', $lid)); |
253
|
|
|
//pour enregistrer le formulaire |
254
|
|
|
$form->addElement(new XoopsFormHidden('op', 'save')); |
255
|
|
|
//bouton d'envoi du formulaire |
256
|
|
|
$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit')); |
257
|
|
|
|
258
|
|
|
return $form; |
259
|
|
|
} |
260
|
|
|
} |
261
|
|
|
|
262
|
|
|
class TDMDownloadstdmdownloads_modHandler extends XoopsPersistableObjectHandler |
263
|
|
|
{ |
264
|
|
|
public function __construct(&$db) |
265
|
|
|
{ |
266
|
|
|
parent::__construct($db, "tdmdownloads_mod", 'tdmdownloads_mod', 'requestid', 'lid'); |
267
|
|
|
} |
268
|
|
|
} |
269
|
|
|
|
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.