2018-02-06 06:08:19 +09:00
< ? php
namespace App\Http\Controllers ;
use Illuminate\Support\Facades\DB ;
use Illuminate\Http\Request ;
2018-02-16 23:09:35 +09:00
use Illuminate\Contracts\Routing\ResponseFactory ;
2018-02-06 06:08:19 +09:00
use Illuminate\Support\Facades\Log ;
2018-03-02 00:59:26 +09:00
use App\Http\Controllers\AuthController ;
2018-02-27 01:12:06 +09:00
use App\Http\Controllers\UserController ;
use App\Http\Controllers\PermissionController ;
2018-02-06 06:08:19 +09:00
class BoardController extends Controller {
2018-03-02 00:59:26 +09:00
private $objAuth ;
2018-02-27 01:12:06 +09:00
private $objUser ;
private $objPermission ;
public function __construct () {
2018-03-02 00:59:26 +09:00
$this -> objAuth = new AuthController ();
2018-02-27 01:12:06 +09:00
$this -> objUser = new UserController ();
$this -> objPermission = new PermissionController ();
}
2018-02-06 06:08:19 +09:00
public function getCategories () { // /api/rpc/board/category/getcategories
return DB :: table ( 'for_category' )
-> select ( '*' )
-> orderBy ( 'order' , 'asc' )
-> get ();
}
public function getCategory ( $id ) { // /api/rpc/board/category/getcategory/id
return DB :: table ( 'for_category' )
-> select ( '*' )
-> where ( 'id' , $id )
-> get ();
}
2018-02-06 17:24:16 +09:00
public function getCategoryName ( $id ) { // /api/rpc/board/category/getcategoryname/id
return DB :: table ( 'for_category' )
-> select ( 'title' )
-> where ( 'id' , $id )
-> get ();
}
public function getForums () { // /api/rpc/board/forum/getforums
2018-02-06 06:08:19 +09:00
return DB :: table ( 'for_forums' )
-> select ( '*' )
-> orderBy ( 'order' , 'asc' )
-> get ();
}
2018-02-06 17:24:16 +09:00
public function getForum ( $id ) { // /api/rpc/board/forum/getforum/id
return DB :: table ( 'for_forums' )
-> select ( '*' )
-> where ( 'id' , $id )
-> orderBy ( 'order' , 'asc' )
-> get ();
}
2018-02-16 23:09:35 +09:00
public function getForumIdFromTopic ( $id ) { // /api/rpc/board/topic/getforumidfromtopic/id
return DB :: table ( 'for_threads' )
-> select ( 'for_id' )
-> where ( 'id' , $id )
-> first () -> for_id ;
}
public function getTopicIdFromPost ( $id ) { // /api/rpc/board/post/gettopicidfrompost/id
return DB :: table ( 'for_posts' )
-> select ( 'top_id' )
-> where ( 'id' , $id )
-> first () -> top_id ;
}
public function getForumIdFromPost ( $id ) { // /api/rpc/board/post/getforumidfrompost/id
$top_id = $this -> getTopicIdFromPost ( $id );
return $this -> getForumIdFromTopic ( $top_id );
}
2018-02-06 17:24:16 +09:00
public function getForumName ( $id ) { // /api/rpc/board/forum/getforumname/id
return DB :: table ( 'for_forums' )
-> select ( 'cat_id' , 'title' )
-> where ( 'id' , $id )
-> orderBy ( 'order' , 'asc' )
-> get ();
}
2018-02-16 23:09:35 +09:00
public function getPostCountFreeze ( $id ) { // /api/rpc/board/forum/getpostcountfreeze/id
return DB :: table ( 'for_forums' )
-> select ( 'post_count_freeze' )
-> where ( 'id' , $id )
-> first () -> post_count_freeze ;
}
public function getReadOnly ( $id ) { // /api/rpc/board/forum/getreadonly/id
return DB :: table ( 'for_forums' )
-> select ( 'readonly' )
-> where ( 'id' , $id )
-> first () -> readonly ;
}
2018-02-06 16:12:00 +09:00
public function getForumsInCategory ( $cat_id ) { // /api/rpc/board/forum/getforumsincategory/cat_id
2018-02-06 06:08:19 +09:00
return DB :: table ( 'for_forums' )
-> select ( '*' )
-> where ( 'cat_id' , $cat_id )
-> get ();
}
2018-02-06 17:24:16 +09:00
public function getTopics ( $for , $from , $to ) { // /api/rpc/board/topic/gettopics/for/from/to
return DB :: table ( 'for_threads' )
-> select ( '*' )
2018-02-19 21:08:56 +09:00
-> where ( 'for_id' , $for )
2018-02-06 17:24:16 +09:00
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'last_date' , 'desc' )
-> get ();
}
2018-03-02 00:59:26 +09:00
public function getTopicsUnpinned ( $for , $from , $to ) { // /api/rpc/board/topic/gettopicsunpinned/for/from/to
2018-02-06 17:24:16 +09:00
return DB :: table ( 'for_threads' )
-> select ( '*' )
2018-03-02 00:59:26 +09:00
-> where ( 'for_id' , $for )
2018-02-06 17:24:16 +09:00
-> where ( 'sticky' , 0 )
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'last_date' , 'desc' )
-> get ();
}
2018-03-02 00:59:26 +09:00
public function getTopicsPinned ( $for , $from , $to ) { // /api/rpc/board/topic/gettopicspinned/for/from/to
2018-02-06 17:24:16 +09:00
return DB :: table ( 'for_threads' )
-> select ( '*' )
2018-03-02 00:59:26 +09:00
-> where ( 'for_id' , $for )
2018-02-06 17:24:16 +09:00
-> where ( 'sticky' , 1 )
-> orderBy ( 'last_date' , 'desc' )
-> get ();
}
2018-03-02 00:59:26 +09:00
public function getTopicsUser ( $user , $from , $to ) { // /api/rpc/board/topic/gettopicsuser/user/from/to
return DB :: table ( 'for_threads' )
-> select ( '*' )
-> where ( 'started_by' , $user )
-> orderBy ( 'last_date' , 'desc' )
-> get ();
}
2018-02-19 21:08:56 +09:00
public function getTopicStart ( $top_id ) { // /api/rpc/board/post/gettopicstart/top_id
2018-02-19 21:31:08 +09:00
$uid = DB :: table ( 'for_posts' )
2018-02-19 21:08:56 +09:00
-> where ( 'top_id' , $top_id )
2018-02-19 21:31:08 +09:00
-> orderBy ( 'post_date' , 'asc' )
-> value ( 'user_id' );
$pdt = DB :: table ( 'for_posts' )
-> where ( 'top_id' , $top_id )
-> orderBy ( 'post_date' , 'asc' )
-> value ( 'post_date' );
return array (
'uid' => $uid ,
'date' => $pdt
);
2018-02-19 21:08:56 +09:00
}
public function getLastPost ( $top_id ) { // /api/rpc/board/post/getlastpost/top_id
2018-02-19 21:31:08 +09:00
$uid = DB :: table ( 'for_posts' )
2018-02-19 21:08:56 +09:00
-> where ( 'top_id' , $top_id )
2018-02-19 21:31:08 +09:00
-> orderBy ( 'post_date' , 'desc' )
-> value ( 'user_id' );
$pdt = DB :: table ( 'for_posts' )
-> where ( 'top_id' , $top_id )
-> orderBy ( 'post_date' , 'desc' )
-> value ( 'post_date' );
return array (
'uid' => $uid ,
'date' => $pdt
);
2018-02-19 21:08:56 +09:00
}
2018-02-19 22:35:31 +09:00
public function getFirstAndLastPosts ( $top_id ) { // /api/rpc/board/post/getfirstandlastposts/top_id
$first = $this -> getTopicStart ( $top_id );
$last = $this -> getLastPost ( $top_id );
return array (
'first' => $first ,
'last' => $last
);
}
2018-02-06 17:24:16 +09:00
public function countUnpinnedTopicsInForum ( $for_id ) { // /api/rpc/board/topic/countunpinnedtopicsinforum/for_id
return DB :: table ( 'for_threads' )
-> where ( 'for_id' , $for_id )
-> where ( 'sticky' , 0 )
-> count ();
}
2018-02-06 19:51:43 +09:00
public function getTopic ( $id , $from , $to ) { // /api/rpc/board/topic/gettopic/id/from/to
2018-02-06 17:24:16 +09:00
return DB :: table ( 'for_threads' )
-> select ( '*' )
-> where ( 'id' , $id )
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'last_date' , 'desc' )
-> get ();
}
2018-02-06 19:51:43 +09:00
public function getTopicLock ( $id ) { // /api/rpc/board/topic/gettopiclock/id
return DB :: table ( 'for_threads' )
-> select ( 'lock' )
-> where ( 'id' , $id )
-> get ();
}
public function getTopicName ( $id ) { // /api/rpc/board/topic/gettopicname/id
return DB :: table ( 'for_threads' )
-> select ( 'for_id' , 'title' )
-> where ( 'id' , $id )
-> get ();
}
public function getPostsInTopic ( $top_id , $from , $to ) { // /api/rpc/board/post/getpostsintopic/top_id/from/to
return DB :: table ( 'for_posts' )
-> select ( '*' )
-> where ( 'top_id' , $top_id )
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'post_date' , 'asc' )
-> get ();
}
public function countPostsInTopic ( $top_id ) { // /api/rpc/board/post/countpostsintopic/top_id
return DB :: table ( 'for_posts' )
-> where ( 'top_id' , $top_id )
-> count ();
}
public function getPost ( $id ) { // /api/rpc/board/post/getpost/id
return DB :: table ( 'for_posts' )
-> select ( '*' )
-> where ( 'id' , $id )
-> get ();
}
2018-02-16 18:19:37 +09:00
public function getCurrentPostCount ( $user_id ) { // /api/rpc/board/post/getcurrentpostcount/user_id
return DB :: table ( 'for_posts' ) -> where ( 'user_id' , $user_id ) -> max ( 'postcount' );
}
public function getNextPostCount ( $user_id ) { // /api/rpc/board/post/getnextpostcount/user_id
$get = DB :: table ( 'for_posts' ) -> where ( 'user_id' , $user_id ) -> max ( 'postcount' );
$get ++ ;
return $get ;
}
2018-03-02 00:59:26 +09:00
public function getPostsofUser ( $user_id , $from , $to ) {
return DB :: table ( 'for_posts' )
-> join ( 'users' , 'for_posts.user_id' , '=' , 'users.id' )
-> join ( 'usr_details' , 'usr_details.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_profile' , 'usr_profile.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_perm_id' , 'usr_perm_id.user_id' , '=' , 'for_posts.user_id' )
-> where ( 'users.id' , $user_id )
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'for_posts.post_date' , 'asc' )
-> get ( array (
'for_posts.id' ,
'top_id' ,
'for_posts.user_id' ,
'post_date' ,
'message' ,
'delete' ,
'lastedit' ,
'ipaddress' ,
'delreason' ,
'nolayout' ,
'postcount' ,
'username' ,
'perm_id' ,
'total_posts' ,
'header' ,
'footer' ,
'member_title' ,
'gender' ,
'avatar' ,
'name_style' ,
'display_name' ,
'country'
));
}
2018-02-06 19:51:43 +09:00
public function getUserPosts ( $top_id , $from , $to ) { // /api/rpc/board/post/getuserposts/top/from/to
return DB :: table ( 'for_posts' )
2018-02-07 22:24:41 +09:00
-> join ( 'users' , 'for_posts.user_id' , '=' , 'users.id' )
2018-02-07 21:38:42 +09:00
-> join ( 'usr_details' , 'usr_details.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_profile' , 'usr_profile.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_perm_id' , 'usr_perm_id.user_id' , '=' , 'for_posts.user_id' )
2018-02-06 19:51:43 +09:00
-> where ( 'for_posts.top_id' , $top_id )
-> offset ( $from )
-> limit ( $to )
-> orderBy ( 'for_posts.post_date' , 'asc' )
-> get ( array (
2018-02-16 23:09:35 +09:00
'for_posts.id' ,
'top_id' ,
'for_posts.user_id' ,
'post_date' ,
'message' ,
'delete' ,
'lastedit' ,
'ipaddress' ,
'delreason' ,
'nolayout' ,
'postcount' ,
'username' ,
'perm_id' ,
'total_posts' ,
'header' ,
'footer' ,
'member_title' ,
'gender' ,
'avatar' ,
'name_style' ,
'display_name' ,
'country'
2018-02-06 19:51:43 +09:00
));
}
public function getUserPost ( $id ) { // /api/rpc/board/post/getuserpost/id
return DB :: table ( 'for_posts' )
2018-02-07 22:24:41 +09:00
-> join ( 'users' , 'for_posts.user_id' , '=' , 'users.id' )
2018-02-07 21:38:42 +09:00
-> join ( 'usr_details' , 'usr_details.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_profile' , 'usr_profile.user_id' , '=' , 'for_posts.user_id' )
-> join ( 'usr_perm_id' , 'usr_perm_id.user_id' , '=' , 'for_posts.user_id' )
2018-02-06 19:51:43 +09:00
-> where ( 'for_posts.id' , $id )
-> orderBy ( 'for_posts.post_date' , 'asc' )
-> get ( array (
2018-02-16 23:09:35 +09:00
'for_posts.id' ,
'top_id' ,
'for_posts.user_id' ,
'post_date' ,
'message' ,
'delete' ,
'lastedit' ,
'ipaddress' ,
'delreason' ,
'nolayout' ,
'postcount' ,
'username' ,
'perm_id' ,
'total_posts' ,
'header' ,
'footer' ,
'member_title' ,
'gender' ,
'avatar' ,
'name_style' ,
'display_name' ,
'country'
2018-02-06 19:51:43 +09:00
));
}
2018-02-15 06:39:26 +09:00
public function addPost ( Request $request ) { // /api/rpc/board/post/addpost
2018-02-16 23:09:35 +09:00
$add = DB :: table ( 'for_posts' )
2018-02-15 06:39:26 +09:00
-> insert ([
'top_id' => $request -> top_id ,
'user_id' => $request -> user_id ,
'post_date' => $request -> post_date ,
'message' => $request -> message ,
2018-02-16 23:09:35 +09:00
'delete' => 0 ,
'lastedit' => 0 ,
2018-02-15 06:39:26 +09:00
'ipaddress' => $request -> ipaddress ,
2018-02-16 23:09:35 +09:00
'delreason' => '' ,
2018-02-15 06:39:26 +09:00
'nolayout' => $request -> nolayout ,
2018-02-16 23:09:35 +09:00
'postcount' => $request -> postcount ,
// Deprecated: remove like and read stuff after full release!
'likes' => 0 ,
'likers' => '' ,
'read' => ''
2018-02-15 06:39:26 +09:00
]);
2018-02-16 23:09:35 +09:00
return \Response :: json ( $add );
2018-02-15 06:39:26 +09:00
}
public function editPost ( Request $request ) { // /api/rpc/board/post/editpost
return DB :: table ( 'for_posts' )
-> where ( 'id' , $request -> id )
-> update ([
'lastedit' => $request -> lastedit ,
'message' => $request -> message ,
'nolayout' => $request -> nolayout
]);
}
public function deletePost ( Request $request ) { // /api/rpc/board/post/deletepost
return DB :: table ( 'for_posts' )
-> where ( 'id' , $request -> id )
-> update ([
'delete' => 1 ,
'delreason' => $request -> delreason
]);
}
public function undeletePost ( Request $request ) { // /api/rpc/board/post/undeletepost
return DB :: table ( 'for_posts' )
-> where ( 'id' , $request -> id )
-> update ([
'delete' => 0 ,
'delreason' => ''
]);
}
2018-02-27 01:12:06 +09:00
public function browseTopicInfo ( $tp , $id , $to ) {
if ( $tp == 'p' ) {
// Get information for the navigation.
$tid = $this -> getTopicIdFromPost ( $id );
$tinfo = $this -> getTopicName ( $tid );
}
else {
// Get information for the navigation.
$tinfo = $this -> getTopicName ( $id );
}
$finfo = $this -> getForumName ( $tinfo [ 0 ] -> for_id );
$cinfo = $this -> getCategoryName ( $finfo [ 0 ] -> cat_id );
// Count posts for navigation.
if ( $tp == 't' ) $pcount = $this -> countPostsInTopic ( $id );
// Is this topic locked?
if ( $tp == 't' ) $tlock = $this -> getTopicLock ( $id );
else $tlock = $this -> getTopicLock ( $tid );
$glock = false ;
if ( $tlock [ 0 ] -> lock == 0 ) $glock = false ;
else $glock = true ;
if ( $tp == 'p' ) {
// Compile.
return array (
'topId' => $tid ,
'forId' => $tinfo [ 0 ] -> for_id ,
'topName' => $tinfo [ 0 ] -> title ,
'catId' => $finfo [ 0 ] -> cat_id ,
'forName' => $finfo [ 0 ] -> title ,
'catName' => $cinfo [ 0 ] -> title ,
'lock' => $glock ,
);
}
else {
// Compile.
return array (
'forId' => $tinfo [ 0 ] -> for_id ,
'topName' => $tinfo [ 0 ] -> title ,
'catId' => $finfo [ 0 ] -> cat_id ,
'forName' => $finfo [ 0 ] -> title ,
'catName' => $cinfo [ 0 ] -> title ,
'maxPage' => ceil ( $pcount / $to ),
'lock' => $glock ,
);
}
}
2018-02-27 22:57:47 +09:00
public function stripBR ( $string ) {
return preg_replace ( '/\<br(\s*)?\/?\>/i' , '' , $string );
}
public function autoLink ( $s ) {
if ( strpos ( $s , '[link=' ) !== false || strpos ( $s , '[/link]' ) !== false ) {
return $s ;
}
else if ( strpos ( $s , '<a href=' ) !== false || strpos ( $s , '</a>' ) !== false ) {
return $s ;
}
else if ( strpos ( $s , '[img]' ) !== false || strpos ( $s , '[/img]' ) !== false ) {
return $s ;
}
else {
return preg_replace ( '!(\s|^)((https?://|www\.)+[a-z0-9_%./#?=;&-]+)!i' , ' <a href="$2" target="_blank">$2</a> ' , $s );
}
}
function getBBCode ( $text ) {
$find = array (
'~\[b\](.*?)\[/b\]~s' ,
'~\[i\](.*?)\[/i\]~s' ,
'~\[u\](.*?)\[/u\]~s' ,
'~\[s\](.*?)\[/s\]~s' ,
'~\[o\](.*?)\[/o\]~s' ,
'~\[centre\](.*?)\[/centre\]~s' ,
'~\[img width=(.*?) height=(.*?)\](https?://.*?\.(?:jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]~s' ,
'~\[img height=(.*?) width=(.*?)\](https?://.*?\.(?:jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]~s' ,
'~\[img width=(.*?)\](https?://.*?\.(?:jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]~s' ,
'~\[img height=(.*?)\](https?://.*?\.(?:jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]~s' ,
'~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]~s' ,
'~\[yt\](.*?)\[/yt\]~s' ,
'~\[link=((?:ftp|https?)://.*?)\](.*?)\[/link\]~s' ,
'~\[sound\](https?://.*?\.(?:mp3))\[/sound\]~s' ,
'~\[size=(.*?)\](.*?)\[/size\]~s' ,
'~\[colour=(.*?)\](.*?)\[/colour\]~s' ,
'~\[quote="(.*?)" id="(.*?)"](.*?)\[/quote]~s' ,
'~\[quote="(.*?)"](.*?)\[/quote]~s' ,
'~\[quote](.*?)\[/quote]~s' ,
'~\[code](.*?)\[/code]~s' ,
'~\[spoiler=(.*?)](.*?)\[/spoiler]~s' ,
'~\[spoiler](.*?)\[/spoiler]~s' ,
'~\[rtl](.*?)\[/rtl]~s' ,
'~\[gcn](.*?)\[/gcn]~s' ,
'~\[miiverse](.*?)\[/miiverse]~s' ,
'~\[smb](.*?)\[/smb]~s' ,
'~\[video](.*?)\[/video]~s' ,
);
$replace = array (
'<b>$1</b>' ,
'<i>$1</i>' ,
'<span style="text-decoration:underline;">$1</span>' ,
'<span style="text-decoration:line-through;">$1</span>' ,
'<span style="text-decoration:overline;">$1</span>' ,
'<span align="center">$1</span>' ,
'<img src="$3" alt="" width="$1px" height="$2px" border="0" />' ,
'<img src="$3" alt="" width="$2px" height="$1px" border="0" />' ,
'<img src="$2" alt="" width="$1px" border="0" />' ,
'<img src="$2" alt="" height="$1px" border="0" />' ,
'<img src="$1" alt="" class="img-responsive" border="0" />' ,
'<div class="embed-responsive embed-responsive-16by9"><iframe class="embed-responsive-item" src="https://www.youtube.com/embed/$1" allowfullscreen></iframe></div>' ,
'<a href="$1" target="_blank">$2</a>' ,
'<audio controls><source src="$1" type="audio/mpeg">Your browser does not support the audio tag.</audio>' ,
'<span style="font-size:$1px;">$2</span>' ,
'<span style="color:$1;">$2</span>' ,
'<blockquote><span class=\'quotedby\'><a href=forum.php?page=thread&tid=$threadid&pid=$2#$2><i>Posted by \'$1\'</i></a></span><hr>$3<hr></blockquote>' ,
'<blockquote><span class=\'quotedby\'><i>Posted by \'$1\'</i></span><hr>$2<hr></blockquote>' ,
'<blockquote><hr>$1<hr></blockquote>' ,
'<table cellspacing="0" style="width: 90%; min-width: 90%;"><tr><td class="b n3"><code class="codeblock" style="font-size: 9pt;"><xmp>$1</xmp></code></tr></table><br />' ,
'<div class="spoiler"><button onclick="var s=this.parentNode.getElementsByClassName(\'spoilercontents\')[0].style;s.display=(s.display==\'none\')?\'\':\'none\';">$1</button><br /><div class="spoilercontents" style="display:none;">$2</div></div>' ,
'<div class="spoiler"><button onclick="var s=this.parentNode.getElementsByClassName(\'spoilercontents\')[0].style;s.display=(s.display==\'none\')?\'\':\'none\';">Spoiler</button><br /><div class="spoilercontents" style="display:none;">$1</div></div>' ,
'<div dir="rtl">$1</div>' ,
'<span class="GameCube">$1</span>' ,
'<span class="MiiverseSymbols">$1</span>' ,
'<span class="MarioBros">$1</span>' ,
'<video width="600" controls><source src="$1" type="video/mp4">Your browser does not support MP4, or HTML5 videos.</video>' ,
);
return preg_replace ( $find , $replace , $text );
}
public function packageMessage ( $string ) {
$string = $this -> stripBR ( $string );
$string = $this -> autoLink ( $string );
$string = $this -> getBBCode ( $string );
return $string ;
}
2018-02-27 01:12:06 +09:00
public function browseTopicPosts ( $tp , $id , $from , $to ) {
// Load group colours.
$ucol = $this -> objUser -> getGroupColours ();
// All the user posts' user IDs.
if ( $tp == 't' ) $uid = $this -> getUserPosts ( $id , $from , $to );
2018-03-02 00:59:26 +09:00
else if ( $tp == 'p' ) $uid = $this -> getUserPost ( $id );
else $uid = $this -> getPostsOfUser ( $id , $from , $to );
2018-02-27 01:12:06 +09:00
$udat = array ();
$key = 0 ;
foreach ( $uid as $i ) {
$showName = '' ;
$showCol = '' ;
$showGroupName = '' ;
// Display name or username?
if ( ! empty ( $i -> display_name )) {
$showName = $i -> display_name ;
}
else {
$showName = $i -> username ;
}
// Custom name styling or default?
if ( ! empty ( $i -> name_style )) {
$showCol = $i -> name_style ;
}
else {
foreach ( $ucol as $j ) {
if ( $j -> id == $i -> perm_id ) {
if ( $i -> gender == 1 ) $showCol = $j -> colour_m ;
else if ( $i -> gender == 2 ) $showCol = $j -> colour_f ;
else $showCol = $j -> colour_u ;
}
}
}
// Group names.
$gname = $this -> objUser -> getGroupName ( $i -> user_id );
$showGroupName = $gname [ 0 ] -> name ;
2018-02-27 22:57:47 +09:00
//$mess = preg_replace('/\<br(\s*)?\/?\>/i', '', $i->message);
$mess = $this -> packageMessage ( $i -> message );
2018-02-27 01:12:06 +09:00
array_push ( $udat , [
'key' => $key ,
'id' => $i -> id ,
'tid' => $i -> top_id ,
'uid' => $i -> user_id ,
'post_date' => date ( 'Y/m/d, G:i:s T' , $i -> post_date ),
2018-02-27 22:57:47 +09:00
'message' => $mess ,
2018-02-27 01:12:06 +09:00
'delete' => $i -> delete ,
'delreason' => $i -> delreason ,
'lastedit' => date ( 'Y/m/d, G:i:s T' , $i -> lastedit ),
'lasteditUnix' => $i -> lastedit ,
'ipaddress' => $i -> ipaddress ,
'nolayout' => $i -> nolayout ,
'postcount' => $i -> postcount ,
'total_posts' => $i -> total_posts ,
'header' => $i -> header ,
'footer' => $i -> footer ,
'member_title' => $i -> member_title ,
'gender' => $i -> gender ,
'avatar' => $i -> avatar ,
'showcol' => $showCol ,
'showname' => $showName ,
'showgroup' => $showGroupName ,
'country' => $i -> country ,
]);
$key ++ ;
}
// Assign group names.
return $udat ;
}
public function browsePermissions ( $uid ) {
// Get user ID.
$perm = $this -> objUser -> getUser ( $uid );
// Does the user ID exist? Grand the appropriate rights. Otherwise, use guest.
if ( $uid != 0 ) {
// Forum permissions.
$grouppermfor = $this -> objPermission -> getPermissionGroup ( 'for' , $perm [ 0 ] -> perm_id );
$userpermfor = $this -> objPermission -> getPermissionUser ( 'for' , $uid );
// User permissions.
$grouppermusr = $this -> objPermission -> getPermissionGroup ( 'usr' , $perm [ 0 ] -> perm_id );
$userpermusr = $this -> objPermission -> getPermissionUser ( 'usr' , $uid );
// Now provide an array of user overwritten permissions if it exists. Otherwise, give its group permissions.
$forarr = array ();
$usrarr = array ();
if ( ! empty ( $userpermfor [ 0 ])) {
$forarr = ( array ) $userpermfor [ 0 ];
}
else {
$forarr = ( array ) $grouppermfor [ 0 ];
}
if ( ! empty ( $userpermusr [ 0 ])) {
$usrarr = ( array ) $userpermusr [ 0 ];
}
else {
$usrarr = ( array ) $grouppermusr [ 0 ];
}
$merge = array ();
$merge = array_merge ( $forarr , $usrarr );
return $merge ;
}
else {
// Forum permissions.
$grouppermfor = $this -> objPermission -> getPermissionGroup ( 'for' , 6 );
// User permissions.
$grouppermusr = $this -> objPermission -> getPermissionGroup ( 'usr' , 6 );
// Since guests don't have user overwritten permissions, simply return the group permissions.
$merge = array ();
$merge = array_merge (( array ) $grouppermfor [ 0 ], ( array ) $grouppermusr [ 0 ]);
return $merge ;
}
}
2018-02-06 06:08:19 +09:00
}