← SMF

Transformar palavras pre-definidas em links no SMF

Lida 4778 vezes

Offline

marconi 
Membro
Mensagens 26 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Olá!

Gostava de transformar palavras pre-definidas em links no SMF através da utilização da censura.

Contudo, ao fazê-lo, acontecem-me 2 problemas:

1. Ao fazer citações o SMF censura duas vezes a palavra e fica tudo estragado.

Exemplo: sempre que se escreve "palavra" passar palavra a link para palavra.com.
Ao fazer citação irá aparecer a tag de link e um novo link em "palavra" do link anterior "palavra.com".

2. Ao inserir as palavras em assunto acontece o mesmo problema.

Como posso ultrapassar este problema?

 :maideia:
Offline

Carlos Gandra 
Administrador
Mensagens 3081 Gostos 97
Feedback +1

Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Olá marconi,

Pois isso nos títulos acho que não há nada a fazer, repara que as palavras censuradas não foram feitas para este fim, é um desenrasque e não uma solução ;)

Quanto ao conteúdo nas citações etc, o que podes fazer é colocar o próprio link directo, ou seja, em vez de transformares Paypal em (url=http://paypal.com)Paypal(/url), transformares directamente em http://paypal.com pois o SMF torna o endereço automaticamente clicável.

Neste momento é o que existe a este nível (ou pelo menos que eu conheça), pelo que ainda não é possível fazer algo do género do Wordpress por exemplo.
Offline

narg 
Membro
Mensagens 265 Gostos 0
Feedback +2

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

No ficheiro de display.template.php na pasta dos temas procura

Código: [Seleccione]
// Show the post itself, finally!
Por baixo acrescenta

Código: [Seleccione]
$palavra[0] = '/teste1/';
$palavra[1] = '/teste2/';
$palavra[2] = '/teste3/';
$sub[0] = '<a href="link_palavra1">palavra1</a>';
$sub[1] = '<a href="link_palavra2">palavra2</a>';
$sub[2] = '<a href="link_palavra3">palavra3</a>';
$message['body']  = preg_replace($palavra, $sub, $message['body'] );


Não testei o código, é preciso ver se substitui bem.


Offline

bibi 
Membro
Mensagens 329 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Avatar Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

No ficheiro de display.template.php na pasta dos temas procura

Código: [Seleccione]
// Show the post itself, finally!
Por baixo acrescenta

Código: [Seleccione]
$palavra[0] = '/teste1/';
$palavra[1] = '/teste2/';
$palavra[2] = '/teste3/';
$sub[0] = '<a href="link_palavra1">palavra1</a>';
$sub[1] = '<a href="link_palavra2">palavra2</a>';
$sub[2] = '<a href="link_palavra3">palavra3</a>';
$message['body']  = preg_replace($palavra, $sub, $message['body'] );


Não testei o código, é preciso ver se substitui bem.




Alguem ja testou isto?
Funciona?
Offline

amaru 
Membro
Mensagens 600 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Aqui não funcionou.
Offline

Typhoon 
Membro
Mensagens 94 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 50 Posts 10 Posts

Offline

narg 
Membro
Mensagens 265 Gostos 0
Feedback +2

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Aqui não funcionou.
Envia-me o ficheiro display.template.php que alteras-te para ver ...
Offline

Gonçalo Martins 
Membro
Mensagens 229 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Não sei se te poderá ser util:

http://weblouca.com/Javascript-/-AJAX/links-de-afiliados-com-javascript-update

Basicamente faz o que se quer