Vyhledávače.info » Poradna » Společenská místnost » Jak odstranit target="_blank" a rel="nofollow" z miniBB

Jak odstranit target="_blank" a rel="nofollow" z miniBB

Autor Zpráva
Marek Prokop
Moderátor
Přátelé, je zde mezi vámi nějaký expert na PHP a miniBB?

MiniBB, které používám pro toto fórum automaticky vkládá všem odkazům v příspěvcích atributy target="_blank" a rel="nofollow". Ani jeden se mi nelíbí a chtěl bych je odstranit.

Poradíte prosím někdo, jak to udělat? PHP neumím, v kódu ale něco přepsat zvládnu.

#1 Zasláno: 17.12.05 13:40

Filip
Ahoj Marku,
myslím, že na půlku Tvé otázky jsem Ti schopen pomoci hned.

V hlavním adresáři si otevři k editaci soubor bb_func_vthread.php.

Na řádku 142 a 143 nahraď

if(!defined('NOFOLLOW')) $nof=' rel="nofollow"'; else $nof='';
$viewReg="<a href=\"{$main_url}/{$indexphp}action=userinfo&amp;user={$cc}\"{$nof}>$ ins</a>";
}

za

if(!defined('NOFOLLOW')) $nof=' rel="nofollow"'; else $nof='';
$viewReg="<a href=\"{$main_url}/{$indexphp}action=userinfo&amp;user={$cc}\">$ins</a >";
}

Je to sice řešení, za které by mě všichni php-káři zabili, ale taky funguje. Tedy já to takto na svém fóru používám.

Na _blank se Ti ještě mrknu.

#2 Zasláno: 17.12.05 14:04

Marek Prokop
Moderátor
Filipe, díky za pomoc. Jestli to dobře chápu, tak tvoje oprava změní odkazy na profily uživatelů. Mně ale jde o odkazy, které uživatelé mohou vkládat do příspěvků pomocí BBCode, resp. které se vytvoří automaticky ze zapsaných URL.

Pochopil jsem, že se to řeší v souborech bb_func_txt.php a bb_codes.php, ale když jsem se to tam pokoušel opravit, nějak jsem to porouchal, takže jsem to raději vrátil zpátky.

Problém nebyl ani tak s odstraněním těch atributů při zápisu -- to se mi povedlo -- ale se zpětným převodem na BBCode při opravě příspěvku.

#3 Zasláno: 17.12.05 14:18

Marek Prokop
Moderátor
Ještě je asi důležité, že používám miniBB v aktuální verzi 2.

#4 Zasláno: 17.12.05 14:20

neki
Člen
Aha, špatně jsem Tvůj dotaz předtím pochopil :)

// bb_func_txt.php
Tam to, jak jsem to já pochopil, je na 66. až 70. řádku:

if(strtolower(substr($words[$i],0,7))=='http://' and strlen($words[$i])>10) {$c=1;$word='<a href=\"'.trim($words[$i]).'\" target=\"_new\" rel=\"nofollow\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,8))=='https://' and strlen($words[$i])>11) {$c=1;$word='<a href=\"'.trim($words[$i]).'\" target=\"_new\" rel=\"nofollow\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,6))=='ftp://' and strlen($words[$i])>9) {$c=1;$word='<a href=\"'.trim($words[$i]).'\" target=\"_new\" rel=\"nofollow\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,4))=='ftp.' and strlen($words[$i])>9) {$c=1;$word='<a href=\"ftp://'.trim($words[$i]).'\" target=\"_new\" rel=\"nofollow\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,4))=='www.' and strlen($words[$i])>7) {$c=1;$word='<a href="http://'.trim($words[$i]).'\" target=\"_new\" rel=\"nofollow\">'.trim($word).'</a>';}

nahraď za

if(strtolower(substr($words[$i],0,7))=='http://' and strlen($words[$i])>10) {$c=1;$word='<a href=\"'.trim($words[$i]).'\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,8))=='https://' and strlen($words[$i])>11) {$c=1;$word='<a href=\"'.trim($words[$i]).'\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,6))=='ftp://' and strlen($words[$i])>9) {$c=1;$word='<a href=\"'.trim($words[$i]).'\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,4))=='ftp.' and strlen($words[$i])>9) {$c=1;$word='<a href=\"ftp://'.trim($words[$i]).'\">'.trim($word).'</a>';}
elseif(strtolower(substr($words[$i],0,4))=='www.' and strlen($words[$i])>7) {$c=1;$word='<a href="http://'.trim($words[$i]).'\">'.trim($word).'</a>';}

Tím by měl být tento soubor hotový.

Editace toho druhého souboru je trošku obsáhlejší, nechci Ti to tady příliš prodlužovat, raději se na něj mrkni na http://tmp.coolweb.name/bb_codes.txt

Myslím, že by vše mělo jít přesně tak, jak chceš.

#5 Zasláno: 17.12.05 14:47 - Změnil/a: neki

Marek Prokop
Moderátor
Soubory jsem upravil, a teď se zkusím odkázat na tvůj web, abychom viděli, zda to funguje.

#6 Zasláno: 17.12.05 15:53

neki
Člen
Supr, jde to :)

#7 Zasláno: 17.12.05 15:55

Marek Prokop
Moderátor
Hmm, funguje to jen částečně. Tady na stránce je to sice OK, odkaz už ty atributy nemá, ale když dám "Změnit", převede se mi příspěvek zpět bez textu odkazu, tj. mezi otevírací a zavírací BBCode značkou URL nic není.

#8 Zasláno: 17.12.05 15:57 - Změnil/a: Marek Prokop

neki
Člen
Už na to koukám. Zkusím zjistit, kde je chyba.

#9 Zasláno: 17.12.05 15:59

Marek Prokop
Moderátor
Tak už to funguje, jak má. Děkuju Filipovi za pomoc. Pokud byste tuto úpravu někdo chtěl využít ve své vlastní implementaci miniBB, dejte mi vědět.

#10 Zasláno: 17.12.05 18:52

Yuhu
Člen
co si pamatuju, je tam problém s tím, že se daný kód musí ošetřit dvakrát. Jednou při zakódování příspěvku, jednou při jeho odkódování pro účel úprav.

#11 Zasláno: 19.12.05 1:58

JAja
tak tedy test odkazů mimodekove

#12 Zasláno: 13.6.06 20:28

Vlada
Dobrý den. Jsem absolutní začátečník v tvorbě www. Teď vytvářím svoji první stránku a chtěl bych si tam dát forum od miniBB. Má to stáhnuté ve složce a vůbec mi neni jasné co s tím?? Jestli budete mít někdo trpělivost a čas, tak vám budu moc vděčný za odpověď...Vláďa

#13 Zasláno: 14.6.06 17:16

Toto téma je uzavřeno. Nemůžete zaslat odpověď.

TOPlist