NobuNobu
nobun****@users*****
2006年 3月 7日 (火) 22:11:40 JST
Index: xoops2jp/html/install/include/functions.php diff -u /dev/null xoops2jp/html/install/include/functions.php:1.1.2.1 --- /dev/null Tue Mar 7 22:11:40 2006 +++ xoops2jp/html/install/include/functions.php Tue Mar 7 22:11:39 2006 @@ -0,0 +1,157 @@ +<?php +function getLanguage() { + $language_array = array( + 'en' => 'english', + 'ja' => 'japanese', + 'fr' => 'french', + 'de' => 'german', + 'nl' => 'dutch', + 'es' => 'spanish', + 'tw' => 'tchinese', + 'cn' => 'schinese', + 'ro' => 'romanian' + ); + + $language = 'english'; + if ( !empty($_POST['lang']) ) { + $language = $_POST['lang']; + } else { + if (isset($_COOKIE['install_lang'])) { + $language = $_COOKIE['install_lang']; + } else { + $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-us;q=0.7,zh-TW;q=0.6'; + if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); + foreach ($accept_langs as $al) { + $al = strtolower($al); + $al_len = strlen($al); + if ($al_len > 2) { + if (preg_match('/([a-z]{2});q=[0-9.]+$/', $al, $al_match)) { + $al = $al_match[1]; + } else { + continue; + } + } + if (isset($language_array[$al])) { + $language = $language_array[$al]; + break; + } + } + } + } + } + if ( !file_exists('./language/'.$language.'/install.php') ) { + $language = 'english'; + } + setcookie('install_lang', $language); + return $language; +} + +/* + * gets list of name of directories inside a directory + */ +function getDirList($dirname) +{ + $dirlist = array(); + if (is_dir($dirname) && $handle = opendir($dirname)) { + while (false !== ($file = readdir($handle))) { + if ( !preg_match('/^[.]{1,2}$/',$file) ) { + if (strtolower($file) != 'cvs' && is_dir($dirname.$file) ) { + $dirlist[$file]=$file; + } + } + } + closedir($handle); + asort($dirlist); + reset($dirlist); + } + return $dirlist; +} + +/* + * gets list of name of files within a directory + */ +function getImageFileList($dirname) +{ + $filelist = array(); + if (is_dir($dirname) && $handle = opendir($dirname)) { + while (false !== ($file = readdir($handle))) { + if (!preg_match('/^[.]{1,2}$/', $file) && preg_match('/[.gif|.jpg|.png]$/i', $file) ) { + $filelist[$file]=$file; + } + } + closedir($handle); + asort($filelist); + reset($filelist); + } + return $filelist; +} + +function &xoops_module_gettemplate($dirname, $template, $block=false) +{ + if ($block) { + $path = XOOPS_ROOT_PATH.'/modules/'.$dirname.'/templates/blocks/'.$template; + } else { + $path = XOOPS_ROOT_PATH.'/modules/'.$dirname.'/templates/'.$template; + } + if (!file_exists($path)) { + return false; + } else { + $lines = file($path); + } + if (!$lines) { + return false; + } + $ret = ''; + $count = count($lines); + for ($i = 0; $i < $count; $i++) { + $ret .= str_replace("\n", "\r\n", str_replace("\r\n", "\n", $lines[$i])); + } + return $ret; +} + +function check_language($language){ + if ( file_exists('../modules/system/language/'.$language.'/modinfo.php') ) { + return $language; + } else { + return 'english'; + } +} + +function b_back($option = null) +{ + if(!isset($option) || !is_array($option)) return ''; + $content = ''; + if(isset($option[0]) && $option[0] != ''){ + $content .= '<input type="button" value="'._INSTALL_L42.'"'. + ' onclick="location=\'index.php?op='.htmlspecialchars($option[0]).'\'" />'; + }else{ + $content .= '<input type="button" value="'._INSTALL_L42.'"'. + ' onclick="javascript:history.back();" />'; + } + if(isset($option[1]) && $option[1] != ''){ + $content .= '<span style="font-size:85%;"><< '.htmlspecialchars($option[1]).'</span>'; + } + return $content; +} + +function b_reload($option=''){ + if(empty($option)) return ''; + if (!defined('_INSTALL_L200')) { + define('_INSTALL_L200', 'Reload'); + } + return '<input type="button" value="'._INSTALL_L200.'" onclick="location.reload();" />'; +} + +function b_next($option=null){ + if(!isset($option) || !is_array($option)) return ''; + $content = ''; + if(isset($option[1]) && $option[1] != ''){ + $content .= '<span style="font-size:85%;">'.htmlspecialchars($option[1]).' >></span>'; + } + $content .= '<input type="hidden" name="op" value="'.htmlspecialchars($option[0]).'" />'; + $content .= '<input type="submit" name="submit" value="'._INSTALL_L47.'" />'; + return $content; +} + +?> Index: xoops2jp/html/install/include/makedata.php diff -u /dev/null xoops2jp/html/install/include/makedata.php:1.1.2.1 --- /dev/null Tue Mar 7 22:11:40 2006 +++ xoops2jp/html/install/include/makedata.php Tue Mar 7 22:11:39 2006 @@ -0,0 +1,345 @@ +<?php +// $Id: makedata.php,v 1.1.2.1 2006/03/07 13:11:39 nobunobu Exp $ +// ------------------------------------------------------------------------ // +// XOOPS - PHP Content Management System // +// Copyright (c) 2000 XOOPS.org // +// <http://www.xoops.org/> // +// ------------------------------------------------------------------------ // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation; either version 2 of the License, or // +// (at your option) any later version. // +// // +// You may not change or alter any portion of this comment or credits // +// of supporting developers from this source code or any supporting // +// source code which is considered copyrighted (c) material of the // +// original comment or credit authors. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program; if not, write to the Free Software // +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// ------------------------------------------------------------------------ // + +include_once './class/dbmanager.php'; + +// RMV +// TODO: Shouldn't we insert specific field names?? That way we can use +// the defaults specified in the database...!!!! (and don't have problem +// of missing fields in install file, when add new fields to database) + +function make_groups(&$dbm){ + $gruops['XOOPS_GROUP_ADMIN'] = $dbm->insert('groups', " VALUES (0, '".addslashes(_INSTALL_WEBMASTER)."', '".addslashes(_INSTALL_WEBMASTERD)."', 'Admin')"); + $gruops['XOOPS_GROUP_USERS'] = $dbm->insert('groups', " VALUES (0, '".addslashes(_INSTALL_REGUSERS)."', '".addslashes(_INSTALL_REGUSERSD)."', 'User')"); + $gruops['XOOPS_GROUP_ANONYMOUS'] = $dbm->insert('groups', " VALUES (0, '".addslashes(_INSTALL_ANONUSERS)."', '".addslashes(_INSTALL_ANONUSERSD)."', 'Anonymous')"); + + if(!$gruops['XOOPS_GROUP_ADMIN'] || !$gruops['XOOPS_GROUP_USERS'] || !$gruops['XOOPS_GROUP_ANONYMOUS']){ + return false; + } + + return $gruops; +} +function make_data(&$dbm, &$cm, $adminname, $adminpass, $adminmail, $language, $gruops){ + + $myts =& textSanitizer::getInstance(); + //$xoopsDB =& Database::getInstance(); + //$dbm = new db_manager; + + $tables = array(); + + // data for table 'groups_users_link' + + $dbm->insert('groups_users_link', " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 1)"); + $dbm->insert('groups_users_link', " VALUES (0, ".$gruops['XOOPS_GROUP_USERS'].", 1)"); + + // data for table 'group_permission' + + $dbm->insert("group_permission", " VALUES (0,".$gruops['XOOPS_GROUP_ADMIN'].",1,1,'module_admin')"); + $dbm->insert("group_permission", " VALUES (0,".$gruops['XOOPS_GROUP_ADMIN'].",1,1, 'module_read')"); + $dbm->insert("group_permission", " VALUES (0,".$gruops['XOOPS_GROUP_USERS'].",1,1,'module_read')"); + $dbm->insert("group_permission", " VALUES (0,".$gruops['XOOPS_GROUP_ANONYMOUS'].",1,1,'module_read')"); + + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",1,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",2,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",3,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",4,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",5,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",6,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",7,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",8,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",9,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",10,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",11,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",12,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",13,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",14,1,'system_admin')"); + $dbm->insert("group_permission", " VALUES(0,".$gruops['XOOPS_GROUP_ADMIN'].",15,1,'system_admin')"); + + // data for table 'banner' + + $dbm->insert("banner", " (bid, cid, imptotal, impmade, clicks, imageurl, clickurl, date) VALUES (1, 1, 0, 1, 0, '".XOOPS_URL."/images/banners/xoops_banner.gif', 'http://xoopscube.jp/', 1008813250)"); + $dbm->insert("banner", " (bid, cid, imptotal, impmade, clicks, imageurl, clickurl, date) VALUES (2, 1, 0, 1, 0, '".XOOPS_URL."/images/banners/xoops_banner_2.gif', 'http://xoopscube.jp/', 1008813250)"); + $dbm->insert("banner", " (bid, cid, imptotal, impmade, clicks, imageurl, clickurl, date) VALUES (3, 1, 0, 1, 0, '".XOOPS_URL."/images/banners/banner.swf', 'http://xoopscube.jp/', 1008813250)"); + + // default theme + + $time = time(); + $dbm->insert('tplset', " VALUES (1, 'default', 'XOOPS Cube Default Template Set', '', ".$time.")"); + + // data for table 'config' + + $dbm->insert('config', " VALUES (1, 0, 1, 'sitename', '_MD_AM_SITENAME', 'XOOPS Cube Site', '_MD_AM_SITENAMEDSC', 'textbox', 'text', 0)"); + $dbm->insert('config', " VALUES (2, 0, 1, 'slogan', '_MD_AM_SLOGAN', 'Just Use it!', '_MD_AM_SLOGANDSC', 'textbox', 'text', 2)"); + $dbm->insert('config', " VALUES (3, 0, 1, 'language', '_MD_AM_LANGUAGE', '".addslashes($language)."', '_MD_AM_LANGUAGEDSC', 'language', 'other', 4)"); + $dbm->insert('config', " VALUES (4, 0, 1, 'startpage', '_MD_AM_STARTPAGE', '--', '_MD_AM_STARTPAGEDSC', 'startpage', 'other', 6)"); + //Get Server timezone Setting + $time_diff_val = date('O'); + $time_diff = floatval(substr($time_diff_val,0,1).(substr($time_diff_val,1,2) + substr($time_diff_val,3,2)/60)); + $dbm->insert('config', " VALUES (5, 0, 1, 'server_TZ', '_MD_AM_SERVERTZ', '".$time_diff."', '_MD_AM_SERVERTZDSC', 'timezone', 'float', 8)"); + $dbm->insert('config', " VALUES (6, 0, 1, 'default_TZ', '_MD_AM_DEFAULTTZ', '".$time_diff."', '_MD_AM_DEFAULTTZDSC', 'timezone', 'float', 10)"); + $dbm->insert('config', " VALUES (7, 0, 1, 'theme_set', '_MD_AM_DTHEME', 'cube_default', '_MD_AM_DTHEMEDSC', 'theme', 'other', 12)"); + $dbm->insert('config', " VALUES (8, 0, 1, 'anonymous', '_MD_AM_ANONNAME', '".addslashes(_INSTALL_ANON)."', '_MD_AM_ANONNAMEDSC', 'textbox', 'text', 15)"); + $dbm->insert('config', " VALUES (9, 0, 1, 'gzip_compression', '_MD_AM_USEGZIP', '0', '_MD_AM_USEGZIPDSC', 'yesno', 'int', 16)"); + $dbm->insert('config', " VALUES (10, 0, 1, 'usercookie', '_MD_AM_USERCOOKIE', 'xoops_user', '_MD_AM_USERCOOKIEDSC', 'textbox', 'text', 18)"); + $dbm->insert('config', " VALUES (11, 0, 1, 'session_expire', '_MD_AM_SESSEXPIRE', '15', '_MD_AM_SESSEXPIREDSC', 'textbox', 'int', 22)"); + $dbm->insert('config', " VALUES (12, 0, 1, 'banners', '_MD_AM_BANNERS', '0', '_MD_AM_BANNERSDSC', 'yesno', 'int', 26)"); + $dbm->insert('config', " VALUES (13, 0, 1, 'debug_mode', '_MD_AM_DEBUGMODE', '1', '_MD_AM_DEBUGMODEDSC', 'select', 'int', 24)"); + $dbm->insert('config', " VALUES (14, 0, 1, 'my_ip', '_MD_AM_MYIP', '127.0.0.1', '_MD_AM_MYIPDSC', 'textbox', 'text', 29)"); + $dbm->insert('config', " VALUES (15, 0, 1, 'use_ssl', '_MD_AM_USESSL', '0', '_MD_AM_USESSLDSC', 'yesno', 'int', 30)"); + $dbm->insert('config', " VALUES (16, 0, 1, 'session_name', '_MD_AM_SESSNAME', 'xoops_session', '_MD_AM_SESSNAMEDSC', 'textbox', 'text', 20)"); + $dbm->insert('config', " VALUES (17, 0, 2, 'minpass', '_MD_AM_MINPASS', '5', '_MD_AM_MINPASSDSC', 'textbox', 'int', 1)"); + $dbm->insert('config', " VALUES (18, 0, 2, 'minuname', '_MD_AM_MINUNAME', '3', '_MD_AM_MINUNAMEDSC', 'textbox', 'int', 2)"); + $dbm->insert('config', " VALUES (19, 0, 2, 'new_user_notify', '_MD_AM_NEWUNOTIFY', '1', '_MD_AM_NEWUNOTIFYDSC', 'yesno', 'int', 4)"); + $dbm->insert('config', " VALUES (20, 0, 2, 'new_user_notify_group', '_MD_AM_NOTIFYTO', ".$gruops['XOOPS_GROUP_ADMIN'].", '_MD_AM_NOTIFYTODSC', 'group', 'int', 6)"); + $dbm->insert('config', " VALUES (21, 0, 2, 'activation_type', '_MD_AM_ACTVTYPE', '0', '_MD_AM_ACTVTYPEDSC', 'select', 'int', 8)"); + $dbm->insert('config', " VALUES (22, 0, 2, 'activation_group', '_MD_AM_ACTVGROUP', ".$gruops['XOOPS_GROUP_ADMIN'].", '_MD_AM_ACTVGROUPDSC', 'group', 'int', 10)"); + $dbm->insert('config', " VALUES (23, 0, 2, 'uname_test_level', '_MD_AM_UNAMELVL', '0', '_MD_AM_UNAMELVLDSC', 'select', 'int', 12)"); + $dbm->insert('config', " VALUES (24, 0, 2, 'avatar_allow_upload', '_MD_AM_AVATARALLOW', '0', '_MD_AM_AVATARALWDSC', 'yesno', 'int', 14)"); + $dbm->insert('config', " VALUES (27, 0, 2, 'avatar_width', '_MD_AM_AVATARW', '80', '_MD_AM_AVATARWDSC', 'textbox', 'int', 16)"); + $dbm->insert('config', " VALUES (28, 0, 2, 'avatar_height', '_MD_AM_AVATARH', '80', '_MD_AM_AVATARHDSC', 'textbox', 'int', 18)"); + $dbm->insert('config', " VALUES (29, 0, 2, 'avatar_maxsize', '_MD_AM_AVATARMAX', '35000', '_MD_AM_AVATARMAXDSC', 'textbox', 'int', 20)"); + $dbm->insert('config', " VALUES (30, 0, 1, 'adminmail', '_MD_AM_ADMINML', '".addslashes($adminmail)."', '_MD_AM_ADMINMLDSC', 'textbox', 'text', 3)"); + $dbm->insert('config', " VALUES (31, 0, 2, 'self_delete', '_MD_AM_SELFDELETE', '0', '_MD_AM_SELFDELETEDSC', 'yesno', 'int', 22)"); + $dbm->insert('config', " VALUES (32, 0, 1, 'com_mode', '_MD_AM_COMMODE', 'nest', '_MD_AM_COMMODEDSC', 'select', 'text', 34)"); + $dbm->insert('config', " VALUES (33, 0, 1, 'com_order', '_MD_AM_COMORDER', '0', '_MD_AM_COMORDERDSC', 'select', 'int', 36)"); + $dbm->insert('config', " VALUES (34, 0, 2, 'bad_unames', '_MD_AM_BADUNAMES', '".addslashes(serialize(array('webmaster', '^xoops', '^admin')))."', '_MD_AM_BADUNAMESDSC', 'textarea', 'array', 24)"); + $dbm->insert('config', " VALUES (35, 0, 2, 'bad_emails', '_MD_AM_BADEMAILS', '".addslashes(serialize(array('xoopscube.org$', 'xoopscube.jp$')))."', '_MD_AM_BADEMAILSDSC', 'textarea', 'array', 26)"); + $dbm->insert('config', " VALUES (36, 0, 2, 'maxuname', '_MD_AM_MAXUNAME', '10', '_MD_AM_MAXUNAMEDSC', 'textbox', 'int', 3)"); + $dbm->insert('config', " VALUES (37, 0, 1, 'bad_ips', '_MD_AM_BADIPS', '".addslashes(serialize(array('127.0.0.1')))."', '_MD_AM_BADIPSDSC', 'textarea', 'array', 42)"); + $dbm->insert('config', " VALUES (38, 0, 3, 'meta_keywords', '_MD_AM_METAKEY', '', '_MD_AM_METAKEYDSC', 'textarea', 'text', 0)"); + $dbm->insert('config', " VALUES (39, 0, 3, 'footer', '_MD_AM_FOOTER', 'Powered by XOOPS Cube 2.1 Alpha 1 © 2001-2006 <a href=\"http://www.xoopscube.org/\" target=\"_blank\">The XOOPS Cube Project</a>', '_MD_AM_FOOTERDSC', 'textarea', 'text', 20)"); + $dbm->insert('config', " VALUES (40, 0, 4, 'censor_enable', '_MD_AM_DOCENSOR', '0', '_MD_AM_DOCENSORDSC', 'yesno', 'int', 0)"); + $dbm->insert('config', " VALUES (41, 0, 4, 'censor_words', '_MD_AM_CENSORWRD', '".addslashes(serialize(array('fuck', 'shit')))."', '_MD_AM_CENSORWRDDSC', 'textarea', 'array', 1)"); + $dbm->insert('config', " VALUES (42, 0, 4, 'censor_replace', '_MD_AM_CENSORRPLC', '#OOPS#', '_MD_AM_CENSORRPLCDSC', 'textbox', 'text', 2)"); + $dbm->insert('config', " VALUES (43, 0, 3, 'meta_robots', '_MD_AM_METAROBOTS', 'index,follow', '_MD_AM_METAROBOTSDSC', 'select', 'text', 2)"); + $dbm->insert('config', " VALUES (44, 0, 5, 'enable_search', '_MD_AM_DOSEARCH', '1', '_MD_AM_DOSEARCHDSC', 'yesno', 'int', 0)"); + $dbm->insert('config', " VALUES (45, 0, 5, 'keyword_min', '_MD_AM_MINSEARCH', '5', '_MD_AM_MINSEARCHDSC', 'textbox', 'int', 1)"); + $dbm->insert('config', " VALUES (46, 0, 2, 'avatar_minposts', '_MD_AM_AVATARMP', '0', '_MD_AM_AVATARMPDSC', 'textbox', 'int', 15)"); + $dbm->insert('config', " VALUES (47, 0, 1, 'enable_badips', '_MD_AM_DOBADIPS', '0', '_MD_AM_DOBADIPSDSC', 'yesno', 'int', 40)"); + $dbm->insert('config', " VALUES (48, 0, 3, 'meta_rating', '_MD_AM_METARATING', 'general', '_MD_AM_METARATINGDSC', 'select', 'text', 4)"); + $dbm->insert('config', " VALUES (49, 0, 3, 'meta_author', '_MD_AM_METAAUTHOR', '', '_MD_AM_METAAUTHORDSC', 'textbox', 'text', 6)"); + $dbm->insert('config', " VALUES (50, 0, 3, 'meta_copyright', '_MD_AM_METACOPYR', '', '_MD_AM_METACOPYRDSC', 'textbox', 'text', 8)"); + $dbm->insert('config', " VALUES (51, 0, 3, 'meta_description', '_MD_AM_METADESC', '', '_MD_AM_METADESCDSC', 'textarea', 'text', 1)"); + $dbm->insert('config', " VALUES (52, 0, 2, 'allow_chgmail', '_MD_AM_ALLWCHGMAIL', '0', '_MD_AM_ALLWCHGMAILDSC', 'yesno', 'int', 3)"); + $dbm->insert('config', " VALUES (53, 0, 1, 'use_mysession', '_MD_AM_USEMYSESS', '0', '_MD_AM_USEMYSESSDSC', 'yesno', 'int', 19)"); + $dbm->insert('config', " VALUES (54, 0, 2, 'reg_dispdsclmr', '_MD_AM_DSPDSCLMR', 1, '_MD_AM_DSPDSCLMRDSC', 'yesno', 'int', 30)"); + $dbm->insert('config', " VALUES (55, 0, 2, 'reg_disclaimer', '_MD_AM_REGDSCLMR', '".addslashes(_INSTALL_DISCLMR)."', '_MD_AM_REGDSCLMRDSC', 'textarea', 'text', 32)"); + $dbm->insert('config', " VALUES (56, 0, 2, 'allow_register', '_MD_AM_ALLOWREG', 1, '_MD_AM_ALLOWREGDSC', 'yesno', 'int', 0)"); + $dbm->insert('config', " VALUES (57, 0, 1, 'theme_fromfile', '_MD_AM_THEMEFILE', '0', '_MD_AM_THEMEFILEDSC', 'yesno', 'int', 13)"); + $dbm->insert('config', " VALUES (58, 0, 1, 'closesite', '_MD_AM_CLOSESITE', '0', '_MD_AM_CLOSESITEDSC', 'yesno', 'int', 26)"); + $dbm->insert('config', " VALUES (59, 0, 1, 'closesite_okgrp', '_MD_AM_CLOSESITEOK', '".addslashes(serialize(array('1')))."', '_MD_AM_CLOSESITEOKDSC', 'group_multi', 'array', 27)"); + $dbm->insert('config', " VALUES (60, 0, 1, 'closesite_text', '_MD_AM_CLOSESITETXT', '"._INSTALL_L165."', '_MD_AM_CLOSESITETXTDSC', 'textarea', 'text', 28)"); + $dbm->insert('config', " VALUES (61, 0, 1, 'sslpost_name', '_MD_AM_SSLPOST', 'xoops_ssl', '_MD_AM_SSLPOSTDSC', 'textbox', 'text', 31)"); + $dbm->insert('config', " VALUES (62, 0, 1, 'module_cache', '_MD_AM_MODCACHE', '', '_MD_AM_MODCACHEDSC', 'module_cache', 'array', 50)"); + $dbm->insert('config', " VALUES (63, 0, 1, 'template_set', '_MD_AM_DTPLSET', 'default', '_MD_AM_DTPLSETDSC', 'tplset', 'other', 14)"); + + $dbm->insert('config', " VALUES (64,0,6,'mailmethod','_MD_AM_MAILERMETHOD','mail','_MD_AM_MAILERMETHODDESC','select','text',4)"); + $dbm->insert('config', " VALUES (65,0,6,'smtphost','_MD_AM_SMTPHOST','a:1:{i:0;s:0:\"\";}', '_MD_AM_SMTPHOSTDESC','textarea','array',6)"); + $dbm->insert('config', " VALUES (66,0,6,'smtpuser','_MD_AM_SMTPUSER','','_MD_AM_SMTPUSERDESC','textbox','text',7)"); + $dbm->insert('config', " VALUES (67,0,6,'smtppass','_MD_AM_SMTPPASS','','_MD_AM_SMTPPASSDESC','password','text',8)"); + $dbm->insert('config', " VALUES (68,0,6,'sendmailpath','_MD_AM_SENDMAILPATH','/usr/sbin/sendmail','_MD_AM_SENDMAILPATHDESC','textbox','text',5)"); + $dbm->insert('config', " VALUES (69,0,6,'from','_MD_AM_MAILFROM','','_MD_AM_MAILFROMDESC','textbox','text', 1)"); + $dbm->insert('config', " VALUES (70,0,6,'fromname','_MD_AM_MAILFROMNAME','','_MD_AM_MAILFROMNAMEDESC','textbox','text',2)"); + $dbm->insert('config', " VALUES (71, 0, 1, 'sslloginlink', '_MD_AM_SSLLINK', 'https://', '_MD_AM_SSLLINKDSC', 'textbox', 'text', 33)"); + $dbm->insert('config', " VALUES (72, 0, 1, 'theme_set_allowed', '_MD_AM_THEMEOK', '".serialize(array('default'))."', '_MD_AM_THEMEOKDSC', 'theme_multi', 'array', 13)"); + // RMV-NOTIFY... Need to specify which user is sender of notification PM + $dbm->insert('config', " VALUES (73,0,6,'fromuid','_MD_AM_MAILFROMUID','1','_MD_AM_MAILFROMUIDDESC','user','int',3)"); + + // install modules + installModule($dbm, 1, "system", _MI_SYSTEM_NAME, $language, $gruops); + + installModule($dbm, 2, "base", _MI_BASE_NAME, $language, $gruops, true); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 2, 1, 'module_admin')"); + + installModule($dbm, 3, "legacyRender", _MI_LEGACYRENDER_NAME, $language, $gruops, true); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 3, 1, 'module_admin')"); + + installModule($dbm, 4, "user", _MI_USER_NAME, $language, $gruops, true); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 4, 1, 'module_admin')"); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 4, 1, 'module_read')"); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_USERS'].", 4, 1, 'module_read')"); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ANONYMOUS'].", 4, 1, 'module_read')"); + + installModule($dbm, 5, "pm", _MI_PM_NAME, $language, $gruops, true); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 5, 1, 'module_admin')"); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 5, 1, 'module_read')"); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_USERS'].", 5, 1, 'module_read')"); + + installModule($dbm, 6, "stdCache", _MI_STDCACHE_NAME, $language, $gruops, true); + $dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", 6, 1, 'module_admin')"); + + // data for table 'users' + + $temp = md5($adminpass); + $regdate = time(); + //$dbadminname= addslashes($adminname); + // RMV-NOTIFY (updated for extra columns in user table) + $dbm->insert('users', " VALUES (1,'','".addslashes($adminname)."','".addslashes($adminmail)."','".XOOPS_URL."/','blank.gif','".$regdate."','','','',1,'','','','','".$temp."',0,0,7,5,'default','".$time_diff."',".time().",'thread',0,1,0,'','','',0)"); + + + // data for table 'block_module_link' + + $sql = 'SELECT bid, side FROM '.$dbm->prefix('newblocks'); + $result = $dbm->query($sql); + + while ($myrow = $dbm->fetchArray($result)) { + if ($myrow['side'] == 0) { + $dbm->insert("block_module_link", " VALUES (".$myrow['bid'].", 0)"); + } else { + $dbm->insert("block_module_link", " VALUES (".$myrow['bid'].", -1)"); + } + } + + return $gruops; +} + +/** + * + * Install module by module's name, language and specified mid. + * + * @param $dbm object Database manager instance + * @param $mid int module's ID + * @param $module string module's name + * @param $language string language + * @param $grops array hash map + */ +function installModule(&$dbm, $mid, $module, $module_name, $language = 'english', &$groups) { + if ( file_exists("../modules/${module}/language/${language}/modinfo.php") ) { + include "../modules/${module}/language/${language}/modinfo.php"; + } else { + include "../modules/${module}/language/english/modinfo.php"; + $language = 'english'; + } + + $modversion = array(); + require_once "../modules/${module}/xoops_version.php"; + $time = time(); + + // RMV-NOTIFY (updated for extra column in table) + // + // TODO We should set hasconfig and more option values here. + // + $hasconfig = isset($modversion['config']) ? 1 : 0; + $hasmain = 0; + if (isset($modversion['hasMain']) && $modversion['hasMain'] == 1) { + $hasmain = 1; + } + $dbm->insert("modules", " VALUES (${mid}, '" . constant($module_name) . "', 100, ".$time.", 0, 1, '${module}', ${hasmain}, 1, 0, ${hasconfig}, 0, 0)"); + + // + // Database + // TODO Dependence on mysql, Now. + // + if (isset($modversion['sqlfile']['mysql'])) { + $dbm->queryFromFile("../modules/${module}/" . $modversion['sqlfile']['mysql']); + } + + if (is_array($modversion['templates']) && count($modversion['templates']) > 0) { + foreach ($modversion['templates'] as $tplfile) { + if ($fp = fopen("../modules/${module}/templates/".$tplfile['file'], 'r')) { + $newtplid = $dbm->insert('tplfile', " VALUES (0, ${mid}, '${module}', 'default', '".addslashes($tplfile['file'])."', '".addslashes($tplfile['description'])."', ".$time.", ".$time.", 'module')"); + //$newtplid = $xoopsDB->getInsertId(); + if (filesize("../modules/${module}/templates/".$tplfile['file']) > 0) { + $tplsource = fread($fp, filesize("../modules/${module}/templates/".$tplfile['file'])); + } + else { + $tplsource = ""; + } + fclose($fp); + $dbm->insert('tplsource', " (tpl_id, tpl_source) VALUES (".$newtplid.", '".addslashes($tplsource)."')"); + } + } + } + + if (is_array($modversion['blocks']) && count($modversion['blocks']) > 0) { + foreach ($modversion['blocks'] as $func_num => $newblock) { + if ($fp = fopen("../modules/${module}/templates/blocks/".$newblock['template'], 'r')) { + // + // The following checking is dependence on the structure of system module. + // + if (in_array($newblock['template'], array('system_block_user.html', 'system_block_login.html', 'system_block_mainmenu.html'))) { + $visible = 1; + } else { + $visible = 0; + } + $options = !isset($newblock['options']) ? '' : trim($newblock['options']); + $edit_func = !isset($newblock['edit_func']) ? '' : trim($newblock['edit_func']); + $newbid = $dbm->insert('newblocks', " VALUES (0, ${mid}, ".$func_num.", '".addslashes($options)."', '".addslashes($newblock['name'])."', '".addslashes($newblock['name'])."', '', 0, 0, ".$visible.", 'S', 'H', 1, '${module}', '".addslashes($newblock['file'])."', '".addslashes($newblock['show_func'])."', '".addslashes($edit_func)."', '".addslashes($newblock['template'])."', 0, ".$time.")"); + //$newbid = $xoopsDB->getInsertId(); + $newtplid = $dbm->insert('tplfile', " VALUES (0, ".$newbid.", '${module}', 'default', '".addslashes($newblock['template'])."', '".addslashes($newblock['description'])."', ".$time.", ".$time.", 'block')"); + //$newtplid = $xoopsDB->getInsertId(); + if (filesize("../modules/${module}/templates/blocks/".$newblock['template']) > 0) { + $tplsource = fread($fp, filesize("../modules/${module}/templates/blocks/".$newblock['template'])); + } + else { + $tplsource = ""; + } + fclose($fp); + $dbm->insert('tplsource', " (tpl_id, tpl_source) VALUES (".$newtplid.", '".addslashes($tplsource)."')"); + + $dbm->insert("group_permission", " VALUES (0, ".$groups['XOOPS_GROUP_ADMIN'].", ".$newbid.", 1, 'block_read')"); + //$dbm->insert("group_permission", " VALUES (0, ".$gruops['XOOPS_GROUP_ADMIN'].", ".$newbid.", 'xoops_blockadmiin')"); + $dbm->insert("group_permission", " VALUES (0, ".$groups['XOOPS_GROUP_USERS'].", ".$newbid.", 1, 'block_read')"); + $dbm->insert("group_permission", " VALUES (0, ".$groups['XOOPS_GROUP_ANONYMOUS'].", ".$newbid.", 1, 'block_read')"); + } + } + } + + // + // Install preferences + // + if (isset($modversion['config'])) { + $count = 0; + foreach ($modversion['config'] as $configInfo) { + // + // TODO We have to sanitize. + // + $name = $configInfo['name']; + $title = $configInfo['title']; + $desc = $configInfo['description']; + $formtype = $configInfo['formtype']; + $valuetype = $configInfo['valuetype']; + $default = $configInfo['default']; + + if ($valuetype == "array") { + $default = serialize(explode('|', trim($default))); + } + + $conf_id = $dbm->insert("config", " VALUES (0, ${mid}, 0, '${name}', '${title}', '${default}', '${desc}', '${formtype}', '${valuetype}', ${count})"); + + if (isset($configInfo['options']) && is_array($configInfo['options'])) { + foreach ($configInfo['options'] as $key => $value) { + $dbm->insert("configoption", " VALUES (0, '${key}', '${value}', ${conf_id})"); + } + } + + $count++; + } + } +} + +?>