funchat/modules/mybb/admin/admin.apnl.php
2025-06-02 10:01:12 +02:00

137 lines
7.2 KiB
PHP

<?php
/**
* Project: astat - simple site engine
* File: /modules/mybb/admin.apnl.php
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @link http://www.astat.org SVN: $URL$
* @copyright 2010 becast.at
* @author Bernhard Jaud <bernhard at becast dot at>
* @package astat module
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
*/
If (!defined("in_BL_ADMIN")) {
die("Dieses Script kann nicht ausserhalb des Frameworks laufen!");
}
$session->page_begin("mybb admin", True);
class admin_mybb_panel extends admin_module{
function output(){
global $config, $db,$panel, $cache, $session;
if(isset($_POST['submit'])){
if(isset($_POST['prefix'])&& $_POST['prefix']!=""){
$cf3cfg=array('prefix'=>$_POST['prefix']);
$cache->set('mybbconfig',$cf3cfg);
$panel->admin_message('Danke', 'Prefix wurde eingetragen!',TRUE,'admin_mybb');
}
}elseif(isset($_POST['insert'])){
$cf3cfg=array('prefix'=>$_POST['prefix']);
$res=$db->query('SELECT * FROM `'.$config['prefix'].'users`');
$this->cf3_conf=$this->fetchboardconfig();
while($row=$db->fetch_array($res)){
if($row['uid']==$session->userdata['uid']){
$db->query("UPDATE `" . $config['prefix'] . "users` SET `fuid`='1' WHERE `uid`='".$row['uid']."'");
continue;
}
$salt = $session->generate_Key(32);
$saltetpass = md5($row['password'].$salt);
$user_update['user_perm_grp'] = ($this->cf3_conf['reg_default_group'] <= 0)? 1 : $this->cf3_conf['reg_default_group'];
$user_update['user_topics_per_page'] = $this->cf3_conf['topics_per_page'];
$user_update['user_posts_per_page'] = $this->cf3_conf['posts_per_page'];
$user_update['user_dateformat'] = $this->cf3_conf['def_timeformat'];
$user_update['user_realname'] = $row['realname'];
$user_update['user_from'] = $row['from'];
$user_update['user_birthday'] = $row['birthday'];
$user_update['user_allow_pm'] = 1;
$user_update['user_activate_smilies'] = 1;
$user_update['user_activate_sig'] = 1;
$user_update['user_activate_bbcode'] = 1;
$user_update['user_show_pm_new'] = 1;
$user_update['user_auto_abo'] = 1;
$user_update['user_abo_type'] = 0;
$user_update['user_show_sigs'] = 1;
$user_update['user_show_avatars'] = 1;
$user_update['user_show_images'] = 1;
$user_update['user_show_embed_bbcode'] = 1;
$user_update['user_show_smilies'] = 1;
$user_update['user_show_pm_new_snd'] = 1;
if($row['gender'] == 'm'){
$user_update['user_gender']=1;
}elseif($rdata['gender'] == 'f'){
$user_update['user_gender']=2;
}else{
$user_update['user_gender']=0;
}
$db->query("INSERT INTO `" . $cf3cfg['prefix'] . "users` (`user_nickname`,`user_salt`,`user_password`,`user_old_pw`,`user_registered_since`,`user_email`,`user_perm_grp`,`user_actkey`,`user_active`,`user_topics_per_page`,`user_posts_per_page`,`user_dateformat`,`user_gender`,`user_realname`,`user_birthday`,`user_allow_pm`,`user_activate_smilies`,`user_activate_sig`,`user_activate_bbcode`,`user_show_pm_new`,`user_auto_abo`,`user_abo_type`,`user_show_sigs`,`user_show_avatars`,`user_show_images`,`user_show_embed_bbcode`,`user_show_smilies`,`user_show_pm_new_snd`,`user_color`,`user_from`)
VALUES ('".$row['username']."','".$salt."','".$saltetpass."',0,'".time()."','".$row['email']."','".$user_update['user_perm_grp']."','".$session->generate_Key(30)."','1','".$user_update['user_topics_per_page']."','".$user_update['user_posts_per_page']."','".$user_update['user_dateformat']."','".$user_update['user_gender']."','".$user_update['user_realname']."','".$user_update['user_birthday']."','".$user_update['user_allow_pm']."','".$user_update['user_activate_smilies']."','".$user_update['user_activate_sig']."','".$user_update['user_activate_bbcode']."','".$user_update['user_show_pm_new']."','".$user_update['user_auto_abo']."','".$user_update['user_abo_type']."','".$user_update['user_show_sigs']."','".$user_update['user_show_avatars']."','".$user_update['user_show_images']."','".$user_update['user_show_embed_bbcode']."','".$user_update['user_show_smilies']."','".$user_update['user_show_pm_new_snd']."','".$user_update['user_color']."','".$user_update['user_from']."')") or die($db->error());
$lid=$db->last_id();
$db->query("UPDATE `" . $config['prefix'] . "users` SET `fuid`='".$lid."' WHERE `uid`='".$row['uid']."'");
$cf3cfg=array('prefix'=>$cf3cfg['prefix'],'installed'=>true);
$cache->set('cf3config',$cf3cfg);
$panel->admin_message('Danke', 'Die Datenbanken wurden verkn&uuml;pft!',TRUE,'admin_mybb');
}
}else{
$count=false;
$cf=$cache->read('mybbconfig');
$panel->title="myBB Forenanbindung verwalten";
$panel->form(array('action'=>$config['path'].'/admin/index.php?panel=admin_mybb'));
$res=$db->query('SELECT count(`uid`) as `count` FROM `'.$cf['prefix'].'users`');
if($res){
$count=$db->fetch_row($res);
$count=$count[0];
}
if($cf['installed']==true){
$panel->content.='<div style="color:green;">Die Forendatenbank wurde erfolgreich verkn&uuml;pft.</div>';
}else{
if($count===false){
$panel->content.='<div style="color:red;">Die Forendatenbank wurde nicht gefunden.</div>';
}elseif($count<=2){
$panel->content.='<div style="color:green;">Die Forendatenbank wurde gefunden. Es kann nun eine Verkn&uuml;pfung vorgenommen werden.</div>';
$panel->submit(array('name'=>'insert'),'value="Daten &uuml;bernehmen"');
}elseif($count>2){
$panel->content.='<div style="color:orange;">Die Forendatenbank wurde gefunden. Es sind aber schon User in der Forendatenbank. Die Verkn&uuml;pfung muss manuell erfolgen.</div>';
}
}
$panel->content.='<h3>Forenprefix:</h3>';
$panel->field(array('name'=>'prefix','typ'=>'text','value'=>$cf['prefix']));
$panel->field(array('name'=>'send','typ'=>'hidden','value'=>'1'));
$panel->submit();
$panel->formClose();
}
}
function fetchboardconfig(){
global $db, $config, $cache, $log;
$mybb=$cache->read('mybbconfig');
try{
$result = $db->query("SELECT `name`, `value` FROM " . $mybb['prefix'] . "settings");
if(!$result){
throw new Exception($db->error());
}
while ($row = $db->fetch_array($result)){
$boardconfig[$row['name']] = $row['value'];
}
$boardconfig['prefix']=$mybb['prefix'];
return $boardconfig;
}catch(Exception $e){
$log->write($e,2,__LINE__,__FILE__);
return NULL;
}
}
}
?>