Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.20 veröffentlicht (27.02.19)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Gekürzte Beitrage nur in Startpost
#1
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 Smile



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'] != && $mybb->settings['shortmessage_forum'] != -&& $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($fidexplode(','$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_matchesPREG_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("&lt;mybb-code&gt;\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''&lt;$1$2$3&gt;'$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;
}
}
}
?>
Zitieren
#2
hm... vielleicht funktioniert sowas? 

Zeile 113 (in deinem geposteten Script) ändern in

PHP-Code:
global $mybb$fid$lang$parser$message$thread

Zeile 133 ändern in

PHP-Code:
if (!in_array($fidexplode(','$mybb->settings['shortmessage_forum'])) && $mybb->settings['shortmessage_lenght'] < strlen(trim($post['message'])) && $post['pid'] == $thread['firstpost']) { 

ist jetzt ausm Kopf und nicht getestet, könnte aber klappen
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun






Zitieren
#3
(19.05.2019, 16:30)itsmeJAY schrieb: hm... vielleicht funktioniert sowas? 

Zeile 113 (in deinem geposteten Script) ändern in

PHP-Code:
global $mybb$fid$lang$parser$message$thread

Zeile 133 ändern in

PHP-Code:
if (!in_array($fidexplode(','$mybb->settings['shortmessage_forum'])) && $mybb->settings['shortmessage_lenght'] < strlen(trim($post['message'])) && $post['pid'] == $thread['firstpost']) { 

ist jetzt ausm Kopf und nicht getestet, könnte aber klappen

Herzlichen dank scheint zu funktioniern  Cool
Zitieren
#4
dann hat mein Kopf mich doch nicht getäuscht 😁 Big Grin
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun






Zitieren
#5
Sieht ganz so aus Big Grin
Zitieren