Versuch mit str_replace

06.01.2014 19:22
avatar  Damian
#1 Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Hallo hier melde ich mich wieder :)

Ich bin durch die Templatewelt wieder Kreuz und Quer am Arbeiten ;) und hätte auch eine frage gleich mal:
Ich habe die Umfragebox versucht mit einem Forencode und der {{message:text|str_replace(in,out)}} Methode in den Beitrag einzufügen.


Beispiel:
Forencode: [umfrage][/umfrage] wird zu:<div class="umfrage"></div>

Im Template nehme ich den ersetzten Forencode und Packe diesen in die Variable {{in}}:
{{in.start}}<div class="umfrage"></div>{{in.end}}
Und die Ausgabe die dann ersetzt werden soll in {{out}}:
{{out.start}}
<div class="umfrage">
{{vote==true.start}}

... ganzer Inhalt der Umfrage mit Variablen...

{{vote==true.end}}
</div>
{{out.end}}

und dann noch das ersetzen ins Beitragstext:

{{message:text|str_replace(in,out)}}

Meine frage dazu:
Ist diese Lösung sehr Traffic/Resscuren fressend?

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
06.01.2014 19:35
avatar  Ingmar
#2 RE: Versuch mit str_replace
avatar
Technik

Naja, das str_replace ist natürlich ein bischen cpu-lastig (insbesondere bei sehr langen Beiträgen).

Das halten die Server aber ohne Probleme aus

Eigentich eine schöne Lösung - schick mal nen Link wenn's fertig ist...

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
06.01.2014 19:41
avatar  Damian
#3 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Ich verstehe herraus das ichs drinnen lassen darf und es weiterentwicklen werde

Ich hab jetzt bloß ein anderes Template nur (Das von mir selbst aufgeführte) aber im Großen und ganzen ist ja die Technik die selbe, nur der Inhalt der Umfrage halt anders
Ich bemühe mich, und schicke dir den Link noch diese Woche raus

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
15.01.2014 15:06
avatar  Damian
#4 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Zitat von Damian im Beitrag #3

Ich bemühe mich, und schicke dir den Link noch diese Woche raus

Naja, soviel zu meinen "Versprechen" immer... ^^ Hier mal der Link: http://513283.homepagemodules.de/t130f8-test.html
Ich sehe gerade das dass gerade nicht Optisch so ganz hinhaut, liegt aber auch daran das was dran noch gemacht werden müsste... ^^

Falls gewollt, stelle ich auch ein Code zur verfügung für die 4 Templates: ProSilver, Business, Gaia und Standart raus... Weil das passt gerade bei im Beitrag nicht und für andere Templates auch nicht Werkel, werkel, werkel

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
23.01.2014 17:26 (zuletzt bearbeitet: 23.01.2014 17:27)
avatar  Damian
#5 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Jetzt wollte ich mich nun doch etwas weiter in diese Methode eingraben und habe eine frage:

Ist es möglich abzufragen per true-Schleife ob das was zu ersetzen sollte auch verfügbar ist?

Beispiel:

1
2
3
4
 
		{{message:text|str_replace(voteinput,voteoutput)==true.start}}
{{message:text|str_replace(voteinput,voteoutput)}}
{{voteoutput.start}}0{{voteoutput.end}}
{{message:text|str_replace(voteinput,voteoutput)==true.end}}
 

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
30.01.2014 19:50 (zuletzt bearbeitet: 30.01.2014 19:53)
avatar  Damian
#6 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Oke, ich habe da wieder was herrausgefunden den alten trick:

1
2
3
4
5
6
7
 
				{{message:text~=voteinput.start}}
{{message:text|str_replace(voteinput,voteoutput)}}
{{voteoutput.start}}0{{voteoutput.end}}
{{message:text~=voteinput.end}}
{{message:text!~=voteinput.start}}
{{message:text}}
{{message:text!~=voteinput.end}}
 


Leider aber !!! Will das trotzdem nicht hinhauen... Jetzt wird der Beitragstext doppelt angezeigt und {{voteoutput==0}} eingestellt, weil die Schleifen nicht greifen. Packe ich {{message:text}} innerhalb von {{message.starlist}} in eine Variable und mache dann alles oder nur die Abfragen mit der eigenen Variable, wird ganz normal der Beitragstext genommen ohne eine Ersetzung... Ist da ein Limit gesetzt das er nach sagen wir mal 100 Zeichen das Enthält (~ in der Variable) nicht mehr Funktioniert, oder mache ich tatsächlich etwas Falsch?
Gerne hier zum Ansehen und auch ein EInblick ins Template erlauben: http://513283.homepagemodules.de/t130f8-test.html.

Noch eine frage: Wie nennt man diese "Abfragen" eigentlich nach dem Variablennamen? Ich habe es hier gefunden: So löst man ein Ereignis für einen bestimmten User aus! (2) und wollte es in die Variableliste mit einbeziehen

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
04.02.2014 19:29
avatar  Damian
#7 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Zitat von Damian im Beitrag #6
[...]

Noch eine frage: Wie nennt man diese "Abfragen" eigentlich nach dem Variablennamen? Ich habe es hier gefunden: So löst man ein Ereignis für einen bestimmten User aus! (2) und wollte es in die Variableliste mit einbeziehen


Bitte @Ingmar könnte, mir jemand sagen wie das genau den heißt? Ich möchte das auch in mein Wikiartikel einbeziehen
Meine Lösung scheint immernoch nicht korrekt zu funktionieren, leider. Entweder ist es ein Bug in der Software irgendwie, oder einfach ein Denkfehler...

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
05.02.2014 13:00
avatar  Ingmar
#8 RE: Versuch mit str_replace
avatar
Technik

Generell heißen alle solche Abfragen im Deutschen "Bedingte Anweisungen".

Das ==, ~=, $= usw. ist dann der "Auswahloperator".

Warum das bei dir nicht klappt kann ich nicht genau sagen - allerdings müssen die beiden Strings wirklich 100% identisch sein. Sobald irgendwo z.B ein Sonderzeichen anders kodiert ist klappt das schon nicht mehr. Du müsstest dir nochmal beides (das original und das was du in die str_replace - Funktion gibst) ausgeben und direkt mit "Quellcode anzeigen" vergleichen.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
05.02.2014 14:50
avatar  Damian
#9 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Ich muss mir das echt mal genauer anschauen, die Info ist schonmal super, die brauche ich, Dankee

Ich habe den Code jetzt auch noch direkt in den Beitrag geschrieben (HTML Erlaubt) Die Klammern und alles ist so geschrieben, wie in der Variable, das zu ersetzen ist... Ich melde mich noch die Tage, werde noch zwischenzeitlich Tests machen...

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
04.09.2014 19:00 (zuletzt bearbeitet: 04.09.2014 19:01)
avatar  Damian
#10 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Da das heute durch ein "Include" gelöst ist, wäre meine Frage ob es jetzt viel einfacher Umsetzbar ist?
Mein Versuch den ich früher gemacht hatte ist leider gescheitert, ich glaube das lag daran das ich nicht Abfragen konnte ob der BB-Code im Beitrag eingefügt ist, war er das nicht, sollte die Umfrage oben vor dem Beitrag erscheinen, und das konnte ich durch die {{message.starlist}} nicht steuern...
Ansonsten hätte es funktioniert...

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
14.09.2014 21:59
avatar  Damian
#11 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Es ist schwierig, gerade habe ich mich wieder dran gesetzt und versucht alles korrekt zu setzten. Ich sag es mal so: Ich bin nah dran.


{{voteinput.start}}<span class="vote"></span>{{voteinput.end}}
{{voteoutput.start}}{{vote==true.start}}{{showvote()}}{{vote==true.end}}{{voteoutput.end}}
{{voteoutput==false.start}}{{voteoutput.start}}Keine Umfrage zum einfügen gefunden!<span class="keine"> (Keine Übersetztung!)</span>{{voteoutput.end}}{{voteoutput==false.end}}
{{order_newontop==true.start}}
{{reply_quick_html}}
{{order_newontop==true.else}}
{{message.startlist}}
{{firstmessage.start}}1{{firstmessage.end}}
{{_current_list_i=={firstmessage}.start}}
{{messagetext.start}}{{message:text}}{{messagetext.end}}
{{messagetext~={voteinput}.start}}
{{messagetext.start}}{{messagetext|str_replace(voteinput,voteoutput)}}{{messagetext.end}}
{{voteoutput.start}}0{{voteoutput.end}}
{{messagetext~={voteinput}.end}}
{{firstmessage.start}}0{{firstmessage.end}}
{{_current_list_i=={firstmessage}.end}}
{{message.end}}
{{voteoutput==true.start}}{{showvote()}}{{voteoutput==true.end}}
{{order_newontop==true.end}}


Ganz am Anfang wird der Input und Output eingetragen, das heißt was im Beitrag erst als Forencode eingetragen wird und was ausgegeben werden soll, dazu ist eine Abfrage ob auch eine Umfrage existiert - ist keine aber der Forencode da, wird eine Fehlermeldung ausgegeben.
Nun wird eine {{message.starlist}} eingetragen der aber nur den ersten Beitrag auf den Forencode abfragen und ersetzen sollte, ist der Forencode gesetzt, sollte Variable {{voteoutput}} = 0 sein, damit über dem Beitrag nicht die Umfrage angezeigt werden soll, ist es anderst rum sollte oben Umfrage angezeigt werden.
		{{messagetwo==1.start}}{{messagetext.start}}{{message:text}}{{messagetext.end}}{{messagetwo==1.end}}
{{messagetwo.start}}1{{messagetwo.end}}

Jetzt habe ich eine weitere {{message}}-Schleife, darin eine Variable {{messagetwo}} erstellt, ich stelle sie nicht auf 0, da das schon im vorraus ist, das heißt also das der erste Beitrag oben erstellt wird, erst beim 2 Ablauf sollte von der Schleife die Beiträge genommen.

Alles wird nun in {{messagetext}} ausgegeben, der erste Durchlauf oben, und die nächsten in der 2 Schleife.
Ich würde das noch gerne optimieren und bereits alles in einer Schleife in eine Variable schreiben vor der Umfrage aber danach ausgeben.

Es funktioniert alles, bis auf das diese Zeilen mir immer auf der Seite angezeigt werden:
{{messagetext~={voteinput}.start}} {{messagetext~={voteinput}.end}}
Diese Abfrage funktioniert nicht und dadurch werden weitere Abfragen nicht richtig gesetzt. Hast du eine Idee woran das liegt?

Zum Ansehen:
Forencode gesetzt aber keine Umfrage vorhanden (Wird im Beitrag fehlermeldung angezeigt)
Umfrage gesetzt kein Forencode - Umfrage sollte normal über dem Beitrag angezeigt werden
Umfrage im Beitrag Funktioniert! - Allerdings wird auch hier oben die Nicht-Funktionierende Abfrage als Text ausgegeben

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
19.09.2014 09:25
avatar  Damian
#12 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Gibts dafür keine Lösung?
Oder versteht man die Frage nicht?

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
19.09.2014 15:26 (zuletzt bearbeitet: 19.09.2014 15:28)
avatar  Ingmar
#13 RE: Versuch mit str_replace
avatar
Technik

Zitat von Damian im Beitrag #12
Gibts dafür keine Lösung?
Oder versteht man die Frage nicht?


Um ehrlich zu sein kam ich noch nicht dazu das zu lesen

Zitat von Damian im Beitrag #11
{{messagetext~={voteinput}.start}} {{messagetext~={voteinput}.end}}


Wenn ich das richtig sehe gibt es zwar die Template-Funktion

{{var1=={var2}.start}} (Var1 ist gleich Var2)

nicht aber
{{var1~={var2}.start}} (Var1 enthält Var2)

Daher kann das so nicht wirklich klappen denke ich.

Momentan kann man nur z.B. so etwas abfragen:

{{var1~=test.start}} (Var1 enthält den String "test")

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
19.09.2014 16:07 (zuletzt bearbeitet: 19.09.2014 16:08)
avatar  Damian
#14 RE: Versuch mit str_replace
avatar
Spacebot-Rekordhalter

Zitat von Ingmar im Beitrag #13

Daher kann das so nicht wirklich klappen denke ich.

Momentan kann man nur z.B. so etwas abfragen:

{{var1~=test.start}} (Var1 enthält den String "test")

Vielen Dank Ingmar für die Antwort!
Heißt es also ich müsste es dann so Abfragen?
{{var1~=<span class="vote"></span>.start}} ... {{var1~=<span class="vote"></span>.end}}
Oder wird es diese Funktion geben:
{{var1~={var2}.start}}{{var1~={var2}.end}}

?

Falls man sich heute nichtmehr liest ein schönes Wochenende

Viele Grüße,
Damian


Kein Support per PN (Private Nachrichten) - Tagger mich lieber (@Damian)
Damians Testforum


 Antworten

 Beitrag melden
19.09.2014 18:20
avatar  Ingmar
#15 RE: Versuch mit str_replace
avatar
Technik

Zitat von Damian im Beitrag #14
Oder wird es diese Funktion geben:
{{var1~={var2}.start}}{{var1~={var2}.end}}


vorerst nicht, sorry.

Zitat von Damian im Beitrag #14
Heißt es also ich müsste es dann so Abfragen?{{var1~=<span class="vote"></span>.start}} ... {{var1~=<span class="vote"></span>.end}}


Das kannst du versuchen - ich weiß allerdings nicht ob die Anführungszeichen an dieser Stelle Probleme machen

Falls ja könntest du das Template so ändern, dass im Vote-Template <span class="vote hieristmeinvotetemplate"> herauskommt
dann kannst du auf
{{var1~=hieristmeinvotetemplate.start}}

prüfen.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

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