2011-12-13 12:29:05 +01:00
< ? php
# (c) 2005 by Alexander 'dma147' Mieland, http://blog.linux-stats.org, <dma147@linux-stats.org>
# Contact me on IRC in #linux-stats, #archlinux, #archlinux.de, #s9y on irc.freenode.net
# Adapted for PHPBB3 1-1-2008 R.van Gijn remon@relight.dtdns.net
if ( IN_serendipity !== true ) {
die ( " Don't hack! " );
}
// Probe for a language include with constants. Still include defines later on, if some constants were missing
$probelang = dirname ( __FILE__ ) . '/' . $serendipity [ 'charset' ] . 'lang_' . $serendipity [ 'lang' ] . '.inc.php' ;
if ( file_exists ( $probelang )) {
include $probelang ;
}
include dirname ( __FILE__ ) . '/lang_en.inc.php' ;
include dirname ( __FILE__ ) . '/include/functions.inc.php' ;
/////////////////////////////////////////////////////////////////////////////////////////////
@ define ( " PWD_ALLOW_NUM " , ( 1 << 0 ));
@ define ( " PWD_ALLOW_LC " , ( 1 << 1 ));
@ define ( " PWD_ALLOW_UC " , ( 1 << 2 ));
@ define ( " PWD_ALLOW_DFLT " , ( PWD_ALLOW_NUM | PWD_ALLOW_LC ));
@ define ( " PWD_ALLOW_ALL " , ( PWD_ALLOW_NUM | PWD_ALLOW_LC | PWD_ALLOW_UC ));
@ define ( " BBCODE " , ' < script type = " text/javascript " language = " JavaScript " >
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insB " value = " B " accesskey = " b " style = " font-weight: bold " onclick = " wrapSelection(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ '], \\ \ '[b] \\ \ ', \\ \ '[/b] \\ \ ') " /> \ ' );
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insI " value = " I " accesskey = " i " style = " font-style: italic " onclick = " wrapSelection(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ '], \\ \ '[i] \\ \ ', \\ \ '[/i] \\ \ ') " /> \ ' );
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insU " value = " U " accesskey = " u " style = " text-decoration: underline; " onclick = " wrapSelection(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ '], \\ \ '[u] \\ \ ', \\ \ '[/u] \\ \ ') " /> \ ' );
document . write ( \ '<input type="button" class="serendipityPrettyButton input_button" name="insQ" value="' . QUOTE . ' " accesskey= " q " style= " font - style : italic " onclick= " wrapSelection ( document . forms [ \\\ ' postform\\\ ' ][ \\\ ' serendipity [ comment ] \\\ ' ], \\\ ' [ quote ] \\\ ' , \\\ ' [ / quote ] \\\ ' ) " /> \ ');
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insJ " value = " img " accesskey = " j " onclick = " wrapInsImage(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ ']) " /> \ ' );
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insU " value = " URL " accesskey = " l " onclick = " wrapSelectionWithLink(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ ']) " /> \ ' );
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " name = " insP " value = " PHP " accesskey = " p " onclick = " wrapSelection(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ '], \\ \ '[php] \\ \ ', \\ \ '[/php] \\ \ ') " /> \ ' );
document . write ( \ ' < input type = " button " class = " serendipityPrettyButton input_button " id = " insC " name = " insC " value = " Color " accesskey = " l " onclick = " wrapSelectionWithColor(document.forms[ \\ \ 'postform \\ \ '][ \\ \ 'serendipity[comment] \\ \ ']) " /> \ ' );
</ script > ' );
class serendipity_event_forum extends serendipity_event {
var $debug ;
function introspect ( & $propbag ) {
global $serendipity ;
$propbag -> add ( 'name' , PLUGIN_FORUM_TITLE );
$propbag -> add ( 'description' , PLUGIN_FORUM_DESC );
$propbag -> add ( 'requirements' , array (
'serendipity' => '0.8' ,
'smarty' => '2.6.7' ,
'php' => '4.1.0'
));
2014-04-08 10:52:48 +02:00
$propbag -> add ( 'version' , '0.38' );
2011-12-13 12:29:05 +01:00
$propbag -> add ( 'author' , 'Alexander \'dma147\' Mieland, http://blog.linux-stats.org, dma147@linux-stats.org' );
$propbag -> add ( 'stackable' , false );
$propbag -> add ( 'event_hooks' , array (
2013-04-23 09:52:43 +02:00
'entries_header' => true ,
'entry_display' => true ,
2011-12-13 12:29:05 +01:00
'backend_sidebar_entries' => true ,
'backend_sidebar_entries_event_display_forum' => true ,
2013-04-23 09:52:43 +02:00
'external_plugin' => true ,
2011-12-13 12:29:05 +01:00
'css' => true ,
'backend_save' => true ,
'backend_publish' => true ,
'frontend_display:html:per_entry' => true ,
'frontend_saveComment' => true ,
'fetchcomments' => true ,
'frontend_display' => true
)
);
$propbag -> add ( 'configuration' , array (
'pagetitle' ,
'headline' ,
'pageurl' ,
'phpbb_mirror' ,
'phpbb_db_user' ,
'phpbb_db_pw' ,
'phpbb_db_host' ,
'phpbb_db_name' ,
'phpbb_db_prefix' ,
'phpbb_forum' ,
'phpbb_poster' ,
'uploaddir' ,
'imgdir' ,
'dateformat' ,
'timeformat' ,
'itemsperpage' ,
'bgcolor_head' ,
'bgcolor1' ,
'bgcolor2' ,
'color_today' ,
'color_yesterday' ,
'use_captchas' ,
'apply_markup' ,
'unreg_nomarkups' ,
'fileupload_reguser' ,
'fileupload_guest' ,
'max_simultaneous_fileuploads' ,
'max_files_per_post' ,
'max_files_per_user' ,
'notifymail_from' ,
'notifymail_name' ,
'admin_notify'
)
);
$propbag -> add ( 'groups' , array ( 'FRONTEND_FULL_MODS' ));
$this -> dependencies = array ( 'serendipity_event_entryproperties' => 'keep' );
}
function introspect_config_item ( $name , & $propbag ) {
global $serendipity ;
switch ( $name ) {
case 'pagetitle' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_PAGETITLE );
$propbag -> add ( 'description' , PLUGIN_FORUM_PAGETITLE_BLAHBLAH );
$propbag -> add ( 'default' , 'Discussion forum' );
break ;
case 'headline' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_HEADLINE );
$propbag -> add ( 'description' , PLUGIN_FORUM_HEADLINE_BLAHBLAH );
$propbag -> add ( 'default' , 'Your place for discussions' );
break ;
case 'pageurl' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_PAGEURL );
$propbag -> add ( 'description' , PLUGIN_FORUM_PAGEURL_BLAHBLAH );
$propbag -> add ( 'default' , 'forum' );
break ;
case 'imgdir' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_IMGDIR );
$propbag -> add ( 'description' , PLUGIN_FORUM_IMGDIR_DESC );
$propbag -> add ( 'default' , $serendipity [ 'serendipityHTTPPath' ] . 'plugins/serendipity_event_forum/' );
break ;
case 'uploaddir' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_UPLOADDIR );
$propbag -> add ( 'description' , PLUGIN_FORUM_UPLOADDIR_BLAHBLAH );
$propbag -> add ( 'default' , $serendipity [ 'serendipityPath' ] . '/files' );
break ;
case 'dateformat' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , GENERAL_PLUGIN_DATEFORMAT );
$propbag -> add ( 'description' , sprintf ( PLUGIN_FORUM_DATEFORMAT , 'Y/m/d' ));
$propbag -> add ( 'default' , 'Y/m/d' );
break ;
case 'timeformat' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_TIMEFORMAT );
$propbag -> add ( 'description' , sprintf ( PLUGIN_FORUM_TIMEFORMAT_BLAHBLAH , 'h:ia' ));
$propbag -> add ( 'default' , 'h:ia' );
break ;
case 'itemsperpage' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_ITEMSPERPAGE );
$propbag -> add ( 'description' , PLUGIN_FORUM_ITEMSPERPAGE_BLAHBLAH );
$propbag -> add ( 'default' , 15 );
break ;
case 'bgcolor_head' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_BGCOLOR_HEAD );
$propbag -> add ( 'description' , PLUGIN_FORUM_BGCOLOR_HEAD_BLAHBLAH );
$propbag -> add ( 'default' , '#d9d9d9' );
break ;
case 'bgcolor1' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_BGCOLOR1 );
$propbag -> add ( 'default' , '#eaeaea' );
break ;
case 'bgcolor2' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_BGCOLOR2 );
$propbag -> add ( 'default' , '#f2f2f2' );
break ;
case 'color_today' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_COLORTODAY );
$propbag -> add ( 'default' , '#ff0000' );
break ;
case 'color_yesterday' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_COLORYESTERDAY );
$propbag -> add ( 'default' , '#0000ff' );
break ;
case 'use_captchas' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , PLUGIN_FORUM_USE_CAPTCHAS );
$propbag -> add ( 'description' , PLUGIN_FORUM_USE_CAPTCHAS_BLAHBLAH );
$propbag -> add ( 'default' , 'true' );
break ;
case 'apply_markup' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , PLUGIN_FORUM_APPLY_MARKUP );
$propbag -> add ( 'description' , PLUGIN_FORUM_APPLY_MARKUP_BLAHBLAH );
$propbag -> add ( 'default' , 'true' );
break ;
case 'phpbb_mirror' :
$propbag -> add ( 'type' , 'select' );
$propbag -> add ( 'name' , PLUGIN_FORUM_PHPBB_MIRROR );
$propbag -> add ( 'description' , PLUGIN_FORUM_PHPBB_MIRROR_DESC );
$propbag -> add ( 'select_values' , array ( 'false' => NO ,
'2' => '2.x' ,
'3' => '3.x' ,
'4' => 'SMF' ));
$propbag -> add ( 'default' , 'false' );
break ;
case 'unreg_nomarkups' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , PLUGIN_FORUM_UNREG_NOMARKUPS );
$propbag -> add ( 'description' , PLUGIN_FORUM_UNREG_NOMARKUPS_BLAHBLAH );
$propbag -> add ( 'default' , 'false' );
break ;
case 'fileupload_reguser' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , PLUGIN_FORUM_FILEUPLOAD_REGUSER );
$propbag -> add ( 'description' , PLUGIN_FORUM_FILEUPLOAD_REGUSER_BLAHBLAH );
$propbag -> add ( 'default' , 'true' );
break ;
case 'fileupload_guest' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , PLUGIN_FORUM_FILEUPLOAD_GUEST );
$propbag -> add ( 'description' , PLUGIN_FORUM_FILEUPLOAD_GUEST_BLAHBLAH );
$propbag -> add ( 'default' , 'false' );
break ;
case 'max_simultaneous_fileuploads' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_HOW_MANY_FILEUPLOADS_WHEN_POSTING );
$propbag -> add ( 'description' , FORUM_HOW_MANY_FILEUPLOADS_WHEN_POSTING_BLAHBLAH );
$propbag -> add ( 'default' , '1' );
break ;
case 'max_files_per_post' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , PLUGIN_FORUM_HOW_MANY_FILES_IN_ONE_POST );
$propbag -> add ( 'description' , PLUGIN_FORUM_HOW_MANY_FILES_IN_ONE_POST_BLAHBLAH );
$propbag -> add ( 'default' , '3' );
break ;
case 'max_files_per_user' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_HOW_MANY_FILEUPLOADS_AT_ALL );
$propbag -> add ( 'description' , FORUM_PLUGIN_HOW_MANY_FILEUPLOADS_AT_ALLBLAHBLAH );
$propbag -> add ( 'default' , '100' );
break ;
case 'notifymail_from' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_NOTIFYMAIL_FROM );
$propbag -> add ( 'description' , FORUM_PLUGIN_NOTIFYMAIL_FROM_BLAHBLAH );
$propbag -> add ( 'default' , $serendipity [ 'blogMail' ]);
break ;
case 'notifymail_name' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_NOTIFYMAIL_NAME );
$propbag -> add ( 'description' , FORUM_PLUGIN_NOTIFYMAIL_NAME_BLAHBLAH );
$propbag -> add ( 'default' , 'Forum of ' . $serendipity [ 'blogTitle' ]);
break ;
case 'admin_notify' :
$propbag -> add ( 'type' , 'boolean' );
$propbag -> add ( 'name' , FORUM_PLUGIN_ADMIN_NOTIFY );
$propbag -> add ( 'description' , FORUM_PLUGIN_ADMIN_NOTIFY_BLAHBLAH );
$propbag -> add ( 'default' , 'true' );
break ;
case 'phpbb_db_user' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_USER );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '' );
break ;
case 'phpbb_db_pw' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_PW );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '' );
break ;
case 'phpbb_db_host' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_HOST );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '127.0.0.1' );
break ;
case 'phpbb_db_name' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_NAME );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '' );
break ;
case 'phpbb_db_prefix' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_PREFIX );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , 'phpbb_' );
break ;
case 'phpbb_forum' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_FORUM );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '1' );
break ;
case 'phpbb_poster' :
$propbag -> add ( 'type' , 'string' );
$propbag -> add ( 'name' , FORUM_PLUGIN_PHPBB_POSTER );
$propbag -> add ( 'description' , '' );
$propbag -> add ( 'default' , '2' );
break ;
default :
return false ;
}
return true ;
}
function show () {
global $serendipity ;
if ( $serendipity [ 'GET' ][ 'subpage' ] == $this -> get_config ( 'pageurl' )) {
if ( ! is_object ( $serendipity [ 'smarty' ])) {
serendipity_smarty_init ();
}
2014-04-08 10:52:48 +02:00
$_ENV [ 'staticpage_pagetitle' ] = preg_replace ( '@[^a-z0-9]@i' , '_' , $this -> get_config ( 'pagetitle' ));
$serendipity [ 'smarty' ] -> assign ( 'staticpage_pagetitle' , $_ENV [ 'staticpage_pagetitle' ]);
2011-12-13 12:29:05 +01:00
$this -> showForum ();
}
}
function setupDB () {
global $serendipity ;
$installed = $this -> get_config ( 'forum_installed' , null );
if ( empty ( $installed ) && ! defined ( 'FORUM_UPGRADE' )) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_boards (
2013-04-23 09:52:43 +02:00
boardid { AUTOINCREMENT } { PRIMARY },
name varchar ( 80 ) NOT NULL default '' ,
description varchar ( 250 ) NOT NULL default '' ,
sortorder int ( 10 ) NOT NULL default '0' ,
threads int ( 10 ) NOT NULL default '0' ,
posts int ( 10 ) NOT NULL default '0' ,
views int ( 10 ) NOT NULL default '0' ,
flag int ( 1 ) NOT NULL default '0' ,
lastauthorid int ( 10 ) NOT NULL default '0' ,
lastauthorname varchar ( 48 ) NOT NULL default '' ,
lastthreadid int ( 10 ) NOT NULL default '0' ,
lastpostid int ( 10 ) NOT NULL default '0' ,
lastposttime int ( 10 ) NOT NULL default '0'
2011-12-13 12:29:05 +01:00
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads (
2013-04-23 09:52:43 +02:00
boardid int ( 10 ) NOT NULL default '0' ,
threadid { AUTOINCREMENT } { PRIMARY },
title varchar ( 80 ) NOT NULL default '' ,
replies int ( 10 ) NOT NULL default '0' ,
views int ( 10 ) NOT NULL default '0' ,
flag int ( 1 ) NOT NULL default '0' ,
notifymails text ,
lastauthorid int ( 10 ) NOT NULL default '0' ,
lastauthorname varchar ( 48 ) NOT NULL default '' ,
lastpostid int ( 10 ) NOT NULL default '0' ,
lastposttime int ( 10 ) NOT NULL default '0'
2011-12-13 12:29:05 +01:00
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_posts (
2013-04-23 09:52:43 +02:00
threadid int ( 10 ) NOT NULL default '0' ,
postid { AUTOINCREMENT } { PRIMARY },
postdate int ( 10 ) NOT NULL default '0' ,
title varchar ( 80 ) NOT NULL default '' ,
message text ,
flag int ( 1 ) NOT NULL default '0' ,
authorid int ( 10 ) NOT NULL default '0' ,
authorname varchar ( 48 ) NOT NULL default '' ,
editcount int ( 10 ) NOT NULL default '0'
2011-12-13 12:29:05 +01:00
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX boardid ON { $serendipity [ 'dbPrefix' ] } dma_forum_boards (boardid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX sortorder ON { $serendipity [ 'dbPrefix' ] } dma_forum_boards (sortorder); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX boardid ON { $serendipity [ 'dbPrefix' ] } dma_forum_threads (boardid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX threadid ON { $serendipity [ 'dbPrefix' ] } dma_forum_threads (threadid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX lastposttime ON { $serendipity [ 'dbPrefix' ] } dma_forum_threads (lastposttime); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX threadid ON { $serendipity [ 'dbPrefix' ] } dma_forum_posts (threadid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX postid ON { $serendipity [ 'dbPrefix' ] } dma_forum_posts (postid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX postdate ON { $serendipity [ 'dbPrefix' ] } dma_forum_posts (postdate); " ;
$sql = serendipity_db_schema_import ( $q );
$now = time ();
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_boards (
name ,
description ,
sortorder ,
threads ,
posts ,
lastauthorname ,
lastthreadid ,
lastpostid ,
lastposttime
) VALUES (
'Example board' ,
'This board is only an example. You can delete or modify this in the admincenter' ,
'0' ,
'1' ,
'1' ,
'System' ,
'1' ,
'1' ,
'".$now."'
) " ;
$sql = serendipity_db_query ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_threads (
boardid ,
title ,
replies ,
lastauthorname ,
lastpostid ,
lastposttime
) VALUES (
'1' ,
'Example thread' ,
'0' ,
'System' ,
'1' ,
'".$now."'
) " ;
$sql = serendipity_db_query ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_posts (
threadid ,
postdate ,
title ,
message ,
authorname
) VALUES (
'1' ,
'".$now."' ,
'Example post' ,
'This is the very first example post, which can be edited or deleted from the admincenter.' ,
'System'
) " ;
$sql = serendipity_db_query ( $q );
$this -> set_config ( 'forum_installed' , '1' );
@ define ( 'FORUM_UPGRADE' , 1 );
}
switch ( $installed ) {
case 1 :
//
//
// Update from 0.2 to 0.3
//
$TABLE [ 'uploads' ] = 0 ;
$TABLE [ 'users' ] = 0 ;
if ( $serendipity [ 'dbType' ] == " postgres " ) {
$tables = serendipity_db_query ( " SELECT * FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE' " );
} else {
$tables = serendipity_db_query ( " SHOW TABLES " );
}
foreach ( $tables AS $table ) {
if ( $table [ 0 ] == " { $serendipity [ 'dbPrefix' ] } dma_forum_uploads " ) {
$TABLE [ 'uploads' ] = 1 ;
} elseif ( $table [ 0 ] == " { $serendipity [ 'dbPrefix' ] } dma_forum_users " ) {
$TABLE [ 'users' ] = 1 ;
}
}
if ( $TABLE [ 'uploads' ] <= 0 ) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (
2013-04-23 09:52:43 +02:00
postid int ( 10 ) NOT NULL default '0' ,
uploadid { AUTOINCREMENT } { PRIMARY },
uploaddate int ( 10 ) NOT NULL default '0' ,
sysfilename varchar ( 32 ) NOT NULL default '' ,
realfilename varchar ( 150 ) NOT NULL default '' ,
dlcount int ( 10 ) NOT NULL default '0'
2011-12-13 12:29:05 +01:00
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX postid ON { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (postid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX uploadid ON { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (uploadid); " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX realfilename ON { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (realfilename); " ;
$sql = serendipity_db_schema_import ( $q );
}
if ( $TABLE [ 'users' ] <= 0 ) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_users (
2013-04-23 09:52:43 +02:00
authorid int ( 10 ) NOT NULL default '0' ,
posts int ( 10 ) NOT NULL default '0' ,
visits int ( 10 ) NOT NULL default '0' ,
lastvisit int ( 10 ) NOT NULL default '0' ,
lastpost int ( 10 ) NOT NULL default '0' ,
uploadids text
2011-12-13 12:29:05 +01:00
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX authorid ON { $serendipity [ 'dbPrefix' ] } dma_forum_users (authorid); " ;
$sql = serendipity_db_schema_import ( $q );
}
//
//
// Update from 0.3 to 0.4
//
$FIELD [ 'authorid' ] = 0 ;
$FIELD [ 'filesize' ] = 0 ;
$FIELD [ 'announce' ] = 0 ;
if ( $serendipity [ 'dbType' ] == " postgres " ) {
$fields = serendipity_db_query ( " SELECT column_name FROM information_schema.columns WHERE table_name = ' " . $serendipity [ 'dbPrefix' ] . " dma_forum_uploads'; " );
} else {
$fields = serendipity_db_query ( " SHOW COLUMNS FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads " );
}
foreach ( $fields AS $field ) {
if ( $field [ 0 ] == " authorid " ) {
$FIELD [ 'authorid' ] = 1 ;
} elseif ( $field [ 0 ] == " filesize " ) {
$FIELD [ 'filesize' ] = 1 ;
}
}
if ( $serendipity [ 'dbType' ] == " postgres " ) {
$fields = serendipity_db_query ( " SELECT column_name FROM information_schema.columns WHERE table_name = ' " . $serendipity [ 'dbPrefix' ] . " dma_forum_threads'; " );
} else {
$fields = serendipity_db_query ( " SHOW COLUMNS FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads " );
}
foreach ( $fields AS $field ) {
if ( $field [ 0 ] == " announce " ) {
$FIELD [ 'announce' ] = 1 ;
}
}
if ( $FIELD [ 'authorid' ] <= 0 ) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp (
postid int ( 10 ) NOT NULL default '0' ,
uploadid { AUTOINCREMENT } { PRIMARY },
uploaddate int ( 10 ) NOT NULL default '0' ,
sysfilename varchar ( 32 ) NOT NULL default '' ,
realfilename varchar ( 150 ) NOT NULL default '' ,
dlcount int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp
( postid , uploadid , uploaddate , sysfilename , realfilename , dlcount )
SELECT postid , uploadid , uploaddate , sysfilename , realfilename , dlcount FROM { $serendipity [ 'dbPrefix' ]} dma_forum_uploads ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (
postid int ( 10 ) NOT NULL default '0' ,
uploadid { AUTOINCREMENT } { PRIMARY },
authorid int ( 10 ) NOT NULL default '0' ,
uploaddate int ( 10 ) NOT NULL default '0' ,
sysfilename varchar ( 32 ) NOT NULL default '' ,
realfilename varchar ( 150 ) NOT NULL default '' ,
dlcount int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_uploads
( postid , uploadid , authorid , uploaddate , sysfilename , realfilename , dlcount )
SELECT postid , uploadid , authorid , uploaddate , sysfilename , realfilename , dlcount FROM { $serendipity [ 'dbPrefix' ]} dma_forum_uploads_tmp ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX authorid ON { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (authorid); " ;
$sql = serendipity_db_schema_import ( $q );
}
if ( $FIELD [ 'filesize' ] <= 0 ) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp (
postid int ( 10 ) NOT NULL default '0' ,
uploadid { AUTOINCREMENT } { PRIMARY },
authorid int ( 10 ) NOT NULL default '0' ,
uploaddate int ( 10 ) NOT NULL default '0' ,
sysfilename varchar ( 32 ) NOT NULL default '' ,
realfilename varchar ( 150 ) NOT NULL default '' ,
dlcount int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp
( postid , uploadid , authorid , uploaddate , sysfilename , realfilename , dlcount )
SELECT postid , uploadid , authorid , uploaddate , sysfilename , realfilename , dlcount FROM { $serendipity [ 'dbPrefix' ]} dma_forum_uploads ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads (
postid int ( 10 ) NOT NULL default '0' ,
uploadid { AUTOINCREMENT } { PRIMARY },
authorid int ( 10 ) NOT NULL default '0' ,
uploaddate int ( 10 ) NOT NULL default '0' ,
filesize int ( 10 ) NOT NULL default '0' ,
sysfilename varchar ( 32 ) NOT NULL default '' ,
realfilename varchar ( 150 ) NOT NULL default '' ,
dlcount int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_uploads
( postid , uploadid , authorid , uploaddate , filesize , sysfilename , realfilename , dlcount )
SELECT postid , uploadid , authorid , uploaddate , filesize , sysfilename , realfilename , dlcount FROM { $serendipity [ 'dbPrefix' ]} dma_forum_uploads_tmp ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads_tmp; " ;
$sql = serendipity_db_schema_import ( $q );
}
if ( $FIELD [ 'announce' ] <= 0 ) {
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads_tmp (
boardid int ( 10 ) NOT NULL default '0' ,
threadid { AUTOINCREMENT } { PRIMARY },
title varchar ( 80 ) NOT NULL default '' ,
replies int ( 10 ) NOT NULL default '0' ,
views int ( 10 ) NOT NULL default '0' ,
flag int ( 1 ) NOT NULL default '0' ,
notifymails text ,
lastauthorid int ( 10 ) NOT NULL default '0' ,
lastauthorname varchar ( 48 ) NOT NULL default '' ,
lastpostid int ( 10 ) NOT NULL default '0' ,
lastposttime int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_threads_tmp
( boardid , threadid , title , replies , views , flag , notifymails , lastauthorid , lastauthorname , lastpostid , lastposttime )
SELECT boardid , threadid , title , replies , views , flag , notifymails , lastauthorid , lastauthorname , lastpostid , lastposttime FROM { $serendipity [ 'dbPrefix' ]} dma_forum_threads ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads (
boardid int ( 10 ) NOT NULL default '0' ,
threadid { AUTOINCREMENT } { PRIMARY },
title varchar ( 80 ) NOT NULL default '' ,
replies int ( 10 ) NOT NULL default '0' ,
views int ( 10 ) NOT NULL default '0' ,
flag int ( 1 ) NOT NULL default '0' ,
announce int ( 1 ) NOT NULL default '0' ,
notifymails text ,
lastauthorid int ( 10 ) NOT NULL default '0' ,
lastauthorname varchar ( 48 ) NOT NULL default '' ,
lastpostid int ( 10 ) NOT NULL default '0' ,
lastposttime int ( 10 ) NOT NULL default '0'
) " ;
$sql = serendipity_db_schema_import ( $q );
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_threads
( boardid , threadid , title , replies , views , flag , announce , notifymails , lastauthorid , lastauthorname , lastpostid , lastposttime )
SELECT boardid , threadid , title , replies , views , flag , announce , notifymails , lastauthorid , lastauthorname , lastpostid , lastposttime FROM { $serendipity [ 'dbPrefix' ]} dma_forum_threads_tmp ; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads_tmp; " ;
$sql = serendipity_db_schema_import ( $q );
$q = " CREATE INDEX announce ON { $serendipity [ 'dbPrefix' ] } dma_forum_threads (announce); " ;
$sql = serendipity_db_schema_import ( $q );
}
//
//
// Update from 0.4 to 0.5
//
$FIELD [ 'notifymails' ] = 0 ;
if ( $serendipity [ 'dbType' ] == " postgres " ) {
$fields = serendipity_db_query ( " SELECT column_name FROM information_schema.columns WHERE table_name = ' " . $serendipity [ 'dbPrefix' ] . " dma_forum_threads'; " );
} else {
$fields = serendipity_db_query ( " SHOW COLUMNS FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads " );
}
foreach ( $fields AS $field ) {
if ( $field [ 0 ] == " notifymails " ) {
$FIELD [ 'notifymails' ] = 1 ;
}
}
if ( $FIELD [ 'notifymails' ] <= 0 ) {
$q = " ALTER TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads ADD notifymails text AFTER flag; " ;
$sql = serendipity_db_schema_import ( $q );
}
$this -> set_config ( 'forum_installed' , '2' );
break ;
}
}
2012-06-13 14:47:45 +02:00
function uninstall ( & $propbag ) {
2011-12-13 12:29:05 +01:00
global $serendipity ;
serendipity_db_query ( " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_boards " );
serendipity_db_query ( " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_threads " );
serendipity_db_query ( " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_posts " );
$sql = " SELECT sysfilename FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads " ;
$uploads = serendipity_db_query ( $sql );
if ( is_array ( $uploads ) && count ( $uploads ) >= 1 ) {
foreach ( $uploads AS $upload ) {
@ unlink ( $this -> get_config ( 'uploaddir' ) . " / " . $file );
}
}
serendipity_db_query ( " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads " );
serendipity_db_query ( " DROP TABLE { $serendipity [ 'dbPrefix' ] } dma_forum_users " );
$this -> set_config ( 'forum_db_built' , NULL );
@ define ( 'FORUM_UPGRADE_DONE' , false );
}
function DMA_forum_getRelPath () {
global $serendipity ;
static $path = null ;
if ( $path === null ) {
$path = $this -> get_config ( 'imgdir' );
}
return $path ;
}
function showForum () {
global $serendipity ;
if ( ! headers_sent ()) {
header ( 'HTTP/1.0 200' );
header ( 'Status: 200 OK' );
}
$ERRORMSG = " " ;
$THREAD_UNREAD_ANNOUNCEMENT = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_unread_announce.png \" width= \" 20 \" height= \" 20 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_READ . " \" title= \" " . PLUGIN_FORUM_ALT_READ . " \" /> " ;
$THREAD_READ_ANNOUNCEMENT = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_read_announce.png \" width= \" 20 \" height= \" 20 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_READ . " \" title= \" " . PLUGIN_FORUM_ALT_READ . " \" /> " ;
$THREAD_UNREAD = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_unread.png \" width= \" 20 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_UNREAD . " \" title= \" " . PLUGIN_FORUM_ALT_UNREAD . " \" /> " ;
$THREAD_HUGE_UNREAD = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_huge_unread.png \" width= \" 20 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_UNREAD . " \" title= \" " . PLUGIN_FORUM_ALT_UNREAD . " \" /> " ;
$THREAD_READ = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_read.png \" width= \" 20 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_READ . " \" title= \" " . PLUGIN_FORUM_ALT_READ . " \" /> " ;
$THREAD_HUGE_READ = " <img src= \" " . $this -> DMA_forum_getRelPath () . " /img/thread_huge_read.png \" width= \" 20 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_READ . " \" title= \" " . PLUGIN_FORUM_ALT_READ . " \" /> " ;
$DEL_FILE_BUTTON = " <img src= \" " . serendipity_getTemplateFile ( 'admin/img/delete.png' ) . " \" width= \" 18 \" height= \" 18 \" border= \" 0 \" alt= \" " . DELETE . " \" title= \" " . DELETE . " \" /> " ;
if ( ! isset ( $_SESSION [ 'forum_visited' ]) || intval ( $_SESSION [ 'forum_visited' ]) <= 0 ) {
if ( serendipity_userLoggedIn ()) {
$sql = " SELECT visits, lastvisit FROM { $serendipity [ 'dbPrefix' ] } dma_forum_users WHERE authorid = ' " . intval ( $serendipity [ 'authorid' ]) . " ' " ;
$visits = serendipity_db_query ( $sql );
if ( is_array ( $visits ) && count ( $visits ) >= 1 ) {
$q = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_users SET visits = visits+1, lastvisit = ' " . time () . " ' WHERE authorid = ' " . intval ( $serendipity [ 'authorid' ]) . " ' " ;
serendipity_db_query ( $q );
} else {
$q = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_users (authorid, visits, lastvisit) VALUES (' " . intval ( $serendipity [ 'authorid' ]) . " ', '1', ' " . time () . " ') " ;
serendipity_db_query ( $q );
}
$_SESSION [ 'forum_visited' ] = 1 ;
}
}
if ( is_array ( $_COOKIE ) && trim ( $_COOKIE [ 's9yread' ]) != " " ) {
$READARRAY = unserialize ( stripslashes ( trim ( $_COOKIE [ 's9yread' ])));
} else {
$READARRAY = array ();
}
// POST part
if ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " reply " ) {
if ( ! isset ( $serendipity [ 'POST' ][ 'authorname' ]) || trim ( $serendipity [ 'POST' ][ 'authorname' ]) == " " ) {
if ( serendipity_userLoggedIn ()) {
$serendipity [ 'POST' ][ 'authorname' ] = $serendipity [ 'serendipityUser' ];
} else {
$serendipity [ 'POST' ][ 'authorname' ] = PLUGIN_FORUM_GUEST ;
}
}
if ( $this -> get_config ( 'use_captchas' )) {
// Fake call to spamblock and other comment plugins.
$ca = array (
'id' => 0 ,
'allow_comments' => 'true' ,
'moderate_comments' => false ,
'last_modified' => 1 ,
'timestamp' => 1
);
$commentInfo = array (
'type' => 'NORMAL' ,
'source' => 'commentform' ,
'name' => $serendipity [ 'POST' ][ 'authorname' ],
'url' => '' ,
'comment' => $serendipity [ 'POST' ][ 'comment' ],
'email' => ''
);
serendipity_plugin_api :: hook_event ( 'frontend_saveComment' , $ca , $commentInfo );
} else {
$ca [ 'allow_comments' ] = true ;
}
if ( $ca [ 'allow_comments' ] === false ) {
$ERRORMSG = PLUGIN_FORUM_ERR_WRONG_CAPTCHA_STRING ;
} else {
$serendipity [ 'POST' ][ 'title' ] = trim ( $serendipity [ 'POST' ][ 'title' ]);
$serendipity [ 'POST' ][ 'comment' ] = trim ( $serendipity [ 'POST' ][ 'comment' ]);
$serendipity [ 'POST' ][ 'authorname' ] = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
if ( ! isset ( $serendipity [ 'POST' ][ 'comment' ]) || strlen ( trim ( $serendipity [ 'POST' ][ 'comment' ])) <= 3 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_MISSING_MESSAGE ;
} else {
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $serendipity [ 'POST' ][ 'threadid' ]) . " ' " ;
$thread = serendipity_db_query ( $sql );
if ( $thread [ 0 ][ 'flag' ] == 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_THREAD_CLOSED ;
} else {
if ( trim ( $serendipity [ 'POST' ][ 'comment' ]) == $_SESSION [ 'lastposttext' ]) {
$ERRORMSG = PLUGIN_FORUM_ERR_DOUBLE_POST ;
} elseif ( $_SESSION [ 'lastposttime' ] >= ( time () - 10 )) {
$ERRORMSG = PLUGIN_FORUM_ERR_POST_INTERVAL ;
} else {
$now = time ();
$postid = DMA_forum_InsertReply ( intval ( $serendipity [ 'POST' ][ 'boardid' ]), intval ( $serendipity [ 'POST' ][ 'threadid' ]), intval ( $serendipity [ 'POST' ][ 'replyto' ]), trim ( $serendipity [ 'POST' ][ 'authorname' ]), trim ( $serendipity [ 'POST' ][ 'title' ]), trim ( $serendipity [ 'POST' ][ 'comment' ]), $this -> get_config ( 'itemsperpage' ), $this -> get_config ( 'notifymail_from' ), $this -> get_config ( 'notifymail_name' ), $this -> get_config ( 'pageurl' ), $this -> get_config ( 'admin_notify' ));
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
DMA_forum_uploadFiles ( $postid , $this -> get_config ( 'uploaddir' ));
if ( $this -> SUCCESS <= 0 ) {
if ( count ( $this -> UPLOAD_TOOBIG ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_TOO_BIG ;
} elseif ( count ( $this -> UPLOAD_NOTCOPIED ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_NOT_COPIED ;
}
}
}
}
}
}
}
if ( serendipity_userLoggedIn ()) {
$POST_AUTHORNAME = $serendipity [ 'serendipityUser' ];
} else {
$POST_AUTHORNAME = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
}
$POST_TITLE = trim ( $serendipity [ 'POST' ][ 'title' ]);
$POST_MESSAGE = trim ( $serendipity [ 'POST' ][ 'comment' ]);
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$_GET [ 'boardid' ] = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
$_GET [ 'threadid' ] = intval ( $serendipity [ 'POST' ][ 'threadid' ]);
$_GET [ 'replyto' ] = intval ( $serendipity [ 'POST' ][ 'replyto' ]);
$_GET [ 'quote' ] = 0 ;
}
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " edit " ) {
if ( ! isset ( $serendipity [ 'POST' ][ 'authorname' ]) || trim ( $serendipity [ 'POST' ][ 'authorname' ]) == " " ) {
if ( serendipity_userLoggedIn ()) {
$serendipity [ 'POST' ][ 'authorname' ] = $serendipity [ 'serendipityUser' ];
} else {
$serendipity [ 'POST' ][ 'authorname' ] = PLUGIN_FORUM_GUEST ;
}
}
$serendipity [ 'POST' ][ 'title' ] = trim ( $serendipity [ 'POST' ][ 'title' ]);
$serendipity [ 'POST' ][ 'comment' ] = trim ( $serendipity [ 'POST' ][ 'comment' ]);
$serendipity [ 'POST' ][ 'authorname' ] = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
if ( ! isset ( $serendipity [ 'POST' ][ 'comment' ]) || strlen ( trim ( $serendipity [ 'POST' ][ 'comment' ])) <= 3 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_MISSING_MESSAGE ;
} else {
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE postid=' " . intval ( $serendipity [ 'POST' ][ 'edit' ]) . " ' " ;
$post = serendipity_db_query ( $sql );
if ( serendipity_userLoggedIn () && (( $serendipity [ 'serendipityUser' ] == $post [ 0 ][ 'authorname' ] && $serendipity [ 'authorid' ] == $post [ 0 ][ 'authorid' ]) || $serendipity [ 'serendipityUserlevel' ] == 255 )) {
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) {
if ( isset ( $serendipity [ 'POST' ][ 'announcement' ]) && intval ( $serendipity [ 'POST' ][ 'announcement' ]) == 1 ) {
$announce = 1 ;
} else {
$announce = 0 ;
}
} else {
$announce = 0 ;
}
DMA_forum_EditReply ( intval ( $serendipity [ 'POST' ][ 'boardid' ]), intval ( $serendipity [ 'POST' ][ 'threadid' ]), intval ( $serendipity [ 'POST' ][ 'edit' ]), trim ( $serendipity [ 'POST' ][ 'authorname' ]), trim ( $serendipity [ 'POST' ][ 'title' ]), trim ( $serendipity [ 'POST' ][ 'comment' ]), intval ( $serendipity [ 'POST' ][ 'page' ]), $announce );
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
DMA_forum_uploadFiles ( intval ( $serendipity [ 'POST' ][ 'edit' ]), $this -> get_config ( 'uploaddir' ));
if ( $this -> SUCCESS <= 0 ) {
if ( count ( $this -> UPLOAD_TOOBIG ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_TOO_BIG ;
} elseif ( count ( $this -> UPLOAD_NOTCOPIED ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_NOT_COPIED ;
}
}
}
} else {
$ERRORMSG = PLUGIN_FORUM_ERR_EDIT_NOT_ALLOWED ;
}
}
if ( serendipity_userLoggedIn ()) {
$POST_AUTHORNAME = $serendipity [ 'serendipityUser' ];
} else {
$POST_AUTHORNAME = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
}
$POST_TITLE = trim ( $serendipity [ 'POST' ][ 'title' ]);
$POST_MESSAGE = trim ( $serendipity [ 'POST' ][ 'comment' ]);
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$_GET [ 'boardid' ] = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
$_GET [ 'threadid' ] = intval ( $serendipity [ 'POST' ][ 'threadid' ]);
$_GET [ 'edit' ] = intval ( $serendipity [ 'POST' ][ 'edit' ]);
}
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " delete " ) {
if ( ! isset ( $serendipity [ 'POST' ][ 'no' ]) || trim ( $serendipity [ 'POST' ][ 'no' ]) == " " ) {
if ( ! isset ( $serendipity [ 'serendipityUserlevel' ]) || $serendipity [ 'serendipityUserlevel' ] != 255 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_DELETE_NOT_ALLOWED ;
} else {
DMA_forum_DeletePost ( intval ( $serendipity [ 'POST' ][ 'boardid' ]), intval ( $serendipity [ 'POST' ][ 'threadid' ]), intval ( $serendipity [ 'POST' ][ 'delete' ]), intval ( $serendipity [ 'POST' ][ 'page' ]), $this -> get_config ( 'uploaddir' ), $this -> get_config ( 'itemsperpage' ));
}
}
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$_GET [ 'boardid' ] = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
$_GET [ 'threadid' ] = intval ( $serendipity [ 'POST' ][ 'threadid' ]);
}
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " newthread " ) {
if ( ! isset ( $serendipity [ 'POST' ][ 'authorname' ]) || trim ( $serendipity [ 'POST' ][ 'authorname' ]) == " " ) {
if ( serendipity_userLoggedIn ()) {
$serendipity [ 'POST' ][ 'authorname' ] = $serendipity [ 'serendipityUser' ];
} else {
$serendipity [ 'POST' ][ 'authorname' ] = PLUGIN_FORUM_GUEST ;
}
}
if ( $this -> get_config ( 'use_captchas' )) {
// Fake call to spamblock and other comment plugins.
$ca = array (
'id' => 0 ,
'allow_comments' => 'true' ,
'moderate_comments' => false ,
'last_modified' => 1 ,
'timestamp' => 1
);
$commentInfo = array (
'type' => 'NORMAL' ,
'source' => 'commentform' ,
'name' => $serendipity [ 'POST' ][ 'authorname' ],
'url' => '' ,
'comment' => $serendipity [ 'POST' ][ 'comment' ],
'email' => ''
);
serendipity_plugin_api :: hook_event ( 'frontend_saveComment' , $ca , $commentInfo );
} else {
$ca [ 'allow_comments' ] = true ;
}
if ( $ca [ 'allow_comments' ] === false ) {
$ERRORMSG = PLUGIN_FORUM_ERR_WRONG_CAPTCHA_STRING ;
} else {
$serendipity [ 'POST' ][ 'title' ] = trim ( $serendipity [ 'POST' ][ 'title' ]);
$serendipity [ 'POST' ][ 'comment' ] = trim ( $serendipity [ 'POST' ][ 'comment' ]);
$serendipity [ 'POST' ][ 'authorname' ] = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
if ( ! isset ( $serendipity [ 'POST' ][ 'title' ]) || strlen ( trim ( $serendipity [ 'POST' ][ 'title' ])) <= 3 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_MISSING_THREADTITLE ;
} elseif ( ! isset ( $serendipity [ 'POST' ][ 'comment' ]) || strlen ( trim ( $serendipity [ 'POST' ][ 'comment' ])) <= 3 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_MISSING_MESSAGE ;
} else {
if ( trim ( $serendipity [ 'POST' ][ 'comment' ]) == $_SESSION [ 'lastthreadtext' ]) {
$ERRORMSG = PLUGIN_FORUM_ERR_DOUBLE_THREAD ;
} elseif ( $_SESSION [ 'lastposttime' ] >= ( time () - 10 )) {
$ERRORMSG = PLUGIN_FORUM_ERR_POST_INTERVAL ;
} else {
$now = time ();
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) {
if ( isset ( $serendipity [ 'POST' ][ 'announcement' ]) && intval ( $serendipity [ 'POST' ][ 'announcement' ]) == 1 ) {
$announce = 1 ;
} else {
$announce = 0 ;
}
} else {
$announce = 0 ;
}
$postid = DMA_forum_InsertThread ( intval ( $serendipity [ 'POST' ][ 'boardid' ]), trim ( $serendipity [ 'POST' ][ 'authorname' ]), trim ( $serendipity [ 'POST' ][ 'title' ]), trim ( $serendipity [ 'POST' ][ 'comment' ]), $announce , $this -> get_config ( 'notifymail_from' ), $this -> get_config ( 'notifymail_name' ), $this -> get_config ( 'pageurl' ), $this -> get_config ( 'admin_notify' ));
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
DMA_forum_uploadFiles ( $postid , $this -> get_config ( 'uploaddir' ));
if ( $this -> SUCCESS <= 0 ) {
if ( count ( $this -> UPLOAD_TOOBIG ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_TOO_BIG ;
} elseif ( count ( $this -> UPLOAD_NOTCOPIED ) >= 1 ) {
$ERRORMSG = PLUGIN_FORUM_ERR_FILE_NOT_COPIED ;
}
}
}
}
}
}
if ( serendipity_userLoggedIn ()) {
$POST_AUTHORNAME = $serendipity [ 'serendipityUser' ];
} else {
$POST_AUTHORNAME = trim ( $serendipity [ 'POST' ][ 'authorname' ]);
}
$POST_TITLE = trim ( $serendipity [ 'POST' ][ 'title' ]);
$POST_MESSAGE = trim ( $serendipity [ 'POST' ][ 'comment' ]);
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$_GET [ 'boardid' ] = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
$_GET [ 'action' ] = " newthread " ;
} else {
$_GET [ 'boardid' ] = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
unset ( $_GET [ 'action' ]);
}
}
// GET part
if (( isset ( $_GET [ 'replyto' ]) && ! isset ( $_GET [ 'edit' ]) && ! isset ( $_GET [ 'delete' ])) && ( isset ( $_GET [ 'boardid' ]) && intval ( $_GET [ 'boardid' ]) >= 1 ) && ( isset ( $_GET [ 'threadid' ]) && intval ( $_GET [ 'threadid' ]) >= 1 )) {
// replyform
$filename = 'templates/replyform.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'ERRORMSG' , $ERRORMSG );
}
if ( isset ( $_GET [ 'quote' ]) && intval ( $_GET [ 'quote' ]) >= 1 ) {
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE postid=' " . intval ( $_GET [ 'replyto' ]) . " ' " ;
$post = serendipity_db_query ( $sql );
}
if ( ! isset ( $POST_MESSAGE ) || trim ( $POST_MESSAGE ) == " " ) {
if ( isset ( $_GET [ 'quote' ]) && intval ( $_GET [ 'quote' ]) >= 1 ) {
$POST_MESSAGE = " [quote= " . stripslashes ( $post [ 0 ][ 'authorname' ]) . " ] " . stripslashes ( $post [ 0 ][ 'message' ]) . " [/quote] \n \n " ;
}
}
if ( ! isset ( $POST_TITLE ) || trim ( $POST_TITLE ) == " " ) {
if ( isset ( $_GET [ 'quote' ]) && intval ( $_GET [ 'quote' ]) >= 1 ) {
$POST_TITLE = " Re: " . stripslashes ( $post [ 0 ][ 'title' ]);
}
}
if ( serendipity_userLoggedIn ()) {
$POST_AUTHORNAME = $serendipity [ 'serendipityUser' ];
}
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thread = serendipity_db_query ( $sql );
$serendipity [ 'smarty' ] -> assign (
array (
2013-04-23 09:52:43 +02:00
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'threadtitle' => htmlspecialchars ( stripslashes ( trim ( $thread [ 0 ][ 'title' ]))),
'bgcolor2' => $this -> get_config ( 'bgcolor2' ),
'ACTUALURL' => $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]),
'boardid' => intval ( $_GET [ 'boardid' ]),
'threadid' => intval ( $_GET [ 'threadid' ]),
'replyto' => intval ( $_GET [ 'replyto' ]),
2011-12-13 12:29:05 +01:00
'relpath' => $this -> DMA_forum_getRelPath (),
2013-04-23 09:52:43 +02:00
'POST_AUTHORNAME' => htmlspecialchars ( $POST_AUTHORNAME ),
'POST_TITLE' => htmlspecialchars ( $POST_TITLE ),
'POST_MESSAGE' => htmlspecialchars ( $POST_MESSAGE ),
2011-12-13 12:29:05 +01:00
)
);
$serendipity [ 'smarty' ] -> assign ( 'bbcode' , BBCODE );
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
$upload_max_filesize = ini_get ( 'upload_max_filesize' );
$upload_max_filesize = preg_replace ( '/M/' , '000000' , $upload_max_filesize );
$MAX_FILE_SIZE = intval ( $upload_max_filesize );
$MAX_SIZE_PER_FILE = ( $MAX_FILE_SIZE / 1000000 ) . " MB " ;
$max_possible = intval ( $this -> get_config ( 'max_simultaneous_fileuploads' ));
if ( $max_possible >= intval ( $this -> get_config ( 'max_files_per_post' ))) {
$max_possible = intval ( $this -> get_config ( 'max_files_per_post' ));
}
if ( serendipity_userLoggedIn ()) {
$authorid = intval ( $serendipity [ 'authorid' ]);
} else {
$authorid = 0 ;
}
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE authorid = ' " . $authorid . " ' " ;
$uploadnum = serendipity_db_query ( $sql );
$uploaduserrest = ( intval ( $this -> get_config ( 'max_files_per_user' )) - intval ( $uploadnum [ 0 ][ 0 ]));
if ( $max_possible >= $uploaduserrest ) {
$max_possible = $uploaduserrest ;
}
$uploads = array ();
for ( $x = 0 ; $x < $max_possible ; $x ++ ) {
$uploads [] = ( $x + 1 );
}
$serendipity [ 'smarty' ] -> assign (
array (
'uploadform' => true ,
'MAX_FILE_SIZE' => $MAX_FILE_SIZE ,
'MAX_SIZE_PER_FILE' => $MAX_SIZE_PER_FILE ,
'uploads' => $uploads ,
'uploads_post_left' => intval ( $this -> get_config ( 'max_files_per_post' )),
'uploads_user_left' => $uploaduserrest
)
);
}
if ( $this -> get_config ( 'use_captchas' )) {
$serendipity [ 'smarty' ] -> assign ( 'commentform_entry' , array ( 'timestamp' => 1 ));
}
} elseif (( ! isset ( $_GET [ 'replyto' ]) && isset ( $_GET [ 'edit' ]) && ! isset ( $_GET [ 'delete' ])) && ( isset ( $_GET [ 'boardid' ]) && intval ( $_GET [ 'boardid' ]) >= 1 ) && ( isset ( $_GET [ 'threadid' ]) && intval ( $_GET [ 'threadid' ]) >= 1 )) {
// editform
$filename = 'templates/editform.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thread = serendipity_db_query ( $sql );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE postid=' " . intval ( $_GET [ 'edit' ]) . " ' " ;
$post = serendipity_db_query ( $sql );
if ( serendipity_userLoggedIn () && (( $serendipity [ 'serendipityUser' ] == $post [ 0 ][ 'authorname' ] && $serendipity [ 'authorid' ] == $post [ 0 ][ 'authorid' ]) || $serendipity [ 'serendipityUserlevel' ] == 255 )) {
$serendipity [ 'smarty' ] -> assign ( 'CANEDIT' , true );
} else {
$ERRORMSG = PLUGIN_FORUM_ERR_EDIT_NOT_ALLOWED ;
}
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'ERRORMSG' , $ERRORMSG );
}
$serendipity [ 'smarty' ] -> assign (
array (
2013-04-23 09:52:43 +02:00
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'threadtitle' => htmlspecialchars ( stripslashes ( trim ( $thread [ 0 ][ 'title' ]))),
'bgcolor2' => $this -> get_config ( 'bgcolor2' ),
'ACTUALURL' => $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . intval ( $_GET [ 'page' ]),
'boardid' => intval ( $_GET [ 'boardid' ]),
'threadid' => intval ( $_GET [ 'threadid' ]),
2011-12-13 12:29:05 +01:00
'relpath' => $this -> DMA_forum_getRelPath (),
'page' => intval ( $_GET [ 'page' ]),
2013-04-23 09:52:43 +02:00
'edit' => intval ( $_GET [ 'edit' ]),
'POST_AUTHORNAME' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'authorname' ]))),
'POST_TITLE' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'title' ]))),
'POST_MESSAGE' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'message' ])))
2011-12-13 12:29:05 +01:00
)
);
$serendipity [ 'smarty' ] -> assign ( 'bbcode' , BBCODE );
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) {
$serendipity [ 'smarty' ] -> assign ( 'announcement' , true );
if ( intval ( $thread [ 0 ][ 'announce' ]) == 1 ) {
$serendipity [ 'smarty' ] -> assign ( 'checked' , " checked " );
} else {
$serendipity [ 'smarty' ] -> assign ( 'checked' , " " );
}
}
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
$upload_max_filesize = ini_get ( 'upload_max_filesize' );
$upload_max_filesize = preg_replace ( '/M/' , '000000' , $upload_max_filesize );
$MAX_FILE_SIZE = intval ( $upload_max_filesize );
$MAX_SIZE_PER_FILE = ( $MAX_FILE_SIZE / 1000000 ) . " MB " ;
$max_possible = intval ( $this -> get_config ( 'max_simultaneous_fileuploads' ));
if ( $max_possible >= intval ( $this -> get_config ( 'max_files_per_post' ))) {
$max_possible = intval ( $this -> get_config ( 'max_files_per_post' ));
}
if ( serendipity_userLoggedIn ()) {
$authorid = intval ( $serendipity [ 'authorid' ]);
} else {
$authorid = 0 ;
}
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE authorid = ' " . $authorid . " ' " ;
$uploadnum = serendipity_db_query ( $sql );
$uploaduserrest = ( intval ( $this -> get_config ( 'max_files_per_user' )) - intval ( $uploadnum [ 0 ][ 0 ]));
if ( $max_possible >= $uploaduserrest ) {
$max_possible = $uploaduserrest ;
}
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE postid = ' " . intval ( $_GET [ 'edit' ]) . " ' " ;
$postuploadnum = serendipity_db_query ( $sql );
$uploadpostrest = ( intval ( $this -> get_config ( 'max_files_per_post' )) - intval ( $postuploadnum [ 0 ][ 0 ]));
if ( $max_possible >= $uploadpostrest ) {
$max_possible = $uploadpostrest ;
}
$uploads = array ();
for ( $x = 0 ; $x < $max_possible ; $x ++ ) {
$uploads [] = ( $x + 1 );
}
$serendipity [ 'smarty' ] -> assign (
array (
'uploadform' => true ,
'MAX_FILE_SIZE' => $MAX_FILE_SIZE ,
'MAX_SIZE_PER_FILE' => $MAX_SIZE_PER_FILE ,
'uploads' => $uploads ,
'uploads_post_left' => $uploadpostrest ,
'uploads_user_left' => $uploaduserrest
)
);
}
} elseif (( ! isset ( $_GET [ 'replyto' ]) && ! isset ( $_GET [ 'edit' ]) && isset ( $_GET [ 'delete' ])) && ( isset ( $_GET [ 'boardid' ]) && intval ( $_GET [ 'boardid' ]) >= 1 ) && ( isset ( $_GET [ 'threadid' ]) && intval ( $_GET [ 'threadid' ]) >= 1 )) {
// deleteform
$filename = 'templates/deleteform.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thread = serendipity_db_query ( $sql );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE postid=' " . intval ( $_GET [ 'delete' ]) . " ' " ;
$post = serendipity_db_query ( $sql );
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == 255 ) {
$serendipity [ 'smarty' ] -> assign ( 'CANDELETE' , true );
} else {
$ERRORMSG = PLUGIN_FORUM_ERR_DELETE_NOT_ALLOWED ;
}
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'ERRORMSG' , $ERRORMSG );
}
if ( $this -> get_config ( 'apply_markup' )) {
$temp_array = array ( 'body' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'message' ]))));
serendipity_plugin_api :: hook_event ( 'frontend_display' , $temp_array );
$post [ 'message' ] = trim ( $temp_array [ 'body' ]);
} else {
$post [ 'message' ] = nl2br ( htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'message' ]))));
}
$serendipity [ 'smarty' ] -> assign (
array (
2013-04-23 09:52:43 +02:00
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'threadtitle' => htmlspecialchars ( stripslashes ( trim ( $thread [ 0 ][ 'title' ]))),
'bgcolor1' => $this -> get_config ( 'bgcolor1' ),
'bgcolor2' => $this -> get_config ( 'bgcolor2' ),
'ACTUALURL' => $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . intval ( $_GET [ 'page' ]),
'boardid' => intval ( $_GET [ 'boardid' ]),
'threadid' => intval ( $_GET [ 'threadid' ]),
2011-12-13 12:29:05 +01:00
'page' => intval ( $_GET [ 'page' ]),
2013-04-23 09:52:43 +02:00
'delete' => intval ( $_GET [ 'delete' ]),
'POST_AUTHORNAME' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'authorname' ]))),
'POST_DATE' => date ( $this -> get_config ( 'dateformat' ) . " " . $this -> get_config ( 'timeformat' ), $post [ 0 ][ 'postdate' ]),
'POST_TITLE' => htmlspecialchars ( stripslashes ( trim ( $post [ 0 ][ 'title' ]))),
'POST_MESSAGE' => $post [ 'message' ],
'relpath' => $this -> DMA_forum_getRelPath ()
2011-12-13 12:29:05 +01:00
)
);
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " close " ) {
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET
flag = '1'
2013-04-23 09:52:43 +02:00
WHERE threadid = '".intval($_GET[' threadid '])."' " ;
2011-12-13 12:29:05 +01:00
serendipity_db_query ( $sql );
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " reopen " ) {
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET
flag = '0'
2013-04-23 09:52:43 +02:00
WHERE threadid = '".intval($_GET[' threadid '])."' " ;
2011-12-13 12:29:05 +01:00
serendipity_db_query ( $sql );
}
if ( isset ( $_GET [ 'delfile' ]) && intval ( $_GET [ 'delfile' ]) >= 1 ) {
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE uploadid = ' " . intval ( $_GET [ 'delfile' ]) . " ' " ;
$upload = serendipity_db_query ( $sql );
if ( serendipity_userLoggedIn () && (( $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) || ( intval ( $upload [ 0 ][ 'authorid' ]) == intval ( $serendipity [ 'authorid' ])))) {
@ unlink ( $this -> get_config ( 'uploaddir' ) . " / " . $upload [ 0 ][ 'sysfilename' ]);
$q = " DELETE FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE uploadid = ' " . intval ( $_GET [ 'delfile' ]) . " ' " ;
$sql = serendipity_db_query ( $q );
}
}
if (( isset ( $_GET [ 'subscribe' ]) && intval ( $_GET [ 'subscribe' ]) == 1 ) && isset ( $_GET [ 'threadid' ])) {
if ( serendipity_userLoggedIn ()) {
$sql = " SELECT notifymails FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$notifymails = serendipity_db_query ( $sql );
if ( trim ( $thread [ 0 ][ 'notifymails' ]) != " " ) {
$NOTIFYARRAY = unserialize ( stripslashes ( trim ( $thread [ 0 ][ 'notifymails' ])));
} else {
$NOTIFYARRAY = array ();
}
$NOTIFYARRAY [] = trim ( $serendipity [ 'email' ]);
$updatearray = trim ( serialize ( $NOTIFYARRAY ));
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET notifymails = ' " . $updatearray . " ' WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
serendipity_db_query ( $sql );
}
} elseif (( isset ( $_GET [ 'unsubscribe' ]) && intval ( $_GET [ 'unsubscribe' ]) == 1 ) && isset ( $_GET [ 'threadid' ])) {
if ( serendipity_userLoggedIn ()) {
$sql = " SELECT notifymails FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$notifymails = serendipity_db_query ( $sql );
if ( trim ( $thread [ 0 ][ 'notifymails' ]) != " " ) {
$NOTIFYARRAY = unserialize ( stripslashes ( trim ( $thread [ 0 ][ 'notifymails' ])));
} else {
$NOTIFYARRAY = array ();
}
$newarray = DMA_forum_array_remove ( $NOTIFYARRAY , trim ( $serendipity [ 'email' ]));
if ( count ( $newarray ) <= 0 ) {
$updatearray = " " ;
} else {
$updatearray = trim ( serialize ( $NOTIFYARRAY ));
}
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET notifymails = ' " . $updatearray . " ' WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
serendipity_db_query ( $sql );
}
}
2013-04-23 09:52:43 +02:00
/** Jahr des getrigen Tages */
$yesterday_year = intval ( date ( " Y " , ( time () - 86400 )));
/** Monat des getrigen Tages */
$yesterday_month = intval ( date ( " n " , ( time () - 86400 )));
/** Tageszahl des getrigen Tages */
$yesterday_day = intval ( date ( " j " , ( time () - 86400 )));
/** Letzter Timestamp des getrigen Tages (23:59:59 Uhr) */
$yesterday_lasttstamp = mktime ( 23 , 59 , 59 , $yesterday_month , $yesterday_day , $yesterday_year );
/** Erster Timestamp des getrigen Tages (00:00:00 Uhr) */
$yesterday_firsttstamp = mktime ( 0 , 0 , 0 , $yesterday_month , $yesterday_day , $yesterday_year );
2011-12-13 12:29:05 +01:00
if (( ! isset ( $_GET [ 'boardid' ]) || intval ( $_GET [ 'boardid' ]) <= 0 ) && ( ! isset ( $_GET [ 'replyto' ]) && ! isset ( $_GET [ 'edit' ]) && ! isset ( $_GET [ 'delete' ]) && ! isset ( $_GET [ 'quote' ]))) {
// BOARDLIST
$filename = 'templates/boardlist.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$serendipity [ 'smarty' ] -> assign ( 'pagetitle' , $this -> get_config ( 'pagetitle' ));
$serendipity [ 'smarty' ] -> assign ( 'headline' , $this -> get_config ( 'headline' ));
$BOARDLIST = " " ;
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards ORDER BY sortorder " ;
$boards = serendipity_db_query ( $sql );
$mainpage_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " \" > " . $this -> get_config ( 'pagetitle' ) . " </a> " ;
$serendipity [ 'smarty' ] -> assign ( 'MAINPAGE' , $mainpage_link );
if ( is_array ( $boards ) && count ( $boards ) >= 1 ) {
$serendipity [ 'smarty' ] -> assign ( 'bgcolor_head' , $this -> get_config ( 'bgcolor_head' ));
for ( $a = 0 , $b = count ( $boards ); $a < $b ; $a ++ ) {
if ( intval ( $boards [ $a ][ 'threads' ]) >= 1 ) {
2013-04-23 09:52:43 +02:00
if ( intval ( $boards [ $a ][ 'lastposttime' ]) >= ( intval ( $yesterday_lasttstamp ) + 1 )) {
$lastpost = " <span style= \" color: " . $this -> get_config ( 'color_today' ) . " ;font-weight:bolder \" > " . PLUGIN_FORUM_TODAY . " " . date ( $this -> get_config ( 'timeformat' ), $boards [ $a ][ 'lastposttime' ]) . " </span><br /> " ;
} elseif (( intval ( $boards [ $a ][ 'lastposttime' ]) <= intval ( $yesterday_lasttstamp )) && ( intval ( $boards [ $a ][ 'lastposttime' ]) >= intval ( $yesterday_firsttstamp ))) {
$lastpost = " <span style= \" color: " . $this -> get_config ( 'color_yesterday' ) . " \" > " . PLUGIN_FORUM_YESTERDAY . " " . date ( $this -> get_config ( 'timeformat' ), $boards [ $a ][ 'lastposttime' ]) . " </span><br /> " ;
} else {
$lastpost = date ( $this -> get_config ( 'dateformat' ) . " " . $this -> get_config ( 'timeformat' ), $boards [ $a ][ 'lastposttime' ]) . " <br /> " ;
}
2011-12-13 12:29:05 +01:00
$lastpost .= htmlspecialchars ( stripslashes ( $boards [ $a ][ 'lastauthorname' ])) . " " ;
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid=' " . intval ( $boards [ $a ][ 'lastthreadid' ]) . " ' " ;
$postnum = serendipity_db_query ( $sql );
$page = ceil ( intval ( $postnum [ 0 ][ 0 ]) / intval ( $this -> get_config ( 'itemsperpage' )));
$lastpost .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $boards [ $a ][ 'boardid' ]) . " &threadid= " . intval ( $boards [ $a ][ 'lastthreadid' ]) . " &page= " . $page . " # " . intval ( $boards [ $a ][ 'lastpostid' ]) . " \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/icon_latest_reply.gif \" width= \" 18 \" height= \" 9 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_DIRECTGOTOPOST . " \" title= \" " . PLUGIN_FORUM_ALT_DIRECTGOTOPOST . " \" /></a> " ;
$boards [ $a ][ 'lastpost' ] = $lastpost ;
} else {
$boards [ $a ][ 'lastpost' ] = PLUGIN_FORUM_NO_ENTRIES ;
}
if ( $thiscolor == $this -> get_config ( 'bgcolor2' )) { $thiscolor = $this -> get_config ( 'bgcolor1' ); } else { $thiscolor = $this -> get_config ( 'bgcolor2' ); }
$boards [ $a ][ 'color' ] = $thiscolor ;
$boards [ $a ][ 'name' ] = htmlspecialchars ( $boards [ $a ][ 'name' ]);
$temp_array = array ( 'body' => htmlspecialchars ( trim ( stripslashes ( $boards [ $a ][ 'description' ]))));
serendipity_plugin_api :: hook_event ( 'frontend_display' , $temp_array );
$boards [ $a ][ 'description' ] = trim ( $temp_array [ 'body' ]);
}
$serendipity [ 'smarty' ] -> assign (
array (
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'pageurl' => $this -> get_config ( 'pageurl' ),
'boards' => $boards
)
);
} else {
$noboards .= PLUGIN_FORUM_NO_BOARDS ;
$serendipity [ 'smarty' ] -> assign ( 'noboards' , $noboards );
}
} elseif ((( intval ( $_GET [ 'boardid' ]) >= 1 ) && ( ! isset ( $_GET [ 'threadid' ]) || intval ( $_GET [ 'threadid' ]) <= 0 )) && ( ! isset ( $_GET [ 'replyto' ]) && ! isset ( $_GET [ 'edit' ]) && ! isset ( $_GET [ 'delete' ]) && ! isset ( $_GET [ 'quote' ]))) {
// New thread
if ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " newthread " ) {
$filename = 'templates/newthread.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid=' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$board = serendipity_db_query ( $sql );
if ( serendipity_userLoggedIn ()) {
$POST_AUTHORNAME = $serendipity [ 'serendipityUser' ];
}
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'ERRORMSG' , $ERRORMSG );
}
$serendipity [ 'smarty' ] -> assign ( 'bbcode' , BBCODE );
$serendipity [ 'smarty' ] -> assign (
array (
2013-04-23 09:52:43 +02:00
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'bgcolor2' => $this -> get_config ( 'bgcolor2' ),
'ACTUALURL' => $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]),
'boardid' => intval ( $_GET [ 'boardid' ]),
'POST_AUTHORNAME' => htmlspecialchars ( $POST_AUTHORNAME ),
'POST_TITLE' => htmlspecialchars ( $POST_TITLE ),
'POST_MESSAGE' => htmlspecialchars ( $POST_MESSAGE ),
'relpath' => $this -> DMA_forum_getRelPath (),
'newthreadurl' => $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &action=newthread&boardid= " . intval ( $_GET [ 'boardid' ]),
'boardname' => htmlspecialchars ( stripslashes ( trim ( $board [ 0 ][ 'name' ])))
2011-12-13 12:29:05 +01:00
)
);
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) {
$serendipity [ 'smarty' ] -> assign ( 'announcement' , true );
}
if (( serendipity_userLoggedIn () && $this -> get_config ( 'fileupload_reguser' )) || ( $this -> get_config ( 'fileupload_guest' ))) {
$upload_max_filesize = ini_get ( 'upload_max_filesize' );
$upload_max_filesize = preg_replace ( '/M/' , '000000' , $upload_max_filesize );
$MAX_FILE_SIZE = intval ( $upload_max_filesize );
$MAX_SIZE_PER_FILE = ( $MAX_FILE_SIZE / 1000000 ) . " MB " ;
$max_possible = intval ( $this -> get_config ( 'max_simultaneous_fileuploads' ));
if ( $max_possible >= intval ( $this -> get_config ( 'max_files_per_post' ))) {
$max_possible = intval ( $this -> get_config ( 'max_files_per_post' ));
}
if ( serendipity_userLoggedIn ()) {
$authorid = intval ( $serendipity [ 'authorid' ]);
} else {
$authorid = 0 ;
}
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE authorid = ' " . $authorid . " ' " ;
$uploadnum = serendipity_db_query ( $sql );
$uploaduserrest = ( intval ( $this -> get_config ( 'max_files_per_user' )) - intval ( $uploadnum [ 0 ][ 0 ]));
if ( $max_possible >= $uploaduserrest ) {
$max_possible = $uploaduserrest ;
}
$uploads = array ();
for ( $x = 0 ; $x < $max_possible ; $x ++ ) {
$uploads [] = ( $x + 1 );
}
$serendipity [ 'smarty' ] -> assign (
array (
'uploadform' => true ,
'MAX_FILE_SIZE' => $MAX_FILE_SIZE ,
'MAX_SIZE_PER_FILE' => $MAX_SIZE_PER_FILE ,
'uploads' => $uploads ,
'uploads_post_left' => intval ( $this -> get_config ( 'max_files_per_post' )),
'uploads_user_left' => $uploaduserrest
)
);
}
if ( $this -> get_config ( 'use_captchas' )) {
$serendipity [ 'smarty' ] -> assign ( 'commentform_entry' , array ( 'timestamp' => 1 ));
}
} else {
// THREADLIST
$filename = 'templates/threadlist.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$serendipity [ 'smarty' ] -> assign ( 'pagetitle' , $this -> get_config ( 'pagetitle' ));
$serendipity [ 'smarty' ] -> assign ( 'headline' , $this -> get_config ( 'headline' ));
$serendipity [ 'smarty' ] -> assign ( 'relpath' , $this -> DMA_forum_getRelPath ());
$serendipity [ 'smarty' ] -> assign ( 'newthreadurl' , $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &action=newthread&boardid= " . intval ( $_GET [ 'boardid' ]));
$THREADLIST = " " ;
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid=' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$board = serendipity_db_query ( $sql );
// paging
if ( isset ( $_GET [ 'page' ]) && intval ( $_GET [ 'page' ]) >= 1 ) {
$page = intval ( $_GET [ 'page' ]);
} else {
$page = 1 ;
}
$postnum = intval ( $board [ 0 ][ 'threads' ]);
$maxpages = ceil ( $postnum / intval ( $this -> get_config ( 'itemsperpage' )));
if ( $maxpages >= 2 ) {
if ( ! isset ( $page ) OR trim ( $page ) == " " OR $page <= 0 ) {
$page = 1 ;
}
if ( $page > $maxpages ) {
$page = $maxpages ;
}
$multiplicator = (( $page * intval ( $this -> get_config ( 'itemsperpage' ))) - intval ( $this -> get_config ( 'itemsperpage' )));
if ( ! isset ( $page ) OR $page == 1 ) {
$LIMIT = serendipity_db_limit ( 0 , intval ( $this -> get_config ( 'itemsperpage' )));
} else {
$LIMIT = serendipity_db_limit ( $multiplicator , intval ( $this -> get_config ( 'itemsperpage' )));
}
$LIMIT = serendipity_db_limit_sql ( $LIMIT );
$paging = " " ;
if ( $page > 1 ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page=1 \" >1</a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . ( $page - 10 ) . " \" ><<</a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . ( $page - 1 ) . " \" ><</a> " ;
} elseif ( $page == 1 ) {
$paging .= " [ 1 ] " ;
}
if ( $maxpages >= 2 ) {
for ( $b = ( $page - 5 ); $b <= ( $page + 5 ); $b ++ ) {
if ( $b > 1 AND $b < $maxpages ) {
if ( $b == $page ) {
$paging .= " [ " . $b . " ] " ;
} elseif ( $b >= ( $maxpages )) {
} else {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . $b . " \" > " . $b . " </a> " ;
}
}
}
}
if ( $page < $maxpages ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . ( $page + 1 ) . " \" >></a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . ( $page + 10 ) . " \" >>></a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &page= " . $maxpages . " \" > " . $maxpages . " </a> " ;
} elseif ( $page == $maxpages AND $page != 1 ) {
$paging .= " [ " . $maxpages . " ] " ;
}
if ( isset ( $paging ) && trim ( $paging ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'paging' , $paging );
}
} else {
$LIMIT = " " ;
}
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE boardid=' " . intval ( $_GET [ 'boardid' ]) . " ' ORDER BY announce DESC, lastposttime DESC " . $LIMIT ;
$threads = serendipity_db_query ( $sql );
$mainpage_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " \" > " . $this -> get_config ( 'pagetitle' ) . " </a> " ;
$threadlist_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " \" > " . htmlspecialchars ( $board [ 0 ][ 'name' ]) . " </a> " ;
$serendipity [ 'smarty' ] -> assign ( 'MAINPAGE' , $mainpage_link );
$serendipity [ 'smarty' ] -> assign ( 'THREADLIST' , $threadlist_link );
if ( is_array ( $threads ) && count ( $threads ) >= 1 ) {
$serendipity [ 'smarty' ] -> assign ( 'bgcolor_head' , $this -> get_config ( 'bgcolor_head' ));
for ( $a = 0 , $b = count ( $threads ); $a < $b ; $a ++ ) {
if ( intval ( $threads [ $a ][ 'lastpostid' ]) >= 1 ) {
2013-04-23 09:52:43 +02:00
if ( intval ( $threads [ $a ][ 'lastposttime' ]) >= ( intval ( $yesterday_lasttstamp ) + 1 )) {
$lastpost = " <span style= \" color: " . $this -> get_config ( 'color_today' ) . " ;font-weight:bolder \" > " . PLUGIN_FORUM_TODAY . " " . date ( $this -> get_config ( 'timeformat' ), $threads [ $a ][ 'lastposttime' ]) . " </span><br /> " ;
} elseif (( intval ( $threads [ $a ][ 'lastposttime' ]) <= intval ( $yesterday_lasttstamp )) && ( intval ( $threads [ $a ][ 'lastposttime' ]) >= intval ( $yesterday_firsttstamp ))) {
$lastpost = " <span style= \" color: " . $this -> get_config ( 'color_yesterday' ) . " \" > " . PLUGIN_FORUM_YESTERDAY . " " . date ( $this -> get_config ( 'timeformat' ), $threads [ $a ][ 'lastposttime' ]) . " </span><br /> " ;
} else {
$lastpost = date ( $this -> get_config ( 'dateformat' ) . " " . $this -> get_config ( 'timeformat' ), $threads [ $a ][ 'lastposttime' ]) . " <br /> " ;
}
2011-12-13 12:29:05 +01:00
$lastpost .= htmlspecialchars ( stripslashes ( $threads [ $a ][ 'lastauthorname' ])) . " " ;
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid=' " . intval ( $threads [ $a ][ 'threadid' ]) . " ' " ;
$postnum = serendipity_db_query ( $sql );
$page = ceil ( intval ( $postnum [ 0 ][ 0 ]) / intval ( $this -> get_config ( 'itemsperpage' )));
$lastpost .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $threads [ $a ][ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page= " . $page . " # " . intval ( $threads [ $a ][ 'lastpostid' ]) . " \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/icon_latest_reply.gif \" width= \" 18 \" height= \" 9 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_DIRECTGOTOPOST . " \" title= \" " . PLUGIN_FORUM_ALT_DIRECTGOTOPOST . " \" /></a> " ;
} else {
$lastpost = PLUGIN_FORUM_NO_REPLIES ;
}
$threads [ $a ][ 'lastpost' ] = $lastpost ;
if ( $thiscolor == $this -> get_config ( 'bgcolor2' )) { $thiscolor = $this -> get_config ( 'bgcolor1' ); } else { $thiscolor = $this -> get_config ( 'bgcolor2' ); }
$threads [ $a ][ 'color' ] = $thiscolor ;
$threads [ $a ][ 'title' ] = htmlspecialchars ( $threads [ $a ][ 'title' ]);
if (( intval ( $threads [ $a ][ 'announce' ]) == 1 ) && ( intval ( $threads [( $a + 1 )][ 'announce' ]) != 1 )) {
$threads [ $a ][ 'trenner' ] = true ;
} else {
$threads [ $a ][ 'trenner' ] = false ;
}
if ( intval ( $threads [ $a ][ 'announce' ]) == 1 ) {
$threads [ $a ][ 'icon' ] = $THREAD_UNREAD_ANNOUNCEMENT ;
if ( isset ( $READARRAY [ intval ( $threads [ $a ][ 'threadid' ])]) && intval ( $READARRAY [ intval ( $threads [ $a ][ 'threadid' ])]) >= intval ( $threads [ $a ][ 'lastposttime' ])) {
$threads [ $a ][ 'icon' ] = $THREAD_READ_ANNOUNCEMENT ;
}
} else {
if ( intval ( $threads [ $a ][ 'replies' ]) >= 15 ) {
$threads [ $a ][ 'icon' ] = $THREAD_HUGE_UNREAD ;
} else {
$threads [ $a ][ 'icon' ] = $THREAD_UNREAD ;
}
if ( isset ( $READARRAY [ intval ( $threads [ $a ][ 'threadid' ])]) && intval ( $READARRAY [ intval ( $threads [ $a ][ 'threadid' ])]) >= intval ( $threads [ $a ][ 'lastposttime' ])) {
if ( intval ( $threads [ $a ][ 'replies' ]) >= 15 ) {
$threads [ $a ][ 'icon' ] = $THREAD_HUGE_READ ;
} else {
$threads [ $a ][ 'icon' ] = $THREAD_READ ;
}
}
}
$paging = " " ;
$sql = " SELECT COUNT(*) FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid=' " . intval ( $threads [ $a ][ 'threadid' ]) . " ' " ;
$postnum = serendipity_db_query ( $sql );
$maxpages = ceil ( intval ( $postnum [ 0 ][ 0 ]) / intval ( $this -> get_config ( 'itemsperpage' )));
if ( $maxpages >= 2 ) {
$paging = PLUGIN_FORUM_PAGES . " : " ;
if ( $maxpages <= 10 ) {
$pages = " " ;
for ( $c = 0 ; $c < $maxpages ; $c ++ ) {
if ( $pages != " " ) {
$pages .= " , " ;
}
$pages .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page= " . ( $c + 1 ) . " \" > " . ( $c + 1 ) . " </a> " ;
}
$paging .= $pages ;
} elseif ( $maxpages <= 20 ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=1 \" >1</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=2 \" >2</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=3 \" >3</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=4 \" >4</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=5 \" >5</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=10 \" >10</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page= " . $maxpages . " \" > " . $maxpages . " </a> " ;
} elseif ( $maxpages <= 50 ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=1 \" >1</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=2 \" >2</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=3 \" >3</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=4 \" >4</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=10 \" >10</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=20 \" >20</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page= " . $maxpages . " \" > " . $maxpages . " </a> " ;
} else {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=1 \" >1</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=2 \" >2</a>, " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=3 \" >3</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=10 \" >10</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=20 \" >20</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page=50 \" >50</a> " ;
$paging .= " ... <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $threads [ $a ][ 'threadid' ]) . " &page= " . $maxpages . " \" > " . $maxpages . " </a> " ;
}
}
if ( $paging != " " ) {
$threads [ $a ][ 'paging' ] = $paging ;
}
}
$serendipity [ 'smarty' ] -> assign (
array (
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'pageurl' => $this -> get_config ( 'pageurl' ),
'threads' => $threads
)
);
} else {
$nothreads .= PLUGIN_FORUM_NO_THREADS ;
$serendipity [ 'smarty' ] -> assign ( 'nothreads' , $nothreads );
}
}
} elseif ((( intval ( $_GET [ 'boardid' ]) >= 1 ) && ( intval ( $_GET [ 'threadid' ]) >= 1 )) && ( ! isset ( $_GET [ 'replyto' ]) && ! isset ( $_GET [ 'edit' ]) && ! isset ( $_GET [ 'delete' ]) && ! isset ( $_GET [ 'quote' ]))) {
// POSTS
$filename = 'templates/postlist.tpl' ;
if ( ! is_object ( $serendipity [ 'smarty' ]))
serendipity_smarty_init ();
$serendipity [ 'smarty' ] -> assign ( 'pagetitle' , $this -> get_config ( 'pagetitle' ));
$serendipity [ 'smarty' ] -> assign ( 'headline' , $this -> get_config ( 'headline' ));
if ( isset ( $ERRORMSG ) && trim ( $ERRORMSG ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'ERRORMSG' , $ERRORMSG );
}
$q = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET views = views+1 WHERE threadid = ' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
serendipity_db_query ( $q );
// Set the cookie for threadicon (read/unread)
$cookie = array ( 'setthreadcookie' => intval ( $_GET [ 'threadid' ]));
serendipity_plugin_api :: hook_event ( 'external_plugin' , $cookie );
$POSTLIST = " " ;
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid=' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$board = serendipity_db_query ( $sql );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thread = serendipity_db_query ( $sql );
$mainpage_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " \" > " . $this -> get_config ( 'pagetitle' ) . " </a> " ;
$threadlist_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " \" > " . htmlspecialchars ( $board [ 0 ][ 'name' ]) . " </a> " ;
$posts_link = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " \" > " . htmlspecialchars ( $thread [ 0 ][ 'title' ]) . " </a> " ;
$serendipity [ 'smarty' ] -> assign ( 'MAINPAGE' , $mainpage_link );
$serendipity [ 'smarty' ] -> assign ( 'THREADLIST' , $threadlist_link );
$serendipity [ 'smarty' ] -> assign ( 'POSTS' , $posts_link );
// paging
if ( isset ( $_GET [ 'page' ]) && intval ( $_GET [ 'page' ]) >= 1 ) {
$page = intval ( $_GET [ 'page' ]);
} else {
$page = 1 ;
}
$postnum = ( intval ( $thread [ 0 ][ 'replies' ]) + 1 );
$maxpages = ceil ( $postnum / intval ( $this -> get_config ( 'itemsperpage' )));
if ( $maxpages >= 2 ) {
if ( ! isset ( $page ) OR trim ( $page ) == " " OR $page <= 0 ) {
$page = 1 ;
}
if ( $page > $maxpages ) {
$page = $maxpages ;
}
$multiplicator = (( $page * intval ( $this -> get_config ( 'itemsperpage' ))) - intval ( $this -> get_config ( 'itemsperpage' )));
if ( ! isset ( $page ) OR $page == 1 ) {
$LIMIT = serendipity_db_limit ( 0 , intval ( $this -> get_config ( 'itemsperpage' )));
} else {
$LIMIT = serendipity_db_limit ( $multiplicator , intval ( $this -> get_config ( 'itemsperpage' )));
}
$LIMIT = serendipity_db_limit_sql ( $LIMIT );
$paging = " " ;
if ( $page > 1 ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page=1 \" >1</a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . ( $page - 10 ) . " \" ><<</a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . ( $page - 1 ) . " \" ><</a> " ;
} elseif ( $page == 1 ) {
$paging .= " [ 1 ] " ;
}
if ( $maxpages >= 2 ) {
for ( $b = ( $page - 5 ); $b <= ( $page + 5 ); $b ++ ) {
if ( $b > 1 AND $b < $maxpages ) {
if ( $b == $page ) {
$paging .= " [ " . $b . " ] " ;
} elseif ( $b >= ( $maxpages )) {
} else {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . $b . " \" > " . $b . " </a> " ;
}
}
}
}
if ( $page < $maxpages ) {
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . ( $page + 1 ) . " \" >></a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . ( $page + 10 ) . " \" >>></a> " ;
$paging .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $thread [ 0 ][ 'threadid' ]) . " &page= " . $maxpages . " \" > " . $maxpages . " </a> " ;
} elseif ( $page == $maxpages AND $page != 1 ) {
$paging .= " [ " . $maxpages . " ] " ;
}
if ( isset ( $paging ) && trim ( $paging ) != " " ) {
$serendipity [ 'smarty' ] -> assign ( 'paging' , $paging );
}
} else {
$LIMIT = " " ;
}
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid=' " . intval ( $_GET [ 'threadid' ]) . " ' ORDER BY postdate ASC " . $LIMIT ;
$posts = serendipity_db_query ( $sql );
if ( is_array ( $posts ) && count ( $posts ) >= 1 ) {
$serendipity [ 'smarty' ] -> assign ( 'threadtitle' , htmlspecialchars ( $thread [ 0 ][ 'title' ]));
$serendipity [ 'smarty' ] -> assign ( 'bgcolor_head' , $this -> get_config ( 'bgcolor_head' ));
for ( $a = 0 , $b = count ( $posts ); $a < $b ; $a ++ ) {
if ( $thiscolor == $this -> get_config ( 'bgcolor2' )) { $thiscolor = $this -> get_config ( 'bgcolor1' ); } else { $thiscolor = $this -> get_config ( 'bgcolor2' ); }
$posts [ $a ][ 'color' ] = $thiscolor ;
if ( $this -> get_config ( 'apply_markup' )) {
if ( $this -> get_config ( 'unreg_nomarkups' ) && ( ! isset ( $posts [ $a ][ 'authorid' ]) || intval ( $posts [ $a ][ 'authorid' ]) <= 0 )) {
$posts [ $a ][ 'message' ] = nl2br ( htmlspecialchars ( trim ( stripslashes ( $posts [ $a ][ 'message' ]))));
} else {
$temp_array = array ( 'body' => htmlspecialchars ( trim ( stripslashes ( $posts [ $a ][ 'message' ]))));
serendipity_plugin_api :: hook_event ( 'frontend_display' , $temp_array );
$posts [ $a ][ 'message' ] = trim ( $temp_array [ 'body' ]);
}
} else {
$posts [ $a ][ 'message' ] = nl2br ( htmlspecialchars ( trim ( stripslashes ( $posts [ $a ][ 'message' ]))));
}
unset ( $email );
unset ( $gravatar_array );
unset ( $posts [ $a ][ 'gravatar' ]);
$authorid = intval ( trim ( $posts [ $a ][ 'authorid' ]));
if ( $authorid >= 1 ) {
$sql = " SELECT email FROM { $serendipity [ 'dbPrefix' ] } authors WHERE authorid = ' " . $authorid . " ' " ;
$email = serendipity_db_query ( $sql );
$gravatar_array = array (
'comment' => " " ,
'email' => trim ( $email [ 0 ][ 0 ])
);
serendipity_plugin_api :: hook_event ( 'frontend_display' , $gravatar_array );
if ( isset ( $gravatar_array [ 'comment' ]) && trim ( $gravatar_array [ 'comment' ]) != " " ) {
$posts [ $a ][ 'gravatar' ] = $gravatar_array [ 'comment' ];
}
}
$POSTBUTTONS = " " ;
if ( $thread [ 0 ][ 'flag' ] != 1 ) {
$POSTBUTTONS = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &replyto= " . $posts [ $a ][ 'postid' ] . " &quote=0 \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/reply.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_REPLY . " \" title= \" " . PLUGIN_FORUM_ALT_REPLY . " \" /></a> " ;
$POSTBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &replyto= " . $posts [ $a ][ 'postid' ] . " &quote=1 \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/quote.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_QUOTE . " \" title= \" " . PLUGIN_FORUM_ALT_QUOTE . " \" /></a> " ;
}
if ( serendipity_userLoggedIn () && (( $serendipity [ 'serendipityUser' ] == $posts [ $a ][ 'authorname' ] && $serendipity [ 'authorid' ] == $posts [ $a ][ 'authorid' ]) || $serendipity [ 'serendipityUserlevel' ] == 255 )) {
$POSTBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . $page . " &edit= " . $posts [ $a ][ 'postid' ] . " \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/edit.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_EDIT . " \" title= \" " . PLUGIN_FORUM_ALT_EDIT . " \" /></a> " ;
}
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == 255 ) {
$POSTBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . $page . " &delete= " . $posts [ $a ][ 'postid' ] . " \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/delete.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_DELETE_POST . " \" title= \" " . PLUGIN_FORUM_ALT_DELETE_POST . " \" /></a> " ;
}
$posts [ $a ][ 'postbuttons' ] = $POSTBUTTONS ;
$AUTHORDETAILS = " " ;
if ( isset ( $posts [ $a ][ 'authorid' ]) && intval ( $posts [ $a ][ 'authorid' ]) >= 1 ) {
$AUTHORDETAILS .= " <b> " . PLUGIN_FORUM_REG_USER . " </b><br /> " ;
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_users WHERE authorid = ' " . intval ( $posts [ $a ][ 'authorid' ]) . " ' " ;
$userdetails = serendipity_db_query ( $sql );
if ( is_array ( $userdetails ) && count ( $userdetails ) >= 1 ) {
$AUTHORDETAILS .= PLUGIN_FORUM_POSTS . " : " . intval ( $userdetails [ 0 ][ 'posts' ]) . " <br /> " ;
$AUTHORDETAILS .= PLUGIN_FORUM_VISITS . " : " . intval ( $userdetails [ 0 ][ 'visits' ]) . " <br /> " ;
} else {
$AUTHORDETAILS .= PLUGIN_FORUM_POSTS . " : 0<br /> " ;
$AUTHORDETAILS .= PLUGIN_FORUM_VISITS . " : 0<br /> " ;
}
}
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE postid = ' " . $posts [ $a ][ 'postid' ] . " ' " ;
$uploads = serendipity_db_query ( $sql );
if ( is_array ( $uploads ) && count ( $uploads ) >= 1 ) {
$posts [ $a ][ 'uploads' ] = true ;
for ( $y = 0 , $z = count ( $uploads ); $y < $z ; $y ++ ) {
$filesize = DMA_forum_calcFilesize ( $uploads [ $y ][ 'filesize' ]);
$mime = DMA_forum_getMime ( htmlspecialchars ( basename ( $uploads [ $y ][ 'realfilename' ])), $this -> DMA_forum_getRelPath ());
$fileicon = " <img src= \" " . $mime [ 'ICON' ] . " \" width= \" 18 \" height= \" 20 \" border= \" 0 \" /> " ;
$content_type = $mime [ 'TYPE' ];
$posts [ $a ][ 'upload' ][ $y ][ 'filename' ] = " <a href= \" " . $serendipity [ 'baseURL' ] . ( $serendipity [ 'rewrite' ] == " none " ? $serendipity [ 'indexFile' ] . " ?/ " : " " ) . " plugin/forumdl_ " . intval ( $uploads [ $y ][ 'uploadid' ]) . " \" > " . htmlspecialchars ( basename ( $uploads [ $y ][ 'realfilename' ])) . " </a> " ;
$posts [ $a ][ 'upload' ][ $y ][ 'filesize' ] = $filesize ;
$posts [ $a ][ 'upload' ][ $y ][ 'fileicon' ] = $fileicon ;
$posts [ $a ][ 'upload' ][ $y ][ 'filetype' ] = $content_type ;
$posts [ $a ][ 'upload' ][ $y ][ 'dlcount' ] = intval ( $uploads [ $y ][ 'dlcount' ]);
if ( serendipity_userLoggedIn () && (( $serendipity [ 'serendipityUserlevel' ] == USERLEVEL_ADMIN ) || ( intval ( $uploads [ $y ][ 'authorid' ]) == intval ( $serendipity [ 'authorid' ])))) {
$posts [ $a ][ 'upload' ][ $y ][ 'delbutton' ] = " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . $page . " &delfile= " . intval ( $uploads [ $y ][ 'uploadid' ]) . " # " . intval ( $posts [ $a ][ 'postid' ]) . " \" > " . $DEL_FILE_BUTTON . " </a> " ;
}
}
} else {
$posts [ $a ][ 'uploads' ] = false ;
}
$posts [ $a ][ 'authordetails' ] = $AUTHORDETAILS ;
$posts [ $a ][ 'title' ] = htmlspecialchars ( $posts [ $a ][ 'title' ]);
$posts [ $a ][ 'authorname' ] = htmlspecialchars ( $posts [ $a ][ 'authorname' ]);
2013-04-23 09:52:43 +02:00
if ( intval ( $posts [ $a ][ 'postdate' ]) >= ( intval ( $yesterday_lasttstamp ) + 1 )) {
$posts [ $a ][ 'postdate' ] = " <span style= \" color: " . $this -> get_config ( 'color_today' ) . " ;font-weight:bolder \" > " . PLUGIN_FORUM_TODAY . " " . date ( $this -> get_config ( 'timeformat' ), $posts [ $a ][ 'postdate' ]) . " </span> " ;
2011-12-13 12:29:05 +01:00
2013-04-23 09:52:43 +02:00
} elseif (( intval ( $posts [ $a ][ 'postdate' ]) <= intval ( $yesterday_lasttstamp )) && ( intval ( $posts [ $a ][ 'postdate' ]) >= intval ( $yesterday_firsttstamp ))) {
$posts [ $a ][ 'postdate' ] = " <span style= \" color: " . $this -> get_config ( 'color_yesterday' ) . " \" > " . PLUGIN_FORUM_YESTERDAY . " " . date ( $this -> get_config ( 'timeformat' ), $posts [ $a ][ 'postdate' ]) . " </span> " ;
2011-12-13 12:29:05 +01:00
2013-04-23 09:52:43 +02:00
} else {
$posts [ $a ][ 'postdate' ] = date ( $this -> get_config ( 'dateformat' ) . " " . $this -> get_config ( 'timeformat' ), $posts [ $a ][ 'postdate' ]);
}
2011-12-13 12:29:05 +01:00
}
if ( serendipity_userLoggedIn ()) {
if ( trim ( $thread [ 0 ][ 'notifymails' ]) != " " ) {
$NOTIFYARRAY = unserialize ( stripslashes ( trim ( $thread [ 0 ][ 'notifymails' ])));
} else {
$NOTIFYARRAY = array ();
}
if ( in_array ( $serendipity [ 'email' ], $NOTIFYARRAY )) {
$serendipity [ 'smarty' ] -> assign ( 'notify' , 2 );
} else {
$serendipity [ 'smarty' ] -> assign ( 'notify' , 1 );
}
$subscribeurl = $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . $page . " &subscribe=1 " ;
$unsubscribeurl = $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &page= " . $page . " &unsubscribe=1 " ;
$serendipity [ 'smarty' ] -> assign ( 'subscribeurl' , $subscribeurl );
$serendipity [ 'smarty' ] -> assign ( 'unsubscribeurl' , $unsubscribeurl );
}
$serendipity [ 'smarty' ] -> assign (
array (
'pagetitle' => $this -> get_config ( 'pagetitle' ),
'headline' => $this -> get_config ( 'headline' ),
'pageurl' => $this -> get_config ( 'pageurl' ),
'posts' => $posts
)
);
} else {
$noposts = PLUGIN_FORUM_NO_POSTS ;
$serendipity [ 'smarty' ] -> assign ( 'noposts' , $noposts );
}
// Display thread buttons regardless of number of posts
$THREADBUTTONS = " " ;
if ( serendipity_userLoggedIn () && $serendipity [ 'serendipityUserlevel' ] == 255 ) {
if ( $thread [ 0 ][ 'flag' ] == 1 ) {
$THREADBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &action=reopen \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/reopen.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_REOPEN . " \" title= \" " . PLUGIN_FORUM_ALT_REOPEN . " \" /></a> " ;
} else {
$THREADBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " index.php?serendipity[subpage]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &action=close \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/close.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_CLOSE . " \" title= \" " . PLUGIN_FORUM_ALT_CLOSE . " \" /></a> " ;
}
$THREADBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " serendipity_admin.php?serendipity[adminModule]=event_display&serendipity[adminAction]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &action=move \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/move.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_MOVE . " \" title= \" " . PLUGIN_FORUM_ALT_MOVE . " \" /></a> " ;
$THREADBUTTONS .= " <a href= \" " . $serendipity [ 'baseURL' ] . " serendipity_admin.php?serendipity[adminModule]=event_display&serendipity[adminAction]= " . $this -> get_config ( 'pageurl' ) . " &boardid= " . intval ( $_GET [ 'boardid' ]) . " &threadid= " . intval ( $_GET [ 'threadid' ]) . " &action=delete \" ><img src= \" " . $this -> DMA_forum_getRelPath () . " /img/delete.png \" width= \" 60 \" height= \" 18 \" border= \" 0 \" alt= \" " . PLUGIN_FORUM_ALT_DELETE . " \" title= \" " . PLUGIN_FORUM_ALT_DELETE . " \" /></a> " ;
}
$serendipity [ 'smarty' ] -> assign ( 'THREADBUTTONS' , $THREADBUTTONS );
}
$filename = $filename ;
$tfile = serendipity_getTemplateFile ( $filename , 'serendipityPath' );
if ( ! $tfile || $tfile == $filename ) {
$tfile = dirname ( __FILE__ ) . '/' . $filename ;
}
$inclusion = $serendipity [ 'smarty' ] -> security_settings [ INCLUDE_ANY ];
$serendipity [ 'smarty' ] -> security_settings [ INCLUDE_ANY ] = true ;
$content = $serendipity [ 'smarty' ] -> fetch ( 'file:' . $tfile );
$serendipity [ 'smarty' ] -> security_settings [ INCLUDE_ANY ] = $inclusion ;
echo $content ;
}
function forumAdmin () {
global $serendipity ;
if ( ! headers_sent ()) {
header ( 'HTTP/1.0 200' );
header ( 'Status: 200 OK' );
}
$adminurl = $serendipity [ 'baseURL' ] . " serendipity_admin.php?serendipity[adminModule]=event_display&serendipity[adminAction]= " . $this -> get_config ( 'pageurl' );
2013-04-23 09:52:43 +02:00
$up = " <img src= \" " . $serendipity [ 'baseURL' ] . " templates/default/admin/img/uparrow.png \" width= \" 16 \" height= \" 16 \" border= \" 0 \" /> " ;
$down = " <img src= \" " . $serendipity [ 'baseURL' ] . " templates/default/admin/img/downarrow.png \" width= \" 16 \" height= \" 16 \" border= \" 0 \" /> " ;
2011-12-13 12:29:05 +01:00
$ERRORMSG = " " ;
$OUTPUT = " " ;
$OUTPUT .= " <h2> " . PLUGIN_FORUM_TITLE . " </h2> \n " ;
$OUTPUT .= PLUGIN_FORUM_DESC . " <br /><br /> \n " ;
// POST part
if ( isset ( $serendipity [ 'POST' ][ 'action' ]) && ( trim ( $serendipity [ 'POST' ][ 'action' ]) == " delete " && ( is_array ( $serendipity [ 'POST' ][ 'delboard' ]) || trim ( $serendipity [ 'POST' ][ 's_delboard' ]) != " " ))) {
// Delete boards
if ( ! isset ( $serendipity [ 'POST' ][ 's_delboard' ]) || trim ( $serendipity [ 'POST' ][ 's_delboard' ]) == " " ) {
$delboards = $serendipity [ 'POST' ][ 'delboard' ];
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" >
< form action = \ " ? \" name= \" boardsdeleteform \" method= \" POST \" >
< div >
< input type = \ " hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" />
< input type = \ " hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" />
< input type = \ " hidden \" name= \" serendipity[action] \" value= \" delete \" />
< input type = \ " hidden \" name= \" serendipity[s_delboard] \" value= \" " . addslashes ( str_replace ( " \" " , " M " , trim ( serialize ( $delboards )))) . " \" />
</ div >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td align = \ " center \" ><b> " . str_replace ( " { num} " , count ( $delboards ), PLUGIN_FORUM_REALLY_DELETE_BOARDS ) . " </b></td>
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td align = \ " center \" > " . PLUGIN_FORUM_DELETE_OR_MOVE . " <br /> " . PLUGIN_FORUM_WHERE_TO_MOVE . " <br />
< select name = \ " serendipity[moveto] \" >
< option value = \ " delete \" selected> ---------- " . DELETE . " ---------- </option> \n " ;
$WHERE = " " ;
foreach ( $delboards AS $id ) {
if ( $WHERE != " " ) {
$WHERE .= " AND " ;
}
$WHERE .= " boardid != ' " . $id . " ' " ;
}
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE " . $WHERE . " ORDER BY sortorder " ;
$boards = serendipity_db_query ( $sql );
if ( is_array ( $boards ) && count ( $boards ) >= 1 ) {
foreach ( $boards AS $board ) {
$OUTPUT .= " <option value= \" " . intval ( $board [ 'boardid' ]) . " \" > " . trim ( stripslashes ( $board [ 'name' ])) . " </option> \n " ;
}
}
2013-04-23 09:52:43 +02:00
$OUTPUT .= " </select>
2011-12-13 12:29:05 +01:00
</ td >
</ tr >
< tr height = \ " 60 \" style= \" background-color: " . $this -> get_config ( 'bgcolor1' ) . " ; \" >
< td align = \ " center \" >
< input type = \ " image \" src= \" " . $this -> DMA_forum_getRelPath () . " /img/yes.png \" style= \" width: 60px; \" width= \" 60 \" name= \" serendipity[yes] \" value= \" " . YES . " \" />
< input type = \ " image \" src= \" " . $this -> DMA_forum_getRelPath () . " /img/no.png \" style= \" width: 60px; \" width= \" 60 \" name= \" serendipity[no] \" value= \" " . NO . " \" />
</ td >
</ tr >
</ form >
</ table > \n " ;
} elseif ( trim ( $serendipity [ 'POST' ][ 's_delboard' ]) != " " && isset ( $serendipity [ 'POST' ][ 'yes' ]) && $serendipity [ 'POST' ][ 'yes' ] != " " ) {
$delboards = unserialize ( str_replace ( " M " , " \" " , trim ( stripslashes ( $serendipity [ 'POST' ][ 's_delboard' ]))));
DMA_forum_DeleteBoards ( $delboards , $serendipity [ 'POST' ][ 'moveto' ], $this -> get_config ( 'uploaddir' ));
}
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " edit " && intval ( $serendipity [ 'POST' ][ 'boardid' ]) >= 1 ) {
// EDIT boards
$boardid = intval ( $serendipity [ 'POST' ][ 'boardid' ]);
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_boards SET
name = '".serendipity_db_escape_string(trim($serendipity[' POST '][' name ']))."' ,
description = '".serendipity_db_escape_string(trim($serendipity[' POST '][' description ']))."'
WHERE boardid = '".$boardid."' " ;
serendipity_db_query ( $sql );
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " new " ) {
// Add NEW board
$LIMIT = serendipity_db_limit ( 0 , 1 );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards ORDER BY sortorder DESC LIMIT " . $LIMIT ;
$lastsort = serendipity_db_query ( $sql );
if ( ! is_array ( $lastsort ) || ! isset ( $lastsort [ 0 ][ 'sortorder' ])) {
$newsort = 0 ;
} else {
$newsort = intval ( $lastsort [ 0 ][ 'sortorder' ]) + 1 ;
}
$sql = " INSERT INTO { $serendipity [ 'dbPrefix' ] } dma_forum_boards (
name ,
description ,
sortorder
) VALUES (
'".serendipity_db_escape_string(trim($serendipity[' POST '][' name ']))."' ,
'".serendipity_db_escape_string(trim($serendipity[' POST '][' description ']))."' ,
'".$newsort."'
) " ;
serendipity_db_query ( $sql );
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " move " ) {
// move thread
$sql = " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_threads SET
boardid = '".intval($serendipity[' POST '][' moveto '])."'
WHERE threadid = '".intval($serendipity[' POST '][' threadid '])."' " ;
serendipity_db_query ( $sql );
DMA_forum_CheckLastProperties ( intval ( $serendipity [ 'POST' ][ 'boardid' ]));
DMA_forum_CheckLastProperties ( intval ( $serendipity [ 'POST' ][ 'moveto' ]));
} elseif ( isset ( $serendipity [ 'POST' ][ 'action' ]) && trim ( $serendipity [ 'POST' ][ 'action' ]) == " delete " && trim ( $serendipity [ 'POST' ][ 'yes' ]) != " " ) {
// delete thread
$sql = " DELETE FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads
WHERE threadid = '".intval($serendipity[' POST '][' threadid '])."' " ;
serendipity_db_query ( $sql );
$q = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid = ' " . intval ( $serendipity [ 'POST' ][ 'threadid' ]) . " ' " ;
$posts = serendipity_db_query ( $q );
if ( is_array ( $posts ) && count ( $posts ) >= 1 ) {
foreach ( $posts AS $post ) {
$q = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE postid = ' " . intval ( $post [ 'postid' ]) . " ' " ;
$uploads = serendipity_db_query ( $q );
if ( is_array ( $uploads ) && count ( $uploads ) >= 1 ) {
foreach ( $uploads AS $upload ) {
@ unlink ( $this -> get_config ( 'uploaddir' ) . " / " . $upload [ 'sysfilename' ]);
}
$q = " DELETE FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE postid = ' " . intval ( $post [ 'postid' ]) . " ' " ;
$sql = serendipity_db_query ( $q );
}
}
$sql = " DELETE FROM { $serendipity [ 'dbPrefix' ] } dma_forum_posts WHERE threadid = ' " . intval ( $serendipity [ 'POST' ][ 'threadid' ]) . " ' " ;
serendipity_db_query ( $sql );
}
DMA_forum_CheckLastProperties ( intval ( $serendipity [ 'POST' ][ 'boardid' ]));
}
// GET part
if ( isset ( $_GET [ 'action' ]) && ( trim ( $_GET [ 'action' ]) == " down " || trim ( $_GET [ 'action' ]) == " up " )) {
// Reorder the boards
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards ORDER BY sortorder " ;
$boards = serendipity_db_query ( $sql );
$idx_to_move = - 1 ;
for ( $idx = 0 ; $idx < count ( $boards ); $idx ++ ) {
$boards [ $idx ][ 'sortorder' ] = $idx ;
if ( $boards [ $idx ][ 'boardid' ] == intval ( $_GET [ 'boardid' ])) {
$idx_to_move = $idx ;
}
}
if ( $idx_to_move >= 0 && (( trim ( $_GET [ 'action' ]) == 'down' && $idx_to_move < ( count ( $boards ) - 1 )) || ( trim ( $_GET [ 'action' ]) == 'up' && $idx_to_move > 0 ))) {
$tmp = $boards [ $idx_to_move ][ 'sortorder' ];
$boards [ $idx_to_move ][ 'sortorder' ] = ( int ) $boards [ $idx_to_move + ( trim ( $_GET [ 'action' ]) == 'down' ? 1 : - 1 )][ 'sortorder' ];
$boards [ $idx_to_move + ( trim ( $_GET [ 'action' ]) == 'down' ? 1 : - 1 )][ 'sortorder' ] = ( int ) $tmp ;
foreach ( $boards as $board ) {
$key = intval ( $board [ 'boardid' ]);
serendipity_db_query ( " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_boards SET sortorder = { $board [ 'sortorder' ] } WHERE boardid=' $key ' " );
}
}
$_GET [ 'action' ] = " " ;
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " edit " ) {
// Edit board
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid = ' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$board = serendipity_db_query ( $sql );
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" >
< form action = \ " ? \" name= \" boardseditform \" method= \" POST \" >
< div >
< input type = \ " hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" />
< input type = \ " hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" />
< input type = \ " hidden \" name= \" serendipity[action] \" value= \" edit \" />
< input type = \ " hidden \" name= \" serendipity[boardid] \" value= \" " . intval ( $_GET [ 'boardid' ]) . " \" />
</ div >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td width = \ " 130 \" ><b> " . PLUGIN_FORUM_BOARDNAME . " </b></td><td><input class= \" input_textbox \" style= \" width: 100%; \" width= \" 100% \" type= \" text \" name= \" serendipity[name] \" value= \" " . stripslashes ( trim ( $board [ 0 ][ 'name' ])) . " \" /></td>
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor1' ) . " ; \" >
< td width = \ " 130 \" ><b> " . PLUGIN_FORUM_BOARDDESC . " </b></td><td><textarea style= \" width: 100%; \" rows= \" 3 \" width= \" 100% \" name= \" serendipity[description] \" > " . stripslashes ( trim ( $board [ 0 ][ 'description' ])) . " </textarea></td>
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td colspan = \ " 2 \" align= \" center \" ><input class= \" serendipityPrettyButton input_button \" type= \" submit \" name= \" serendipity[submit] \" value= \" " . PLUGIN_FORUM_SUBMIT . " \" /></td>
</ tr >
</ form >
</ table > \n " ;
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " new " ) {
// Add NEW board
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" >
< form action = \ " ? \" name= \" boardnewform \" method= \" POST \" >
< div >
< input type = \ " hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" />
< input type = \ " hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" />
< input type = \ " hidden \" name= \" serendipity[action] \" value= \" new \" />
</ div >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td width = \ " 130 \" ><b> " . PLUGIN_FORUM_BOARDNAME . " </b></td><td><input class= \" input_textbox \" style= \" width: 100%; \" width= \" 100% \" type= \" text \" name= \" serendipity[name] \" value= \" \" /></td>
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor1' ) . " ; \" >
< td width = \ " 130 \" ><b> " . PLUGIN_FORUM_BOARDDESC . " </b></td><td><textarea style= \" width: 100%; \" rows= \" 3 \" width= \" 100% \" name= \" serendipity[description] \" ></textarea></td>
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td colspan = \ " 2 \" align= \" center \" ><input class= \" serendipityPrettyButton input_button \" type= \" submit \" name= \" serendipity[submit] \" value= \" " . PLUGIN_FORUM_SUBMIT . " \" /></td>
</ tr >
</ form >
</ table > \n " ;
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " move " ) {
// Move thread
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid = ' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thisthread = serendipity_db_query ( $sql );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid = ' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$thisboard = serendipity_db_query ( $sql );
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" >
< form action = \ " ? \" name= \" movethreadform \" method= \" POST \" >
< div >
< input type = \ " hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" />
< input type = \ " hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" />
< input type = \ " hidden \" name= \" serendipity[action] \" value= \" move \" />
< input type = \ " hidden \" name= \" serendipity[boardid] \" value= \" " . intval ( $_GET [ 'boardid' ]) . " \" />
< input type = \ " hidden \" name= \" serendipity[threadid] \" value= \" " . intval ( $_GET [ 'threadid' ]) . " \" />
</ div >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td align = \ " center \" ><b> " . PLUGIN_FORUM_MOVE_THREAD . " </b><br />" " . stripslashes ( trim ( $thisthread [ 0 ][ 'title' ])) . " "<br />
" .PLUGIN_FORUM_FROM_BOARD. " & quot ; " . $thisboard[0] ['name']. " & quot ; " .PLUGIN_FORUM_TO_BOARD. " :</ td >
</ tr >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td align = \ " center \" ><select name= \" serendipity[moveto] \" > \n " ;
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid != ' " . intval ( $_GET [ 'boardid' ]) . " ' ORDER BY sortorder " ;
$boards = serendipity_db_query ( $sql );
if ( is_array ( $boards ) && count ( $boards ) >= 1 ) {
foreach ( $boards AS $board ) {
$OUTPUT .= " <option value= \" " . intval ( $board [ 'boardid' ]) . " \" > " . trim ( stripslashes ( $board [ 'name' ])) . " </option> \n " ;
}
}
2013-04-23 09:52:43 +02:00
$OUTPUT .= " </select>
2011-12-13 12:29:05 +01:00
</ td >
</ tr >
< tr height = \ " 60 \" style= \" background-color: " . $this -> get_config ( 'bgcolor1' ) . " ; \" >
< td align = \ " center \" >
< input class = \ " serendipityPrettyButton input_button \" type= \" submit \" name= \" serendipity[submit] \" value= \" " . PLUGIN_FORUM_MOVE . " \" />
</ td >
</ tr >
</ form >
</ table > \n " ;
} elseif ( isset ( $_GET [ 'action' ]) && trim ( $_GET [ 'action' ]) == " delete " ) {
// delete thread
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_threads WHERE threadid = ' " . intval ( $_GET [ 'threadid' ]) . " ' " ;
$thisthread = serendipity_db_query ( $sql );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards WHERE boardid = ' " . intval ( $_GET [ 'boardid' ]) . " ' " ;
$thisboard = serendipity_db_query ( $sql );
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" >
< form action = \ " ? \" name= \" threaddeleteform \" method= \" POST \" >
< div >
< input type = \ " hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" />
< input type = \ " hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" />
< input type = \ " hidden \" name= \" serendipity[action] \" value= \" delete \" />
< input type = \ " hidden \" name= \" serendipity[boardid] \" value= \" " . intval ( $_GET [ 'boardid' ]) . " \" />
< input type = \ " hidden \" name= \" serendipity[threadid] \" value= \" " . intval ( $_GET [ 'threadid' ]) . " \" />
</ div >
< tr style = \ " background-color: " . $this -> get_config ( 'bgcolor2' ) . " ; \" >
< td align = \ " center \" ><b> " . PLUGIN_FORUM_REALLY_DELETE_THREAD . " </b><br />" " . stripslashes ( trim ( $thisthread [ 0 ][ 'title' ])) . " "</td>
</ tr >
< tr height = \ " 60 \" style= \" background-color: " . $this -> get_config ( 'bgcolor1' ) . " ; \" >
< td align = \ " center \" >
< input type = \ " image \" src= \" " . $this -> DMA_forum_getRelPath () . " /img/yes.png \" style= \" width: 60px; \" width= \" 60 \" name= \" serendipity[yes] \" value= \" 1 " . YES . " \" />
< input type = \ " image \" src= \" " . $this -> DMA_forum_getRelPath () . " /img/no.png \" style= \" width: 60px; \" width= \" 60 \" name= \" serendipity[no] \" value= \" " . NO . " \" />
</ td >
</ tr >
</ form >
</ table > \n " ;
}
2013-04-23 09:52:43 +02:00
/*
echo " <pre> " ;
print_r ( $serendipity );
echo " </pre> " ;
*/
2011-12-13 12:29:05 +01:00
unset ( $_GET );
unset ( $_POST );
if ( ! isset ( $_GET [ 'action' ]) || trim ( $_GET [ 'action' ]) == " " ) {
// Main Admin page (Boardlist)
unset ( $boards );
unset ( $board );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_boards ORDER BY sortorder " ;
$boards = serendipity_db_query ( $sql );
$num = count ( $boards );
$OUTPUT .= " <div align= \" right \" ><b>[ <a href= \" " . $adminurl . " &action=new \" > " . PLUGIN_FORUM_ADD_BOARD . " </a> ]</b></div><br /> \n " ;
$OUTPUT .= " <table width= \" 100% \" border= \" 0 \" cellspacing= \" 2 \" cellpadding= \" 2 \" > \n " ;
if ( is_array ( $boards ) && $num >= 1 ) {
$OUTPUT .= " <tr style= \" background-color: " . $this -> get_config ( 'bgcolor_head' ) . " ; \" > \n " ;
$OUTPUT .= " <td width= \" 18 \" > </td> \n " ;
$OUTPUT .= " <td><b> " . PLUGIN_FORUM_BOARDS . " </b></td> \n " ;
$OUTPUT .= " <td width= \" 60 \" align= \" right \" ><b> " . PLUGIN_FORUM_THREADS . " </b></td> \n " ;
$OUTPUT .= " <td width= \" 60 \" align= \" right \" ><b> " . PLUGIN_FORUM_POSTS . " </b></td> \n " ;
$OUTPUT .= " <td width= \" 60 \" ><b> " . PLUGIN_FORUM_ORDER . " </b></td> \n " ;
$OUTPUT .= " </tr> \n " ;
2013-04-23 09:52:43 +02:00
$OUTPUT .= " <form action= \" ? \" name= \" boardsdeleteform \" method= \" POST \" > \n " ;
$OUTPUT .= " <div> \n " ;
$OUTPUT .= " <input type= \" hidden \" name= \" serendipity[adminModule] \" value= \" event_display \" /> \n " ;
$OUTPUT .= " <input type= \" hidden \" name= \" serendipity[adminAction] \" value= \" " . $this -> get_config ( 'pageurl' ) . " \" /> \n " ;
$OUTPUT .= " <input type= \" hidden \" name= \" serendipity[action] \" value= \" delete \" /> \n " ;
$OUTPUT .= " </div> \n " ;
2011-12-13 12:29:05 +01:00
foreach ( $boards AS $board ) {
if ( $thiscolor == $this -> get_config ( 'bgcolor2' )) { $thiscolor = $this -> get_config ( 'bgcolor1' ); } else { $thiscolor = $this -> get_config ( 'bgcolor2' ); }
$OUTPUT .= " <tr style= \" background-color: " . $thiscolor . " ; \" > \n " ;
$OUTPUT .= " <td width= \" 18 \" ><input class= \" input_checkbox \" type= \" checkbox \" name= \" serendipity[delboard][] \" value= \" " . intval ( $board [ 'boardid' ]) . " \" /></td> \n " ;
$OUTPUT .= " <td><a href= \" " . $adminurl . " &action=edit&boardid= " . intval ( $board [ 'boardid' ]) . " \" ><b> " . $board [ 'name' ] . " </b></a></td> \n " ;
$OUTPUT .= " <td width= \" 60 \" align= \" right \" > " . intval ( $board [ 'threads' ]) . " </td> \n " ;
$OUTPUT .= " <td width= \" 60 \" align= \" right \" > " . intval ( $board [ 'posts' ]) . " </td> \n " ;
$OUTPUT .= " <td width= \" 60 \" align= \" center \" > \n " ;
if ( $num <= 1 ) {
$OUTPUT .= " \n " ;
} elseif ( $num >= 2 && intval ( $board [ 'sortorder' ]) == 0 ) {
$OUTPUT .= " <a href= \" " . $adminurl . " &action=down&boardid= " . intval ( $board [ 'boardid' ]) . " \" > " . $down . " </a> \n " ;
} elseif ( $num >= 2 && ( intval ( $board [ 'sortorder' ]) >= 1 && intval ( $board [ 'sortorder' ]) <= ( $num - 2 ))) {
$OUTPUT .= " <a href= \" " . $adminurl . " &action=up&boardid= " . intval ( $board [ 'boardid' ]) . " \" > " . $up . " </a>  \n " ;
$OUTPUT .= " <a href= \" " . $adminurl . " &action=down&boardid= " . intval ( $board [ 'boardid' ]) . " \" > " . $down . " </a> \n " ;
} elseif ( $num >= 2 && intval ( $board [ 'sortorder' ]) == ( $num - 1 )) {
$OUTPUT .= " <a href= \" " . $adminurl . " &action=up&boardid= " . intval ( $board [ 'boardid' ]) . " \" > " . $up . " </a>  \n " ;
}
$OUTPUT .= " </td> \n " ;
$OUTPUT .= " </tr> \n " ;
}
$OUTPUT .= " <tr style= \" background-color: " . $this -> get_config ( 'bgcolor_head' ) . " ; \" > \n " ;
$OUTPUT .= " <td colspan= \" 5 \" ><input class= \" serendipityPrettyButton input_button \" type= \" submit \" name= \" serendipity[submit] \" value= \" " . DELETE . " \" /></td> \n " ;
$OUTPUT .= " </tr> \n " ;
$OUTPUT .= " </form> \n " ;
} else {
$OUTPUT .= " <tr><td><div align= \" center \" ><b> " . PLUGIN_FORUM_NO_BOARDS . " </b></div></td></tr> \n " ;
}
$OUTPUT .= " </table> \n " ;
}
echo $OUTPUT ;
}
function generate_content ( & $title ) {
global $serendipity ;
if ( ! headers_sent ()) {
header ( 'HTTP/1.0 200' );
header ( 'Status: 200 OK' );
}
$title = PLUGIN_FORUM_TITLE . ' (' . $this -> get_config ( 'pageurl' ) . ')' ;
if ( $serendipity [ 'GET' ][ 'subpage' ] == $this -> get_config ( 'pageurl' )) {
$serendipity [ 'head_title' ] = $this -> get_config ( 'pagetitle' );
$serendipity [ 'head_subtitle' ] = $this -> get_config ( 'headline' );
}
}
function install () {
$this -> setupDB ();
}
function logMSG ( $msg , $forceOutput = false ) {
global $serendipity ;
$debug = false ;
if ( empty ( $msg )) {
return false ;
}
$fp = @ fopen ( $serendipity [ 'serendipityPath' ] . '/templates_c/forum.log' , 'a' );
if ( $fp ) {
fwrite ( $fp , $_SERVER [ 'REQUEST_URI' ] . " \n " . date ( 'd.m.Y H:i' ) . ': ' . $msg . " \n " );
fclose ( $fp );
}
if ( $forceOutput ) {
echo $msg ;
}
}
2012-06-13 14:47:45 +02:00
function event_hook ( $event , & $bag , & $eventData , $addData = null ) {
2011-12-13 12:29:05 +01:00
global $serendipity ;
static $phpbb_mirror = null ;
if ( $phpbb_mirror == null ) {
$phpbb_mirror = $this -> get_config ( 'phpbb_mirror' );
if (( int ) $phpbb_mirror === 4 ) {
$phpbb_mirror = 4 ;
} elseif (( int ) $phpbb_mirror === 3 ) {
$phpbb_mirror = 3 ;
} elseif (( int ) $phpbb_mirror === 2 ) {
$phpbb_mirror = 2 ;
} elseif ( serendipity_db_bool ( $phpbb_mirror )) {
$phpbb_mirror = 2 ;
} else {
$phpbb_mirror = false ;
}
}
$hooks = & $bag -> get ( 'event_hooks' );
if ( isset ( $hooks [ $event ])) {
switch ( $event ) {
case 'entries_header' :
$this -> show ();
return true ;
break ;
case 'entry_display' :
if (( $serendipity [ 'GET' ][ 'subpage' ] == $this -> get_config ( 'pageurl' ))) {
if ( is_array ( $eventData )) {
$eventData [ 'clean_page' ] = true ;
} else {
$eventData = array ( 'clean_page' => true );
}
}
return true ;
break ;
case 'backend_sidebar_entries' :
$this -> setupDB ();
if ( $serendipity [ 'serendipityUserlevel' ] < USERLEVEL_ADMIN ) {
break ;
} else {
?>
< li class = " serendipitySideBarMenuLink serendipitySideBarMenuEntryLinks " >< a href = " ?serendipity[adminModule]=event_display&serendipity[adminAction]=forum " >< ? php echo PLUGIN_FORUM_TITLE ; ?> </a></li>
< ? php
}
break ;
case 'backend_sidebar_entries_event_display_forum' :
if ( $serendipity [ 'serendipityUserlevel' ] < USERLEVEL_ADMIN ) {
break ;
} else {
$this -> forumAdmin ();
}
break ;
case 'external_plugin' :
if ( isset ( $eventData [ 'setthreadcookie' ]) && intval ( $eventData [ 'setthreadcookie' ]) >= 1 ) {
$threadid = intval ( $eventData [ 'setthreadcookie' ]);
if ( is_array ( $_COOKIE ) && trim ( $_COOKIE [ 's9yread' ]) != " " ) {
$READARRAY = unserialize ( stripslashes ( trim ( $_COOKIE [ 's9yread' ])));
} else {
$READARRAY = array ();
}
$READARRAY [ $threadid ] = time ();
$READCOOKIE = addslashes ( trim ( serialize ( $READARRAY )));
setcookie ( " s9yread " , " $READCOOKIE " , time () + 31536000 , " / " );
}
2013-04-23 09:52:43 +02:00
$theUri = ( string ) str_replace ( '&' , '&' , $eventData );
$uri_parts = explode ( '?' , $theUri );
2011-12-13 12:29:05 +01:00
// Try to get reguest parameters from eventData name
if ( ! empty ( $uri_parts [ 1 ])) {
$reqs = explode ( '&' , $uri_parts [ 1 ]);
foreach ( $reqs AS $id => $req ) {
$val = explode ( '=' , $req );
if ( empty ( $_REQUEST [ $val [ 0 ]])) {
$_REQUEST [ $val [ 0 ]] = $val [ 1 ];
}
}
}
$parts = explode ( '_' , $uri_parts [ 0 ]);
if ( ! empty ( $parts [ 1 ])) {
$param = ( int ) $parts [ 1 ];
} else {
$param = null ;
}
switch ( $parts [ 0 ]) {
case 'forumdl' :
$fileid = intval ( $parts [ 1 ]);
serendipity_db_query ( " UPDATE { $serendipity [ 'dbPrefix' ] } dma_forum_uploads SET dlcount = dlcount+1 WHERE uploadid = " . $fileid );
$sql = " SELECT * FROM { $serendipity [ 'dbPrefix' ] } dma_forum_uploads WHERE uploadid = " . $fileid ;
$file = serendipity_db_query ( $sql );
$mime = DMA_forum_getMime ( basename ( $file [ 0 ][ 'realfilename' ]), $this -> DMA_forum_getRelPath ());
$contenttype = $mime [ 'TYPE' ];
$filename = basename ( $file [ 0 ][ 'realfilename' ]);
$path = $this -> get_config ( 'uploaddir' );
$sysname = basename ( $file [ 0 ][ 'sysfilename' ]);
$filesize = $file [ 0 ][ 'filesize' ];
if ( function_exists ( " getallheaders " )) {
$headers = getallheaders ();
}
if ( substr ( $headers [ " Range " ], 0 , 6 ) == " bytes= " ) {
header ( " HTTP/1.1 206 Partial Content " );
header ( " Content-Type: $contenttype " );
header ( " Content-Disposition: attachment; filename= " . $filename );
header ( " Accept-Ranges: bytes " );
header ( " Connection: close " );
$bytes = explode ( " = " , $headers [ " Range " ]);
$bytes = $bytes [ 1 ];
if ( preg_match ( " @^-([0-9]+)@ " , $bytes , $bytes_len )) {
$bytes_len = $bytes_len [ 1 ];
$bytes_start = $filesize - $bytes_len ;
$bytes_end = $filesize - 1 ;
header ( " Content-Length: " . $bytes_len );
} elseif ( preg_match ( " @([0-9]+)- $ @ " , $bytes , $bytes_start )) {
$bytes_start = $bytes_start [ 1 ];
$bytes_end = $filesize - 1 ;
$bytes_len = $filesize - $bytes_start ;
header ( " Content-Length: $bytes_len " );
} elseif ( preg_match ( " @^([0-9]+)-([0-9]+) $ @ " , $bytes , $bytes_pos ))
{
$bytes_start = $bytes_pos [ 0 ];
$bytes_end = $bytes_pos [ 1 ];
if ( $bytes_start < 0 || $bytes_start > ( $filesize - 1 )) {
$bytes_start = 0 ;
}
if ( $bytes_end < $bytes_start || $bytes_end > ( $filesize - 1 )) {
$bytes_end = $filesize - 1 ;
}
$bytes_len = $bytes_end - $bytes_start + 1 ;
header ( " Content-Length: $bytes_len " );
} else {
$bytes_start = 0 ;
$bytes_end = $filesize - 1 ;
$bytes_len = $bytes_end - $bytes_start + 1 ;
header ( " Content-Length: $bytes_len " );
}
header ( " Content-Range: bytes $bytes_start - $bytes_end / " . $filesize );
$fp = fopen ( $path . " / " . $sysname , " rb " );
fseek ( $fp , $bytes_start );
$contents = fread ( $fp , $bytes_len );
fclose ( $fp );
echo $contents ;
} else {
$fp = fopen ( $path . " / " . $sysname , " rb " );
$contents = fread ( $fp , $filesize );
fclose ( $fp );
header ( " Content-Type: $contenttype " );
header ( " Content-Disposition: attachment; filename= " . $filename );
header ( " Accept-Ranges: bytes " );
header ( " Content-Length: " . strlen ( $contents ));
header ( " Connection: close " );
echo $contents ;
}
break ;
}
return true ;
break ;
case 'backend_save' :
case 'backend_publish' :
if ( ! $phpbb_mirror ) {
#$this->logMSG('Forum mirroring is disabled');
return false ;
}
$con = mysql_connect ( $this -> get_config ( 'phpbb_db_host' ), $this -> get_config ( 'phpbb_db_user' ), $this -> get_config ( 'phpbb_db_pw' ));
if ( ! $con ) {
$this -> logMSG ( 'Could not connect to database' );
return false ;
}
if ( ! mysql_select_db ( $this -> get_config ( 'phpbb_db_name' ), $con )) {
$this -> logMSG ( 'Could not select database' );
return false ;
}
if ( mysql_error () != '' ) {
$this -> logMSG ( mysql_error (), true );
return false ;
}
mysql_query ( " SET NAMES " . SQL_CHARSET );
$prefix = $this -> get_config ( 'phpbb_db_prefix' );
$fid = ( int ) $this -> get_config ( 'phpbb_forum' );
$topic_poster = ( int ) $this -> get_config ( 'phpbb_poster' );
if ( $phpbb_mirror == 4 ) {
$tp = mysql_query ( " SELECT realName AS username FROM { $prefix } members WHERE ID_MEMBER = $topic_poster " );
} else {
$tp = mysql_query ( " SELECT username FROM { $prefix } users WHERE user_id = $topic_poster " );
}
if ( mysql_num_rows ( $tp ) > 0 ) {
$topic_poster_data = mysql_fetch_array ( $tp , MYSQL_ASSOC );
}
if ( $event == 'backend_save' ) {
$r = serendipity_db_query ( " SELECT value, property
FROM { $serendipity [ 'dbPrefix' ]} entryproperties
WHERE entryid = " . (int) $eventData['id'] . "
AND ( property = 'phpbb_topic' OR property = 'phpbb_post' ) " , false, 'assoc', false, 'property');
if ( empty ( $r [ 'phpbb_post' ][ 'value' ]) || empty ( $r [ 'phpbb_topic' ][ 'value' ])) {
#$this->logMSG('Could not get phpbb reference for entry ' . $eventData['id']);
return false ;
}
if ( $phpbb_mirror == 4 ) {
} else {
mysql_query ( " UPDATE { $prefix } topics
SET topic_title = '" . serendipity_db_escape_string($eventData[' title ']) . "'
WHERE topic_id = " . (int) $r['phpbb_topic'] ['value'], $con );
}
$this -> logMSG ( mysql_error (), true );
if ( $phpbb_mirror == 4 ) {
mysql_query ( " UPDATE { $prefix } messages
SET subject = '" . serendipity_db_escape_string($eventData[' title ']) . "' ,
body = '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "' ,
modifiedTime = '" . time() . "' ,
posterTime = '" . time() . "'
WHERE ID_MSG = " . (int) $r['phpbb_post'] ['value'], $con );
} elseif ( $phpbb_mirror == 3 ) {
mysql_query ( " UPDATE { $prefix } posts
SET post_subject = '" . serendipity_db_escape_string($eventData[' title ']) . "' ,
post_text = '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "' ,
topic_last_post_time = '" . time() . "'
WHERE post_id = " . (int) $r['phpbb_post'] ['value'], $con );
} else {
mysql_query ( " UPDATE { $prefix } posts_text
SET post_subject = '" . serendipity_db_escape_string($eventData[' title ']) . "' ,
post_text = '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "'
WHERE post_id = " . (int) $r['phpbb_post'] ['value'], $con );
}
$this -> logMSG ( mysql_error (), true );
return true ;
}
if ( $phpbb_mirror == 4 ) {
mysql_query ( " INSERT INTO { $prefix } topics (ID_BOARD, ID_FIRST_MSG, ID_LAST_MSG, ID_MEMBER_STARTED, ID_MEMBER_UPDATED)
VALUES ( $fid , $topic_poster , $topic_poster , $topic_poster , $topic_poster ) " , $con );
} elseif ( $phpbb_mirror == 3 ) {
mysql_query ( " INSERT INTO { $prefix } topics (forum_id, topic_title, topic_poster, topic_time, topic_first_post_id, topic_last_post_id, topic_first_poster_name, topic_last_post_time, topic_last_poster_id)
VALUES ( $fid , '" . serendipity_db_escape_string($eventData[' title ']) . "' , $topic_poster , UNIX_TIMESTAMP ( NOW ()), $topic_poster , $topic_poster , '" . serendipity_db_escape_string($topic_poster_data[' username ']) . "' , '" . time() . "' , $topic_poster ) " , $con );
} else {
mysql_query ( " INSERT INTO { $prefix } topics (forum_id, topic_title, topic_poster, topic_time, topic_first_post_id, topic_last_post_id)
VALUES ( $fid , '" . serendipity_db_escape_string($eventData[' title ']) . "' , $topic_poster , UNIX_TIMESTAMP ( NOW ()), 0 , 0 ) " , $con );
}
$this -> logMSG ( mysql_error (), true );
$topic_id = mysql_insert_id ( $con );
if ( $phpbb_mirror == 4 ) {
mysql_query ( " INSERT INTO { $prefix } messages (ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, subject, posterName, posterEmail, posterIP, modifiedTime, body)
VALUES ( $topic_id , $fid , UNIX_TIMESTAMP ( NOW ()), $topic_poster , '" . serendipity_db_escape_string($eventData[' title ']) . "' , '" . serendipity_db_escape_string($eventData[' author ']) . "' , '" . serendipity_db_escape_string($eventData[' email ']) . "' , '" . $_SERVER[' REMOTE_ADDR '] . "' , 0 , '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "' ) " , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
} elseif ( $phpbb_mirror == 3 ) {
mysql_query ( " INSERT INTO { $prefix } posts (topic_id, forum_id, poster_id, post_time, post_username, post_subject, post_text)
VALUES ( $topic_id , $fid , $topic_poster , UNIX_TIMESTAMP ( NOW ()), '" . serendipity_db_escape_string($eventData[' author ']) . "' , '" . serendipity_db_escape_string($eventData[' title ']) . "' , '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "' ) " , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
} else {
mysql_query ( " INSERT INTO { $prefix } posts (topic_id, forum_id, poster_id, post_time, post_username)
VALUES ( $topic_id , $fid , $topic_poster , UNIX_TIMESTAMP ( NOW ()), '" . serendipity_db_escape_string($eventData[' author ']) . "' ) " , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
mysql_query ( " INSERT INTO { $prefix } posts_text (post_id, post_subject, post_text)
VALUES ( $post_id , '" . serendipity_db_escape_string($eventData[' title ']) . "' , '" . serendipity_db_escape_string($eventData[' body '] . $eventData[' extended ']) . "' ) " , $con );
$this -> logMSG ( mysql_error (), true );
}
if ( $phpbb_mirror == 4 ) {
mysql_query ( " UPDATE { $prefix } topics
SET ID_FIRST_MSG = $post_id ,
ID_LAST_MSG = $post_id
WHERE ID_TOPIC = $topic_id " , $con );
} else {
mysql_query ( " UPDATE { $prefix } topics
SET topic_first_post_id = $post_id ,
topic_last_post_id = $post_id
WHERE topic_id = $topic_id " , $con );
}
$this -> logMSG ( mysql_error (), true );
if ( $phpbb_mirror == 4 ) {
mysql_query ( " UPDATE { $prefix } boards
SET numPosts = numPosts + 1 ,
numTopics = numTopics + 1 ,
ID_LAST_MSG = $post_id
WHERE ID_BOARD = $fid " , $con );
} else {
mysql_query ( " UPDATE { $prefix } forums
SET forum_posts = forum_posts + 1 ,
forum_topics = forum_topics + 1 ,
forum_last_post_id = $post_id
WHERE forum_id = $fid " , $con );
}
$this -> logMSG ( mysql_error (), true );
if ( $phpbb_mirror == 4 ) {
$v = mysql_query ( " SELECT variable, value FROM { $prefix } settings WHERE variable = 'smileys_url' " , $con );
$this -> logMsg ( mysql_error (), true );
#$this->logMSG('Fetching config values from phpBB Board');
while ( $row = mysql_fetch_array ( $v , MYSQL_ASSOC )) {
$conf [ $row [ 'variable' ]] = $row [ 'value' ];
#$this->logMSG('Got config values from phpBB: ' . print_r($row, true));
}
$url = str_replace ( '/Smileys' , '/index.php?topic=' . $topic_id . '.0' , $conf [ 'smileys_url' ]);
} else {
#$this->logMSG('Fetching config values from phpBB Board');
while ( $row = mysql_fetch_array ( $v , MYSQL_ASSOC )) {
$conf [ $row [ 'config_name' ]] = $row [ 'config_value' ];
#$this->logMSG('Got config values from phpBB: ' . print_r($row, true));
}
$url = " http:// { $conf [ 'server_name' ] } { $conf [ 'script_path' ] } /viewtopic.php?p= $post_id " ;
}
serendipity_db_query ( " INSERT INTO { $serendipity [ 'dbPrefix' ] } entryproperties (entryid, property, value)
VALUES ( " . (int) $eventData['id'] . " , 'phpbb_topic' , $topic_id ) " );
serendipity_db_query ( " INSERT INTO { $serendipity [ 'dbPrefix' ] } entryproperties (entryid, property, value)
VALUES ( " . (int) $eventData['id'] . " , 'phpbb_post' , $post_id ) " );
serendipity_db_query ( " INSERT INTO { $serendipity [ 'dbPrefix' ] } entryproperties (entryid, property, value)
VALUES ( " . (int) $eventData['id'] . " , 'phpbb_url' , '" . $url . "' ) " );
return true ;
case 'frontend_saveComment' :
if ( ! $phpbb_mirror ) {
return true ;
}
if ( ! $eventData [ 'allow_comments' ]) {
return true ;
}
$r = serendipity_db_query ( " SELECT value, property
FROM { $serendipity [ 'dbPrefix' ]} entryproperties
WHERE entryid = " . (int) $eventData['id'] . "
AND ( property = 'phpbb_topic' OR property = 'phpbb_post' OR property = 'phpbb_url' ) " , false, 'assoc', false, 'property');
if ( empty ( $r [ 'phpbb_post' ][ 'value' ]) || empty ( $r [ 'phpbb_topic' ][ 'value' ])) {
#$this->logMSG('Could not get phpBB properties for storing a comment');
return false ;
}
$con = mysql_connect ( $this -> get_config ( 'phpbb_db_host' ), $this -> get_config ( 'phpbb_db_user' ), $this -> get_config ( 'phpbb_db_pw' ));
if ( ! $con ) {
$this -> logMSG ( 'Could not get phpBB properties for storing a comment: DB credentials' );
return false ;
}
if ( ! mysql_select_db ( $this -> get_config ( 'phpbb_db_name' ), $con )) {
$this -> logMSG ( 'Could not get phpBB properties for storing a comment: DB name' );
return false ;
}
if ( mysql_error () != '' ) {
$this -> logMSG ( mysql_error (), true );
return false ;
}
mysql_query ( " SET NAMES " . SQL_CHARSET );
$prefix = $this -> get_config ( 'phpbb_db_prefix' );
$fid = ( int ) $this -> get_config ( 'phpbb_forum' );
$topic_poster = ( int ) $this -> get_config ( 'phpbb_poster' );
$topic_id = $r [ 'phpbb_topic' ][ 'value' ];
$phpbb_url = $r [ 'phpbb_url' ][ 'value' ];
if ( $phpbb_mirror == 4 ) {
mysql_query ( " INSERT INTO { $prefix } messages (ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, subject, posterName, posterEmail, posterIP, modifiedTime, body)
VALUES ( $topic_id , $fid , UNIX_TIMESTAMP ( NOW ()), 0 , '" . serendipity_db_escape_string($addData[' title ']) . "' , '" . serendipity_db_escape_string($addData[' name ']) . "' , '" . serendipity_db_escape_string($addData[' email ']) . "' , '" . $_SERVER[' REMOTE_ADDR '] . "' , 0 , '" . serendipity_db_escape_string($addData[' comment ']) . "' ) " , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
} elseif ( $phpbb_mirror == 3 ) {
$q1 = " INSERT INTO { $prefix } posts (topic_id, forum_id, post_time, post_username, poster_id, post_subject, post_text)
VALUES ( $topic_id , $fid , UNIX_TIMESTAMP ( NOW ()), '" . strip_tags(serendipity_db_escape_string($addData[' name '])) . "' , 1 , '" . strip_tags(serendipity_db_escape_string($addData[' title '])) . "' , '" . strip_tags(serendipity_db_escape_string($addData[' comment '])) . "' ) " ;
mysql_query ( $q1 , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
} else {
$q1 = " INSERT INTO { $prefix } posts (topic_id, forum_id, post_time, post_username, poster_id)
VALUES ( $topic_id , $fid , UNIX_TIMESTAMP ( NOW ()), '" . strip_tags(serendipity_db_escape_string($addData[' name '])) . "' , - 1 ) " ;
mysql_query ( $q1 , $con );
$this -> logMSG ( mysql_error (), true );
$post_id = mysql_insert_id ( $con );
$q2 = " INSERT INTO { $prefix } posts_text (post_id, post_subject, post_text)
VALUES ( $post_id , '" . strip_tags(serendipity_db_escape_string($addData[' title '])) . "' , '" . strip_tags(serendipity_db_escape_string($addData[' comment '])) . "' ) " ;
mysql_query ( $q2 , $con );
$this -> logMSG ( mysql_error (), true );
}
if ( $phpbb_mirror == 4 ) {
$q3 = " UPDATE { $prefix } topics
SET numReplies = numReplies + 1 ,
ID_MEMBER_UPDATED = 0 ,
ID_LAST_MSG = $post_id
WHERE ID_TOPIC = $topic_id " ;
} elseif ( $phpbb_mirror == 3 ) {
$q3 = " UPDATE { $prefix } topics SET topic_replies = topic_replies + 1, topic_replies_real = topic_replies_real + 1, topic_last_poster_id = 1, topic_last_poster_name = ' " . strip_tags ( serendipity_db_escape_string ( $addData [ 'name' ])) . " ', topic_last_post_id = $post_id WHERE topic_id = $topic_id " ;
} else {
$q3 = " UPDATE { $prefix } topics SET topic_replies = topic_replies + 1, topic_last_post_id = $post_id WHERE topic_id = $topic_id " ;
}
mysql_query ( $q3 , $con );
$this -> logMSG ( mysql_error (), true );
if ( $phpbb_mirror == 4 ) {
$q4 = " UPDATE { $prefix } boards SET numPosts = numPosts + 1, ID_LAST_MSG = $post_id WHERE ID_BOARD = $fid " ;
} else {
$q4 = " UPDATE { $prefix } forums SET forum_posts = forum_posts + 1, forum_last_post_id = $post_id WHERE forum_id = $fid " ;
}
mysql_query ( $q4 , $con );
$this -> logMSG ( mysql_error (), true );
$c = serendipity_db_query ( " SELECT comments FROM { $serendipity [ 'dbPrefix' ] } entries WHERE id = " . ( int ) $eventData [ 'id' ], true , 'assoc' );
if ( $c [ 'comments' ] < 1 ) {
serendipity_db_query ( " INSERT INTO { $serendipity [ 'dbPrefix' ] } comments (entry_id, title, url, type, status, subscribed)
VALUES ( " . (int) $eventData['id'] . " , 'phpbb_mirror' , '" . serendipity_db_escape_string($phpbb_url) . "' , 'NORMAL' , 'approved' , 'false' ) " );
}
serendipity_db_query ( " UPDATE { $serendipity [ 'dbPrefix' ] } entries SET comments = comments + 1 WHERE id = " . ( int ) $eventData [ 'id' ]);
header ( 'Status: 302 Found' );
header ( 'Location: ' . $phpbb_url );
exit ;
return true ;
case 'frontend_display:html:per_entry' :
if ( ! $phpbb_mirror ) {
return true ;
}
#$this->logMSG('PHPBB Entry #' . $eventData['id'] . ': ' . print_r($eventData['properties'], true));
$eventData [ 'display_dat' ] .= $eventData [ 'phpbb_discuss' ] = '<a class="phpbb_link" href="' . $eventData [ 'properties' ][ 'phpbb_url' ] . '">' . FORUM_PLUGIN_PHPBB_DISCUSS . '</a>' ;
break ;
case 'frontend_display' :
if ( ! $phpbb_mirror || ! is_array ( $eventData [ 'properties' ]) || ! isset ( $eventData [ 'comments' ])) {
return true ;
}
if ( $eventData [ 'comments' ] < 1 ) {
$con = mysql_connect ( $this -> get_config ( 'phpbb_db_host' ), $this -> get_config ( 'phpbb_db_user' ), $this -> get_config ( 'phpbb_db_pw' ));
if ( ! $con ) {
return false ;
}
mysql_select_db ( $this -> get_config ( 'phpbb_db_name' ), $con );
mysql_query ( " SET NAMES " . SQL_CHARSET );
$prefix = $this -> get_config ( 'phpbb_db_prefix' );
$basepost_id = $eventData [ 'properties' ][ 'phpbb_post' ];
$topic_id = $eventData [ 'properties' ][ 'phpbb_topic' ];
$phpbb_url = $eventData [ 'properties' ][ 'phpbb_url' ];
if ( $phpbb_mirror == 4 ) {
$pq = " SELECT count(m.ID_MSG) AS postcount
FROM { $prefix } messages AS m
WHERE m . ID_TOPIC = $topic_id
AND m . ID_MSG != $basepost_id
GROUP BY m . ID_TOPIC
LIMIT 1 " ;
} else {
$pq = " SELECT count(p.post_id) AS postcount
FROM { $prefix } posts AS p
WHERE p . topic_id = $topic_id
AND p . post_id != $basepost_id
GROUP BY p . topic_id
LIMIT 1 " ;
}
$comments = mysql_query ( $pq , $con );
if ( $comments ) {
$crows = mysql_fetch_array ( $comments , MYSQL_ASSOC );
if ( $crows [ 'postcount' ] > 0 ) {
$eventData [ 'comments' ] = $crows [ 'postcount' ];
}
}
}
return true ;
case 'fetchcomments' :
if ( ! $phpbb_mirror || ! is_array ( $eventData )) {
return true ;
}
foreach ( $eventData AS $idx => $comment ) {
if ( $comment [ 'ctitle' ] == 'phpbb_mirror' ) {
$entryid = $comment [ 'entryid' ];
$entry = $comment ;
unset ( $eventData [ $idx ]);
}
}
if ( empty ( $entryid ) && isset ( $addData [ 'id' ])) {
$entryid = $addData [ 'id' ];
}
if ( empty ( $entryid )) {
return false ;
}
$con = mysql_connect ( $this -> get_config ( 'phpbb_db_host' ), $this -> get_config ( 'phpbb_db_user' ), $this -> get_config ( 'phpbb_db_pw' ));
if ( ! $con ) {
return false ;
}
mysql_select_db ( $this -> get_config ( 'phpbb_db_name' ), $con );
if ( mysql_error () != '' ) {
$this -> logMSG ( mysql_error (), true );
return false ;
}
mysql_query ( " SET NAMES " . SQL_CHARSET );
$r = serendipity_db_query ( " SELECT value, property
FROM { $serendipity [ 'dbPrefix' ]} entryproperties
WHERE entryid = " . (int) $entryid . "
AND ( property = 'phpbb_topic' OR property = 'phpbb_post' OR property = 'phpbb_url' ) " , false, 'assoc', false, 'property');
if ( empty ( $r [ 'phpbb_post' ][ 'value' ]) || empty ( $r [ 'phpbb_topic' ][ 'value' ])) {
return false ;
}
$prefix = $this -> get_config ( 'phpbb_db_prefix' );
$basepost_id = $r [ 'phpbb_post' ][ 'value' ];
$topic_id = $r [ 'phpbb_topic' ][ 'value' ];
$phpbb_url = $r [ 'phpbb_url' ][ 'value' ];
if ( $phpbb_mirror == 4 ) {
$comments = mysql_query ( " SELECT p.ID_MSG AS id,
p . ID_MSG AS commentid ,
0 AS parent_id ,
p . posterTime AS timestamp ,
p . subject AS ctitle ,
p . body AS body ,
'NORMAL' as type ,
0 AS subscribed ,
IF ( m . realName != '' , m . realName , p . posterName ) AS author
FROM { $prefix } messages AS p
LEFT OUTER JOIN { $prefix } members AS m
ON m . ID_MEMBER = p . ID_MEMBER
WHERE p . ID_TOPIC = $topic_id
AND p . ID_MSG != $basepost_id
ORDER BY p . posterTime ASC " , $con );
echo mysql_error ();
} elseif ( $phpbb_mirror == 3 ) {
$comments = mysql_query ( " SELECT p.post_id AS id,
p . post_id AS commentid ,
0 AS parent_id ,
p . post_time AS timestamp ,
p . post_subject AS ctitle ,
p . post_text AS body ,
'NORMAL' as type ,
0 AS subscribed ,
p . post_username AS author
FROM { $prefix } posts AS p
WHERE p . topic_id = $topic_id
AND p . post_id != $basepost_id
ORDER BY p . post_time ASC " , $con );
} else {
$comments = mysql_query ( " SELECT p.post_id AS id,
p . post_id AS commentid ,
0 AS parent_id ,
p . post_time AS timestamp ,
pt . post_subject AS ctitle ,
pt . post_text AS body ,
'NORMAL' as type ,
0 AS subscribed ,
p . post_username AS author
FROM { $prefix } posts AS p
JOIN { $prefix } posts_text AS pt
ON p . post_id = pt . post_id
WHERE p . topic_id = $topic_id
AND p . post_id != $basepost_id
ORDER BY p . post_time ASC " , $con );
}
$this -> logMSG ( mysql_error (), true );
$return = $eventData ;
if ( mysql_num_rows ( $comments ) < 1 ) {
return false ;
}
while ( $row = mysql_fetch_array ( $comments , MYSQL_ASSOC )) {
$row [ 'title' ] = $entry [ 'title' ];
$row [ 'entrytimestamp' ] = $entry [ 'entrytimestamp' ];
$row [ 'entryid' ] = $row [ 'entry_id' ] = $entryid ;
$row [ 'authorid' ] = $entry [ 'authorid' ];
$return [] = $row ;
}
$eventData = $return ;
serendipity_db_Query ( " UPDATE { $serendipity [ 'dbPrefix' ] } entries SET comments = " . count ( $eventData ) . " WHERE id = " . ( int ) $entryid );
return true ;
case 'css' :
if ( strpos ( $eventData , '.forum-' ) !== false ) {
// class exists in CSS, so a user has customized it and we don't need default
return true ;
}
?>
. forum - filebox {
font : normal 12 px Courier , Courier New , fixed ;
background - color : #fffde0;
color : #000000;
border : 1 px dashed ;
border - color : #888888;
margin : 10 px auto ;
padding : 5 px ;
}
< ? php
return true ;
break ;
}
}
return true ;
}
}
/* vim: set sts=4 ts=4 expandtab : */
?>