Grundkurs Plugins schreiben

  • Seite 7 von 11
24.03.2014 18:49
avatar  Olaf
#91 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich danke Dir für Deine Infos.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.05.2014 23:34
avatar  Olaf
#92 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich habe ein paar Fragen zu den Link Variablen für mein Menü Plugin.
Wieso funktioniert die Wiki Abfrage,ob dieses Modul installiert ist oder nicht, so nicht?

1
2
3
4
 
{{link_wiki.start}}/wiki:home{{link_wiki.end}}
{{link_wiki==true.start}}
<a href="{{link_wiki}}">Wiki</a>
{{link_wiki==true.end}}
 


Und ein User schrieb mir,das er beim anklicken vom Forenübersicht Button in meinem Menü immer wieder in sein Portal landet.
Wenn er mein Plugin deinstalliert,dann funktioniert der Forenüberlicht Link einwandfrei.
Deshalb meine Frage,welche Link Variable ist denn für mein Menüpunkt "Forenübersicht" richtig:

1
2
3
 
{{link_index.start}}/forum.php{{link_index.end}}
<a href="{{link_index}}">Forenübersicht</a>
 
 


oder nur:

1
 
<a href="{{link_index}}">Forenübersicht</a>
 



Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
19.05.2014 09:42
#93 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

wenn du ein

1
 
{{link_wiki.start}}/wiki:home{{link_wiki.end}}
 



machst bedeutet das, dass du eine Variable namens {{link_wiki}} erstellst.

Demzufolge ist die folgende If-Bedingung

1
2
3
 
{{link_wiki==true.start}}
<a href="{{link_wiki}}">Wiki</a>
{{link_wiki==true.end}}
 



immer true ... also wahr!

Mit dieser Methode können auch Variablen überschrieben werden.

1
2
3
4
5
6
 
{{link_wiki.start}}Foo{{link_wiki.end}} 
Jetzt steht in {{link_wiki}} also Foo ... ...
machemn wir nun ein
{{link_wiki.start}}Bar{{link_wiki.end}}
steht in {{link_wiki}} Bar

 



Es ist demnach immer recht kritisch bestehende Variablen einfach zu überschreiben. Man weis in der Regel nicht immer wann diese von einem anderen Template neu gesetzt werden.

Ich vermute


 Antworten

 Beitrag melden
19.05.2014 20:56
avatar  Olaf
#94 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Die Methode,eine Variable anzulegen,habe ich schon verstanden,wobei {{link_wiki.start}}/wiki:home{{link_wiki.end}} von der Schreibweise ja nicht verkehrt ist und auch zum richtigen Ziel führt.Und die Variable {{link_wiki}} gibt es nicht,wobei sie auch nicht in anderen Templaten quer laufen könnte.
Aber darum geht es mir ja auch nicht in meiner Frage.
Ich möchte eine Abfrage erstellen,ob in meinem Forum das Wiki Modul aktiviert ist oder nicht.Oder das Portal aktiviert ist oder nicht.
Wobei die Abfrage beim Portal funktioniert:

1
2
3
4
 
  {{link_portal==true.start}}
<a href="{{link_portal}}">Portal</a>
{{link_portal==true.end}}
 
 



Und könntest Du mir bitte diese Frage auch noch beantworten:

Zitat von Olaf im Beitrag #92

Und ein User schrieb mir,das er beim anklicken vom Forenübersicht Button in meinem Menü immer wieder in sein Portal landet.
Wenn er mein Plugin deinstalliert,dann funktioniert der Forenüberlicht Link einwandfrei.
Deshalb meine Frage,welche Link Variable ist denn für mein Menüpunkt "Forenübersicht" richtig:

1
2
3
 
{{link_index.start}}/forum.php{{link_index.end}}
<a href="{{link_index}}">Forenübersicht</a>
 
 


oder nur:

1
 
<a href="{{link_index}}">Forenübersicht</a>
 




Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
20.05.2014 10:05
#95 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

{{link_portal==true.start}} ist keine Funktion sondern lediglich eine If-Abfrage.

Wenn ich das ganze in JavaScript mal übersetzen würde, dann sieht das so aus

1
2
3
4
5
6
7
8
9
10
11
12
 

{{link_portal==true.start}}
// mach irgendwas
{{link_portal==true.end}}
 

var link_portal = '/portal.php';
 
if (link_portal ) {
// mach irgendwas
}
 
 



Sprich das ganze funktioniert natürlich nur wenn die Variable existiert ... was hier nicht der Fall ist.
Es gibt allerdings eine andere Variable die immer gesetzt ist und dir sagt ob das wiki aktiv ist oder nicht
{{wiki}} <= Entweder es steht dort eine 1 (was für true steht) oder nichts was für false steht
also

1
2
3
4
5
 

{{wiki==true.start}}
// mach irgendwas
{{wiki==true.end}}
 
 



Bzgl. der anderen Frage reicht ein einfaches verlinken auf
/forum.php


 Antworten

 Beitrag melden
20.05.2014 13:52
avatar  Olaf
#96 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Erstmal vielen Dank für Deine Info.

Zitat von Christian im Beitrag #95
{{link_portal==true.start}} ist keine Funktion sondern lediglich eine If-Abfrage.

Das habe ich ja auch geschrieben,das es sich um eine Abfrage handelt ...
Zitat von Olaf im Beitrag #94

Wobei die Abfrage beim Portal funktioniert:

1
2
3
4
 
  {{link_portal==true.start}}
<a href="{{link_portal}}">Portal</a>
{{link_portal==true.end}}
 
 




Zitat von Christian im Beitrag #95

1
2
3
4
5
 

{{wiki==true.start}}
// mach irgendwas
{{wiki==true.end}}
 
 



Dadurch ergibt sich gleich die nächste Frage ob diese Abfrage für das Portal gilt?

1
2
3
4
 
   {{portal==true.start}}
<a href="/portal.php">Portal</a>
{{portal==true.end}}
 
 



Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
20.05.2014 14:02
#97 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

für das Protal kannst du {{link_portal}} nutzen.
Diese Variable wird gesetzt, wenn der User das Portal betreten darf. Falls nicht, dann existiert diese Variable nicht (sprich ist false)

zugegeben. Logisch würde {{portal}} sein damit es einheitlich ist aber aktuell gibt es diese Variable leider noch nicht.


 Antworten

 Beitrag melden
20.05.2014 16:44
avatar  Olaf
#98 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Jetzt werde ich langsam schwindelig.Was ist denn nun richtig?

Zitat von Christian im Beitrag #95
{{link_portal==true.start}} ist keine Funktion sondern lediglich eine If-Abfrage.

Wenn ich das ganze in JavaScript mal übersetzen würde, dann sieht das so aus

1
2
3
4
5
6
7
8
9
10
11
12
 

{{link_portal==true.start}}
// mach irgendwas
{{link_portal==true.end}}
 

var link_portal = '/portal.php';
 
if (link_portal ) {
// mach irgendwas
}
 
 



Sprich das ganze funktioniert natürlich nur wenn die Variable existiert ... was hier nicht der Fall ist.




Zitat von Christian im Beitrag #97
für das Protal kannst du {{link_portal}} nutzen.


Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
20.05.2014 18:58
#99 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

Ahhh ich merke gerade ... kommt natürlich so ein wenig verwirrend rüber.

Das was ich geschrieben habe hat bestand. Nur mein Beispiel hat etwas zu der Verwirrung geführt (tausche link_portal mit wiki aus ^^).

Also
{{link_portal}}
Ist ein Variable die vom System schon generiert und ausgegeben wird. UND auch nur gesetzt ist, wenn das Portal auch aktiv ist.
{{link_wiki}} hingegen existiert egal ob es aktiv ist oder nicht. von daher ist es immer true

Allerdings muss ich eines revidieren.
Habe übersehen, dass es {{portal}} doch gibt.
Sprich der Richtigkeit halber ist ein {{portal==true.start}} besser


 Antworten

 Beitrag melden
20.05.2014 19:30
avatar  Ingmar
#100 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat
{{link_wiki}} hingegen existiert egal ob es aktiv ist oder nicht. von daher ist es immer true



Ich tippe mal das ist mein Fehler...

{{link_wiki}} hatte gefehlt und ich hab das erst vor ein paar Wochen mit ausgegeben - dabei aber nicht bedacht, dass das nur bei aktiviertem WIki nötig ist. Mit dem nächsten Update ändern wir das dann so, dass auch dieser Link nur gesetzt ist wenn das Wiki auch aktiv ist.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
20.05.2014 20:02 (zuletzt bearbeitet: 20.05.2014 20:03)
avatar  Olaf
#101 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Das ist schon ein wenig verwirrend.
Ich habe es jetzt so gemacht,für die beiden Abfragen vom Wiki und Portal:

1
2
3
4
5
6
7
8
 
  {{portal==true.start}}  
<a href="{{link_portal}}">Portal</a>
{{portal==true.end}}
 
{{wiki==true.start}}
<a href="/wiki:home">Wiki</a>
{{wiki==true.end}}
 
 



Da gibt es noch eine Frage für den Gästebuch Link.
Im Business funktioniert der direkte Sprung zum Gästebuch nur über den Adressenanhang "#comment".Ich habe also zum Sprung zum Gästebuch dieses eingegeben:

1
 
<a href="{{link_myprofile}}#comment">Gästebuch</a>
 



Gibt es dafür eine einzelne Variable?

Und die Abfrage Variable,ob das Gästebuch aktiviert ist oder nicht :

1
2
3
 
{{user_gb==true.start}}
....
{{user_gb==true.end}}
 



existiert nur in der Template "Mitglieder Profil".
Gibt es dafür eine allgemeine Abfrage Variable,die in jeder Template greift?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
20.05.2014 21:02
avatar  Ingmar
#102 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat von Olaf im Beitrag #101
Ich habe es jetzt so gemacht,für die beiden Abfragen vom Wiki und Portal:

Das sollte klappen...

Zitat von Olaf im Beitrag #101
Gibt es dafür eine einzelne Variable?

Nein, dein Weg ist so richtig. Du könntest höchstens noch schauen, ob in den anderen Templates ein anderer Anker (z.B. #comments) verwendet wird und das mit entsprechenden {{template==xy}}-Abfragen für jedes Template korrekt setzen.

Zitat von Olaf im Beitrag #101
Gibt es dafür eine allgemeine Abfrage Variable,die in jeder Template greift?

Leider nein. Ich tippe mal man kan in deinem Plugin sowieso die einzelnen Buttons ein und auschalten - dann muss der Admin eben selbst wissen, ob er einen "Gästebuch"-Link will.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
20.05.2014 21:04
avatar  Ingmar
#103 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Achso - kennst du schon das hier?
Wiki:Liste-der-Forenvariablen

Ist leider noch nicht dokumentiert - aber dafür ziemlich aktuell.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
20.05.2014 21:16
avatar  Olaf
#104 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Zitat von Ingmar im Beitrag #103
Achso - kennst du schon das hier?
Wiki:Liste-der-Forenvariablen

Ist leider noch nicht dokumentiert - aber dafür ziemlich aktuell.


Diese Seite habe ich in meiner Lesezeichen Seite aufgenommen.
Dokumentiert wäre das der Hammer.Man kann nicht alles haben...

Ich danke Euch beiden für die vielen Infos.Waren mir eine sehr große Hilfe.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
15.08.2015 11:32 (zuletzt bearbeitet: 15.08.2015 11:34)
avatar  Olaf
#105 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich möchte gerne die Anzahl der Antworten der Themen vom ganzen Forum abfragen.Ich habe einige Versuche angestellt,wobei ich festgestellt habe,das die Funktion "getDeepList" bei den Target-Typ 1 (Themen) nicht funktioniert.
Es bleibt mir also nur die "getDeep" Funktion übrig,die bei einer Abfrage von gleich mehreren ID's auch nicht funktioniert.
Hier erstmal mein sehr zeitintensiver Test,meine 77 Themen in meinem Testforum einzelnd in einer "while" Schleife abzufragen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<script>

var i=0;
var ergebniss=[];
var themen_anzahl ="{{topics_count}}";
while(i < themen_anzahl) {
i++
xobor.plugin('lesetest').getDeep({target_id: i, target_type: 1, limit:'all'},function(a){
$.each(a, function(key, value) {
if(key =="answers"){
ergebniss.push(value);
}
})
});
}
alert('Anzahl der Themen = '+ergebniss.length+'/'+ergebniss)
 
</script>
 
 


Ist auch nur als Test von mir gemacht worden,ob ich überhaupt Anworten bekomme.Aber es funktioniert.
Nun steht in der API Plugin Dokumentation,das man mit der Funktion getDeep auch gleich mehrere ID's auf einmal abfragen kann.Hier mein Versuch:

1
2
3
4
5
6
7
 
<script>
var daten = {target_id: '[1,2,3,4,5,6,7,8,9,10]', target_type: '1'}
xobor.plugin('lesetest').getDeep(daten,function(a){
console.log(a)
});
</script>
 
 


Wobei die Console nur ein "false" ausgibt.
Wenn ich jetzt nur eine ID angebe:

1
2
3
4
5
6
7
 
<script>
var daten = {target_id: '1', target_type: '1'}
xobor.plugin('lesetest').getDeep(daten,function(a){
console.log(a)
});
</script>
 
 


dann bekomme ich alle Einträge vom ersten Thema.
Wieso funktioniert es nicht mit meheren ID's,wie es in der Dokumentation als Beispiel steht?
Und ist die Abfrage nicht einfacher (schneller) zu realisieren?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

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