Skip to content

Commit

Permalink
Merge pull request #3631 from arunshekher/feature-branch/chat-list-av…
Browse files Browse the repository at this point in the history
…atars-chatbox-menu-template

Add chatbox_menu_template.php and chatbox_menu_shortcodes.php for chatbox_menu plugin.
  • Loading branch information
CaMer0n authored Jan 30, 2019
2 parents b34251f + b76c83a commit bbc1a6c
Show file tree
Hide file tree
Showing 4 changed files with 651 additions and 472 deletions.
385 changes: 184 additions & 201 deletions e107_plugins/chatbox_menu/chat.php
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,201 +1,184 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2008-2013 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
*/

require_once('../../class2.php');
if (!e107::isInstalled('chatbox_menu'))
{
e107::redirect();
exit;
}

e107::lan('chatbox_menu',e_LANGUAGE);

require_once(HEADERF);
$mes = e107::getMessage();
$sql->select("menus", "*", "menu_name='chatbox_menu'");
$row = $sql->fetch();

if (!check_class(intval($row['menu_class'])))
{
$mes->addError(CHATBOX_L24);
$ns->tablerender(LAN_ERROR, $mes->render());
require_once(FOOTERF);
exit;
}

if(!isset($pref['cb_mod']))
{
$pref['cb_mod'] = e_UC_ADMIN;
}


define("CB_MOD", check_class($pref['cb_mod']));


if(!empty($_POST['moderate']) && CB_MOD)
{
if(isset($_POST['block']))
{
foreach(array_keys($_POST['block']) as $k){ $kk[] = intval($k); }
$blocklist = implode(",", $kk);
$sql->gen("UPDATE #chatbox SET cb_blocked=1 WHERE cb_id IN ({$blocklist})");
}

if(isset($_POST['unblock']))
{
foreach(array_keys($_POST['unblock']) as $k){ $kk[] = intval($k); }
$unblocklist = implode(",", $kk);
$sql->gen("UPDATE #chatbox SET cb_blocked=0 WHERE cb_id IN ({$unblocklist})");
}

if(isset($_POST['delete']))
{
$deletelist = implode(",", array_keys($_POST['delete']));
$sql -> db_Select_gen("SELECT c.cb_id, u.user_id FROM #chatbox AS c
LEFT JOIN #user AS u ON SUBSTRING_INDEX(c.cb_nick,'.',1) = u.user_id
WHERE c.cb_id IN (".$deletelist.")");
$rowlist = $sql -> db_getList();
foreach ($rowlist as $row) {
$sql->gen("UPDATE #user SET user_chats=user_chats-1 where user_id = ".intval($row['user_id']));
}
$sql->gen("DELETE FROM #chatbox WHERE cb_id IN ({$deletelist})");
}
e107::getCache()->clear("nq_chatbox");
$mes->addSuccess(CHATBOX_L18);
}

// when coming from search.php

$fs = false;

if (strstr(e_QUERY, "fs"))
{
$cgtm = intval(str_replace(".fs", "", e_QUERY));
$fs = true;
}
// end search

if (e_QUERY ? $from = intval(e_QUERY) : $from = 0);

$chat_total = $sql->count('chatbox');

$qry_where = (CB_MOD ? "1" : "cb_blocked=0");

// when coming from search.php calculate page number
if ($fs)
{
$page_count = 0;
$row_count = 0;
$sql->select("chatbox", "*", "{$qry_where} ORDER BY cb_datestamp DESC");
while ($row = $sql->fetch())
{
if ($row['cb_id'] == $cgtm)
{
$from = $page_count;
break;
}
$row_count++;
if ($row_count == 30)
{
$row_count = 0;
$page_count += 30;
}
}
}
// end search

$sql->select("chatbox", "*", "{$qry_where} ORDER BY cb_datestamp DESC LIMIT ".intval($from).", 30");
$obj2 = new convert;

$chatList = $sql->db_getList();
$frm = e107::getForm();
$vars = array();
$flag = false;

if (empty($CHAT_TABLE))
{
if (file_exists(THEME."chat_template.php"))
{
require_once(THEME."chat_template.php");
}
else
{
require_once(e_PLUGIN."chatbox_menu/chat_template.php");
}
}

$textstring = '';

foreach ($chatList as $row)
{
$vars['CHAT_TABLE_DATESTAMP'] = $tp->toDate($row['cb_datestamp'], "relative");
$vars['CHAT_TABLE_NICK'] = preg_replace("/[0-9]+\./", "", $row['cb_nick']);

$cb_message = $tp->toHTML($row['cb_message'], TRUE,'USER_BODY');

if($row['cb_blocked'])
{
$cb_message .= "<br />".CHATBOX_L25;
}

if(CB_MOD)
{
$id = $row['cb_id'];
$cb_message .= "<div class='checkbox'>";

$cb_message .= $frm->checkbox('delete['.$id.']',1, false, array('inline'=>true,'label'=>LAN_DELETE));

if($row['cb_blocked'])
{
$cb_message .= $frm->checkbox('unblock['.$id.']',1, false, array('inline'=>true, 'label'=> CHATBOX_L7));
}
else
{
$cb_message .= $frm->checkbox('block['.$id.']',1, false, array('inline'=>true, 'label'=> CHATBOX_L9));
}

$cb_message .= "</div>";
}

$vars['CHAT_TABLE_MESSAGE'] = $cb_message;
$vars['CHAT_TABLE_FLAG'] = ($flag ? "forumheader3" : "forumheader4");


// $textstring .= preg_replace("/\{(.*?)\}/e", '$\1', $CHAT_TABLE);
$textstring .= $tp->parseTemplate($CHAT_TABLE, true, $vars);
$flag = (!$flag ? true : false);
}


//print_a($CHAT_TABLE);


//$textstart = preg_replace("/\{(.*?)\}/e", '$\1', $CHAT_TABLE_START);
//$textend = preg_replace("/\{(.*?)\}/e", '$\1', $CHAT_TABLE_END);

$textstart = $tp->parseTemplate($CHAT_TABLE_START, true, $vars);
$textend = $tp->parseTemplate($CHAT_TABLE_END, true, $vars);
$text = $textstart.$textstring.$textend;

if(CB_MOD)
{
$text = "<form method='post' action='".e_SELF."'>".$text."<input type='submit' class='btn btn-default btn-secondary button' name='moderate' value='".CHATBOX_L13."' /></form>";
}

$parms = "{$chat_total},30,{$from},".e_SELF.'?[FROM]';
$text .= "<div class='nextprev'>".$tp->parseTemplate("{NEXTPREV={$parms}}").'</div>';


$ns->tablerender(CHATBOX_L20, $mes->render().$text);



require_once(FOOTERF);
?>
<?php
/*
* e107 website system
*
* Copyright (C) 2008-2013 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* e107 chatbox_menu Plugin
*
*/
require_once('../../class2.php');
if ( ! e107::isInstalled('chatbox_menu')) {
e107::redirect();
exit;
}

e107::lan('chatbox_menu', e_LANGUAGE);

require_once(HEADERF);
$mes = e107::getMessage();
$sql->select('menus', "*", "menu_name='chatbox_menu'");
$row = $sql->fetch();

if ( ! check_class((int)$row['menu_class'])) {
$mes->addError(CHATBOX_L24);
$ns->tablerender(LAN_ERROR, $mes->render());
require_once(FOOTERF);
exit;
}

if ( ! isset($pref['cb_mod'])) {
$pref['cb_mod'] = e_UC_ADMIN;
}

define('CB_MOD', check_class($pref['cb_mod']));

if ( ! empty($_POST['moderate']) && CB_MOD) {

if (isset($_POST['block'])) {

foreach (array_keys($_POST['block']) as $k) {
$kk[] = intval($k);
}

$blocklist = implode(",", $kk);
$sql->gen("UPDATE #chatbox SET cb_blocked=1 WHERE cb_id IN ({$blocklist})");
}


if (isset($_POST['unblock'])) {

foreach (array_keys($_POST['unblock']) as $k) {
$kk[] = intval($k);
}

$unblocklist = implode(",", $kk);
$sql->gen("UPDATE #chatbox SET cb_blocked=0 WHERE cb_id IN ({$unblocklist})");
}


if (isset($_POST['delete'])) {

$deletelist = implode(",", array_keys($_POST['delete']));

$query = "SELECT c.cb_id, u.user_id FROM #chatbox AS c
LEFT JOIN #user AS u ON SUBSTRING_INDEX(c.cb_nick,'.',1) = u.user_id
WHERE c.cb_id IN (" . $deletelist . ")";

$sql->gen($query);

$rowlist = $sql->rows();

foreach ($rowlist as $row) {
$userId = (int)$row['user_id'];
$sql->gen("UPDATE #user SET user_chats=user_chats-1 WHERE user_id = {$userId} ");
}

$sql->gen("DELETE FROM #chatbox WHERE cb_id IN ({$deletelist})");
}

e107::getCache()->clear("nq_chatbox");
$mes->addSuccess(CHATBOX_L18);
}

// when coming from search.php

$fs = false;

if (strstr(e_QUERY, "fs")) {
$cgtm = intval(str_replace(".fs", "", e_QUERY));
$fs = true;
}
// end search

if (e_QUERY ? $from = intval(e_QUERY) : $from = 0) {
;
}

$chat_total = $sql->count('chatbox');

$qry_where = (CB_MOD ? "1" : "cb_blocked=0");



// when coming from search.php calculate page number
if ($fs) {

$page_count = 0;
$row_count = 0;

$sql->select("chatbox", "*", "{$qry_where} ORDER BY cb_datestamp DESC");

while ($row = $sql->fetch()) {

if ($row['cb_id'] == $cgtm) {
$from = $page_count;
break;
}

$row_count++;
if ($row_count == 30) {
$row_count = 0;
$page_count += 30;
}

}
}
// end search


/** Render chat posts **/
$sql->select("chatbox", "*",
"{$qry_where} ORDER BY cb_datestamp DESC LIMIT " . intval($from) . ", 30");

$obj2 = new convert;

$chatList = $sql->rows();

$frm = e107::getForm();
$vars = [];
$flag = false;



$CHATBOX_LIST_TEMPLATE =
e107::getTemplate('chatbox_menu', 'chatbox_menu', 'list');

$sc = e107::getScBatch('chatbox_menu', true);


$textstring = '';

foreach ($chatList as $row) {

$sc->setVars($row);

$textstring .= $tp->parseTemplate($CHATBOX_LIST_TEMPLATE['item'], false, $sc);
}


$textstart = $tp->parseTemplate($CHATBOX_LIST_TEMPLATE['start'], true, $sc);
$textend = $tp->parseTemplate($CHATBOX_LIST_TEMPLATE['end'], true, $sc);

$text = $textstart . $textstring . $textend;


if (CB_MOD) {

$text =
"<form method='post' action='" . e_SELF . "'>"
. $text .
"<input type='submit' class='btn btn-danger btn-secondary button pull-right' name='moderate' value='" . CHATBOX_L13 . "' />
</form>";

}

$parms = "{$chat_total},30,{$from}," . e_SELF . '?[FROM]';

$text .= "<div class='nextprev'>" . $tp->parseTemplate("{NEXTPREV={$parms}}") . '</div>';

$ns->tablerender(CHATBOX_L20, $mes->render() . $text);

require_once(FOOTERF);
Loading

0 comments on commit bbc1a6c

Please sign in to comment.