Seite 2 von 5

Verfasst: 02.03.2008 20:42
von Dr.Death
@Dark_Shade:

Du bist halt nicht allen Beiträgen gefolgt..... begebe Dich auf die Spur von Mahony..... ich präsentiere doch nicht alles gleich auf einem Silberteller ;-)

Der von mir gepostete Link führt schon zum Ziel.... nur ein wenig selber lesen solltest Du schon.

Verfasst: 02.03.2008 22:58
von 4seven
Hi nochmal @Dark_Shade,

die einfachste und für mich effektivste Methode ist die zusätzliche Abschaltung der sog. magic_urls.

Also alle Änderungen wie gehabt + zusätzlich:

Öffne

includes/functions_content.php

Finde

Code: Alles auswählen

	case MAGIC_URL_LOCAL:
			$tag			= 'l';
			$relative_url	= preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
			$url			= $url . '/' . $relative_url;
			$text			= ($relative_url) ? $relative_url : $url;
		break;

		case MAGIC_URL_FULL:
			$tag	= 'm';
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
		break;

		case MAGIC_URL_WWW:
			$tag	= 'w';
			$url	= 'http://' . $url;
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
		break;

		case MAGIC_URL_EMAIL:
			$tag	= 'e';
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
			$url	= 'mailto:' . $url;
		break;
Ersetze mit

Code: Alles auswählen

/*
		case MAGIC_URL_LOCAL:
			$tag			= 'l';
			$relative_url	= preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
			$url			= $url . '/' . $relative_url;
			$text			= ($relative_url) ? $relative_url : $url;
		break;

		case MAGIC_URL_FULL:
			$tag	= 'm';
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
		break;

		case MAGIC_URL_WWW:
			$tag	= 'w';
			$url	= 'http://' . $url;
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
		break;

		case MAGIC_URL_EMAIL:
			$tag	= 'e';
			$text	= (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
			$url	= 'mailto:' . $url;
		break;
*/
Das sorgt dafür, das jegliche Eingaben, wie www.google.de oder auch http://www.google.de nicht mehr ohne den echten [url]-Tag geparst werden. Sie werden also verworfen > Leeres Postfeld. Ist ziemlich effektiv, weil rigeros und einfach. So gewöhnen sich die User gleich an den [url]- Button :wink:

lg
4seven

Verfasst: 09.03.2008 18:32
von 4seven
Hallo,

ich habe vorhergehenden Code korrigiert (18:45):
http://www.phpbb.de/viewtopic.php?p=964507#964507

Bei Bedarf bitte abändern

lg
4seven

Verfasst: 30.03.2008 11:58
von Dark_Shade
Nochmal danke an Euch beide!

@Dr. Death: Tut mir leid, aber ich werde aus deinem Link irgendwie nicht schlau... Also wenn ich das richtig verstanden habe, kann man mit dem Hide MOD manuell Parts verstecken... aber ich will ja automatisch alle URLS für Besucher ausschalten. (Egal ob [url] benutzt wurde oder nicht.)

@4seven: Also bei deinem Lösungsvorschlag werden die Links ja anscheinend "unsichtbar" gemacht. Könnte ich das erweitern, und stattdessen ein Text aka "Please Login bla.." einblenden lassen?

Um zu erreichen, dass man dann die Links sieht, wenn man eingeloggt ist, könnte man ja /* ... */ einfach durch if (user_logged_in) { ... } ersetzen, oder? (Ich weiß jetzt nicht genau die if-Anweisung)

Verfasst: 30.03.2008 16:14
von 4seven
@4seven: Also bei deinem Lösungsvorschlag werden die Links ja anscheinend "unsichtbar" gemacht. Könnte ich das erweitern, und stattdessen ein Text aka "Please Login bla.." einblenden lassen
Genau das was du beschreibst macht ja das snippet. bist du nicht eingeloggt steht da:

Code: Alles auswählen

bla bla bla wenn du alles sehen willst logg dich ein oder registrier dich bla
hier lesen
http://www.phpbb.de/viewtopic.php?p=964507#964507
Um zu erreichen, dass man dann die Links sieht, wenn man eingeloggt ist, könnte man ja /* ... */ einfach durch if (user_logged_in) { ... } ersetzen, oder? (Ich weiß jetzt nicht genau die if-Anweisung)
auch das macht das snippet
aber ich will ja automatisch alle URLS für Besucher ausschalten. (Egal ob [url] benutzt wurde oder nicht.)
auch das macht das snippet

siehe auch hier, ganze drei posts zurück

http://www.phpbb.de/viewtopic.php?p=964759#964759

p.s. lese bitte nochmal den ganzen beitrag :wink:

[offtopic]
geht jetzt nicht gegen dich, aber manchmal hab ich das gefühl, es liest hier kaum jemand mehr (schon lange nicht aufmerksam), sondern überfliegt in 3,8 nanosekunden alles und wenn ihn, was er lesen möchte oder wissen will, nicht in 3 meter größe anspringt, dann wird trotzdem gefragt. dann darf man nochmal und nochmal und nochmal erklären, zeigen, links setzen usw. etc. pp.
[/offtopic]

Verfasst: 30.03.2008 17:12
von Dark_Shade
Hallo 4seven,
[offtopic]
geht jetzt nicht gegen dich, aber manchmal hab ich das gefühl, es liest hier kaum jemand mehr (schon lange nicht aufmerksam), sondern überfliegt in 3,8 nanosekunden alles und wenn ihn, was er lesen möchte oder wissen will, nicht in 3 meter größe anspringt, dann wird trotzdem gefragt. dann darf man nochmal und nochmal und nochmal erklären, zeigen, links setzen usw. etc. pp.
[/offtopic]
Ja, das kann ich sehr gut verstehen. Doch ich habe wirklich die Links angeschaut und dort aufmerksam alles durchgelesen. ;)

Also jetzt nochmal zu deinen beiden Snippets.
Das erste:
Das habe ich bei mir verbaut. Durch das Snippet werden alle URLs, die mit [url] geschrieben wurden, durch ein Text ersetzt, wenn man nicht eingeloggt ist.

Das zweite:
Durch das Snippet werden anklickbare URLs nicht-anklickbar gemacht und auch unsichtbar gemacht. D.h. man wird dazu gezwungen, [url] zu benutzen, damit das erste Snippet zum Einsatz kommt.


Habe ich das so richtig verstanden?

Gruß und Danke

Verfasst: 30.03.2008 17:24
von 4seven
Genau :wink:

weil, eine beliebige, einfach in das post (ohne tag) eingegebene url in einen text zu parsen ist m.E. nicht (ohne weiteres) möglich. da kann mich aber gerne jemand anderes eines besseren belehren. positive nebeneffekte: die user gewöhnen sich gleich an die korrekte benutzung der tags + spambots haben in den gastbereichen wenig chancen ihre links anzubringen

Verfasst: 31.03.2008 00:21
von BaerchenHH
Erst einmal Danke 4seven für deine Snippets...

Ich habe aber folgendes auf dem Herzen zu diesem Thema:
  1. Links ohne dem URL-Tag werden normal dargestellt und gelinkt.
    (Gilt nur für bestehende Postings, bei neuen wird der Link bereits im Edit entfernt!)
  2. Links mit dem URL-Tag werden wie gewünscht überschrieben...
    Dabei habe ich den Text abgeändert, so daß der User sich wahlweise zur Registrierung oder zum LogIn klicken soll...

    Code: Alles auswählen

             'url' => array('{DESCRIPTION}' => '<font size="-2" color="#008040" <a href=""></a>*** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge</u></a> dich ein, um alle Funktionen nutzen zu k&ouml;nnen. *** </font>')
    Leider wird hierbei der erste Teil ("*** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte ") auf eine nicht existierende Seite gelinkt, ergibt also einen 404er.
    Ich habe das ersteinmal mit folgendem Code (ersetzen) gelöst:

    Code: Alles auswählen

             'url' => array('{DESCRIPTION}' => '<font size="-2" color="#008040" <a href=""></a>*** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge</u></a> dich ein, um alle Funktionen nutzen zu k&ouml;nnen. *** </font>') 
    Gibt es da ne elegantere Lösung?
  3. eMail-Adressen werden von dieser Änderung miteinbezogen und müßen wohl vom [email]-BBCode umschloßen sein, um angezeigt werden zu können (teste ich nachher mal).

    Mann möge mich jetzt schlagen, aber ich vermute, daß wenn mann eMails von dieser Änderung ausschließen wil, muß einfach der letzte Block (case MAGIC_URL_EMAIL) ausgelassen werden, oder?

Verfasst: 31.03.2008 03:19
von BaerchenHH
Ich habe jetzt mal versucht, das ganze auf eMails auszuweiten... das haut aber nicht so richtig hin...

Mit dem [email]-Tag werden die eMails zwar in dem gleichen Schema wie die URLs dargestellt, allerdings wird für Gäste der Alternativtext nicht angezeigt...!

Das Ändern der Zeile

Code: Alles auswählen

         'email'               => array('{EMAIL}'      => '$1', '{DESCRIPTION}'   => '$2'), 
im ersten Abschnitt in

Code: Alles auswählen

         'email' => array('{DESCRIPTION}' => '<font size="-2" color="#008040" <a href=""></a>*** Diese Adresse ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge</u></a> dich ein, um alle Funktionen nutzen zu k&ouml;nnen. *** </font>'),
brachte leider nicht den gewünschten Erfolg...!

PS: Den [email]-Tag-Button habe ich mal glaube ich irgendwo deaktiviert, weiß jetzt aber nicht, wo ich ihn wider aktivieren kann :oops:
Könnt ihr mir einen Tip geben?

Verfasst: 31.03.2008 03:34
von 4seven
Hallo BaerchenHH,
Leider wird hierbei der erste Teil ("*** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte ") auf eine nicht existierende Seite gelinkt, ergibt also einen 404er.
Ich habe das ersteinmal mit folgendem Code (ersetzen) gelöst:

Code: Alles auswählen

         'url' => array('{DESCRIPTION}' => '<font size="-2" color="#008040" <a href=""></a>*** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge</u></a> dich ein, um alle Funktionen nutzen zu k&ouml;nnen. *** </font>') 
Gibt es da ne elegantere Lösung?
Eine elegantere nicht, aber eine richtige *g

Code: Alles auswählen

 'url' => array('{DESCRIPTION}' => '<font size="-2" color="#008040"> *** Dieser Link ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge</u></a> dich ein, um alle Funktionen nutzen zu k&ouml;nnen. *** </font>') 
Man möge mich jetzt schlagen, aber ich vermute, daß wenn man eMails von dieser Änderung ausschließen wil, muß einfach der letzte Block (case MAGIC_URL_EMAIL) ausgelassen werden, oder?[/list]
Korrekt
Ich habe jetzt mal versucht, das ganze auf eMails auszuweiten... das haut aber nicht so richtig hin...

Mit dem [email]-Tag werden die eMails zwar in dem gleichen Schema wie die URLs dargestellt, allerdings wird für Gäste der Alternativtext nicht angezeigt...!
Das läuft auch nicht mit jedem Tag so und auch nicht ohne weiteres, zumal der Email-Tag in einem Standard phpBB3 garnicht existiert. Es werden nur Dinge wie ** irgendwas@domain.de mit den Magic-Urls geparst, als mailto:irgendwas@domain.de. Wie hier im 2er, wie du ** siehst.
PS: Den [email]-Tag-Button habe ich mal glaube ich irgendwo deaktiviert, weiß jetzt aber nicht, wo ich ihn wider aktivieren kann :oops:
Könnt ihr mir einen Tip geben?
Siehe einen drüber

gruß
4seven