Webboard

Pełna wersja: Brak możliwości linku w sygnaturze
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

LikeLoveHate

wersja skryptu MyBB: 1805
adres forum: pogadane24
na czym polega problem (screen, opis, komunikaty):

Witajcie, problem mam z blokadą linków w sygnaturze u userów. Chciałem zrobić tak, że zarejestrowani mogą posiadać sygnaturkę, ale nie mogą używać w niej linków. Jedyna opcja w grupie to "Mogą używać sygnaturki" i "Czy linki w sygnaturze mają mieć argument nofallow". Przeszukałem całe ACP, ale albo mi gdzieś ta opcja umknęła, albo w ogóle jej nie ma... :/
Aktualnie wyłączyłem opcję posiadania sygnaturki, ale mnie to nie satysfakcjonuje :P
Póki co jedynie pluginem możesz to zrobić.
Sprawdzasz czy znajduje się link - potem przy próbie zapisu wyrzucasz błąd informujący o tym. Jak będę miał czas to może coś wyskrobię.

LikeLoveHate

Hmm, a może jakaś prosta modyfikacja pliku PHP wystarczy? Tylko jakiego?
usercp.php
Jednak nie wiem czy to warte zachodu. I tak musisz napisać funkcję która będzie sprawdzała czy w sygnaturze (podczas zapisu) jest link (wyrażenie regularne) i go ewentualnie usuwała. Umieszczenie tego w pluginie nie jest pracochłonną rzeczą, a i mniej pracy podczas aktualizacji skryptu.

LikeLoveHate

OK, w takim razie czekam na plugin, bo jeszcze nie pisałem żadnego pod MyBB.
Kod PHP:
$plugins->add_hook("usercp_do_editsig_process""usercp_dafs");
function 
dafs()
{
    global 
$mybb$db$memprofile;
    
    
preg_match_all('/http(.*)/',$memprofile['signature'],$a);

if(!empty(
$a)
{
error("Zakaz linku w sygnaturze");
}

wklej w szablon pluginu mybb

LikeLoveHate

W jaki szablon pluginu?
W plik pluginu
Kod PHP:
<?php
/*
noLinkSign.php
*/
$plugins->add_hook("usercp_do_editsig_process""usercp_dafs");

function 
noLinkSign_info() {
//informacje
}
//itd. 

LikeLoveHate

Dobra, troszkę go poprawiłem, aktualnie plugin wygląda tak:
Kod PHP:
<?php

$plugins
->add_hook("usercp_do_editsig_process""usercp_dafs");

function 
noLinkSign_info ()
{
    return [
        
'name'          => 'No links in user signature',
        
'description'   => 'Blokuje możliwość używania linków w sygnaturce grupie Zarejestrowanych.',
        
'website'       => '',
        
'author'        => '',
        
'authorsite'    => '',
        
'version'       => '0.1',
        
'codename'      => 'no_link_sign',
        
'compatibility' => '18*',
    ];
}

function 
usercp_dafs ()
{
    global 
$mybb$memprofile;
    
preg_match_all('/http(.*)/'$memprofile['signature'], $sign);
    
    if(!empty(
$sign) && $mybb->user['usergroup'] == 2)
    {
        
error("Zakaz używania linku w sygnaturze");
    }


Dziękuję za pomoc :)