Bug: Badwortfilter

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Bug: Badwortfilter

    Hallo, Wo ist der Bug?

    Ich hab es so gemacht, das ich Wöter in meiner Edit_User.html freigeben kann die in der Badwortliste stehen, aber wo ist der Fehler es klappt nicht?

    Mein Profilfeld ist Badwort

    In dem Badwortfilter steht:


    package GTChat:lugins::TextFilters::Badwort;
    use strict;
    return bless({});

    sub checkText
    {

    my($self,$main,$text) = @_;

    if($main->{current_user}{Badwort} ne 1){

    $$text =~ s/^*(Arschloch)/****/ig;

    }
    return;
    }


    In der Profile_admin_edit.html steht:


    </form>
    <p><select name="Badwort">
    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    </select></p>
    </body>
    </html>



    Kann mir jemand die Bugs beheben, oder was fehlt denn noch?
    Mit welchem Sinn willst du für jeden User die Wörter freischalten? Soll einer Arschloch sagen dürfen und der andere nicht?

    Mach es lieber so:

    Settings.dat erstellst du z.b. Badwords => {'arschloch','arsch',...}

    Und dann greifst du mit $main->{settings}{Badwords} darauf zu.

    Weil dein Anfang ist wirklich schlecht alleine alle Badwörter einzeln abzufragen ist wirklich ein Resourcen Killer.
    Ich will es so machen, das ich einzelne User die Wörter in der Badwortliste freischalten kann.

    Edit: Ich möchte es so haben, das ich es über mein /editprofile nick bearbeiten kann.

    Habe oben ein Beispiel aber wo liegen die Bugs? Das freischalten geht nicht, und wie Bullet schon sagte das P bei Plugins ist nicht der fehler.... da hab ich hier mal bearbeitet und ein Buchstaben vergessen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pearl“ ()

    Das ist sau schlecht für den Chat aber ok wie du meinst.

    Du hast ein Profilfeld "Badword" angelegt und hast dann:

    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten

    Das heißt das nur ein einziges Wort erlaubt ist das heißt du musst für jedes Badwort ein Profilfeld anlegen.

    Im Plugin:

    Quellcode

    1. package GTChat::Plugins::TextFilters::Badwort;
    2. use strict;
    3. return bless({});
    4. sub checkText
    5. {
    6. my($self,$main,$text) = @_;
    7. if($main->{current_user}{Badwort} ne 1){
    8. $$text =~ s/^*(Arschloch)/****/ig;
    9. }
    10. return;
    11. }


    Die Datei muss dann Badwort.pm heißen. Wie gesagt für jedes Badwort = 1 Profilfeld und immer checken für jeden User = TÖTLICH UND NICHT ZU EMPFEHLEN
    Hi sind die Fehler behoben?

    Also nochmal aufgelistet alles so wie ich es mach:

    Profilfeld = Badwort

    Edit_admin_user.html

    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten

    Badwortfilter

    package GTChat::Plugins::TextFilters::Badwort;
    use strict;
    return bless({});

    sub checkText
    {

    my($self,$main,$text) = @_;

    if($main->{current_user}{Badwort} ne 1){

    $$text =~ s/^*(Arschloch)/****/ig;

    }
    return;
    }



    Passt das so, und klappt es so?
    Du hast geschrieben, das ich ein Profilfeld Badwort angelegt hab und dann <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten

    muss das unter dem Profilfeld unter Badwort hin?

    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    Jo hab ich.

    Also es klappt nicht.
    Es lässt sich für einen User nicht deaktivieren das Wort "Arschloch" kann er nicht machen, hab alles richtig eingebaut und jetzt wenn ich in die EditProfile rein gehe als Admin kann ihm es erlauben in der Editprofile ist das hier
    </form>
    <p><select name="Badwort">
    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    </select></p>
    </body>
    </html>

    Aber das deaktivieren geht nicht, das er das wort machen darf
    Ich denke das du dein Plugin falsch eingebaut hast.

    Du musst in der Settings.dat unter

    Quellcode

    1. custom_send_checker => [
    eintragen:

    Quellcode

    1. 'plugindir::TextFilters/Badwort.pm',


    Deine Badwort.pm die du gemacht hast musst du dann in den Ordner Plugins/TextFilters kopieren.

    Das muss eigentlich funktionieren.
    Ok dann hab ich dich falsch verstanden. Den HTML Code hast du in die editprofile.html gesetzt? Lass dir am besten einfach mal in dem Template wo du es eingebaut hast mit {GET|$user_information.Badwort} ausgeben was im Profil steht damit wir wissen wo das Problem jetzt genau liegt.
    Wie meinst du das?

    Nochmal

    Mein Profilfeld ist Badwort

    In meiner Profile_admin_edit.html ist

    <p><select name="Badwort">
    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    </select></p>
    </body>
    </html>

    In meiner Badwortliste Plugins:Textfilter/Badwort.pm ist

    package GTChat::Plugins::TextFilters::Badwort;
    use strict;
    return bless({});

    sub checkText
    {

    my($self,$main,$text) = @_;

    if($main->{current_user}{Badwort} ne 1){

    $$text =~ s/^*(Arschloch)/****/ig;

    }
    return;
    }


    Das Wort ist bei allen User gespert, d.h. kein User kann Arschloch sagen, jetzt hab ich es so gemacht, wie oben zu sehen ist, aber das erlauben von Arschloch für nur einen User geht nicht....
    In deiner Datei steht:

    <p><select name="Code1">
    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    </select></p>

    Sollte wohl eher heißen:

    <p><select name="Badwort">
    <option value="1" {IIF|$user_information.Badwort==1|selected}>Wort erlaubt
    <option value="0" {IIF|$user_information.Badwort==0|selected}>Wort verboten
    </select></p>

    Und in der Settings.dat hast du 10 mal Code1.... für die TextFilters aber keine Profilfelder die so heißen. Räum das mal auf vorher kriegst du von mir keine hilfe mehr.
    Ich glaube nicht das der Chat mit dieser Datei funktioniert und dort fehlt das Profilfeld.

    Die Dateien die du benutzt überprüfst du jetzt nochmal mit dem was wir hier hatten, wenn du es dann nicht schaffst meldest du dich mit deinen richtigen Dateien. Wenn ich sehe das dort irgendwas nicht stimmt was wir hier eben geschrieben haben ist das Thema ohne Kommentar geschlossen!
    Ja ich konnte die Settings.dat nicht hochladen, weil .dat hier nicht erlaubt ist dann hab ich sie einfach kurz umbenannt auf txt dann gings nur das du es sehen kannst.

    Und die Profile_admin_edit.html habe ich auch unbenannt auf txt weil .html hier auch nicht zum hochladen geht.....

    Noch was, ich habe doch eine 2 Datei hochgeladen, da ist doch das Profilfeld Badwort drin in der 1sten Zeile.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pearl“ ()