Seite 1 von 1

Zitate <Erweitern> im profil festlegen

Verfasst: Mi 18.Jan, 2006 19:32
von Novalis
hiho ich hatte schonmal in nem anderem forum gefragt ^^
phpbbdim
gibt es ne möglichkeit das so zu machen
das die user einstellen können ob sie zitate voll oder gekürzt sehen wollen?
es handelt sich bei dem was cih meine um einen mod der ermöglicht das zitate verkürzt angezeigt werden bzw in nem minifenster was man durch klick auf "erweitern" auf volle größe strecken kann..

nun das problem/die frage
wie kann ich es machen das ich im userprofil ne einstellung habe
"immer volle zitate anzeigen ja/nein"

so des wars schon ^^
eventuel ein wink mitm zaun wär janz nett ^^
(wobei ein zaunpfahl manchmal auch reicht ; )

Verfasst: Mi 18.Jan, 2006 23:53
von oxpus
Öhm, erstens weiß ich nicht, um welchen MOD es sich handeln soll und zweitens habe ich mit Zitaten noch nicht soooo viel gemacht :confused:

Sicher könnte man im Userprofil eine solche Option einbauen, aber wie dann was automatisch verkleinern/vergrössern???

Welcher MOD soll es denn sein???

Verfasst: Do 19.Jan, 2006 02:46
von AmigaLink
Ich vermute mal es ist der Select Expand BBcodes MOD (oder der gleichwertige von FI) gemeint.

Verfasst: Sa 21.Jan, 2006 17:55
von Novalis
http://suicide-kills.de/viewtopic.php?p=11264#11264

das meine ich ^^

ka wie der mod heißt der war bei phpbb-dimensions mit dabei ^^

Verfasst: Mo 23.Jan, 2006 20:19
von AmigaLink
Das sieht mir nach dem Select Expand BBcodes MOD aus. Der Arbeitet mit Javascript das in der bbcode.tpl eingebunden ist/wird.

Interessant wäre die Idee von Novalis (ich habe den MOD auch im einsatz (allerdings nur für Codeboxen)). Leider hab ich keinen Schimmer von Javascript. :(

Verfasst: Mo 23.Jan, 2006 20:22
von oxpus
Leider hab ich keinen Schimmer von Javascript
Geht mir auch so :(

Verfasst: Di 24.Jan, 2006 08:46
von Bootenks
leider hab ich jetzt nicht die Zeit es auszutüfteln aber hier mal ein paar tipps:

öffnet mal die select_expand_bbcode.js

da gibt es eine Funktion die nennt sich:

_SXBB.prototype.resize = function(cmd)

das müsste man so abändern

_SXBB.prototype.resize = function(cmd, allow)

dann müsste man nach:

var x = this.getObj(this.id+'x');
if( !x ) return;

das hier einfügen

if (allow == 0) cmd = this.T['expand'];

und dann noch nach dem

this.size = this.min;
o.style.height = this.size + 'px';
o.style.overflow = 'auto';
x.innerHTML = this.genCmd('resize', this.T['expand']);

das hier:

allow = 1;

zu guter letzt brauch man dann noch diese Funktion:

function SXBB_evalSize(cmd)

da drin müsst ihr es proggen (1 oder 2 Zeilen) dass man von draussen quasi den Wert aus der Datenbank des jeweiligen Users nimmt und da einfügt... 0 für erlaubt und 1 für nicht erlaubt... oder wie ihr wollt... Das müsste mit einer Zusatzfiunktion get_allow(); zu machen sein die nichts weiter zu tun hat als mit return den Wert dann weiterzugeben.

Es sollte so funktionieren...

Wie gesagt habe leider in 45min Prpfung und cih muss ja noch hin *grins* Also viel Erfolg!

Verfasst: Di 24.Jan, 2006 14:20
von AmigaLink
^^ Ist ein schöner Ansatz. :)
Hat aber leider einen fetten Hacken! Und zwar lassen sich php-Variablen nicht so ohne weiteres an Javascript übergeben. :(
Die einzige, mir bekannte, Möglichkeit wäre die komplette select_expand_bbcode.js ins template zu übernehmen und die Variable dann mittels Platzhalter da reinzuschreiben. ^6

Verfasst: Di 24.Jan, 2006 15:05
von oxpus
Ja, AmigaLink, da muss ich Dir beipflichten: In ein externes Javascript sind PHP-Platzhalter nicht übertragbar, sondern nur direkt in ein Template!

Verfasst: Di 24.Jan, 2006 16:39
von Bootenks
Edit: Nochmal anders ausgedrückt:

man setzt einfach vor die skript Datei eine Variable xyz die wird dann mit {ALLOW} gefüllt und auf diese kann dann das Skript zugreifen Oo

*könnte so auch gehen oder nicht oO*

Edit2:

hier mal wie es funzen sollte:

in der bbcode_body.tpl :

Code: Alles auswählen

--- FIND 3 TIMES ---
<script type="text/javascript" src="{U_SXBB_JSLIB}"></script>

--- BEFORE ADD ---
<script type="text/javascript">
<!--
var allow = {EXPAND_ALLOW};
//-->
</script>

--- OPEN ---
select_expand_bbcodes.js

--- FIND ---
	var o = this.getObj(this.id);
	if( !o ) return;
	var x = this.getObj(this.id+'x');
	if( !x ) return;

--- AFTER ADD ---
	if (allow == 1) cmd = this.T['expand'];

--- FIND ---
		// Check to conditionally hide the [expand] link, if once expanded, adding [contract] is not really useful.
		x.innerHTML = ( (o.scrollHeight-this.margin) > this.min ? this.genCmd('resize', this.T['contract']) : '' );

--- AFTER ADD ---
		allow = 0;
So nun müsst ihr noch dran denken in der bbcode.php die daten aus der userprofile zu ziehen und entsprechend der Templatevariable definieren. Oo So müsste es klappen ;)

Edit 3: Ah ich seh was nicht klappen köntne ... die bbcode.php weiss nicht über deine id ~.~ so wird das mist naja ... vielleicht fällt euch dazu was ein ;-) aber ansonsten funktioniert so das Schema ;)

Verfasst: Mi 25.Jan, 2006 00:39
von AmigaLink
Also die Userdata in der bbcode.php verfügbar zu machen dürfte wohl das kleinste Problem sein. ;) Wobei ich jetzt spontan nicht sagen kann ob da evtl. die Performance drunter leidet.

Aber wenn deine Idee zur Variablenübergabe wirklich Funktioniert, Boo, dann dann danke ich dir hiermit mal dafür. Denn das kann ich bei meinem Thread Slideshow gut gebrauchen. :p

Verfasst: Mi 25.Jan, 2006 08:29
von Bootenks
ja das klappt auf alle fälle so ^^ wenn du zum Beispiel zwei js Skript lädst, dann kannst du immer im zweiten Skript auf die Funktionen zugreifen die das erste Skript liefert. Ist dann halt global verfügbar. (aber nur im js)

Aber das einbinden der userdata in die bbcode.php ist nicht so leicht wie es sich im ersten Moment anhört. Denn diese Datei wird ja letzten Endes in die viewtopic.php und anderen Dateien inkludiert. So müsste man aufpassen, dass man das Sessionmanagment nicht verletzt und somit gravierende Fehler erzeugt. Naja vielleicht kennst du da ja wirklich einen leichten Kniff ir fällt da im Moment keiner ein. Es freut mich aber wenn du meinen Tipp bei irgendeinem anderem Mod verwenden kannst. ;-)

Verfasst: Mi 25.Jan, 2006 17:23
von AmigaLink
Aber das einbinden der userdata in die bbcode.php ist nicht so leicht wie es sich im ersten Moment anhört. Denn diese Datei wird ja letzten Endes in die viewtopic.php und anderen Dateien inkludiert.
Das macht ja nichts.
Theoretisch muss man den Userdata-Array nur Globalisieren. Und selbst wenn das zu irgendwelchen Problemen führen sollte, ist es ja immer noch so das die bbcode.php zu großen Teilen aus Funktionen besteht. Und innerhalb von Funktionen werden Variablen ja als eigenständig behandelt. ;)

Ich probier das hier jetzt nicht aus (Zeit), aber ein ernsthaften Problem dürfte da eigentlich nicht entstehen.

Verfasst: Fr 27.Jan, 2006 23:36
von Novalis
öhhm ok...

*keinen blassen hab*

XD

also ich versteh wie es klappen soll aber was ich noch dazu einbauen muss ka XD
hab mich mit dem templates und dem aufbau von phpbb noch nie so stark beschäftigt ^^