Ajax Chat Shoutbox Modul
Posted: 6. February 2014 10:27
Hi,
ich möchte gerne ein eigenes Portal Modul für den Ajax Chat erstellen, eine Shoutbox.
Ich habe nun schon einiges ergoogled, mit einem workaround funktioniert es auch.
Basierend auf diesem Thread: viewtopic.php?f=23&t=9253
insbesondere auf den Post von Kirk viewtopic.php?f=23&t=9253#p32936
habe ich folgendes gemacht:
Folgende Änderungen an includes/functions.php
unter phpBB3/portal/modules portal_shoutbox.php angelegt:
unter phpBB3/language/en/mods/portal/ portal_shoutbox_module.php angelegt:
unter phpBB3/styles/<stylename>/template/portal/modules portal_shoutbox_side.html
Nun zum eigentlichen Problem:
Wie kann ich das Modul nun zum Portal hinzufügen? Im ACP ist es bei den Portal Modulen nicht auswählbar?
Als workarround habe ich nun einfach portal_shoutbox_side.html in attachments_side.html umbenannt, und das Attachments Modul hinzugefügt.
Hätte es aber gern als eigenständiges Modul, damit es auch beim nächsten Portalupdate noch funktioniert.
ich möchte gerne ein eigenes Portal Modul für den Ajax Chat erstellen, eine Shoutbox.
Ich habe nun schon einiges ergoogled, mit einem workaround funktioniert es auch.
Basierend auf diesem Thread: viewtopic.php?f=23&t=9253
insbesondere auf den Post von Kirk viewtopic.php?f=23&t=9253#p32936
habe ich folgendes gemacht:
Folgende Änderungen an includes/functions.php
Code: Select all
'SHOUTBOX' => getShoutBoxContent(),
Code: Select all
/**
* Shoutbox function
*
*/
function getShoutBoxContent() {
// URL to the chat directory:
if(!defined('AJAX_CHAT_URL')) {
define('AJAX_CHAT_URL', './chat/');
}
// Path to the chat directory:
if(!defined('AJAX_CHAT_PATH')) {
define('AJAX_CHAT_PATH', realpath(dirname($_SERVER['SCRIPT_FILENAME']).'/chat').'/');
}
// Validate the path to the chat:
if(@is_file(AJAX_CHAT_PATH.'lib/classes.php')) {
// Include Class libraries:
require_once(AJAX_CHAT_PATH.'lib/classes.php');
// Initialize the shoutbox:
$ajaxChat = new CustomAJAXChatShoutBox();
// Parse and return the shoutbox template content:
return $ajaxChat->getShoutBoxContent();
}
return null;
}
Code: Select all
<?php
/**
*
* @package - Board3portal v2 Shoutbox
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* @package Shoutbox
*/
class portal_shoutbox_module
{
/**
* Allowed columns: Just sum up your options (Exp: left + right = 10)
* top 1
* left 2
* center 4
* right 8
* bottom 16
*/
public $columns = 21;
/**
* Default modulename
*/
public $name = 'SHOUTBOX';
/**
* Default module-image:
* file must be in "{T_THEME_PATH}/images/portal/"
*/
public $image_src = '';
/**
* module-language file
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_shoutbox_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = '';
/**
* hide module name in ACP configuration page
*/
public $hide_name = false;
public function get_template_center($module_id)
{
global $config, $template, $user, $phpbb_root_path, $phpEx;
// Show all errors:
error_reporting(E_ALL);
// Path to the chat directory:
define('AJAX_CHAT_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/chat/');
// Include custom libraries and initialization code:
require(AJAX_CHAT_PATH.'lib/custom.php');
// Include Class libraries:
require(AJAX_CHAT_PATH.'lib/classes.php');
// Initialize the chat:
$ajaxChat = new CustomAJAXChat();
return 'portal_shoutbox_side.html';
}
public function get_template_acp($module_id)
{
return array(
'title' => 'PORTAL_SHOUTBOX',
'vars' => array(),
);
}
/**
* API functions
*/
public function install($module_id)
{
return true;
}
public function uninstall($module_id)
{
return true;
}
}
?>
Code: Select all
<?php
/**
*
* @package - Board3portal v2 Shoutbox
* @version 1.0.0
* @copyright (c) Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
exit;
}
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_SHOUTBOX' => 'Shoutbox',
));
?>
Code: Select all
<!--version $Id: latest_members.html 544 2009-09-10 12:35:25Z christian_n $ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_IMAGESET_PATH}/prosilver/portal/portal_members.png" width="16" height="16" alt="" /> <!-- ENDIF -->SHOUTBOX{$LR_BLOCK_H_R}
<!-- IF not S_IS_BOT -->
<div style="font-size: 1.2em; margin-bottom: 20px;">{SHOUTBOX}</div>
<!-- ELSE -->
<div id="ajaxChatCopyright"><a href="https://blueimp.net/ajax/">AJAX Chat</a> © <a href="https://blueimp.net">blueimp.net</a></div>
<!-- ENDIF -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
Nun zum eigentlichen Problem:
Wie kann ich das Modul nun zum Portal hinzufügen? Im ACP ist es bei den Portal Modulen nicht auswählbar?
Als workarround habe ich nun einfach portal_shoutbox_side.html in attachments_side.html umbenannt, und das Attachments Modul hinzugefügt.
Hätte es aber gern als eigenständiges Modul, damit es auch beim nächsten Portalupdate noch funktioniert.