Skip to content

Commit 127d608

Browse files
authored
Merge pull request #105 from ggoffy/master
- updates for code quality
2 parents b5f47ae + 7331d13 commit 127d608

File tree

174 files changed

+1283
-1242
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

174 files changed

+1283
-1242
lines changed

admin/about.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
*
2121
* @author Txmod Xoops http://www.txmodxoops.org
2222
*/
23-
include __DIR__ . '/header.php';
23+
require __DIR__ . '/header.php';
2424

2525
$adminObject->displayNavigation(\basename(__FILE__));
2626
$adminObject::setPaypal('[email protected]');
2727
$adminObject->displayAbout(false);
2828

29-
include __DIR__ . '/footer.php';
29+
require __DIR__ . '/footer.php';

admin/building.php

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727

2828
$templateMain = 'modulebuilder_building.tpl';
2929

30-
include __DIR__ . '/header.php';
30+
require __DIR__ . '/header.php';
3131
$op = Request::getString('op', 'default');
3232
$mid = Request::getInt('mod_id');
3333
$inrootCopy = Request::getInt('inroot_copy');
3434
$testdataRestore = Request::getInt('testdata_restore');
3535
$checkData = Request::hasVar('check_data');
3636
$moduleObj = $helper->getHandler('Modules')->get($mid);
3737

38-
$cachePath = XOOPS_VAR_PATH . '/caches/modulebuilder_cache_';
38+
$cachePath = \XOOPS_VAR_PATH . '/caches/modulebuilder_cache_';
3939
if (!\is_dir($cachePath)) {
4040
if (!\mkdir($cachePath, 0777) && !\is_dir($cachePath)) {
4141
throw new \RuntimeException(\sprintf('Directory "%s" was not created', $cachePath));
@@ -84,7 +84,7 @@
8484
//save test data of selected module before building new version
8585
if (1 === $testdataRestore) {
8686
// Directories for copy from
87-
$fromDir = XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname) . '/testdata';
87+
$fromDir = \XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname) . '/testdata';
8888
if (\is_dir($fromDir)) {
8989
// Directories for copy to
9090
$toDir = TDMC_UPLOAD_TEMP_PATH . '/' . \mb_strtolower($moduleDirname);
@@ -103,8 +103,7 @@
103103

104104
// Directories for copy from to
105105
$fromDir = TDMC_UPLOAD_REPOSITORY_PATH . '/' . \mb_strtolower($moduleDirname);
106-
$toDir = XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname);
107-
// include_once TDMC_CLASS_PATH . '/building.php';
106+
$toDir = \XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname);
108107
if (isset($moduleDirname)) {
109108
// Clear this module if it's in repository
110109
$building = Modulebuilder\Building::getInstance();
@@ -133,12 +132,12 @@
133132

134133
// Get common files
135134
$resCommon = $architecture->setCommonFiles($moduleObj);
136-
$build['list'] = _AM_MODULEBUILDER_BUILDING_COMMON;
135+
$build['list'] = \_AM_MODULEBUILDER_BUILDING_COMMON;
137136
$GLOBALS['xoopsTpl']->append('builds', $build);
138137
unset($build);
139138

140139
// Directory to saved all files
141-
$building_directory = \sprintf(_AM_MODULEBUILDER_BUILDING_DIRECTORY, $moduleDirname);
140+
$building_directory = \sprintf(\_AM_MODULEBUILDER_BUILDING_DIRECTORY, $moduleDirname);
142141

143142
// Copy this module in root modules
144143
if (1 === $inrootCopy) {
@@ -152,12 +151,12 @@
152151
}
153152
}
154153
$building->copyDir($fromDir, $toDir);
155-
$building_directory .= \sprintf(_AM_MODULEBUILDER_BUILDING_DIRECTORY_INROOT, $toDir);
154+
$building_directory .= \sprintf(\_AM_MODULEBUILDER_BUILDING_DIRECTORY_INROOT, $toDir);
156155
}
157156
if (1 === $testdataRestore) {
158157
// Directories for copy from to
159158
$fromDir = TDMC_UPLOAD_TEMP_PATH . '/' . \mb_strtolower($moduleDirname) . '/testdata';
160-
$toDir = XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname) . '/testdata';
159+
$toDir = \XOOPS_ROOT_PATH . '/modules/' . \mb_strtolower($moduleDirname) . '/testdata';
161160
if (\is_dir($toDir)) {
162161
$building->clearDir($toDir);
163162
}
@@ -174,14 +173,13 @@
174173
// Redirect if there aren't modules
175174
$nbModules = $helper->getHandler('Modules')->getCount();
176175
if (0 == $nbModules) {
177-
\redirect_header('modules.php?op=new', 2, _AM_MODULEBUILDER_THEREARENT_MODULES2);
176+
\redirect_header('modules.php?op=new', 2, \_AM_MODULEBUILDER_THEREARENT_MODULES2);
178177
}
179178
unset($nbModules);
180-
// include_once TDMC_CLASS_PATH . '/building.php';
181179
$building = Modulebuilder\Building::getInstance();
182180
$form = $building->getForm();
183181
$GLOBALS['xoopsTpl']->assign('form', $form->render());
184182

185183
break;
186184
}
187-
include __DIR__ . '/footer.php';
185+
require __DIR__ . '/footer.php';

admin/devtools.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,29 @@
3131
// Define main template
3232
$templateMain = $moduleDirName . '_devtools.tpl';
3333

34-
include __DIR__ . '/header.php';
34+
require __DIR__ . '/header.php';
3535
// Recovered value of argument op in the URL $
3636
$op = Request::getString('op', 'list');
3737

3838
switch ($op) {
3939
case 'fq':
4040
$fqModule = Request::getString('fq_module');
41-
$src_path = XOOPS_ROOT_PATH . '/modules/' . $fqModule;
41+
$src_path = \XOOPS_ROOT_PATH . '/modules/' . $fqModule;
4242
$dst_path = TDMC_UPLOAD_PATH . '/devtools/fq/' . $fqModule;
4343

4444
$patKeys = [];
4545
$patValues = [];
4646
//Devtools::cloneFileFolder($src_path, $dst_path, $patKeys, $patValues);
4747
Devtools::function_qualifier($src_path, $dst_path, $fqModule);
48-
\redirect_header('devtools.php', 3, _AM_MODULEBUILDER_DEVTOOLS_FQ_SUCCESS);
48+
\redirect_header('devtools.php', 3, \_AM_MODULEBUILDER_DEVTOOLS_FQ_SUCCESS);
4949
break;
5050
case 'check_lang':
5151
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('devtools.php'));
5252
$clModuleName = Request::getString('cl_module');
5353
$clModuleNameUpper = \mb_strtoupper($clModuleName);
5454

5555
//scan language files
56-
$src_path = XOOPS_ROOT_PATH . '/modules/' . $clModuleName . '/language/english/';
56+
$src_path = \XOOPS_ROOT_PATH . '/modules/' . $clModuleName . '/language/english/';
5757
$langfiles = [];
5858
foreach (scandir($src_path) as $scan) {
5959
if (is_file($src_path . $scan) && 'index.html' !== $scan) {
@@ -75,7 +75,7 @@
7575
}
7676

7777
//get all php and tpl files from module
78-
$check_path = XOOPS_ROOT_PATH . '/modules/' . $clModuleName;
78+
$check_path = \XOOPS_ROOT_PATH . '/modules/' . $clModuleName;
7979
$Directory = new RecursiveDirectoryIterator($check_path);
8080
$Iterator = new RecursiveIteratorIterator($Directory);
8181
$regexFiles = new RegexIterator($Iterator, '/^.+\.(php|tpl)$/i', RecursiveRegexIterator::GET_MATCH);
@@ -158,28 +158,28 @@
158158
break;
159159
case 'tab_replacer':
160160
$tabModule = Request::getString('tab_module');
161-
$src_path = XOOPS_ROOT_PATH . '/modules/' . $tabModule;
161+
$src_path = \XOOPS_ROOT_PATH . '/modules/' . $tabModule;
162162
$dst_path = TDMC_UPLOAD_PATH . '/devtools/tab/';
163163
@\mkdir($dst_path);
164164
$dst_path = TDMC_UPLOAD_PATH . '/devtools/tab/' . $tabModule;
165165
@\mkdir($dst_path);
166166

167167
Devtools::function_tabreplacer($src_path, $dst_path);
168-
\redirect_header('devtools.php', 3, _AM_MODULEBUILDER_DEVTOOLS_FQ_SUCCESS);
168+
\redirect_header('devtools.php', 3, \_AM_MODULEBUILDER_DEVTOOLS_FQ_SUCCESS);
169169
break;
170170
case 'list':
171171
default:
172172
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('devtools.php'));
173173
$dst_path = TDMC_UPLOAD_PATH . '/devtools/fq/';
174-
$GLOBALS['xoopsTpl']->assign('fq_desc',\str_replace('%s', $dst_path, _AM_MODULEBUILDER_DEVTOOLS_FQ_DESC));
174+
$GLOBALS['xoopsTpl']->assign('fq_desc',\str_replace('%s', $dst_path, \_AM_MODULEBUILDER_DEVTOOLS_FQ_DESC));
175175
$fq_form = Devtools::getFormModulesFq();
176176
$GLOBALS['xoopsTpl']->assign('fq_form', $fq_form->render());
177177
$cl_form = Devtools::getFormModulesCl();
178178
$GLOBALS['xoopsTpl']->assign('cl_form', $cl_form->render());
179179
$tab_form = Devtools::getFormModulesTab();
180180
$GLOBALS['xoopsTpl']->assign('tab_form', $tab_form->render());
181181
$dst_path = TDMC_UPLOAD_PATH . '/devtools/tab/';
182-
$GLOBALS['xoopsTpl']->assign('tab_desc',\str_replace('%s', $dst_path, _AM_MODULEBUILDER_DEVTOOLS_TAB_DESC));
182+
$GLOBALS['xoopsTpl']->assign('tab_desc',\str_replace('%s', $dst_path, \_AM_MODULEBUILDER_DEVTOOLS_TAB_DESC));
183183
$GLOBALS['xoopsTpl']->assign('devtools_list',true);
184184

185185
break;
@@ -190,7 +190,7 @@ function getUserDefinedConstants() {
190190
return (isset($constants['user']) ? $constants['user'] : array());
191191
}
192192

193-
include __DIR__ . '/footer.php';
193+
require __DIR__ . '/footer.php';
194194

195195

196196

admin/feedback.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
use Xmf\Request;
2323

24-
include __DIR__ . '/header.php';
24+
require __DIR__ . '/header.php';
2525

2626
$adminObject = \Xmf\Module\Admin::getInstance();
2727

@@ -41,7 +41,7 @@
4141
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('feedback.php'));
4242
$feedback->name = $GLOBALS['xoopsUser']->getVar('name');
4343
$feedback->email = $GLOBALS['xoopsUser']->getVar('email');
44-
$feedback->site = XOOPS_URL;
44+
$feedback->site = \XOOPS_URL;
4545
$form = $feedback->getFormFeedback();
4646
$form->display();
4747
break;

admin/fields.php

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
// Define main template
3535
$templateMain = 'modulebuilder_fields.tpl';
3636

37-
include __DIR__ . '/header.php';
37+
require __DIR__ . '/header.php';
3838
// Recovered value of arguments op in the URL $
3939
$op = \Xmf\Request::getString('op', 'list');
4040
// Get fields Variables
@@ -53,19 +53,19 @@
5353
$GLOBALS['xoTheme']->addScript('modules/modulebuilder/assets/js/functions.js');
5454
$GLOBALS['xoTheme']->addScript('modules/modulebuilder/assets/js/sortable.js');
5555
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('fields.php'));
56-
$adminObject->addItemButton(_AM_MODULEBUILDER_TABLES_ADD, 'tables.php?op=new', 'add');
56+
$adminObject->addItemButton(\_AM_MODULEBUILDER_TABLES_ADD, 'tables.php?op=new', 'add');
5757
$GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left'));
5858
$GLOBALS['xoopsTpl']->assign('modPathIcon16', TDMC_URL . '/' . $modPathIcon16);
5959
// Redirect if there aren't modules
6060
$modulesCount = $helper->getHandler('Modules')->getCountModules();
6161
if (0 == $modulesCount) {
62-
\redirect_header('modules.php?op=new', 2, _AM_MODULEBUILDER_THEREARENT_MODULES2);
62+
\redirect_header('modules.php?op=new', 2, \_AM_MODULEBUILDER_THEREARENT_MODULES2);
6363
}
6464
unset($modulesCount);
6565
// Redirect if there aren't tables
6666
$tablesCount = $helper->getHandler('Tables')->getCountTables();
6767
if (0 == $tablesCount) {
68-
\redirect_header('tables.php?op=new', 2, _AM_MODULEBUILDER_THEREARENT_TABLES2);
68+
\redirect_header('tables.php?op=new', 2, \_AM_MODULEBUILDER_THEREARENT_TABLES2);
6969
}
7070
// Get the list of tables
7171
$tablesAll = $helper->getHandler('Tables')->getAllTables($start, $limit);
@@ -100,21 +100,21 @@
100100
unset($tlid);
101101
unset($fields);
102102
if ($tablesCount > $limit) {
103-
include_once XOOPS_ROOT_PATH . '/class/pagenav.php';
103+
require_once \XOOPS_ROOT_PATH . '/class/pagenav.php';
104104
$pagenav = new \XoopsPageNav($tablesCount, $limit, $start, 'start', 'op=list&limit=' . $limit);
105105
$GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4));
106106
}
107107
} else {
108-
$GLOBALS['xoopsTpl']->assign('error', _AM_MODULEBUILDER_THEREARENT_FIELDS);
108+
$GLOBALS['xoopsTpl']->assign('error', \_AM_MODULEBUILDER_THEREARENT_FIELDS);
109109
}
110110
break;
111111
case 'new':
112112
$GLOBALS['xoTheme']->addStylesheet('modules/modulebuilder/assets/css/admin/style.css');
113113
$GLOBALS['xoTheme']->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js');
114114
$GLOBALS['xoTheme']->addScript('modules/modulebuilder/assets/js/functions.js');
115115
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('fields.php'));
116-
$adminObject->addItemButton(_AM_MODULEBUILDER_TABLES_LIST, 'tables.php', 'list');
117-
$adminObject->addItemButton(_AM_MODULEBUILDER_FIELDS_LIST, 'fields.php', 'list');
116+
$adminObject->addItemButton(\_AM_MODULEBUILDER_TABLES_LIST, 'tables.php', 'list');
117+
$adminObject->addItemButton(\_AM_MODULEBUILDER_FIELDS_LIST, 'fields.php', 'list');
118118
$GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left'));
119119
// Form Add
120120
$fieldsObj = $helper->getHandler('Fields')->create();
@@ -175,10 +175,10 @@
175175
// Set field elements
176176
if ($fieldsObj->isNew()) {
177177
// Redirect to field.php if saved
178-
\redirect_header('fields.php', 2, \sprintf(_AM_MODULEBUILDER_FIELDS_FORM_SAVED_OK, $tableName));
178+
\redirect_header('fields.php', 2, \sprintf(\_AM_MODULEBUILDER_FIELDS_FORM_SAVED_OK, $tableName));
179179
} else {
180180
// Redirect to field.php if updated - (Needed code from table name by field_tid)
181-
\redirect_header('fields.php', 2, \sprintf(_AM_MODULEBUILDER_FIELDS_FORM_UPDATED_OK, $tableName));
181+
\redirect_header('fields.php', 2, \sprintf(\_AM_MODULEBUILDER_FIELDS_FORM_UPDATED_OK, $tableName));
182182
}
183183

184184
$GLOBALS['xoopsTpl']->assign('error', $fieldsObj->getHtmlErrors());
@@ -190,9 +190,9 @@
190190
$GLOBALS['xoTheme']->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js');
191191
$GLOBALS['xoTheme']->addScript('modules/modulebuilder/assets/js/functions.js');
192192
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('fields.php'));
193-
$adminObject->addItemButton(_AM_MODULEBUILDER_TABLES_ADD, 'tables.php?op=new', 'add');
194-
$adminObject->addItemButton(_AM_MODULEBUILDER_TABLES_LIST, 'tables.php', 'list');
195-
$adminObject->addItemButton(_AM_MODULEBUILDER_FIELDS_LIST, 'fields.php', 'list');
193+
$adminObject->addItemButton(\_AM_MODULEBUILDER_TABLES_ADD, 'tables.php?op=new', 'add');
194+
$adminObject->addItemButton(\_AM_MODULEBUILDER_TABLES_LIST, 'tables.php', 'list');
195+
$adminObject->addItemButton(\_AM_MODULEBUILDER_FIELDS_LIST, 'fields.php', 'list');
196196
$GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left'));
197197
// Form Edit
198198
$fieldId = \Xmf\Request::getInt('field_id');
@@ -215,7 +215,7 @@
215215
++$i;
216216
}
217217
}
218-
\redirect_header('fields.php', 5, _AM_MODULEBUILDER_FIELD_ORDER_ERROR);
218+
\redirect_header('fields.php', 5, \_AM_MODULEBUILDER_FIELD_ORDER_ERROR);
219219
unset($i);
220220
}
221221
exit;
@@ -235,10 +235,10 @@
235235
}
236236
}
237237
if ($helper->getHandler('Fields')->insert($fieldsObj)) {
238-
\redirect_header('fields.php', 3, _AM_MODULEBUILDER_TOGGLE_SUCCESS);
238+
\redirect_header('fields.php', 3, \_AM_MODULEBUILDER_TOGGLE_SUCCESS);
239239
}
240240
$GLOBALS['xoopsTpl']->assign('error', $fieldsObj->getHtmlErrors());
241241
}
242242
break;
243243
}
244-
include __DIR__ . '/footer.php';
244+
require __DIR__ . '/footer.php';

admin/header.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
* @author Txmod Xoops http://www.txmodxoops.org
2121
*
2222
*/
23-
include \dirname(__DIR__) . '/preloads/autoloader.php';
23+
require \dirname(__DIR__) . '/preloads/autoloader.php';
2424

25-
include_once \dirname(\dirname(\dirname(__DIR__))) . '/include/cp_header.php';
26-
include_once \dirname(__DIR__) . '/include/common.php';
25+
require_once \dirname(__DIR__, 3) . '/include/cp_header.php';
26+
require_once \dirname(__DIR__) . '/include/common.php';
2727

2828
$thisDirname = $GLOBALS['xoopsModule']->getVar('dirname');
2929
// Link System Icons
@@ -41,7 +41,7 @@
4141
// MyTextSanitizer
4242
$myts = MyTextSanitizer::getInstance();
4343
if (!isset($xoopsTpl) || !\is_object($xoopsTpl)) {
44-
include_once XOOPS_ROOT_PATH . '/class/template.php';
44+
require_once \XOOPS_ROOT_PATH . '/class/template.php';
4545
$xoopsTpl = new \XoopsTpl();
4646
}
4747
// System Icons

admin/index.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
$GLOBALS['xoopsOption']['template_main'] = 'modulebuilder_index.tpl';
2828

29-
include __DIR__ . '/header.php';
29+
require __DIR__ . '/header.php';
3030
$countSettings = $helper->getHandler('Settings')->getCount();
3131
$countModules = $helper->getHandler('Modules')->getCount();
3232
$countTables = $helper->getHandler('Tables')->getCount();
@@ -35,12 +35,12 @@
3535
unset($criteria);
3636

3737
//$templateMain = 'modulebuilder_index.tpl';
38-
$adminObject->addInfoBox(_AM_MODULEBUILDER_ADMIN_NUMMODULES);
39-
$adminObject->addInfoBoxLine(\sprintf('<label>' . _AM_MODULEBUILDER_THEREARE_NUMSETTINGS . '</label>', $countSettings), 'Blue');
40-
$adminObject->addInfoBoxLine(\sprintf('<label>' . _AM_MODULEBUILDER_THEREARE_NUMMODULES . '</label>', $countModules), 'Green');
41-
$adminObject->addInfoBoxLine(\sprintf('<label>' . _AM_MODULEBUILDER_THEREARE_NUMTABLES . '</label>', $countTables), 'Orange');
42-
$adminObject->addInfoBoxLine(\sprintf('<label>' . _AM_MODULEBUILDER_THEREARE_NUMFIELDS . '</label>', $countFields), 'Gray');
43-
$adminObject->addInfoBoxLine(\sprintf('<label>' . _AM_MODULEBUILDER_THEREARE_NUMFILES . '</label>', $countFiles), 'Red');
38+
$adminObject->addInfoBox(\_AM_MODULEBUILDER_ADMIN_NUMMODULES);
39+
$adminObject->addInfoBoxLine(\sprintf('<label>' . \_AM_MODULEBUILDER_THEREARE_NUMSETTINGS . '</label>', $countSettings), 'Blue');
40+
$adminObject->addInfoBoxLine(\sprintf('<label>' . \_AM_MODULEBUILDER_THEREARE_NUMMODULES . '</label>', $countModules), 'Green');
41+
$adminObject->addInfoBoxLine(\sprintf('<label>' . \_AM_MODULEBUILDER_THEREARE_NUMTABLES . '</label>', $countTables), 'Orange');
42+
$adminObject->addInfoBoxLine(\sprintf('<label>' . \_AM_MODULEBUILDER_THEREARE_NUMFIELDS . '</label>', $countFields), 'Gray');
43+
$adminObject->addInfoBoxLine(\sprintf('<label>' . \_AM_MODULEBUILDER_THEREARE_NUMFILES . '</label>', $countFiles), 'Red');
4444
// Upload Folders
4545
$folder = [
4646
TDMC_UPLOAD_PATH,
@@ -136,4 +136,4 @@ function showButtons($yamlFile)
136136
//$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('index.php'));
137137
//$GLOBALS['xoopsTpl']->assign('index', $adminObject->displayIndex());
138138

139-
include __DIR__ . '/footer.php';
139+
require __DIR__ . '/footer.php';

admin/logo.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* @author Txmod Xoops <[email protected]>
2323
*
2424
*/
25-
include __DIR__ . '/header.php';
25+
require __DIR__ . '/header.php';
2626
$funct = \Xmf\Request::getString('funct', '', 'GET');
2727
$iconName = \Xmf\Request::getString('iconName', '', 'GET');
2828
$caption = \Xmf\Request::getString('caption', '', 'GET');

0 commit comments

Comments
 (0)