69 $this->modulesList = XoopsLists::getModulesList();
74 $this->modulesDirnames[] = $module->getInfo(
'dirname');
97 if (!$module->getInfo(
'extension')) {
98 if ($module->getInfo(
'dirname') ==
'system') {
99 $module->setInfo(
'can_delete',
false);
100 $module->setInfo(
'can_disable',
false);
102 $module->setInfo(
'can_delete',
true);
103 $module->setInfo(
'can_disable',
true);
105 if (round($module->getInfo(
'version'), 2) != $module->getVar(
'version')) {
106 $module->setInfo(
'warning_update',
true);
109 \
XoopsBaseConfig::get(
'root-path') .
'/modules/' . $module->getVar(
'dirname') .
'/icons/logo_small.png'
113 \
XoopsBaseConfig::get(
'url') .
'/modules/' . $module->getVar(
'dirname') .
'/icons/logo_small.png'
116 $module->setInfo(
'logo_small', \
XoopsBaseConfig::get(
'url') .
'/media/xoops/images/icons/16/default.png');
118 $module->setInfo(
'version', round($module->getVar(
'version') / 100, 2));
122 \
XoopsBaseConfig::get(
'url') .
'/modules/' . $module->getVar(
'dirname') .
'/' . $module->getInfo(
'adminindex')
125 if ($module->getVar(
'isactive')) {
126 $module->setInfo(
'options', $module->getAdminMenu());
130 if (is_object(
$xoops->user)) {
136 $module->getVar(
'mid'),
139 if ($sadmin && ($module->getVar(
'hasnotification')
140 || is_array($module->getInfo(
'config')) || is_array($module->getInfo(
'comments')))
144 \
XoopsBaseConfig::get(
'url') .
'/modules/system/admin.php?fct=preferences&op=showmod&mod='
145 . $module->getVar(
'mid')
168 foreach ($this->modulesList as
$file) {
172 if (!in_array($file, $this->modulesDirnames)) {
176 if (!
$module->getInfo(
'extension')) {
178 $module->setInfo(
'version', round(
$module->getInfo(
'version'), 2));
197 public function install($mod =
'', $force =
false)
204 }
catch (DBALException $e) {
212 $module->setVar(
'isactive', 1);
213 $module->setVar(
'last_update', time());
214 $install_script =
$module->getInfo(
'onInstall');
215 if ($install_script && trim($install_script) !=
'') {
218 $func =
"xoops_module_pre_install_{$mod}";
220 if (function_exists($func)) {
224 $this->error = array_merge($this->error,
$module->getErrors());
228 $this->trace = array_merge($this->trace,
$module->getMessages());
232 $created_tables = array();
233 if (count($this->error) == 0) {
234 $schema_file =
$module->getInfo(
'schema');
235 $sql_file =
$module->getInfo(
'sqlfile');
236 if (!empty($schema_file)) {
245 $synchronizer =
new SingleDatabaseSynchronizer(
$xoops->db());
246 $synchronizer->updateSchema($importSchema,
true);
248 $xoops->deprecated(
'Install SQL files are deprecated since 2.6.0. Convert to portable Schemas');
259 $sql_query = fread(fopen($sql_file_path,
'r'), filesize($sql_file_path));
260 $sql_query = trim($sql_query);
262 foreach ($pieces as $piece) {
266 if (!$prefixed_query) {
267 $this->error[][
'sub'] =
'<span class="red">' . sprintf(
269 '<strong>' . $piece .
'</strong>'
274 if (!in_array($prefixed_query[4], $this->reservedTables) || $mod ==
'system') {
278 }
catch (Exception $e) {
279 $xoops->events()->triggerEvent(
'core.exception', $e);
284 $this->error[] =
$xoops->db()->errorInfo();
287 if (!in_array($prefixed_query[4], $created_tables)) {
288 $this->trace[][
'sub'] = sprintf(
290 '<strong>' .
$xoops->db()->prefix($prefixed_query[4]) .
'</strong>'
292 $created_tables[] = $prefixed_query[4];
294 $this->trace[][
'sub'] = sprintf(
296 '<strong>' .
$xoops->db()->prefix($prefixed_query[4]) .
'</strong>'
302 $this->error[][
'sub'] = sprintf(
304 '<strong>' . $prefixed_query[4] .
'</strong>'
311 if (count($this->error) > 0) {
312 foreach ($created_tables as $table) {
314 $xoops->db()->query(
'DROP TABLE ' .
$xoops->db()->prefix($table));
315 }
catch (Exception $e) {
316 $xoops->events()->triggerEvent(
'core.exception', $e);
325 if (count($this->error) == 0) {
327 $this->error[] = sprintf(
329 '<strong>' .
$module->getVar(
'name') .
'</strong>'
331 foreach ($created_tables as $ct) {
333 $xoops->db()->query(
'DROP TABLE ' .
$xoops->db()->prefix($ct));
334 }
catch (Exception $e) {
335 $xoops->events()->triggerEvent(
'core.exception', $e);
341 unset($created_tables);
344 unset($created_tables);
347 '<strong>' .
$module->getVar(
'mid') .
'</strong>'
349 $xoops->db()->beginTransaction();
359 $this->installConfigs(
$module,
'add');
361 if (
$module->getInfo(
'hasMain')) {
362 $groups = array(FixedGroups::ADMIN, FixedGroups::USERS, FixedGroups::ANONYMOUS);
364 $groups = array(FixedGroups::ADMIN);
367 $block_handler =
$xoops->getHandlerBlock();
368 $blocks = $block_handler->getByModule(
$module->getVar(
'mid'),
false);
371 foreach (
$groups as $mygroup) {
374 $mperm->setVar(
'gperm_groupid', $mygroup);
375 $mperm->setVar(
'gperm_itemid',
$module->getVar(
'mid'));
376 $mperm->setVar(
'gperm_name',
'module_admin');
377 $mperm->setVar(
'gperm_modid', 1);
379 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
381 '<strong>' . $mygroup .
'</strong>'
384 $this->trace[][
'sub'] = sprintf(
386 '<strong>' . $mygroup .
'</strong>'
392 $mperm->setVar(
'gperm_groupid', $mygroup);
393 $mperm->setVar(
'gperm_itemid',
$module->getVar(
'mid'));
394 $mperm->setVar(
'gperm_name',
'module_read');
395 $mperm->setVar(
'gperm_modid', 1);
397 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
399 '<strong>' . $mygroup .
'</strong>'
402 $this->trace[][
'sub'] = sprintf(
404 '<strong>' . $mygroup .
'</strong>'
408 foreach ($blocks as $blc) {
410 $bperm->setVar(
'gperm_groupid', $mygroup);
411 $bperm->setVar(
'gperm_itemid', $blc);
412 $bperm->setVar(
'gperm_name',
'block_read');
413 $bperm->setVar(
'gperm_modid', 1);
415 $this->trace[][
'sub'] =
'<span class="red">'
417 . $blc .
'</strong> Group ID: <strong>' . $mygroup .
'</strong></span>';
431 $func =
"xoops_module_install_{$mod}";
432 if (function_exists($func)) {
436 $this->trace = array_merge($this->trace,
$module->getErrors());
439 $this->trace = array_merge($this->trace,
$module->getMessages());
443 $this->trace[] = sprintf(
445 '<strong>' .
$module->getVar(
'name',
's') .
'</strong>'
455 $this->error[] = sprintf(
457 '<strong>' . $mod .
'</strong>'
478 if (
$module->getVar(
'dirname') ==
'system') {
479 $this->error[] = sprintf(
481 '<strong>' .
$module->getVar(
'name') .
'</strong>'
485 } elseif (
$module->getVar(
'dirname') ==
$xoops->getConfig(
'startpage')) {
486 $this->error[] = sprintf(
488 '<strong>' .
$module->getVar(
'name') .
'</strong>'
494 $uninstall_script =
$module->getInfo(
'onUninstall');
495 if ($uninstall_script && trim($uninstall_script) !=
'') {
498 $func =
"xoops_module_pre_uninstall_{$mod}";
500 if (function_exists($func)) {
504 $this->error[] = sprintf(
506 '<strong>' .
$module->getVar(
'name') .
'</strong>'
508 $this->error = array_merge($this->error,
$module->getErrors());
512 $this->trace = array_merge($this->trace,
$module->getMessages());
527 $modtables =
$module->getInfo(
'tables');
528 if ($modtables !=
false && is_array($modtables)) {
530 $schemaManager =
$xoops->db()->getSchemaManager();
532 $toSchema = $schemaManager->createSchema();
535 foreach ($modtables as $table) {
537 if (!in_array($table, $this->reservedTables)) {
538 $toSchema->dropTable(
$xoops->db()->prefix($table));
539 $this->trace[][
'sub'] = sprintf(
541 '<strong>' .
$xoops->db()->prefix($table) .
'</strong>'
544 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
546 '<strong>' .
$xoops->db()->prefix($table) .
'</strong>'
550 $synchronizer =
new SingleDatabaseSynchronizer(
$xoops->db());
551 $synchronizer->updateSchema($toSchema,
false);
566 $func =
'xoops_module_uninstall_' . $mod;
567 if (function_exists($func)) {
571 $this->trace = array_merge($this->error,
$module->getErrors());
574 $this->trace = array_merge($this->trace,
$module->getMessages());
577 $this->trace[] = sprintf(
579 '<strong>' .
$module->getVar(
'name') .
'</strong>'
601 $prev_version =
$module->getVar(
'version');
603 $temp_name =
$module->getVar(
'name');
605 $module->setVar(
'name', $temp_name);
606 $module->setVar(
'last_update', time());
613 $update_script =
$module->getInfo(
'onUpdate');
614 if (
false != $update_script && trim($update_script) !=
'') {
616 $func =
'xoops_module_preupdate_' . $mod;
617 if (function_exists($func)) {
621 $this->trace = array_merge($this->error,
$module->getErrors());
624 $this->trace = array_merge($this->trace,
$module->getMessages());
630 $schema_file =
$module->getInfo(
'schema');
631 if (!empty($schema_file)) {
640 $synchronizer =
new SingleDatabaseSynchronizer(
$xoops->db());
641 $synchronizer->updateSchema($importSchema,
true);
654 $xoops->tpl()->setCompileId();
660 $this->installConfigs(
$module,
'update');
663 $update_script =
$module->getInfo(
'onUpdate');
664 if (
false != $update_script && trim($update_script) !=
'') {
666 $func =
'xoops_module_update_' . $mod;
667 if (function_exists($func)) {
671 $this->trace = array_merge($this->error,
$module->getErrors());
674 $this->trace = array_merge($this->trace,
$module->getMessages());
708 $lines = file(
$path);
715 $ret .= str_replace(
"\n",
"\r\n", str_replace(
"\r\n",
"\n", $lines[
$i]));
730 $templates = $module->
getInfo(
'templates');
731 if (is_array($templates) && count($templates) > 0) {
733 $tplfile_handler =
$xoops->getHandlerTplfile();
734 foreach ($templates as
$tpl) {
735 $tpl[
'file'] = trim($tpl[
'file']);
736 if (!in_array($tpl[
'file'], $this->template_delng)) {
737 $type = (isset($tpl[
'type']) ? $tpl[
'type'] :
'module');
739 $tplfile = $tplfile_handler->create();
740 $tplfile->setVar(
'tpl_refid', $module->
getVar(
'mid'));
741 $tplfile->setVar(
'tpl_lastimported', 0);
742 $tplfile->setVar(
'tpl_lastmodified', time());
744 if (preg_match(
"/\.css$/i", $tpl[
'file'])) {
745 $tplfile->setVar(
'tpl_type',
'css');
747 $tplfile->setVar(
'tpl_type',
$type);
749 $tplfile->setVar(
'tpl_source', $tpldata,
true);
750 $tplfile->setVar(
'tpl_module', $module->
getVar(
'dirname'));
751 $tplfile->setVar(
'tpl_tplset',
'default');
752 $tplfile->setVar(
'tpl_file', $tpl[
'file'],
true);
753 $tplfile->setVar(
'tpl_desc', $tpl[
'description'],
true);
754 if (!$tplfile_handler->insertTpl($tplfile)) {
755 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
757 '<strong>' . $tpl[
'file'] .
'</strong>'
760 $newid = $tplfile->getVar(
'tpl_id');
761 $this->trace[][
'sub'] = sprintf(
763 '<strong>' . $tpl[
'file'] .
'</strong>'
765 if ($module->
getVar(
'dirname') ==
'system') {
766 if (!
$xoops->templateTouch($newid)) {
767 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
769 '<strong>' . $tpl[
'file'] .
'</strong>'
772 $this->trace[][
'sub'] = sprintf(
774 '<strong>' . $tpl[
'file'] .
'</strong>'
778 if (
$xoops->config[
'template_set'] ==
'default') {
779 if (!
$xoops->templateTouch($newid)) {
780 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
782 '<strong>' . $tpl[
'file'] .
'</strong>'
785 $this->trace[][
'sub'] = sprintf(
787 '<strong>' . $tpl[
'file'] .
'</strong>'
795 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
797 '<strong>' . $tpl[
'file'] .
'</strong>'
814 $tplfile_handler =
$xoops->getHandlerTplfile();
815 $templates = $tplfile_handler->find(
'default',
'module', $module->
getVar(
'mid'));
816 if (is_array($templates) && count($templates) > 0) {
820 foreach ($templates as $template) {
821 if (!$tplfile_handler->deleteTpl($template)) {
822 $this->template_delng[] = $template->getVar(
'tpl_file');
838 $blocks = $module->
getInfo(
'blocks');
840 $block_handler =
$xoops->getHandlerBlock();
841 $blockmodulelink_handler =
$xoops->getHandlerBlockmodulelink();
842 $tplfile_handler =
$xoops->getHandlerTplfile();
843 $showfuncs = array();
844 $funcfiles = array();
845 if (is_array($blocks) && count($blocks) > 0) {
846 foreach ($blocks as
$i => $block) {
847 if (isset($block[
'show_func']) && $block[
'show_func'] !=
''
848 && isset($block[
'file']) && $block[
'file'] !=
''
850 $showfuncs[] = $block[
'show_func'];
851 $funcfiles[] = $block[
'file'];
857 $block_obj = $block_handler->getObjects(
$criteria);
858 if (count($block_obj) == 0) {
859 $block_obj[0] = $block_handler->create();
860 $block_obj[0]->setVar(
'func_num',
$i);
861 $block_obj[0]->setVar(
'mid', $module->
getVar(
'mid'));
862 $block_obj[0]->setVar(
'name', addslashes($block[
'name']));
863 $block_obj[0]->setVar(
'title', addslashes($block[
'name']));
864 $block_obj[0]->setVar(
'side', 0);
865 $block_obj[0]->setVar(
'weight', 0);
866 $block_obj[0]->setVar(
'visible', 0);
867 $block_obj[0]->setVar(
'block_type', ($module->
getVar(
'dirname') ==
'system') ?
'S' :
'M');
868 $block_obj[0]->setVar(
'isactive', 1);
869 $block_obj[0]->setVar(
'content',
'');
870 $block_obj[0]->setVar(
'c_type',
'H');
871 $block_obj[0]->setVar(
'dirname', $module->
getVar(
'dirname'));
872 $block_obj[0]->setVar(
'options', isset($block[
'options']) ? $block[
'options'] :
'');
874 $block_obj[0]->setVar(
'func_file', $block[
'file']);
875 $block_obj[0]->setVar(
'show_func', isset($block[
'show_func']) ? $block[
'show_func'] :
'');
876 $block_obj[0]->setVar(
'edit_func', isset($block[
'edit_func']) ? $block[
'edit_func'] :
'');
877 $template = $this->
getTemplate($module->
getVar(
'dirname'), $block[
'template'],
'blocks');
878 $block_obj[0]->setVar(
'template', !empty($template) ? $block[
'template'] :
'');
879 $block_obj[0]->setVar(
'last_modified', time());
881 if (!$block_handler->insert($block_obj[0])) {
882 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
884 $block_obj[0]->getVar(
'name')
887 $this->trace[][
'sub'] = sprintf(
889 '<strong>' . $block_obj[0]->getVar(
'name')
890 ) .
'</strong>' . sprintf(
892 '<strong>' . $block_obj[0]->getVar(
'bid') .
'</strong>'
895 if (0 == $blockmodulelink_handler->getCount(
new Criteria(
'block_id', $block_obj[0]->getVar(
'bid')))) {
896 $blockmodulelink = $blockmodulelink_handler->create();
897 $blockmodulelink->setVar(
'block_id', $block_obj[0]->getVar(
'bid'));
898 $blockmodulelink->setVar(
'module_id', 0);
899 $blockmodulelink_handler->insert($blockmodulelink);
902 if ($template !=
'') {
903 $tplfile = $tplfile_handler->find(
'default',
'block', $block_obj[0]->getVar(
'bid'));
904 if (count($tplfile) == 0) {
905 $tplfile_new = $tplfile_handler->create();
906 $tplfile_new->setVar(
'tpl_module', $module->
getVar(
'dirname'));
907 $tplfile_new->setVar(
'tpl_refid', $block_obj[0]->getVar(
'bid'));
908 $tplfile_new->setVar(
'tpl_tplset',
'default');
909 $tplfile_new->setVar(
'tpl_file', $block_obj[0]->getVar(
'template'),
true);
910 $tplfile_new->setVar(
'tpl_type',
'block');
913 $tplfile_new = $tplfile[0];
914 $tplfile_new->setVars($tplfile_new->getValues());
916 $tplfile_new->setVar(
'tpl_source', $template,
true);
917 $tplfile_new->setVar(
'tpl_desc', $block[
'description'],
true);
918 $tplfile_new->setVar(
'tpl_lastmodified', time());
919 $tplfile_new->setVar(
'tpl_lastimported', 0);
920 if (!$tplfile_handler->insertTpl($tplfile_new)) {
921 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
923 '<strong>' . $block[
'template'] .
'</strong>'
926 $this->trace[][
'sub'] = sprintf(
928 '<strong>' . $block[
'template'] .
'</strong>'
930 if ($module->
getVar(
'dirname') ==
'system') {
931 if (!
$xoops->templateTouch($tplfile_new->getVar(
'tpl_id'))) {
932 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
934 '<strong>' . $block[
'template'] .
'</strong>'
937 $this->trace[][
'sub'] = sprintf(
939 '<strong>' . $block[
'template'] .
'</strong>'
943 if (
$xoops->config[
'template_set'] ==
'default') {
944 if (!
$xoops->templateTouch($tplfile_new->getVar(
'tpl_id'))) {
945 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
947 '<strong>' . $block[
'template'] .
'</strong>'
950 $this->trace[][
'sub'] = sprintf(
952 '<strong>' . $block[
'template'] .
'</strong>'
963 $blocks = $block_handler->getByModule($module->
getVar(
'mid'));
964 foreach ($blocks as $block) {
966 if (!in_array($block->getVar(
'show_func'), $showfuncs)
967 || !in_array($block->getVar(
'func_file'), $funcfiles)
969 if (!$block_handler->delete($block)) {
970 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
972 "<strong>" . $block->getVar(
'name') .
"</strong>"
975 "<strong>" . $block->getVar(
'bid') .
"</strong>"
978 $this->trace[][
'sub'] = sprintf(
980 '<strong>' . $block->getVar(
'name') .
'</strong>'
981 ) .
' ' . sprintf(
983 '<strong>' . $block->getVar(
'bid') .
'</strong>'
985 if ($block->getVar(
'template') !=
'') {
986 $tplfiles = $tplfile_handler->find(null,
'block', $block->getVar(
'bid'));
987 if (is_array($tplfiles)) {
989 foreach ($tplfiles as $tplfile) {
990 if (!$tplfile_handler->deleteTpl($tplfile)) {
991 $this->trace[][
'sub'] =
'<span class="red">'
993 .
'(ID: <strong>' . $tplfile->getVar(
'tpl_id') .
'</strong>)</span>';
995 $this->trace[][
'sub'] = sprintf(
997 "<strong>" . $tplfile->getVar(
'tpl_file') .
"</strong>"
1018 $block_handler =
$xoops->getHandlerBlock();
1019 $blocks = $block_handler->getByModule($module->
getVar(
'mid'));
1020 if (is_array($blocks) && count($blocks) > 0) {
1021 $tplfile_handler =
$xoops->getHandlerTplfile();
1024 foreach ($blocks as $block) {
1025 if (
false === $block_handler->deleteBlock($block)) {
1026 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
1028 "<strong>" . $block->getVar(
'name') .
"</strong>"
1031 "<strong>" . $block->getVar(
'bid') .
"</strong>"
1034 $this->trace[][
'sub'] = sprintf(
1036 "<strong>" . $block->getVar(
'name') .
"</strong>"
1039 "<strong>" . $block->getVar(
'bid') .
"</strong>"
1042 if ($block->getVar(
'template') !=
'') {
1043 $templates = $tplfile_handler->find(null,
'block', $block->getVar(
'bid'));
1045 foreach ($templates as $template) {
1046 if (!$tplfile_handler->delete($template)) {
1047 $this->trace[][
'sub'] =
'<span class="red">' . sprintf(
1049 $template->getVar(
'tpl_file')
1052 "<strong>" . $template->getVar(
'tpl_id') .
"</strong>"
1055 $this->trace[][
'sub'] = sprintf(
1057 "<strong>" . $template->getVar(
'tpl_file') .
"</strong>"
1060 "<strong>" . $template->getVar(
'tpl_id') .
"</strong>"
1088 $this->trace[][
'sub'] =
'<span class="red">'
1093 $this->config_delng[] = $config->getvar(
'conf_name');
1095 $this->config_old[$config->getvar(
'conf_name')][
'value'] = $config->getvar(
'conf_value',
'N');
1096 $this->config_old[$config->getvar(
'conf_name')][
'formtype'] = $config->getvar(
'conf_formtype');
1097 $this->config_old[$config->getvar(
'conf_name')][
'valuetype'] = $config->getvar(
'conf_valuetype');
1129 if (!in_array($config[
'name'], $this->config_delng)) {
1131 $confobj->setVar(
'conf_modid', $module->
getVar(
'mid'));
1132 $confobj->setVar(
'conf_catid', 0);
1133 $confobj->setVar(
'conf_name', $config[
'name']);
1134 $confobj->setVar(
'conf_title', $config[
'title'],
true);
1135 $confobj->setVar(
'conf_desc', $config[
'description'],
true);
1136 $confobj->setVar(
'conf_formtype', $config[
'formtype']);
1137 $confobj->setVar(
'conf_valuetype', $config[
'valuetype']);
1138 if (isset($this->config_old[$config[
'name']][
'value'])
1139 && $this->config_old[$config[
'name']][
'formtype'] == $config[
'formtype']
1140 && $this->config_old[$config[
'name']][
'valuetype'] == $config[
'valuetype']
1144 $confobj->setVar(
'conf_value', $this->config_old[$config[
'name']][
'value'],
true);
1146 $confobj->setConfValueForInput($config[
'default'],
true);
1149 $confobj->setVar(
'conf_order', $order);
1151 if (isset($config[
'options']) && is_array($config[
'options'])) {
1152 foreach ($config[
'options'] as $key => $value) {
1154 $confop->setVar(
'confop_name', $key,
true);
1155 $confop->setVar(
'confop_value', $value,
true);
1156 $confobj->setConfOptions($confop);
1157 $confop_msgs .=
'<br /> ';
1159 $confop_msgs .=
' ';
1161 $confop_msgs .=
' <strong>'
1170 $this->trace[][
'sub'] = sprintf(
1172 "<strong>" . $config[
'name'] .
"</strong>"
1175 $this->trace[][
'sub'] =
'<span class="red">'
const EF_GROUP_ID_ADMIN_ACCESS_RIGHT_NOT_ADDED
const EF_GROUP_ID_USER_ACCESS_RIGHT_NOT_ADDED
const E_BLOCK_ACCESS_NOT_ADDED
installconfigs(XoopsModule $module)
static formatTimestamp($time, $format= 'l', $timeoffset=null)
const EF_TABLE_DROP_NOT_ALLOWED
static prefixQuery($query, $prefix)
deleteBlocks(XoopsModule $module)
if(!isset($xoops->paths[$path_type])) if($path_type== 'var') $file
const SF_TEMPLATE_RECOMPILED
const S_BLOCK_ACCESS_ADDED
const E_SYSTEM_MODULE_CANNOT_BE_DEACTIVATED
getTemplate($dirname, $template, $type= '')
const SF_TEMPLATE_UPDATED
const SF_BLOCK_TEMPLATE_DELETED
const S_GROUP_PERMISSIONS_DELETED
const SF_DATA_INSERTED_TO_TABLE
const EF_BLOCK_NOT_DELETED
installTemplates(XoopsModule $module)
const EF_SQL_FILE_NOT_FOUND
getVar($key, $format= 's')
const EF_TEMPLATE_NOT_ADDED_TO_DATABASE
const EF_NOT_INSERTED_TO_DATABASE
const EF_TEMPLATE_NOT_UPDATED
const EF_TABLE_IS_RESERVED
deleteTemplates(XoopsModule $module)
const S_CONFIG_DATA_DELETED
static splitMySqlFile(&$ret, $sql)
const SF_GROUP_ID_ADMIN_ACCESS_RIGHT_ADDED
const SF_BLOCK_TEMPLATE_DEPRECATED
if($_SERVER['REQUEST_METHOD']== 'POST') $config_handler
install($mod= '', $force=false)
const MANAGING_PREFERENCES
const E_GROUP_PERMISSIONS_NOT_DELETED
const SF_GROUP_ID_USER_ACCESS_RIGHT_ADDED
importSchemaArray(array $schemaArray)
installBlocks(XoopsModule $module)
const S_CONFIG_OPTION_ADDED
deleteConfigs(XoopsModule $module)
static translate($key, $dirname= 'xoops')
const E_CONFIG_DATA_NOT_DELETED
const EF_TEMPLATE_NOT_DELETED
const E_BLOCK_TEMPLATE_DEPRECATED_NOT_REMOVED
static loadFile($file, $once=true)
const E_THIS_MODULE_IS_SET_AS_DEFAULT_START_PAGE
const EF_BLOCK_TEMPLATE_NOT_DELETED
const EF_TEMPLATE_NOT_RECOMPILED
const EF_CONFIG_NOT_ADDED
const MANAGING_PERMISSIONS