[Tutorial] SMF [hide] BB Code

Started by Klozi, September 09, 2005, 04:57:58 PM

Previous topic - Next topic

Klozi

Ich denke jeder weiß was der Hide-Tag bewirkt. Text innerhalb des Hide-Tag's ist unsichtbar für Gäste und für User, die nicht im Thema geanwortet haben. Admins können hingegen jeden Inhalt des Hide-Tag's sehen, ohne extra posten zu müssen.

Öffne die Subs.php

Suche nach:
global $modSettings, $scripturl, $txt, $settings, $context;

Folgenden Code anschließend einfügen:
global $ID_MEMBER, $db_prefix, $user_info;

Suche nach:
// Moving text... [move]stuff[/move]

Folgenden Code davor einfügen:
// [hide]Guests cannot see this! Mwahaha![/hide]
$codefromcache[] = '~\[hide\](.+?)\[/hide\]~i';
if (isset($disabled['hide']) || $user_info['is_admin'])
    $codetocache[] = '$1';
    else
    {
if (!empty($context['current_topic']) && !$user_info['is_guest'])
{
$request = mysql_query("
SELECT ID_MSG FROM {$db_prefix}messages
WHERE ID_MEMBER = $ID_MEMBER
AND ID_TOPIC = $context[current_topic]
LIMIT 1");

if (mysql_num_rows($request))
$codetocache[] = '<b>$1</b>';
else
$codetocache[] = $txt['hide_tag_a'];
mysql_free_result($request);
    }
    else
    $codetocache[] = $txt['hide_tag_b'];
      }


Öffne Themes/default/languages/Modifications.german.php (Oder wo auch immer deine Sprachmodifikationsdatei liegt)

Suche nach:
?>

Folgendne Code davor einfügen:
$txt['hide_tag_a'] = '<i>Antworte auf diesen Beitrag, um den versteckten Text sichtbar zu machen !</i>';
$txt['hide_tag_b'] = '<i>Gäste müssen sich registrieren oder einloggen und anschließend antworten, um den versteckten Text sichtbar machen zukönnen !<i>';


Nun kann man mit folgenden Code Inhalte verschwinden lassen:
[hide]Nachricht[/hide]

Mitglieder müssen nun auf diesen Beitrag antworten, um den versteckten Inhalt sehen zukönnen.



Orignal von Kirby


cojo

Super ding,klappt wunderbar,vielen dank.
Hast du auch ne Ahnung wie ich diesen Befehl mit nem neuen Button verknüpfen kann

Klozi

Nein, aber Kirby sagte, er wird es als Mod releasen, inklusive Button und Optionen dazu.

Daniel D.

Sonst mit den vorhandenen Buttons vergleichen. Ist nicht schwer.

cojo

Gibt es eigentlich auch die möglich Downloads per Hide Code zu verstecken???

Klozi

Quote from: cojo on September 10, 2005, 02:57:03 PM
Gibt es eigentlich auch die möglich Downloads per Hide Code zu verstecken???

Wie meinst du das genau?

[hide][url=http://domainname.de/downloads/test.zip]Download![/url][/hide]

So in etwa wäre somit der Downloadlink "versteckt".

cojo

Man kann doch bei einem neuen Beitrag unter Erweiterte Optionen eine Datei anhängen,kann man diese auch per Hide Code verstecken???

noex

Quote from: cojo on September 10, 2005, 03:46:41 PM
Man kann doch bei einem neuen Beitrag unter Erweiterte Optionen eine Datei anhängen,kann man diese auch per Hide Code verstecken???

Dies kannst du über das Berechtigungssytem verwalten. Dort kannst du Gästen (oder verschiedenen Benutzergruppen) das ansehen von Dateianhägen verweigern.

lg
noex
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

cojo

Das weiss ich,ich möchte die Datei aber erst nach beantwortung des Beitrages freigeben

ernomo98

das ist aber nicht gültig für die Version SMF 1.1 RC1? oder doch? Ich finde den text die man ersetzen sollte nicht im subs.php

Klozi

Dieses Tut ist sussschließlich nur für Versionen ab 1.0.3 bis 1.0.5 gedacht.
Ich werde mal nachschauen oder nachfragen ob es das schon für neuere Version gibt.

Wenn gibt es ja noch eine Modifkikation, die schon getestet?

Klozi

Hier ein funktionierendes für SMF 1.1 Beta 3:

Suche: $codes = array(

Folgenden Code anschließend einfügen: array(
'tag' => 'hide',
'type' => 'unparsed_content',
'content' => '<b>$1</b>',
'validate' => 'if ($hide_text !== false)
$data = $hide_text;',                             
),


Suche:// Shall we take the time to cache this?

Folgenden Code anschließend einfügen:// [hide]Guests cannot see this! Mwahaha![/hide]
global $ID_MEMBER, $db_prefix, $user_info;


if (!empty($context['current_topic']) && !$user_info['is_guest'])
{
$request = mysql_query("
SELECT ID_MSG FROM {$db_prefix}messages
WHERE ID_MEMBER = $ID_MEMBER
AND ID_TOPIC = $context[current_topic]
LIMIT 1");

if (mysql_num_rows($request))
$hide_text = false;
else
$hide_text = $txt['hide_tag_a'];
mysql_free_result($request);
}
else
$hide_text = $txt['hide_tag_b'];

$cache_id = '';






Für SMF 1.1 RC 1

Öffne Sources/Subs.php und suche:                $codes = array(

Folgenden Code anschließend einfügen: array(
'tag' => 'hide',
'type' => 'unparsed_content',
'content' => '<b>$1</b>',
'validate' => create_function('&$tag, &$data, $disabled', '
global $context, $ID_MEMBER, $db_prefix, $user_info, $txt;
if (!empty($context[\'current_topic\']) && !$user_info[\'is_guest\'])
{
$request = mysql_query("
SELECT ID_MSG FROM {$db_prefix}messages
WHERE ID_MEMBER = $ID_MEMBER
AND ID_TOPIC = $context[current_topic]
LIMIT 1");

if (mysql_num_rows($request))
$data;
else
$data = $txt[\'hide_tag_a\'];
mysql_free_result($request);
}
elseif ($user_info[\'is_guest\'])
{
$data = $txt[\'hide_tag_b\'];
}

$cache_id = "";
'),
),




Hoffe euch geholfen zuhaben. :)

ernomo98

@klozi

Perfekt :D :D
Ich kann nur sagen, Vielen Dank

Klozi

Kein Problem, habe ich gerne gemacht!  :)

ernomo98

@klozi

hast du eine Ahnung wie ich das machen kann, wenn ich anstelle der Text
$txt['hide_tag_a'] = '<i>Antworte auf diesen Beitrag, um den versteckten Text sichtbar zu machen !</i>';
$txt['hide_tag_b'] = '<i>Gäste müssen sich registrieren oder einloggen und anschließend antworten, um den versteckten Text sichtbar

ein Bild darstellen will?

mediman

einfach in den String normalen HTML-code packen (<img src ...)
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

ernomo98


ernomo98

Quote from: cojo on September 10, 2005, 04:29:40 PM
Das weiss ich,ich möchte die Datei aber erst nach beantwortung des Beitrages freigeben

das wäre sehr interessant :D

torsten1608

#18
Wo steht das denn beim rc 2 konnte nämlich nichts finden in der datei ?

danke

Hat sich erledigt !


Advertisement: