Moin zusammen,
ich habe mir damals das Plugin von MrBrechreiz für gekürzte Beiträge installiert, da es noch ein paar Bugs hatte und dann nicht komplett fertig wurde habe ich es nicht für allgemeine Foren benutzt. Ich möchte es nun aber doch in 2 meiner Foren nutzen, dabei soll das Plugin aber nur den ersten Beitrag kürzen.
Gibt es da eine Möglichkeit das in der Plugin php zu definieren? Hier der Code der php jemand mit geschulten php Kenntnissen blickt da wahrscheinlich schneller durch als ich
ich habe mir damals das Plugin von MrBrechreiz für gekürzte Beiträge installiert, da es noch ein paar Bugs hatte und dann nicht komplett fertig wurde habe ich es nicht für allgemeine Foren benutzt. Ich möchte es nun aber doch in 2 meiner Foren nutzen, dabei soll das Plugin aber nur den ersten Beitrag kürzen.
Gibt es da eine Möglichkeit das in der Plugin php zu definieren? Hier der Code der php jemand mit geschulten php Kenntnissen blickt da wahrscheinlich schneller durch als ich
PHP-Code:
<?php
if(!defined("IN_MYBB"))
{
die("Direct initialization of this file is not allowed.");
}
function shortmessage_info()
{
global $db, $lang;
shortmessage_lang();
return array(
"name" => $db->escape_string($lang->shortmessage),
"description" => $db->escape_string($lang->shortmessage_description),
"website" => "http://freemybb.de",
"author" => "MrBrechreiz",
"authorwebsite" => "http://freemybb.de",
"version" => "1.0",
"compatibility" => "18*"
);
}
function shortmessage_lang()
{
global $lang;
$lang->load('shortmessage',false,true);
$l['shortmessage'] = "Gekürzte Beiträge";
$l['shortmessage_description'] = "Hiermit werden Beiträge für die Gäste gekürzt.";
$l['plugin_status'] = "Plugin Status";
$l['plugin_status_desc'] = "Plugin ein, oder ausschalten ?";
$l['lenght'] = "Zeichenlänge";
$l['lenght_desc'] = "Trage die Anzahl der sichtbaren Zeichen ein, die ein Gast sehen darf.";
$l['forum'] = "Foren ausschließen";
$l['forum_desc'] = "In welchem Forum soll die maximale Zeichenlänge für Gäste nicht beschränkt sein ? Trage die Foren-ID ein. Mehrere mit einem Komma (,) trennen.";
foreach($l as $key=>$val)
{
if(!$lang->$key)
{
$lang->$key=$val;
}
}
}
function shortmessage_activate()
{
global $db, $mybb, $lang;
shortmessage_lang();
$setting_group = array(
'name' => 'shortmessage',
'title' => $db->escape_string($lang->shortmessage),
'description' => $db->escape_string($lang->shortmessage_description),
'disporder' => 102,
'isdefault' => 0
);
$gid = $db->insert_query("settinggroups", $setting_group);
$setting_array = array(
"name" => "shortmessage_status",
"title" => $db->escape_string($lang->plugin_status),
"description" => $db->escape_string($lang->plugin_status_desc),
"optionscode" => "onoff",
"value" => "1",
"disporder" => "1",
"gid" => (int)$gid
);
$db->insert_query('settings', $setting_array);
$setting_array = array(
"name" => "shortmessage_lenght",
"title" => $db->escape_string($lang->lenght),
"description" => $db->escape_string($lang->lenght_desc),
"optionscode" => "text",
"value" => "300",
"disporder" => "2",
"gid" => (int)$gid
);
$db->insert_query('settings', $setting_array);
$setting_array = array(
"name" => "shortmessage_forum",
"title" => $db->escape_string($lang->forum),
"description" => $db->escape_string($lang->forum_desc),
"optionscode" => "forumselect",
"value" => "",
"disporder" => "2",
"gid" => (int)$gid
);
$db->insert_query('settings', $setting_array);
rebuild_settings();
}
function shortmessage_deactivate()
{
global $db;
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='shortmessage'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='shortmessage_status'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='shortmessage_lenght'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='shortmessage_forum'");
rebuild_settings();
}
$plugins->add_hook("postbit", "shortmessage_run");
function shortmessage_run(&$post)
{
global $mybb, $fid, $lang, $parser, $message;
$lang->load('index');
if($mybb->settings['shortmessage_status'] != 0 && $mybb->settings['shortmessage_forum'] != -1 && $mybb->user['uid'] == 0)
{
if(!empty($mybb->settings['shortmessage_forum']))
{
require_once MYBB_ROOT.'inc/class_parser.php';
$parser = new postParser;
$parser_options = array(
"allow_html" => 1,
"allow_mycode" => 1,
"allow_smilies" => 1,
"allow_imgcode" => 1,
"allow_videocode" => 1,
"filter_badwords" => 1
);
if(!in_array($fid, explode(',', $mybb->settings['shortmessage_forum'])) && $mybb->settings['shortmessage_lenght'] < strlen(trim($post['message'])))
{
$post['message'] = substr(trim($post['message']), 0, $mybb->settings['shortmessage_lenght'])."..." . " <br /><br />[b]...mehr lesen ? Dann bitte <a href=\"{$mybb->settings['bburl']}/member.php?action=login\" class=\"login\">{$lang->welcome_login}</a> oder <a href=\"{$mybb->settings['bburl']}/member.php?action=register\" class=\"register\">{$lang->welcome_register}</a> ! [/b]";
if(!empty($parser_options['allow_mycode']) && $mybb->settings['allowcodemycode'] == 1)
{
// This code is reserved and could break codes
$message = str_replace("<mybb-code>\n", "<mybb_code>\n", $message);
preg_match_all("#\[(code|php)\](.*?)\[/\\1\](\r\n?|\n?)#si", $message, $code_matches, PREG_SET_ORDER);
$message = preg_replace("#\[(code|php)\](.*?)\[/\\1\](\r\n?|\n?)#si", "<mybb-code>\n", $message);
}
if(empty($parser_options['allow_html']))
{
$message = $parser->parse_html($message);
$message = str_replace("<mybb-code>\n", "<mybb-code>\n", $message);
}
else
{
// Replace base, meta,script and style tags in our post - these are > dangerous <
$message = preg_replace('#<(/?)(base|meta|script|style)([^>]*)>#i', '<$1$2$3>', $message);
$message = $parser->fix_javascript($message);
$find = array("<br />\n", "<br>\n");
$replace = array("\n", "\n");
$message = str_replace($find, $replace, $message);
}
$post['message'] = $parser->parse_message($post['message'], $parser_options);
}
return $post;
}
}
}
?>