You are not logged in.

[WBB 3.1.x] Undefined Constant

1

Tuesday, May 8th 2012, 12:52am

Undefined Constant

Moin moin, ich nerve nochmal :p^^

Also ich beschäftige mich derweil etwas mit dem WCF und der Pluginentwicklung für das WCF/WBB.
Ich bin nun dabei ein eigenes Paket zu erstellen, einen Adblock-Analyser.
Das Plugin soll feststellen, ob ein Benutzer der Webseite einen aktiven Adblocker nutzt, oder Javascript ausgeschaltet hat.

Dafür gehe ich wie folgt vor:
Das Paket bindet ein kleines extra Template ein, in welchem 2 Javascript Dateien eingebunden werden. Eine davon wird aufgrund des Dateinamens zu 99% von einem aktiven Adblocker geblockt. In dieser Datei wird aber eine Variable definiert, die im 2. Javascript gecheckt wird (das zweite Javascript wird nicht vom adblocker gesperrt).
So kann ich herausfinden, ob ein Adblocker aktiv ist oder nicht - soweit, so gut.

Mein Problem ist jetzt:
Ich muss die Variable von Javascript zu php bekommen, um einen Eintrag in einer Datenbanktabelle anzulegen und so eine Statistik aufzubauen.
Afaik ist das ohne Ajax nicht möglich.
Also wird im 2. Javascript ein Ajax-Request auf eine im Verzeichnis /lib/data/packetxy/dateixy.php liegende Datei gestartet.
Der Request kommt auch an, mein Problem ist aber, dass ich augenscheinlich die Konstanten aus der config.inc.php nicht in Dateien nutzen kann, die mittels AJAX-Request aufgerufen werden (ich brauche die Konstanten für die Einbindung/Verwendung des Datenbank Objektes).

Gibt es da eine Möglichkeit hardcoden und einen festen Pfas zu vermeiden?

Danke schonmal für Hinweise ;-))

Gruß unrealSpeedy
www.Jet-Force.eu - große Community rund um das Thema Rollertuning

Alexander Ebert

WoltLab Developer

  • "Alexander Ebert" is male

Posts: 4,739

Location: Berlin

  • Send private message

2

Tuesday, May 8th 2012, 1:45am

Benutze dafür eiine *Action.class.php (etwa AdBlockerAction.class.php), diese kannst du anschließend via index.php?action=AdBlocker aufrufen und erhältst Zugriff auf alle Variablen inklusive dem vollständigen WCF. Diese Variante ist sehr viel sauberer und lässt WCF für dich die ganze Arbeit erledigen ;)
Alexander Ebert
Developer WoltLab® GmbH


3

Tuesday, May 8th 2012, 1:47am

rufst du die Datei etwa absolut auf? ohne index.php (und somit ohne Woltlab)?
wieso machst du keine action-Datei?

und ohne Ajax fällt mir noch die Methode mit new Image() ein, damit es keine Warnung zurückgibt, müsstest du halt auch ein Bild-header zurückgeben.
Als letzte Methode fällt mir noch ein, das Einbinden einer Javascript-Datei (document.createElement('script')).

LG
Meine Woltlab-Plugins
- Tooltip
- LiveChat
- Ani-BBCode
- Facebook

4

Tuesday, May 8th 2012, 10:15am

Natürlich... manchmal sieht man den Wald vor lauter Bäumen nicht :p Action.class hatte ich schon, habe die Datei im AJAX request aber direkt aufgerufen nicht über die Index...

Danke für die Hilfe!
www.Jet-Force.eu - große Community rund um das Thema Rollertuning

5

Saturday, May 12th 2012, 1:22pm

Auch wenn es hier nur bedingt passt, wollte ich nicht extra einen neuen Thread aufmachen.

Darf man hier eigentlich zum Beispiel sein Paket/Plugin kurz posten, damit die ganzen Cracks sich das ggf. mal anschauen können, bevor man versucht das Plugin im Pluginstore einzureichen?
Oder ist das nicht erwünscht?
Damit man nicht mit dicken Fehlern in Fettnäpfchen tritt und ggf. noch Verbesserungsvorschläge den Programmierstil betreffend bekommt usw.

Gruß unrealSpeedy
www.Jet-Force.eu - große Community rund um das Thema Rollertuning

6

Saturday, May 12th 2012, 1:26pm

Darf man hier eigentlich zum Beispiel sein Paket/Plugin kurz posten, damit die ganzen Cracks sich das ggf. mal anschauen können, bevor man versucht das Plugin im Pluginstore einzureichen?
Natürlich darf man das. :)
Mit freundlichen Grüßen
Best regards
KittBlog Stile - Ihr Kit für Stile, Software und Knowhow
Your kit for styles, software and knowhow
Erste Linkliste zu Erweiterungen und Support rund um Burning Board©
First linklist for plugins and support around Burning Board©

  • "Sebastian S." is male

Posts: 596

Location: Stuttgart

Occupation: KFZ-Mechatroniker

  • Send private message

7

Saturday, May 12th 2012, 1:28pm

Wenn es von dir ist, kannst du auch installierbare Pakete posten - hab ich auch schon gemacht.
Aber eins verstehe ich nicht ganz: Auch wenn der Preis recht Stolz ist, wieso das Rad neu erfinden? http://www.woltlab.com/de/pluginstore/pl…ml?pluginID=401
Mit freundlichen Grüßen
Sebastian S.


8

Saturday, May 12th 2012, 1:34pm

Vielleicht ja gerade deshalb. :P
Mit freundlichen Grüßen
Best regards
KittBlog Stile - Ihr Kit für Stile, Software und Knowhow
Your kit for styles, software and knowhow
Erste Linkliste zu Erweiterungen und Support rund um Burning Board©
First linklist for plugins and support around Burning Board©

9

Saturday, May 12th 2012, 1:58pm

Wenn es von dir ist, kannst du auch installierbare Pakete posten - hab ich auch schon gemacht.
Aber eins verstehe ich nicht ganz: Auch wenn der Preis recht Stolz ist, wieso das Rad neu erfinden? http://www.woltlab.com/de/pluginstore/pl…ml?pluginID=401

Mein Plugin ist (bisher) ein reines Analysetool, der User bekommt davon nichts mit, wenn er Adblock an hat, wird er keine Werbung und keine Hinweise eingeblendet bekommen.
Es wird lediglich für den Webseitenbetreiber eine Statistik erstellt, wieviele der täglichen Views einer Seite mit bzw. ohne einen Adblocker erfolgen.

Ein installierbares Paket habe ich angehägt.

Was macht das Plugin?
- Es analysiert, wieviele der täglichen Views mit bzw. ohne Adblocker erfolgen und erstellt daraus eine Statistik, wieviel % der Views mit Adblock erfolgt sind.
- Eine Statistikseite mit den aktuellen Statistiken ist nur für Benutzergruppen aufrufbar, in denen das Recht im ACP gesetzt wurde (unter Forum).
- Die Statistikseite hat keinen Menüpunkt, sie ist unter "index.php?page=Adblockstats" aufrufbar (sofern Recht gesetzt).

Was ist geplant?
- monatliche Statistiken
- Caching
- ggf. Einblendung von Meldungen bei Usern, die Adblock nutzen (Begrenzung der Meldungen auf bestimmte Seiten; ggf. Anzeige von Meldungen erst, wenn XX% der Views an diesem Tag mit Adblocker erfolgt sind)

Hinweis:
- Es handelt sich um mein erstes Plugin^^
- Es handelt sich um eine Alpha-Version, diese Version ist in keinster Weise für den produktiven Einsatz gedacht, sie kann/wird Fehler enthalten!
- Das Plugin arbeitet bewusst auf View-Basis und nicht auf Besucher-Basis, da die Anzahl der Views für Webseitenbetreiber in Betracht auf Werbung meistens interessanter sind.

Ich freue mich über Feedback ;-)
Für Fragen stehe ich natürlich zur Verfügung^^

Edit:
2 Bilder angehängt

Gruß unrealSpeedy
unrealSpeedy has attached the following images:
  • adblocktool1.png
  • adblocktool2.png
unrealSpeedy has attached the following file:
  • v1alpha.tar (31.74 kB - 14 times downloaded - latest: May 18th 2013, 4:00pm)
www.Jet-Force.eu - große Community rund um das Thema Rollertuning

This post has been edited 3 times, last edit by "unrealSpeedy" (May 12th 2012, 2:12pm)


10

Saturday, May 12th 2012, 4:06pm

- Benutz doch die Prototype-Funktionen fürs AJAX, das ist sauberer
- Einrückungen im Code sind ziemlich komisch
- Der data/ Ordner ist nur für * extends DatabaseObject gedacht
- Kommentare macht man auf Englisch.
- SQL-Limit wird über den 2. Parameter von sendQuery gesetzt
- mysql_num_rows ist böse
-

Source code

1
public function show() { parent::show() }
ist unnötig.