MyBB.de Forum

Normale Version: minchar zu maxchar
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an alle,

ich möchte euch hiermit eine kleine Lösung vorstellen, wie man differenzierte Beitragslängen realisieren kann.

Es ist eine einfache Modifikation des PlugIn "minchar" (Author "bubulang") das Gruppen befähigt die Mindestbeitragslänge zu unterschreiten.
Ich wollte aber eine Möglichkeit um Beitragslängen-Begrenzungen für auswählbare Gruppen aufzuheben. Also vom Sinn her genau andersherum.

Ich stell euch mal kurz den Code von "minchar" vor und danach meine Änderungen.

PHP-Code:
<?php

if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
$plugins->add_hook("global_start""minchar");



function 
minchar_info()
{
    return array(
        
"name"            => "Disable Minchars in Posts for Groups.",
        
"description"    => "It disables the minchar in posts for groups.",
        
"website"        => "http://www.mybb.com//",
        
"version"        => "1.0",
        
"author"        => "bubulang",
        
"authorsite"    => "http://community.mybb.com/user-29135.html",
        
"compatibility"  => "16*",
        
'guid'        => 'b6f4b6b8095312cdbb5c003685292a51'
    
);
}

function 
minchar_activate()
{
    global 
$mybb$db;
    
    
$query $db->simple_select("settinggroups""gid""name='posting'");
    
$gid $db->fetch_field($query"gid");
    
    
$setting = array(
        
'name' => 'disableminchar',
        
'title' => 'Minimum Message Length User Groups to Ignore',
        
'description' => 'Usergroups, separated by a comma, to exclude from the minimum number of characters to post feature. Leave blank to disable.',
        
'optionscode' => 'text',
        
'value' => '',
        
'disporder' => '1',
        
'gid' => intval($gid)
    );
    
$db->insert_query('settings',$setting);
    

rebuild_settings();
}

function 
minchar_deactivate()
{
    global 
$db$mybb;

$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='disableminchar'");
    
rebuild_settings();
}
    
function 
minchar()    
{
global 
$mybb$db;
    
$gids explode(','$mybb->settings['disableminchar']);
$gids array_map('intval'$gids);
$user_usergroups explode(','$mybb->user['usergroup']);

if(
count(array_intersect($user_usergroups$gids)) > 0) {
$GLOBALS['mybb']->settings['minmessagelength'] = 0;
}
}

?>




Und nun "maxchar" - habe ich einfach so getauft.

PHP-Code:
<?php

if(!defined("IN_MYBB"))
{
        die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
$plugins->add_hook("global_start""maxchar");



function 
maxchar_info()
{
        return array(
                
"name"               => "Deaktivieren von Max-Zeichen in Nachrichten für Gruppen.",
                
"description"        => "It disables the maxchar in posts for groups.",
                
"website"            => "http://www.mybb.com//",
                
"version"            => "1.0",
                
"author"             => "von bubulang(minchar)/zu raba(maxchar)",
                
"authorsite"         => "http://community.mybb.com/user-29135.html(bubulang)",
                
"compatibility"      => "16*",
                
'guid'               => 'b6f4b6b8095312cdbb5c003685292a51'
        
);
}

function 
maxchar_activate()
{
        global 
$mybb$db;

        
$query $db->simple_select("settinggroups""gid""name='posting'");
        
$gid $db->fetch_field($query"gid");

        
$setting = array(
                
'name' => 'disablemaxchar',
                
'title' => 'Maximale Beitragslänge werden von folgenden Gruppen ignoriert',
                
'description' => 'Gruppen mit Komma trennen. Leer=unwirksam-
                                                             Registriert=2 SuperMod=3 Admin=4 Mod=6 Blogger=8 Benutzer=9'
,
                
'optionscode' => 'text',
                
'value' => '2,3,4,6,8,9,',
                
'disporder' => '1',
                
'gid' => intval($gid)
        );
        
$db->insert_query('settings',$setting);


rebuild_settings();
}

function 
maxchar_deactivate()
{
        global 
$db$mybb;

$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='disablemaxchar'");

rebuild_settings();
}

function 
maxchar()
{
global 
$mybb$db;

$gids explode(','$mybb->settings['disablemaxchar']);
$gids array_map('intval'$gids);
$user_usergroups explode(','$mybb->user['usergroup']);

if(
count(array_intersect($user_usergroups$gids)) > 0) {
$GLOBALS['mybb']->settings['maxmessagelength'] = 0;
}
}

?>

Ihr sieht es ist nicht viel passiert, außer das ich alle Buchstabenfolgen "min" mit "max" getauscht habe. Danach habe ich das ganze noch ein wenig eingedeutscht und unter "maxchar" abgespeichert. Im PlugIn Ordner sind nun beide Dateien, was dann so aussieht.

[attachment=7802]

Nun habe ich eine generelle Beitragslänge von 500 Zeichen, was für Gästebuch-Einträge gedacht ist. Diese Einschränkung wird direkt von "maxchar" für die notierten Gruppen wieder aufgehoben.

Ich habe das "maxchar" auf MyBB 1.6 und 1.8 so gut ich konnte getestet und keine Probleme festgestellt.

Ich muss mal gucken wie ich das als Download auf MyBB zur Verfügung stellen kann. Es gelten wie beim Ausgangs-PlugIn "minchar" die selben Lizenzbestimmungen.
Wenn Ihr solange nicht warten möchtet, kopiert euch den Code und mach daraus eine PHP-Datei, die Ihr einfach unter PlugIn in eurem MyBB kopiert / hochlädt.

Viel Spaß.

mfG raba

Ps: wäre schön, wenn einer der Ahnung von PHP hat dieses um die Möglichkeit erweitert, noch differenzierter also mehrere Foren/Kategorien und Beitragslängen dazu zu programmieren. Ich glaube das könnten einige ganz gut gebrauchen. Ich auch.

Edit by Jockl: php-Tags eingefügt
Du kannst das Plugin doch auch unter https://www.mybb.de/erweiterungen/ hochladen!? Wenn es nun nur die deutsche Sprache unterstützt, macht das eh mehr Sinn.

Was mich aber wundert ist, wie Du das Plugin unter MyBB 1.8 testen konntest. Wink
Er meinte bestimmt 1.6.8
Hallo Jockl und MrBrechreiz,

ihr seid so gut zu mir! [attachment=7806]

Hallo Jockl! komm mal ganz dicht mit Deinem Ohr. Ich hab die Sex weggelassen - mag nicht mehr.

Hallo MrBrechreiz! Du Verräter.

mfG raba
Zitat:Hallo MrBrechreiz! Du Verräter.

Haha bin ich gerne und die Zahl 6, gefällt mir nicht nur als Zahl. Den Rest darfst Du dir denken Toungue.