wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?

01.04.2022 18:55 (zuletzt bearbeitet: 01.04.2022 19:08)
avatar  uweq
#1 wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Wenn ich jetzt nicht in Javascript eine Schleife schreiben möchte, sondern mit Hilfe der XOBOR-Variablen, wie muss ich den spärlichen Text ohne Beispiel interpretieren ?

Als Erklärung steht
{{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}
Erzeugt eine neue Schleife {{neueschleife:startlist}} .. in der Alle Elemente aus {{schleife.startlist}} enthalten sind,
welche für das element {{schleife:filterfeldname}} den Wert "filterwert" haben.
Der Wert max ist optional - es werden maximal max Aktionen in der neuen Schleife gespeichert.


Ich habe jetzt schon einige Versuche gemacht, den passenden Source zu schreiben, zugegeben ist Neuland für mich,
und leider alles vergebens
bisher hab ich folgendes hier drin in meinem Plugin

1
2
3
4
5
6
7
 
    var i = 0;
// {{schleife|filter(i, $('.xquoteable').attr('id')!=0) }}
{{i.startlist}}

// alert( 'alert - ' + i + ' - ' + $('.xquoteable').attr('id'));
{{i.endlist}}
 
 


..von dem alert() mal abgesehen, ist Test.
mit diesem "übrigen Code" läuft das Plugin noch, aber sowie ich die Schleife ent-kommentiere, geht nix mehr.

interpretiere ich die Erklärung falsch ? oder warum komme ich nicht "zu einem Erfolg" ?


 Antworten

 Beitrag melden
01.04.2022 20:57
avatar  uweq
#2 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Inzwischen hab ich dies hier im Sorce drin

1
2
3
4
5
6
7
 
    var i = 0;
{{ i|$('.xquoteable:eq(i)').attr('id')!=0 }}
{{i.startlist}}
alert( 'alert - ' + i + ' - ' + $('.xquoteable').attr('id'));
i++;
{{i.endlist}}
 
 


zumindest läuft mein Plugin "weiter durch", nur dass mir die Schleife nicht alles anzeigt. ( nur 1x alert() )
eigentlich müssten 4 Beitrags-ID's gefunden werden.


 Antworten

 Beitrag melden
02.04.2022 10:05
avatar  Ingmar
#3 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
avatar
Technik

Hallo Uwe.

Du bringst hier ein paar Dinge durcheinander.

Das eine ist Javascript-Code. Dieser hat mit der Forensoftware erst einmal nichts zu tun. Javascript wird quasi auf jeder Internetseite verwendet um Inhalte "dynamisch" je nach Endegerät/Besucher nachzuladen bzw anzuzeigen. Javascript-Code wird direkt im Browser des Besuchers ausgeführt.

Das andere ist unser Forensoftware-Interne Template-Code. Dieser wird noch VOR der Ausgabe der Seite serverseitig ausgeführt. Somit können dort auch Rechteabfragen und ähnliches gemacht werden.

Mischen kannst du diese Programmiersprachen aber nicht, das sind sehr unterschiedliche Dinge.

Im Template-Code kannst du auch keine eigenen Arrays definieren und durch diese dann in einer Schleife iterieren. Das geht nur mit den von der Forensoftware ausgegebenen Daten. Am besten bearbeitest du mal das Template Thread-Flat und schaust dir an, wie das dort mit dem {{message}}-Array gemacht wird.
Innerhalb einer Schleife kann man übrigens mit {{_current_list_i}} den Index des aktuellen Elements ausgeben.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
02.04.2022 10:43
avatar  uweq
#4 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Danke für die Erklärung.
werde mal sehen wie ich das "vorgeschlagene auslesen" kann.
Beispiel-Sourcen oder ähnliches, welche man nachvollziehen kann, sind / waren bisher
immer der beste Lehrstoff.

Zitat von Ingmar im Beitrag #3
Am besten bearbeitest du mal das Template Thread-Flat und schaust dir an, wie das dort mit dem {{message}}-Array gemacht wird.

mal sehen ob ich diese Infos auch finde


 Antworten

 Beitrag melden
02.04.2022 11:01
avatar  uweq
#5 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Zitat von uweq im Beitrag #4
mal sehen ob ich diese Infos auch finde nachdenken]

Ich hab es gefunden !
...jetzt erst einmal lesen angesagt-


 Antworten

 Beitrag melden
02.04.2022 11:13 (zuletzt bearbeitet: 02.04.2022 11:15)
avatar  Ingmar
#6 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
avatar
Technik

Zitat von uweq im Beitrag #5
Zitat von uweq im Beitrag #4
mal sehen ob ich diese Infos auch finde nachdenken]

Ich hab es gefunden !
...jetzt erst einmal lesen angesagt-


Viel Erfolg dabei. Bei Rückfragen einfach melden.

Das hier enthält auch einige hilfreiche Beispiele:
Wiki:Plugin-Tutorial-fuer-Einsteiger-bersicht

Und hier findest du eine Liste der immer verfügbaren Variabeln:
Wiki:Liste-der-Forenvariablen

Für die Variabeln, die nur auf bestimmten Seiten ausgegeben werden (also z.B {{message}} in der Themenansicht) gibt es leider keine Liste - da musst du im jeweiligen Template schauen, welche Variabeln dort verwendet werden.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
02.04.2022 11:24 (zuletzt bearbeitet: 02.04.2022 11:47)
avatar  uweq
#7 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

wenn ich in ein Template schauen kann, hilft mir das (zwar nicht auf den ersten Blick ), aber
ich kann mich da irgendwie durcharbeiten. Auch unbekannte Schreibweisen sind da immer mit dabei.
Da muss man ganz in Ruhe durch ( 1100 Zeilen ? ) sind da nicht mal schnell verstanden.
Ich denk mal Übung macht den Meister.

Nochmals Danke von mir, (für den Zugang den ich bisher vermisst habe)
MfG Uwe


 Antworten

 Beitrag melden
02.04.2022 14:58
avatar  uweq
#8 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

so das funktioniert inzwischen sowie ich möchte.
Lass mir dass jetzt einfach in einem div-Bereich anzeigen, sieht dann so aus.

somit habe ich nun meine ersehnten Werte.


(restliche Probleme folgen dann vielleicht später )

mfG Uwe


 Antworten

 Beitrag melden
02.04.2022 23:09
avatar  uweq
#9 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Zitat von Ingmar im Beitrag eigenes Plugin schreiben ( HTML-Seitencode abändern )
......
Dazu reicht eine Zeile in einem inline Element in thread_flat bei thread_before_message

1
2
3
 

{{user_registered==false.start}}{{message:text.start}}{{message:text|shortstring(50,"...")}}{{message:text.end}}{{user_registered==false.end}}
 
 



Leider fehlt mit dann im abgeschnittenen Beitrag die Formatierung des ursprünglichen Textes.
gibt es da eine andere Möglichkeit ?


 Antworten

 Beitrag melden
04.04.2022 07:58
avatar  Ingmar
#10 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
avatar
Technik

Zitat von uweq im Beitrag #9
Leider fehlt mit dann im abgeschnittenen Beitrag die Formatierung des ursprünglichen Textes.
gibt es da eine andere Möglichkeit ?


Leider aktuell nicht. Wir könnten eventuell eine "shortstring"-Variante bereitstellen, die HTML-Tags ignoriert. Das wäre auch an anderen Stellen hilfreich

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
04.04.2022 21:37 (zuletzt bearbeitet: 04.04.2022 21:48)
avatar  uweq
#11 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
uw
Mitglied

Zitat von Ingmar im Beitrag #10
Zitat von uweq im Beitrag #9
Leider fehlt mit dann im abgeschnittenen Beitrag die Formatierung des ursprünglichen Textes.
gibt es da eine andere Möglichkeit ?


Leider aktuell nicht. Wir könnten eventuell eine "shortstring"-Variante bereitstellen, die HTML-Tags ignoriert. Das wäre auch an anderen Stellen hilfreich
*daumen hoch*
Ich hab den Nachteil mal für mich jetzt mit JS "repariert". Funktioniert zu meiner Zufriedenheit ganz gut.
könnte ja dann so etwas wie "html_message" werden, analog zu JQuery "xxx.text()" und "xxx."html()"
( ich bleibe gespannt )


 Antworten

 Beitrag melden
19.04.2022 09:29
avatar  Ingmar
#12 RE: wie muss ich "{schleife|filter(neueschleife, filterfeldname==filterwert[, max])}}" umsetzen ?
avatar
Technik

Die Funktion

1
 
{{string|shorthtmlstring(maxlänge,"platzhalter")}}
 


wurde nun intern hinzugefügt und kann ab dem nächsten Update dann auch online verwendet werden.

Sie funktioniert analog zur shortstring-Funktion, ignoriert dabei aber HTML-Tags.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!