MyBB.de Forum
hide links - ein Forum für alle sichtbar machen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: hide links - ein Forum für alle sichtbar machen (/thread-28198.html)



hide links - ein Forum für alle sichtbar machen - Anton - 09.07.2013

ich habe hide links und es funktioniert auch wunderbar.

jetzt möchte ich aber in einem forum die links für alle freigeben, also auch für gäste.

leider weiß nicht wie, was und wo ich es einfügen muss damit es klappt. wäre schön wenn mir jemand helfen könnte.

fid=74 -- um dieses forum geht es.

anbei stelle ich hier mal den kompletten code vom plug in ein.

Code:
<?php
/**
* MyBB 1.6
* Copyright © 2006 MyBB Group, All Rights Reserved
*
* Website: http://www.mybboard.net
* License: http://www.mybboard.net/eula.html
*
*
*/

if(!defined("IN_MYBB")) {
die("Non si pu&ograve; utilizzare questo file direttamente.<br /><br />assicurati che IN_MYBB sia definita.");
}

$plugins->add_hook("parse_message","Hide_links");

function Hide_links_info()
{
return array(
"name" => "Nascondi Links",
"description" => "Nascondi i links agli utenti non collegati",
"website" => "http://www.slimmer.it",
"author" => "Kaito",
"authorsite" => "http://www.slimmer.it",
"version" => "1.0",
);
}

function Hide_links_activate() {
global $db;
$Hide_links_group = array(
"name" => "hl_group",
"title" => "Nascondi Links",
"description" => "Imposta la frase default per i link nascosti!",
"disporder" => "4",
);
$db->insert_query("settinggroups", $Hide_links_group);
$gid = $db->insert_id();
$Hide_links_setting = array(
"name" => "frase_default",
"title" => "Frase sostituente i links",
"description" => "La frase che andrà a sostituire i links. <strong>Usa i BBCode se servono!</strong>",
"optionscode" => "text",
"value" => "Registrati o effettua il Login per visualizzare il link!",
"disporder" => "1",
"gid" => intval($gid),
);
$db->insert_query("settings", $Hide_links_setting);
}

function Hide_links_deactivate() {
global $db;
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='hl_group'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='frase_default'");
}

function Hide_links($message) {
global $mybb;
madancode($var);
if(!$mybb->user['uid']) {
$ltr = array();
preg_match_all("#<a(.*?)</a>#s", $message, $m);
foreach($m[1] as $value) {
$ltr[] = "<a$value</a>";
}
$message = str_replace($ltr, madancode($mybb->settings['frase_default']), $message);
}
return $message;
}

function madancode($var) {
$find = array(
'~\[b\](.*?)\[/b\]~s',
'~\[i\](.*?)\[/i\]~s',
'~\[u\](.*?)\[/u\]~s',
'~\[s\](.*?)\[/s\]~s',
'~\[size=(.*?)\](.*?)\[/size\]~s',
'~\[color=(.*?)\](.*?)\[/color\]~s',
'~\[url=(.*?)\](.*?)\[/url\]~s'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<span style="text-decoration: underline;">$1</span>',
'<span style="text-decoration: strike;">$1</span>',
'<span style="font-size: $1px;">$2</span>',
'<span style="color: $1;">$2</span>',
'<a href="$1">$2</a>'
);
return preg_replace($find, $replace, $var);
}

?>



RE: hide links - ein Forum für alle sichtbar machen - Jockl - 09.07.2013

Versuche es mal so (hab es selbst nicht ausprobiert):

Ersetze
PHP-Code:
if(!$mybb->user['uid']) 
durch
PHP-Code:
if(!$mybb->user['uid'] && $thread['fid'] != 74
Ggf. musst Du auch den Hook für showthread_start setzen.


RE: hide links - ein Forum für alle sichtbar machen - Anton - 10.07.2013

habe den code wie du geschrieben hast eingegeben. es passiert aber nichts.

also muss ich einen hook setzen.

jetzt muss ich gestehen das ich bis jetzt noch nicht mal wusste was ein hook ist. habe mich jetzt schlau gelesen und habe das hier gefunden
Code:
$plugins->run_hooks("global_end");
abgeändert mit showthread_start und es passierte nichts.

wäre schön wenn mir noch jemand erklären könnte wie das mit dem hook funktioniert und wo dieser eingefügt werden muss. ich hatte ihm beim testen immer am anfang des plug ins gesetzt.


RE: hide links - ein Forum für alle sichtbar machen - doylecc - 10.07.2013

Ich würde dafür gar keinen Hook verändern, sondern einfach diesen Teil:

PHP-Code:
function Hide_links($message) {
global 
$mybb

ersetzen durch:

PHP-Code:
function Hide_links($message) {
global 
$mybb$post;

if(
$post['fid'] == 74) return; 



RE: hide links - ein Forum für alle sichtbar machen - Anton - 10.07.2013

hab es so gemacht wie waldo es geschrieben hat. hat ohne probleme geklappt.

danke.