This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
MatritumCantat_Web/www/administrator/components/com_simpleboard/admin.simpleboard.php

1447 lines
56 KiB
PHP
Raw Permalink Normal View History

<?php
//
// Copyright (C) 2003 Jan de Graaff
// All rights reserved..
//
// This program uses parts of the original Simpleboard Application
// 0.7.0b written by Josh Levine; http://www.joshlevine.net
//
// This source file is part of the SimpleBoard Component, a Mambo 4.5
// custom Component By Jan de Graaff - http://tsmf.jigsnet.com
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License (GPL)
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// Please note that the GPL states that any headers in files and
// Copyright notices as well as credits in headers, source files
// and output (screens, prints, etc.) can not be removed.
// You can extend them with your own credits, though...
//
// 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.
//
// The "GNU General Public License" (GPL) is available at
// http://www.gnu.org/copyleft/gpl.html.
//
// ################################################################
// MOS Intruder Alerts
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
//include_once $_CONFIG->SITEPATH."/legacy.php";
// ################################################################
/**
* Users Table Class
*
* Provides access to the #__sb_users table
*/
class sbUserprofile extends mosDBTable {
/** @var int Unique id*/
var $userid=null;
/** @var string */
var $view=null;
/** @var string */
var $signature=null;
/** @var int */
var $moderator=null;
/** @var int */
var $block=null;
/** @var int */
var $future1=null;
/** @var string */
var $future2=null;
/**
* @param database A database connector object
*/
function sbUserprofile( &$database ) {
$this->mosDBTable( '#__sb_users', 'id', $database );
}
}
/**
* Users Table Class
*
* Provides access to the #__sb_users table
*/
class sbModeration extends mosDBTable {
/** @var int Unique id*/
var $catid=null;
/** @var int */
var $userid=null;
/** @var int */
var $future1=null;
/** @var int */
var $future2=null;
/**
* @param database A database connector object
*/
function sbModeration( &$database ) {
$this->mosDBTable( '#__sb_moderation', 'catid', $database );
}
}
class sbForum extends mosDBTable {
/** @var int Unique id*/
var $id=null;
/** @var string */
var $parent=null;
/** @var string */
var $name=null;
var $cat_emoticon=null;
var $locked=null;
var $alert_admin=null;
var $moderated=null;
var $pub_access=null;
var $pub_recurse=null;
var $admin_access=null;
var $admin_recurse=null;
var $public=null;
var $ordering=null;
var $future2=null;
var $published=null;
var $checked_out=null;
var $checked_out_time=null;
var $review=null;
var $hits=null;
var $description=null;
/**
* @param database A database connector object
*/
function sbForum( &$database ) {
$this->mosDBTable( '#__sb_categories', 'id', $database );
}
}
global $version, $action, $parentid, $forumname, $catid, $newparent,$msg,$deleteSig,$signature,$newview,$user_id,$thread,$prev_display,$prev_catdisplay,$display,$order,$moderator;
global $mosConfig_absolute_path, $mosConfig_admin_template, $mosConfig_live_site;
global $_CONFIG;
if ($_CONFIG->SITEPATH == "") {
$_CONFIG->SITEPATH=$mosConfig_absolute_path;
$_CONFIG->SITEURL = $mosConfig_live_site;
}
//error_reporting(E_ALL);
//template:
//check if the database is version 0.9.2 and up
//from version 0.9.1 and up, there must be a column called pub_access..
//$database->setQuery("select pub_access from #__sb_categories");
//if (!$database->query() && $task!='upgradetables')
//{
// $database->setQuery("select id from #__components where link='option=com_simpleboard'");
// $comid=$database->loadResult();
// $database->setQuery ("INSERT INTO `#__components` VALUES (99999, 'Upgrade Tables to 0.9.2', '', 0, $comid, 'option=com_simpleboard&task=upgradetables', 'Upgrade tables', 'com_simpleboard', 5, 'js/ThemeOffice/component.png', 0, '', '')");
// $database->query();
// die ("You're Simpleboard tables appears to be of a version prior to 0.9.2. <br />"
// . "\n OR you have an inconsistency in your database<br />"
// . "\n Please upgrade or repair it using: Components->Simpleboard Forum->Upgrade tables to 0.9.2.<br />"
// . "\n <br /><strong> Note: refresh this window first!</strong><br /><br />"
// );
//}
require_once( $mainframe->getPath( 'admin_html' ) );
//Get right Language file
if (file_exists($_CONFIG->SITEPATH.'/administrator/components/com_simpleboard/language/'.$mosConfig_lang.'.php')) {
include($_CONFIG->SITEPATH.'/administrator/components/com_simpleboard/language/'.$mosConfig_lang.'.php');
} else {
include($_CONFIG->SITEPATH.'/administrator/components/com_simpleboard/language/english.php');
}
//include configuration file
if (file_exists($_CONFIG->SITEPATH.'/administrator/components/com_simpleboard/simpleboard_config.php')) {
include($_CONFIG->SITEPATH.'/administrator/components/com_simpleboard/simpleboard_config.php');
} else {
die ("Error finding configuration file (".$_CONFIG->SITEPATH."/administrator/components/com_simpleboard/simpleboard_config.php)");
}
$cid = mosGetParam( $_POST, 'cid', array(0) );
if (!is_array( $cid )) {
$cid = array(0);
}
$pt_stop ="0";
switch ($task) {
case "new":
editForum( 0, $option);
break;
case "edit":
editForum( $cid[0], $option );
break;
case "edit2":
editForum( $uid, $option );
break;
case "save":
saveForum( $option );
break;
case "cancel":
cancelForum( $option );
break;
case "publish":
publishForum( $cid, 1, $option );
break;
case "unpublish":
publishForum( $cid, 0, $option );
break;
case "remove":
deleteForum( $cid, $option );
break;
case "orderup":
orderForum( $cid[0], -1, $option );
break;
case "orderdown":
orderForum( $cid[0], 1, $option );
break;
case "showconfig":
showConfig( $option );
break;
case "saveconfig":
saveConfig( $option );
break;
case "newmoderator":
newModerator( $option, $id );
break;
case "addmoderator":
addModerator( $option, $id, $cid, 1 );
break;
case "removemoderator":
addModerator( $option, $id, $cid, 0 );
break;
case "showprofiles":
showProfiles ($database, $option, $mosConfig_lang,$order);
break;
case "profiles":
showProfiles ($database, $option, $mosConfig_lang,$order);
break;
case "userprofile":
editUserProfile ($option,$database, $uid);
break;
case "showinstructions":
showInstructions($database, $option, $mosConfig_lang);
break;
case "showCss":
showCss($option);
break;
case "saveeditcss":
saveCss ($file,$csscontent, $option);
break;
case "instructions":
showInstructions($database, $option, $mosConfig_lang);
break;
case "saveuserprofile":
saveUserProfile( $option );
break;
case "upgradetables":
upgradeTables( $option );
break;
case "loadSample":
loadSample( $database,$option );
break;
case "pruneforum":
pruneforum( $database,$option );
break;
case "doprune":
doprune( $database,$option );
break;
case "dousersprune":
dousersprune($database, $option);
break;
case "pruneusers":
pruneusers( $database,$option );
break;
case "browseImages":
browseUploaded( $database,$option, 1 );
break;
case "browseFiles":
browseUploaded( $database,$option, 0 );
break;
case "replaceImage":
replaceImage( $database,$option,$img, $OxP );
break;
case "deleteFile":
deleteFile( $database,$option,$fileName);
break;
case "showAdministration":
showAdministration( $option);
break;
case "loadCBprofile":
loadCBprofile( $database,$option);
break;
case 'cpanel':
default:
$version=$sbConfig['version'];
HTML_Simpleboard::controlPanel($version);
break;
}
function showAdministration( $option ) {
global $database, $mainframe;
global $mosConfig_lang;
include_once( "components/com_simpleboard/simpleboard_config.php" );
$limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit',10 );
$limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart",'limitstart', 0 );
$levellimit = $mainframe->getUserStateFromRequest( "view{$option}limit",'levellimit', 10 );
//$limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) );
//$limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) );
//$levellimit = intval( mosGetParam( $_REQUEST, 'levellimit', 10 ) );;
$database->setQuery( "SELECT COUNT(*) FROM #__sb_categories" );
$total = $database->loadResult();
require_once( "includes/pageNavigation.php" );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
// select the records
// note, since this is a tree we have to do the limits code-side
$database->setQuery( "SELECT a.*, b.name AS category, u.name AS editor, g.name AS groupname, h.name AS admingroup"
. "\nFROM #__sb_categories AS a"
. "\nLEFT JOIN #__sb_categories AS b ON b.id = a.parent"
. "\nLEFT JOIN #__users AS u ON u.id = a.checked_out"
. "\nLEFT JOIN #__core_acl_aro_groups AS g ON g.group_id = a.pub_access"
. "\nLEFT JOIN #__core_acl_aro_groups AS h ON h.group_id = a.admin_access"
. "\nORDER BY parent, ordering"
//. "\nLIMIT $pageNav->limitstart,$pageNav->limit"
);
$rows = $database->loadObjectList();
if ($database->getErrorNum()) {
echo $database->stderr();
return false;
}
// establish the hierarchy of the menu
$children = array();
// first pass - collect children
foreach ($rows as $v ) {
$pt = $v->parent;
$list = @$children[$pt] ? $children[$pt] : array();
array_push( $list, $v );
$children[$pt] = $list;
}
// second pass - get an indent list of the items
$list = mosTreeRecurse( 0, '', array(), $children, max( 0, $levellimit-1
) );
// slice out elements based on limits
$list = array_slice( $list, $pageNav->limitstart, $pageNav->limit );
HTML_SIMPLEBOARD::showAdministration( $list, $pageNav, $option );
}
//---------------------------------------
//-E D I T F O R U M-------------------
//---------------------------------------
function editForum( $uid, $option ) {
global $database, $my, $acl;
$row = new sbForum( $database );
// load the row from the db table
$row->load( $uid );
//echo "<pre>"; print_r ($row); echo "</pre>";
if ($uid) {
$row->checkout( $my->id );
$categories = array();
} else {
// initialise new record
$categories[] = mosHTML::makeOption( 0, 'Top Level Category' );
$row->parent = 0;
$row->published = 0;
$row->ordering = 9999;
}
// get a list of just the categories
$database->setQuery( "SELECT a.id AS value, a.name AS text"
. "\nFROM #__sb_categories AS a"
. "\nWHERE parent='0' AND id<>'$row->id'"
. "\nORDER BY ordering"
);
$categories = array_merge( $categories, $database->loadObjectList() );
//echo $database->getErrorMsg();
if ($row->parent==0){
//make sure the Top Level Category is available in edit mode as well:
$database->setQuery( "SELECT distinct '0' AS value, 'Top Level Category' AS text"
. "\nFROM #__sb_categories AS a"
. "\nWHERE parent='0' AND id<>'$row->id'"
. "\nORDER BY ordering");
$categories = array_merge( $categories, $database->loadObjectList() );
//build the select list:
$categoryList = mosHTML::selectList( $categories, 'parent', 'class="inputbox" size="1"',
'value', 'text', $row->parent );
}else{
$categoryList = mosHTML::selectList( $categories, 'parent', 'class="inputbox" size="1"',
'value', 'text', $row->parent );
}
// make a standard yes/no list
$yesno = array();
$yesno[] = mosHTML::makeOption( '0', 'No' );
$yesno[] = mosHTML::makeOption( '1', 'Yes' );
//Create all kinds of Lists
$lists=array();
$accessLists=array();
//create custom group levels to include into the public group selectList
$pub_groups = array();
$pub_groups[] = mosHTML::makeOption( 0 , '- Everybody -' );
$pub_groups[] = mosHTML::makeOption( -1, '- All Registered Users -' );
$pub_groups = array_merge( $pub_groups, $acl->get_group_children_tree( null, 'Registered', true ) );
//create admin groups array for use in selectList:
$adm_groups = array();
$adm_groups = array_merge( $adm_groups, $acl->get_group_children_tree( null, 'Public Backend', true ) );
//create the access control list
$accessLists['pub_access'] = mosHTML::selectList( $pub_groups, 'pub_access' , 'class="inputbox" size="4"', 'value', 'text', $row->pub_access );
$accessLists['admin_access'] = mosHTML::selectList( $adm_groups, 'admin_access' , 'class="inputbox" size="4"', 'value', 'text', $row->admin_access );
$lists['pub_recurse'] = mosHTML::selectList( $yesno , 'pub_recurse' , 'class="inputbox" size="1"', 'value', 'text', $row->pub_recurse );
$lists['admin_recurse'] = mosHTML::selectList( $yesno , 'admin_recurse' , 'class="inputbox" size="1"', 'value', 'text', $row->admin_recurse );
$lists['forumLocked'] = mosHTML::selectList( $yesno , 'locked' , 'class="inputbox" size="1"', 'value', 'text', $row->locked );
$lists['forumModerated'] = mosHTML::selectList( $yesno , 'moderated' , 'class="inputbox" size="1"', 'value', 'text', $row->moderated );
$lists['forumReview'] = mosHTML::selectList( $yesno , 'review' , 'class="inputbox" size="1"', 'value', 'text', $row->review );
//get a list of moderators, if forum/category is moderated
$moderatorList=array();
if ($row->moderated==1)
{ $database->setQuery("SELECT * "
. "\n FROM #__sb_moderation AS a "
. "\n LEFT JOIN #__users as u"
. "\n ON a.userid=u.id where a.catid=$row->id"
);
$moderatorList=$database->loadObjectList();
}
HTML_SIMPLEBOARD::editForum( $row, $categoryList, $moderatorList, $lists, $accessLists, $option );
}
function saveForum( $option ) {
global $database, $my;
$row = new sbForum( $database );
if (!$row->bind( $_POST )) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
if (!$row->check()) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
if (!$row->store()) {
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
$row->checkin();
$row->updateOrder( "parent='$row->parent'" );
mosRedirect( "index2.php?option=$option&task=showAdministration" );
}
function publishForum( $cid=null, $publish=1, $option ) {
global $database, $my;
if (!is_array( $cid ) || count( $cid ) < 1) {
$action = $publish ? 'publish' : 'unpublish';
echo "<script> alert('Select an item to $action'); window.history.go(-1);</script>\n";
exit;
}
$cids = implode( ',', $cid );
$database->setQuery( "UPDATE #__sb_categories SET published='$publish'"
. "\nWHERE id IN ($cids) AND (checked_out=0 OR (checked_out='$my->id'))"
);
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
if (count( $cid ) == 1) {
$row = new sbForum( $database );
$row->checkin( $cid[0] );
}
mosRedirect( "index2.php?option=$option&task=showAdministration" );
}
function deleteForum( $cid=null, $option ) {
global $database, $my;
if (!is_array( $cid ) || count( $cid ) < 1) {
$action = 'delete';
echo "<script> alert('Select an item to $action'); window.history.go(-1);</script>\n";
exit;
}
$cids = implode( ',', $cid );
$database->setQuery( "DELETE FROM #__sb_categories"
. "\nWHERE id IN ($cids) AND (checked_out=0 OR (checked_out='$my->id'))"
);
if ($database->query()) {//now we got to clear up all posts
$database->setQuery("SELECT id, parent FROM #__sb_messages where catid in ($cids)");
$mesList=$database->loadObjectList();
if(count($mesList)>0)
{
$fail=0;
foreach($mesList as $ml)
{
$database->setQuery("DELETE FROM #__sb_messages WHERE id = $ml->id");
if($database->query()){
$database->setQuery("DELETE FROM #__sb_messages_text WHERE mesid=$ml->id");
$database->query();
}else{$fail=1;}
//and clear up all subscriptions as well
if ($ml->parent==0)
{//this was a topic message to which could have been subscribed
$database->setQuery("DELETE FROM #__sb_subscriptions WHERE thread=$ml->id");
if(!$database->query()){ $fail=1;}
}
}
}
}
else{
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
if ($fail!=0){echo "<script> alert('Something went wrong deleting the messages and subscriptions'); window.history.go(-1); </script>\n";}
mosRedirect( "index2.php?option=$option&task=showAdministration" );
}
function cancelForum( $option ) {
global $database;
$row = new sbForum( $database );
$row->bind( $_POST );
$row->checkin();
mosRedirect( "index2.php?option=$option&task=showAdministration" );
}
function orderForum( $uid, $inc, $option ) {
global $database;
$row = new sbForum( $database );
$row->load( $uid );
$row->move( $inc, "parent='$row->parent'" );
mosRedirect( "index2.php?option=$option&task=showAdministration" );
}
//===============================
// Config Functions
//===============================
function showConfig( $option ) {
global $database;
global $mosConfig_lang;
global $mosConfig_absolute_path, $mosConfig_admin_template, $mosConfig_live_site;
global $_CONFIG;
if ($_CONFIG->SITEPATH == "") {
$_CONFIG->SITEPATH=$mosConfig_absolute_path;
$_CONFIG->SITEURL = $mosConfig_live_site;
}
$configfile = $_CONFIG->SITEPATH."/administrator/components/com_simpleboard/simpleboard_config.php";
@chmod ($configfile, 0766);
$permission = is_writable($configfile);
if (!$permission) {
echo "<center><h1><font color=red>Warning...</FONT></h1><BR>";
echo "<B>Your config file is $configfile</b><BR>";
echo "<B>You need to chmod this to 766 in order for the config to be updated</B></center><BR><BR>";
}
include( $configfile );
$lists = array();
// the default view
$list = array();
$list[] = mosHTML::makeOption( 'flat', _COM_A_FLAT );
$list[] = mosHTML::makeOption( 'threaded', _COM_A_THREADED );
// build the html select list
$lists['default_view'] = mosHTML::selectList(
$list, 'cfg_default_view', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['default_view'] );
// source of avatar picture
$avlist = array();
$avlist[] = mosHTML::makeOption( 'sb', 'Simpleboard' );
$avlist[] = mosHTML::makeOption( 'pmspro', 'myPMS Pro' );
$avlist[] = mosHTML::makeOption( 'cb', 'Community Builder');
// build the html select list
$lists['avatar_src'] = mosHTML::selectList(
$avlist, 'cfg_avatar_src', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['avatar_src'] );
// private messaging system to use
$pmlist = array();
$pmlist[] = mosHTML::makeOption( 'no', _COM_A_NO );
$pmlist[] = mosHTML::makeOption( 'pms', 'myPMS II Open Source' );
$pmlist[] = mosHTML::makeOption( 'pmspro', 'myPMS Professional');
// build the html select list
$lists['pm_component'] = mosHTML::selectList(
$pmlist, 'cfg_pm_component', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['pm_component'] );
// make a standard yes/no list
$yesno = array();
$yesno[] = mosHTML::makeOption( '0', _COM_A_NO );
$yesno[] = mosHTML::makeOption( '1', _COM_A_YES );
/* Build the templates list*/
// This function was modified from the one posted to PHP.net by rockinmusicgv
// It is available under the readdir() entry in the PHP online manual
//function get_dirs($directory, $select_name, $selected = "") {
$listitems[] = mosHTML::makeOption( '0', 'Select Template' );
if ($dir = @opendir($_CONFIG->SITEPATH."/components/com_simpleboard/template")) {
while (($file = readdir($dir)) !== false) {
if ($file != ".." && $file != ".") {
if(is_dir($_CONFIG->SITEPATH."/components/com_simpleboard/template"."/".$file)) {
if(!($file[0] == '.')) {
$filelist[] = $file;
}
}
}
}
closedir($dir);
}
asort($filelist);
while (list ($key, $val) = each ($filelist)) {
//echo "<option value=\"$val\"";
//if ($selected == $val) {
// echo " selected";
//}
//echo ">$val Gallery</option>\n";
$listitems[] = mosHTML::makeOption( $val, $val );
}
$lists['badwords'] = mosHTML::selectList( $yesno, 'cfg_badwords', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['badwords'] );
$lists['disemoticons'] = mosHTML::selectList( $yesno, 'cfg_disemoticons', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['disemoticons'] );
$lists['template'] = mosHTML::selectList( $listitems, 'cfg_template', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['template'] );
$lists['regonly'] = mosHTML::selectList( $yesno, 'cfg_regonly', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['regonly'] );
$lists['board_offline'] = mosHTML::selectList( $yesno, 'cfg_board_offline', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['board_offline'] );
$lists['pubwrite'] = mosHTML::selectList( $yesno, 'cfg_pubwrite', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['pubwrite'] );
$lists['useredit'] = mosHTML::selectList( $yesno, 'cfg_useredit', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['useredit'] );
$lists['showHistory'] = mosHTML::selectList( $yesno, 'cfg_showHistory', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showHistory'] );
$lists['allowsubscriptions'] = mosHTML::selectList( $yesno, 'cfg_allowsubscriptions', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowsubscriptions'] );
$lists['mailmod'] = mosHTML::selectList( $yesno, 'cfg_mailmod', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['mailmod'] );
$lists['showemail'] = mosHTML::selectList( $yesno, 'cfg_showemail', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showemail'] );
$lists['askemail'] = mosHTML::selectList( $yesno, 'cfg_askemail', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['askemail'] );
$lists['changename'] = mosHTML::selectList( $yesno, 'cfg_changename', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['changename'] );
$lists['allowAvatar'] = mosHTML::selectList( $yesno, 'cfg_allowAvatar', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowAvatar'] );
$lists['allowAvatarUpload'] = mosHTML::selectList( $yesno, 'cfg_allowAvatarUpload', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowAvatarUpload'] );
$lists['allowAvatarGallery'] = mosHTML::selectList( $yesno, 'cfg_allowAvatarGallery', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowAvatarGallery'] );
$lists['showstats'] = mosHTML::selectList( $yesno, 'cfg_showstats', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showstats'] );
$lists['showranking'] = mosHTML::selectList( $yesno, 'cfg_showranking', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showranking'] );
$lists['rankimages'] = mosHTML::selectList( $yesno, 'cfg_rankimages', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['rankimages'] );
$lists['username'] = mosHTML::selectList( $yesno, 'cfg_username', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['username'] );
//$lists['rte'] = mosHTML::selectList( $yesno, 'cfg_rte', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['rte'] );
$lists['pms'] = mosHTML::selectList( $yesno, 'cfg_pms', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['pms'] );
$lists['pmspro'] = mosHTML::selectList( $yesno, 'cfg_pmspro', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['pmspro'] );
$lists['showNew'] = mosHTML::selectList( $yesno, 'cfg_showNew', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showNew'] );
$lists['allowImageUpload'] = mosHTML::selectList( $yesno, 'cfg_allowImageUpload', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowImageUpload'] );
$lists['allowImageRegUpload'] = mosHTML::selectList( $yesno, 'cfg_allowImageRegUpload', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowImageRegUpload'] );
$lists['allowFileUpload'] = mosHTML::selectList( $yesno, 'cfg_allowFileUpload', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowFileUpload'] );
$lists['allowFileRegUpload'] = mosHTML::selectList( $yesno, 'cfg_allowFileRegUpload', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['allowFileRegUpload'] );
$lists['editMarkUp'] = mosHTML::selectList( $yesno, 'cfg_editMarkUp', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['editMarkUp'] );
$lists['discussBot'] = mosHTML::selectList( $yesno, 'cfg_discussBot', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['discussBot'] );
$lists['enableRSS'] = mosHTML::selectList( $yesno, 'cfg_enableRSS', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['enableRSS'] );
$lists['postStats'] = mosHTML::selectList( $yesno, 'cfg_postStats', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['postStats'] );
$lists['showkarma'] = mosHTML::selectList( $yesno, 'cfg_showkarma', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['showkarma'] );
$lists['cb_profile'] = mosHTML::selectList( $yesno, 'cfg_cb_profile', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['cb_profile'] );
$lists['enablePDF'] = mosHTML::selectList( $yesno, 'cfg_enablePDF', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['enablePDF'] );
$lists['enableRulesPage'] = mosHTML::selectList( $yesno, 'cfg_enableRulesPage', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['enableRulesPage'] );
$lists['enableForumJump'] = mosHTML::selectList( $yesno, 'cfg_enableForumJump', 'class="inputbox" size="1"', 'value', 'text', $sbConfig['enableForumJump'] );
HTML_SIMPLEBOARD::showConfig( $sbConfig, $lists, $option );
}
function saveConfig ( $option ) {
//Add code to check if config file is writeable.
$configfile = "components/com_simpleboard/simpleboard_config.php";
@chmod ($configfile, 0766);
if (!is_writable($configfile)) {
mosRedirect("index2.php?option=$option", "FATAL ERROR: Config File Not writeable" );
}
$txt = "<?php\n";
foreach ($_POST as $k=>$v) {
if (strpos( $k, 'cfg_' ) === 0) {
if (!get_magic_quotes_gpc()) {
$v = addslashes( $v );
}
$txt .= "\$sbConfig['".substr( $k, 4 )."']='$v';\n";
}
}
$txt .= "?>";
if ($fp = fopen( $configfile, "w")) {
fputs($fp, $txt, strlen($txt));
fclose ($fp);
mosRedirect( "index2.php?option=$option&task=showconfig", "Configuration file saved" );
} else {
mosRedirect( "index2.php?option=$option", "FATAL ERROR: File could not be opened." );
}
}
function showInstructions($database, $option, $mosConfig_lang) {
HTML_SIMPLEBOARD::showInstructions( $database, $option, $mosConfig_lang);
}
//===============================
// CSS functions
//===============================
function showCss ($option) {
global $sbConfig;
$file = "../components/com_simpleboard/template/".$sbConfig['template']."/forum.css";
@chmod ($file, 0766);
$permission = is_writable($file);
if (!$permission) {
echo "<center><h1><font color=red>Warning...</FONT></h1><BR>";
echo "<B>Your css file is <#__root>/components/com_simpleboard/template/".$sbConfig['template']."/forum.css</b><BR>";
echo "<B>You need to chmod this to 766 in order for the config to be updated</B></center><BR><BR>";
}
HTML_SIMPLEBOARD::showCss($file,$option);
}
function saveCss($file,$csscontent, $option) {
echo "Saving css file should be here...file=$file";
if (is_writable($file)==false){
echo "<script>alert('The file is not writable.')</script>";
echo "<script>document.location.href='index2.php?option=com_simpleboard&task=showCss'</script>\n";
}
echo "<script>alert('Simpleboard CSS file saved.')</script>";
echo "<script>document.location.href='index2.php?option=com_simpleboard&task=showCss'</script>\n";
if ($fp = fopen( $file, "w")) {
fputs($fp,stripslashes($csscontent));
fclose($fp);
mosRedirect( "index2.php?option=$option&task=showCss", "Configuration file saved" );
} else {
mosRedirect( "index2.php?option=$option", "FATAL ERROR: File could not be opened." );
}
}
//===============================
// Moderator Functions
//===============================
function newModerator ($option, $id=null) {
global $database;
//die ("New Moderator");
$limit = intval( mosGetParam( $_POST, 'limit', 10 ) );
$limitstart = intval( mosGetParam( $_POST, 'limitstart', 0 ) );
$database->setQuery("SELECT * FROM #__users AS a"
. "\n LEFT JOIN #__sb_users AS b"
. "\n ON a.id=b.userid"
. "\n WHERE b.moderator=1 LIMIT $limitstart,$limit");
$userList=$database->loadObjectList();
$countUL=count($userList);
$database->setQuery( "SELECT COUNT(*) FROM #__users AS a"
. "\n LEFT JOIN #__sb_users AS b"
. "\n ON a.id=b.userid where b.moderator=1" );
$total = $database->loadResult();
if ($limit > $total) {
$limitstart = 0;
}
require_once( "includes/pageNavigation.php" );
$pageNav = new mosPageNav( $total, $limitstart, $limit );
//$id = intval( mosGetParam( $_POST, 'id') );
//get forum name
$forumName='';
$database->setQuery("select name from #__sb_categories where id=$id");
$forumName=$database->loadResult();
//get forum moderators
$database->setQuery("select userid from #__sb_moderation where catid=$id");
$moderatorList=$database->loadObjectList();
$moderators=0;
$modIDs[]=array();
if(count($moderatorList)>0)
{
foreach($moderatorList as $ml)
{
$modIDs[]=$ml->userid;
}
$moderators=1;
}else{$moderators=0;}
HTML_SIMPLEBOARD::newModerator ($option, $id, $moderators, $modIDs,$forumName, $userList,$countUL,$pageNav);
}
function addModerator( $option, $id, $cid=null, $publish=1 ) {
global $database, $my;
$numcid=count($cid);
$action ="";
if ($publish==1) {$action = 'add';}else{$action = 'remove';}
if (!is_array( $cid ) || count( $cid ) < 1) {
echo "<script> alert('Select an moderator to $action'); window.history.go(-1);</script>\n";
exit;
}
if ($action=='add')
{
for ($i=0, $n=count( $cid ); $i < $n; $i++)
{
$database->setQuery( "INSERT INTO #__sb_moderation set catid='$id', userid='$cid[$i]'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
}
}
else {
for ($i=0, $n=count( $cid ); $i < $n; $i++)
{
$database->setQuery( "DELETE FROM #__sb_moderation WHERE catid='$id' and userid='$cid[$i]'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
}
}
$row = new sbForum( $database );
$row->checkin($id);
mosRedirect( "index2.php?option=$option&task=edit2&uid=".$id );
}
//===============================
// User Profile functions
//===============================
function showProfiles($database, $option, $mosConfig_lang, $order) {
global $mainframe;
$limit = intval( mosGetParam( $_POST, 'limit', 10 ) );
$limitstart = intval( mosGetParam( $_POST, 'limitstart', 0 ) );
$search = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' );
$search = $database->getEscaped( trim( strtolower( $search ) ) );
$where = array();
if (isset( $search ) && $search!= "") {
$where[] = "(u.username LIKE '%$search%' OR u.email LIKE '%$search%' OR u.name LIKE '%$search%')";
}
if ($order == 1)
{
$database->setQuery("select * from #__sb_users AS sbu"
. "\n LEFT JOIN #__users AS u"
. "\n ON sbu.userid=u.id "
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
. "\n ORDER BY sbu.moderator DESC"
. "\n LIMIT $limitstart,$limit");
}
else if ($order == 2)
{
$database->setQuery("SELECT * FROM #__sb_users AS sbu"
. "\n LEFT JOIN #__users AS u "
. "\n ON sbu.userid=u.id "
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
. "\n ORDER BY u.name ASC "
. "\n LIMIT $limitstart,$limit");
}
else if ($order < 1 )
{
$database->setQuery("SELECT * FROM #__sb_users AS sbu "
. "\n LEFT JOIN #__users AS u"
. "\n ON sbu.userid=u.id "
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
. "\n ORDER BY sbu.userid"
. "\n LIMIT $limitstart,$limit");}
$profileList=$database->loadObjectList();
$countPL=count($profileList);
$database->setQuery( "SELECT COUNT(*) FROM #__sb_users AS sbu"
. "\n LEFT JOIN #__users AS u"
. "\n ON sbu.userid=u.id"
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
);
$total = $database->loadResult();
if ($limit > $total) {
$limitstart = 0;
}
require_once( "includes/pageNavigation.php" );
$pageNavSP = new mosPageNav( $total, $limitstart, $limit );
HTML_SIMPLEBOARD::showProfiles( $option, $mosConfig_lang,$profileList,$countPL,$pageNavSP,$order, $search);
}
function editUserProfile ($option,$database, $uid) {
global $acl;
$database->setQuery("SELECT * FROM #__sb_users LEFT JOIN #__users on #__users.id=#__sb_users.userid WHERE userid=$uid[0]");
$userDetails=$database->loadObjectList();
//Mambo userids are unique, so we don't worry about that
foreach($userDetails as $user)
{
$prefview = $user->view ;
$ordering = $user->ordering ;
$moderator = $user->moderator;
}
//check to see if this is an administrator
$result='';
//$database->setQuery("select usertype from #__users where id=$uid[0]");
//$result=$database->loadResult();
$result = $acl->getAroGroup( $uid[0] );
if (strtolower($result->name)=='administrator' || strtolower($result->name)=='super administrator')
{
$is_an_admin=1;
}else{
$is_an_admin=0;
}
// make the select list for the view type
$yesno[] = mosHTML::makeOption( 'flat', 'Flat' );
$yesno[] = mosHTML::makeOption( 'threaded', 'Threaded' );
// build the html select list
$selectPref = mosHTML::selectList( $yesno, 'newview', 'class="inputbox" size="2"', 'value', 'text', $prefview );
// make the select list for the moderator flag
$yesnoMod[] = mosHTML::makeOption( '1', 'Yes' );
$yesnoMod[] = mosHTML::makeOption( '0', 'No' );
// build the html select list
$selectMod = mosHTML::selectList( $yesnoMod, 'moderator', 'class="inputbox" size="2"', 'value', 'text', $moderator );
// make the select list for the moderator flag
$yesnoOrder[] = mosHTML::makeOption( '0', 'First post first' );
$yesnoOrder[] = mosHTML::makeOption( '1', 'Last post first' );
// build the html select list
$selectOrder = mosHTML::selectList( $yesnoOrder, 'neworder', 'class="inputbox" size="2"', 'value', 'text', $ordering );
//get all subscriptions for this user
$database->setQuery("select thread from #__sb_subscriptions where userid=$uid[0]");
$subslist=$database->loadObjectList();
HTML_SIMPLEBOARD::editUserProfile ($option,$database, $userDetails, $subslist, $selectPref,$selectMod,$selectOrder,$is_an_admin, $uid[0]);
}
function saveUserProfile( $option ) {
global $database;
$newview =mosGetParam( $_POST, 'newview' );
$signature =mosGetParam( $_POST, 'message' );
$deleteSig =mosGetParam( $_POST, 'deleteSig' );
$moderator =mosGetParam( $_POST, 'moderator' );
$uid =mosGetParam( $_POST, 'uid' );
$avatar =mosGetParam( $_POST, 'avatar' );
$deleteAvatar=mosGetParam( $_POST, 'deleteAvatar');
$neworder =mosGetParam( $_POST, 'neworder' );
if($deleteSig == 1){$signature="";}
if($deleteAvatar == 1){$avatar="";}
$database->setQuery("UPDATE #__sb_users set signature='$signature', view='$newview',moderator='$moderator', avatar='$avatar', ordering=$neworder where userid=$uid");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); index2.php?option=$option&task=showprofiles; </script>\n";
exit();
}else{
mosRedirect( "index2.php?option=$option&task=showprofiles" );
}
}
//===============================
// Prune Forum functions
//===============================
function pruneforum ($database, $option)
{
$forums_list = array();
//get forum list; locked forums are excluded from pruning
$database->setQuery( "SELECT a.id as value, a.name as text"
. "\nFROM #__sb_categories AS a"
. "\nWHERE a.parent != '0'"
. "\nAND a.locked != '1'"
. "\nORDER BY parent, ordering");
$forums_list=$database->loadObjectList();
$forumList['forum'] = mosHTML::selectList( $forums_list, 'prune_forum' , 'class="inputbox" size="4"', 'value', 'text', '' );
HTML_SIMPLEBOARD::pruneforum( $option,$forumList);
}
function doprune ($database, $option)
{
$catid = intval( mosGetParam( $_POST, 'prune_forum', -1 ) );
$deleted=0;
if ($catid==-1)
{
echo "<script> alert('You must choose a forum to prune!'); window.history.go(-1); </script>\n";
exit();
}
$prune_days = intval( mosGetParam( $_POST, 'prune_days', 0 ) );
//get the thread list for this forum
$database->setQuery("SELECT DISTINCT a.thread AS thread, max(a.time) AS lastpost, c.locked AS locked "
."\n FROM #__sb_messages AS a"
."\n JOIN #__sb_categories AS b ON a.catid=b.id "
."\n JOIN #__sb_messages AS c ON a.thread=c.thread"
."\n where a.catid=$catid "
."\n and b.locked != 1 "
."\n and a.locked != 1 "
."\n and c.locked != 1 "
."\n and c.parent = 0 "
."\n and c.ordering != 1 "
."\n group by thread");
$threadlist=$database->loadObjectList();
// Convert days to seconds for timestamp functions...
$prune_date = time() - ( $prune_days * 86400 );
if (count($threadlist)>0)
{
foreach($threadlist as $tl)
{
//check if thread is eligible for pruning
if($tl->lastpost<$prune_date)
{
//get the id's for all posts belonging to this thread
$database->setQuery("SELECT id from #__sb_messages WHERE thread=$tl->thread");
$idlist=$database->loadObjectList();
if(count($idlist)>0)
{
foreach($idlist as $id)
{
//prune all messages belonging to the thread
$database->setQuery("DELETE FROM #__sb_messages WHERE id=$id->id");
if (!$database->query()) {
echo "<script> alert('Deleting messages failed: ".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("DELETE FROM #__sb_messages_text WHERE mesid=$id->id");
if (!$database->query()) {
echo "<script> alert('Deleting messages texts failed: ".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
}
//delete all attachments
$database->setQuery("SELECT filelocation FROM #__sb_attachments WHERE mesid=$id->id");
$fileList=$database->loadObjectList();
if (count($fileList)>0){
foreach ($fileList as $fl){
unlink($fl->filelocation);
}
$database->setQuery("DELETE FROM #__sb_attachments WHERE mesid=$id->id");
$database->query();
}
$deleted++;
}
}
}
//clean all subscriptions to these deleted threads
$database->setQuery("DELETE FROM #__sb_subscriptions WHERE thread=$tl->thread");
if (!$database->query()) {
echo "<script> alert('Clearing subscriptions failed: ".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
}
}
mosRedirect ("index2.php?option=$option&task=pruneforum","Forum pruned for ".$prune_days." days; Deleted:".$deleted." threads");
}
//===============================
// Prune users
//===============================
function pruneusers( $database, $option)
{
HTML_SIMPLEBOARD::pruneusers( $option);
}
function dousersprune($database, $option)
{
//get userlist
$database->setQuery("SELECT a.userid from #__sb_users as a left join #__users as b on a.userid=b.id where b.username is null");
$idlist=$database->loadObjectList();
$allIDs=array();
$cids=count($idlist);
if ($cids>0)
{
foreach($idlist as $id)
{
$allIDs[]=$id->userid;
}
$ids=implode(',',$allIDs);
}
if (!$ids == "")
{
$database->setQuery("DELETE FROM #__sb_users WHERE userid in ($ids)");
if (!$database->query()) {
echo "<script> alert('Error pruning users: ".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
mosRedirect ("index2.php?option=$option&task=pruneusers","Users pruned; Deleted:".$cids." user profiles");
}
else
{
$cids=0;
mosRedirect ("index2.php?option=$option&task=pruneusers","No profiles found eligible for pruning.");
}
}
//===============================
// Upgrade tables to this version
//===============================
function upgradeTables ($option) {
global $database;
global $sbConfig;
$v=$sbConfig['version'];
//create the smileys_table
$database->setQuery("CREATE TABLE IF NOT EXISTS `#__sb_smileys` ("
. "\n `id` int(4) NOT NULL auto_increment,"
. "\n `code` varchar(12) NOT NULL default '',"
. "\n `location` varchar(50) NOT NULL default '',"
. "\n `greylocation` varchar(60) NOT NULL default '',"
. "\n `emoticonbar` tinyint(4) NOT NULL default '0',"
. "\n PRIMARY KEY (`id`)"
. "\n ) TYPE=MyISAM");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); ; </script>\n";
mosRedirect( "index2.php?option=com_simpleboard", "Something went awfully wrong upgrading your database; try again from the Simpleboard control panel. If the problem persists, open administrator/components/com_simpleboard/admin.simpleboard.php file and search for smileys_table and execute the code manually.." );
}
//truncate the smileys table, just to limit the number of errors we could get..
$database->setQuery("TRUNCATE `#__sb_smileys`");
$database->query();
//fill the smileys table
$database->setQuery("INSERT INTO `#__sb_smileys` VALUES (1, 'B)', 'cool.png', 'cool-grey.png', 1),"
. "\n (8, ';)', 'wink.png', 'wink-grey.png', 1),"
. "\n (3, ':)', 'smile.png', 'smile-grey.png', 1),"
. "\n (10, ':P', 'tongue.png', 'tongue-grey.png', 1),"
. "\n (6, ':laugh:', 'laughing.png', 'laughing-grey.png', 1),"
. "\n (17, ':ohmy:', 'shocked.png', 'shocked-grey.png', 1),"
. "\n (22, ':sick:', 'sick.png', 'sick-grey.png', 1),"
. "\n (14, ':angry:', 'angry.png', 'angry-grey.png', 1),"
. "\n (25, ':blink:', 'blink.png', 'blink-grey.png', 1),"
. "\n (2, ':(', 'sad.png', 'sad-grey.png', 1),"
. "\n (16, ':unsure:', 'unsure.png', 'unsure-grey.png', 1),"
. "\n (27, ':kiss:', 'kissing.png', 'kissing-grey.png', 1),"
. "\n (29, ':woohoo:', 'w00t.png', 'w00t-grey.png', 1),"
. "\n (21, ':lol:', 'grin.png', 'grin-grey.png', 1),"
. "\n (23, ':silly:', 'silly.png', 'silly-grey.png', 1),"
. "\n (35, ':pinch:', 'pinch.png', 'pinch-grey.png', 1),"
. "\n (30, ':side:', 'sideways.png', 'sideways-grey.png', 1),"
. "\n (34, ':whistle:', 'whistling.png', 'whistling-grey.png', 1),"
. "\n (33, ':evil:', 'devil.png', 'devil-grey.png', 1),"
. "\n (31, ':S', 'dizzy.png', 'dizzy-grey.png', 1),"
. "\n (26, ':blush:', 'blush.png', 'blush-grey.png', 1),"
. "\n (7, ':cheer:', 'cheerful.png', 'cheerful-grey.png', 1),"
. "\n (18, ':huh:', 'wassat.png', 'wassat-grey.png', 1),"
. "\n (19, ':dry:', 'ermm.png', 'ermm-grey.png', 1),"
. "\n (4, ':-)', 'smile.png', 'smile-grey.png', 0),"
. "\n (5, ':-(', 'sad.png', 'sad-grey.png', 0),"
. "\n (9, ';-)', 'wink.png', 'wink-grey.png', 0),"
. "\n (37, ':D', 'laughing.png', 'laughing-grey.png', 0),"
. "\n (12, ':X', 'sick.png', 'sick-grey.png', 0),"
. "\n (13, ':x', 'sick.png', 'sick-grey.png', 0),"
. "\n (15, ':mad:', 'angry.png', 'angry-grey.png', 0),"
. "\n (20, ':ermm:', 'ermm.png', 'ermm-grey.png', 0),"
. "\n (24, ':y32b4:', 'silly.png', 'silly-grey.png', 0),"
. "\n (28, ':rolleyes:', 'blink.png', 'blink-grey.png', 0),"
. "\n (32, ':s', 'dizzy.png', 'dizzy-grey.png', 0),"
. "\n (36, ':p', 'tongue.png', 'tongue-grey.png', 0)");
$database->query();
//alter messages table and add the 'moved' column
$database->setQuery("ALTER TABLE `#__sb_messages`"
. "\n CHANGE `future3` `moved` TINYINT DEFAULT '0'");
$database->query();
//set all moved fields in existing records to 0 (zero) instead of NULL
$database->setQuery("UPDATE `#__sb_messages` SET `moved` = '0' WHERE `moved` = NULL");
$database->query();
mosRedirect( "index2.php?option=com_simpleboard", "Simpleboard Tables are upgraded to version $v." );
}
//===============================
// Load Sample Data
//===============================
function loadSample( $database,$option ) {
$database->setQuery("INSERT INTO `#__sb_categories` VALUES (1, 0, 'Forum Category', 0, 0, 0, 0, NULL, 0, 0, 0, 0, 1, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, '')");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()." -- Make absolutely sure that you load the sample data on completely empty Simpleboard tables. If anything is in them, it will not work!'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO `#__sb_categories` VALUES (2, 1, 'Forum 1', 0, 0, 0, 0, NULL, 0, 0, 0, 0, 1, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, 'Sample Forum 1\r\n')");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()." -- Make absolutely sure that you load the sample data on completely empty Simpleboard tables. If anything is in them, it will not work!'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO `#__sb_messages` VALUES (1, 0, 1, 2, 'tsmf', 0, 'jan@tsmf-mambo.com', 'Sample Post 1', 1075387732, '127.0.0.1', 0, 0, 0, 0, 2, NULL)");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()." -- Make absolutely sure that you load the sample data on completely empty Simpleboard tables. If anything is in them, it will not work!'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO `#__sb_messages_text` VALUES (1, '[b][size=4][color=#FF6600]Sample Post[/color][/size][/b]\nCongratulations with your new Forum!\n\n[url=http://tsmf.jigsnet.com]-The TSMF Team[/url]')");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()." -- Make absolutely sure that you load the sample data on completely empty Simpleboard tables. If anything is in them, it will not work!'); window.history.go(-1); </script>\n";
exit();
}
mosRedirect( "index2.php?option=$option", "Sample data loaded" );
}
//===============================
// Create Community Builder profile
//===============================
function loadCBprofile( $database,$option ) {
$database->setQuery("INSERT INTO #__comprofiler_tabs SET title='_UE_SB_TABTITLE', description='_UE_SB_TABDESC'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("SELECT tabid FROM #__comprofiler_tabs WHERE title='_UE_SB_TABTITLE'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$tabid=$database->loadResult();
$database->setQuery("INSERT INTO #__comprofiler_fields SET name='sbviewtype', title='_UE_SB_VIEWTYPE_TITLE', type='select', ordering='1', published='1', profile='0', calculated='0', sys='0', tabid=$tabid");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("SELECT fieldid FROM #__comprofiler_fields WHERE name='sbviewtype'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$fieldid=$database->loadResult();
$database->setQuery("INSERT INTO #__comprofiler_field_values SET fieldid=$fieldid, fieldtitle='_UE_SB_VIEWTYPE_FLAT', ordering='1'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO #__comprofiler_field_values SET fieldid=$fieldid, fieldtitle='_UE_SB_VIEWTYPE_THREADED', ordering='2'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO #__comprofiler_fields SET name='sbordering', title='_UE_SB_ORDERING_TITLE', type='select', ordering='2', published='1', profile='0', calculated='0', sys='0', tabid=$tabid");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("SELECT fieldid FROM #__comprofiler_fields WHERE name='sbordering'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$fieldid=$database->loadResult();
$database->setQuery("INSERT INTO #__comprofiler_field_values SET fieldid=$fieldid, fieldtitle='_UE_SB_ORDERING_OLDEST', ordering='1'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO #__comprofiler_field_values SET fieldid=$fieldid, fieldtitle='_UE_SB_ORDERING_LATEST', ordering='2'");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("INSERT INTO #__comprofiler_fields SET name='sbsignature', title='_UE_SB_SIGNATURE', type='textarea', maxlength='300', cols='60', rows='5', ordering='3', published='1', profile='0', calculated='0', sys='0', tabid=$tabid");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("ALTER TABLE #__comprofiler ADD sbviewtype varchar(255) DEFAULT '_UE_SB_VIEWTYPE_FLAT' NOT NULL");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("ALTER TABLE #__comprofiler ADD sbordering varchar(255) DEFAULT '_UE_SB_ORDERING_OLDEST' NOT NULL");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
$database->setQuery("ALTER TABLE #__comprofiler ADD sbsignature mediumtext");
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
exit();
}
mosRedirect( "index2.php?option=$option", "Community Builder profile added" );
}
//===============================
// Uploaded Images browser
//===============================
function browseUploaded( $database,$option, $type ) {
if ($type) { //we're doing images
$dir = @opendir('../components/com_simpleboard/uploaded/images');
$uploaded_path='../components/com_simpleboard/uploaded/images';
}else { //we're doing regular files
$dir = @opendir('../components/com_simpleboard/uploaded/files');
$uploaded_path='../components/com_simpleboard/uploaded/files';
}
$uploaded = array();
$uploaded_col_count = 0;
while( $file = @readdir($dir) )
{
if( $file != '.' && $file != '..' && is_file($uploaded_path . '/' . $file) && !is_link($uploaded_path. '/' . $file) )
{
//if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $file) )
//{
$uploaded[$uploaded_col_count] = $file;
$uploaded_name[$uploaded_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $file)));
$uploaded_col_count++;
//}
}
}
@closedir($dir);
@ksort($uploaded);
@reset($uploaded);
HTML_SIMPLEBOARD::browseUploaded ($option, $uploaded, $uploaded_path, $type);
}
function replaceImage( $database,$option,$imageName, $OxP ) {
// This function will replace the selected image with a dummy (OxP=1) or delete it
// step 1: Remove image that must be replaced:
unlink ('../components/com_simpleboard/uploaded/images/'.$imageName);
if ($OxP == "1") {
// step 2: the file name, without the extension:
$filename= split("\.", $imageName);
$fileName=$filename[0];
$fileExt=$filename[1];
// step 3: copy the dummy and give it the old file name:
copy ('../components/com_simpleboard/uploaded/dummy.'.$fileExt, '../components/com_simpleboard/uploaded/images/'.$imageName);
}
else {
//remove the database link as well
$database->setQuery("DELETE FROM #__sb_attachments where filelocation='".$_CONFIG->SITEPATH."/components/com_simpleboard/uploaded/images/".$imageName."'");
$database->query();
}
mosRedirect( "index2.php?option=$option&task=browseImages", "Image deleted" );
}
function deleteFile( $database,$option,$fileName) {
global $mosConfig_absolute_path, $mosConfig_admin_template, $mosConfig_live_site;
global $_CONFIG;
if ($_CONFIG->SITEPATH == "") {
$_CONFIG->SITEPATH=$mosConfig_absolute_path;
$_CONFIG->SITEURL = $mosConfig_live_site;
}
// step 1: Remove file
unlink ('../components/com_simpleboard/uploaded/files/'.$fileName);
//step 2: remove the database link to the file
$database->setQuery("DELETE FROM #__sb_attachments where filelocation='".$_CONFIG->SITEPATH."/components/com_simpleboard/uploaded/files/".$fileName."'");
$database->query();
mosRedirect( "index2.php?option=$option&task=browseFiles", "File deleted" );
}
//===============================
// Generic Functions
//===============================
function debug($message){ //function for debugging; don't remove!
echo "DEBUG: $message<br />";
}
function fmodReplace($x,$y)
{ //function provided for older PHP versions which do not have an fmod function yet
$i = floor($x/$y);
// r = x - i * y
return $x - $i*$y;
};
?>