Neues SEBLOD®-Ajax Plugin testen

Mehr
31 Mai 2015 21:35 #2883 von Whykiki
Whykiki erstellte das Thema Neues SEBLOD®-Ajax Plugin testen
Liebe SEBLOD®-Freunde,

wie einige von euch ja kmit Sicherhit mitbekommen habe, habe ich mich anh den Feldern und Plugins von SEBLOD® ausgelassen, weil ich das für einen Job brauchte.
Nun ist mehr oder weniger in mühevoller wochenlanger Fummelsarbeit (weil ich eben kein Meisterprogrammierer bin) ein eigenes Plugin entstanden, das Why Ajaxxer Plugin (den Namen muss ich noch mal überdenken hahahah).

Das Plugin kann man aktuell nur in einem Form (Site/admin) einsetzen und es dient dazu per Ajax die Db zu durchsuchen. Hintergrnd war bei mir eine Art Kostenkalkulator.
Man kann mit diesem Plugin im Grunde nun fast jede Art von Kostenkalkulator auf seiner Seite einbauen.

Und: Man muss nicht zwangsläufig Zahlen ziehen, sondern kann damit ggf. auch mal schnell in einem Form Strings aus zwei Tabellen zusammenführen.
Ich hatte bisher kene weitere Zeit noch andere Ideen zu testen, die damit realisierbar wären, aber das kommt noch.

Jetzt aber kommt ihr ins Spiel, viele von euch sind ebenfalls SEBLOD®-Experten und können vermutlich sogar deutlich besser coden als meine Wenigkeit.
Ich möchte dieses Plugin und weitere folgende gerne mit allen teilen, also nicht nur mit euch, sondern eben allen die SEBLOD® nutzen.
Einerseits ist das meine Art dem "Netz" als solches was zuirückzugeben, denn nehmen tu ich ja auch gerne und zweitens sehe ich das als eine Art Anregung, dass wir "Entwickler" untereinander zusammenhalten. So schaffen wir es vlielleicht, wie in meinem meiner letzten Post angedeutet, hier nicht nur ein Forum für SEBLOD® zu haben (in dem man schon jetzt bessere Anworten bekommt als auf SEBLOD®.com), sondern auch eine Art Tauschplatz.

Ich kann mir vorstellen, dass z.B. der Grundstein meiner Programmierung wiederum jemandem von euch hilfreich sein könnte, der etwas anderes daraus machen will, aber ggf. die Ajax-Funktion braucht.

Ich habe das Plugin komplett und ausführlich kommentiert, so dass jemand Interessiertes (und der deutschen Sprache mächtig), eigentlich jeden Schritt nachvollziehen können sollte.
Beispiel: Es kann ja sein, dass jmd von euch das Plugin genauso braucht wie es jetzt ist, aber mit noch mehr Funktionen. Dafür sollten die Kommentare hilfreich sein.

Ich habe Cappu das Plugin schon vorgestellt und er fand es gut :-) Er bekommt es von mir nun noch mal vorab zum Anschauen und Lesen ob meine Comments verstädnlich sind.
Und bevor ich das dann kostenlos auf meiner Seite und ggf. hier anbiete (wenns hier nen DL-Bereich gibt), lasse ich euch das Plugin testen.

Das isyt es also, was ich gerne von euch hätte. Ich hab seit drei Wochen keine Sonne mehr gesehen und irgednwann wird man wohl betriebsblind. Zudem bin ich eben was PHP, jQuery & Co angeht leider kein Pro -> soll heissen, ich habe sicherlich an einigen Stellen unsinnige Dinge gemacht.

Ich komme mir manchmal vor, wie jemand der Mathe kann so grundsätzlich, aber null Ahnung von Rechenregeln hat. Bei dem 1+1 zwar dann auch 2 ergibt, aber eben auf einem völlig anderen Weg als bei anderen Leuten.
Ich weiss halt Grundlagen, Schleifen, Arrays, Variablen, aber ich kenne mich null damit aus Sachen in Funktionen auszulagern und so ggf unnötige Codeblöcke zu vermeiden.

Diese werdet ihr also vermutlich finden. Und was weiss ich, was ihr noch so findet hahahaha.
Naja und wenn das Teil durch die strenge deutsche SEBLOD®-Community-Kontrolle gegangen ist, gehts eben online für alle.
Ich hab auch schon GitHub dafür gemacht, muss mich aber erst einlesen, wie ich das dort alles reinbekomme und für andere zur Mitarbeit freigebe.

Am coolsten wäre, wenn das Plugin euch wirklich richti gut gefällt und ihr auf Basis dessen eure eigenen Dinger baut. Wäre voll stolz zu wissen, dass es sowas dann von mir gibt :-)
Und zudem:; Nicht uneigennützig -> Ich gehe mal davon aus, dass der- oder diejenige die mein Tool modifizieren sich so darüber freuen werden, wenn ihnen das bei einer Neuentwicklung behilflich ist, so dass man mir vermutlich (oder hoffentlich) dann eine Kopie der eigenen Entwicklung zukommen lässt.

Natürlich war das nicht der Grund es online zu stellen und zu teilen, wäre aber schön wenn das passiert. Zudem mag ich einfach gerne anregen, dass man sowas eben auch mit seinen "Konkurrenten" teilt. Und wenn man es genau nimmt, sind wir das zumindest alle wirtschaftlich, da wir alle im selben Meer fischen.
Aber: Wir sind die ganz klitzekleinen Fischer, die mit ihren Trawlern verdrängt werden von den ganz Grossen, wir müssen also iwie zusammenhalten (hört sich grad megadramatisch an).

Ich hoffe einige von euch haben Bock daran ein bisschen rumzutesten und zu spielen :-)

LG Kiki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
31 Mai 2015 21:44 #2884 von FINWICK
FINWICK antwortete auf das Thema: Neues SEBLOD®™-Ajax Plugin testen
Wollte es mir gerade anschauen, sehe aber den Link zum Download nicht.

Gruß Norbert / FINWICK Kein Support via PN | JPlugger | NDE

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
31 Mai 2015 22:37 #2885 von Whykiki
Whykiki antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
Ich räume da gerade noch drin auf, damit ihr euch nicht voll das Chaos reinziehen müsst :-)
Sobald ich nachher fertig bin, lade ich den aktuellen Stand hier hoch.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
01 Jun 2015 01:16 #2887 von Whykiki
Whykiki antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
So, ich hab das jetzt im aktuellen Entwicklungsstand hochgeladen, Cappu hat mit noch einige Hinweise gegeben, von denen ich jetzt noch nicht alle umgesetzt habe. Aber mein Kunde macht Druck und ich muss das Projekt wg dem ich den ganzen Käse angefangen habe nun mal fertig machen.
Sobald ich das durch hab, mach ich zu alldem noch mal Videos, auch für diejenigen, die beginnen zu "entwicklen" oder coden. Dann kann man ggf. anhand der Videos alles nachvollziehen und das Ding wieder auseinandernehmen.

Für die aktuelllen Tester habe ich schon mal ne Schnellstartanleitung reingepackt, die ich natürlich in der endgültigen Version anpassen werde. Ihr müsst euch das Plugin installieren, die Anleitung seht ihr, wenn ihr das Plugin in eurem Content einsetzt.
Wie mit Cappu besprochen werde ich aber alle wichtigen Facts und Infos zusätzlich noch mal in eine ReadMe packen.

Hier der Download:

whykiki.rocks/plg_cck_field_why_ajaxxer_1.0.1.zip

Viel Spass damit. Natürlich könnt ihr mit den Dateien auch schon jetzt machen was ihr wollt, FALLS ihr überhaupt was machen wollt :-) Ich will ja auch niemanden nötigen SEBLOD®-Felder zu coden :-) hahahahaha
Folgende Benutzer bedankten sich: time4mambo, ezet, FINWICK, Cappu, nscnsc

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
01 Jun 2015 10:00 #2888 von Cappu
Cappu antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
Hi Kiki,

tolle Arbeit. Dank Dir. - Das ist ein wirklich spannendes Thema. - Herausragend ist auch die Doku (direkt im Field Definitions-Popu); so kann man das alles verstehen.

Zwei Daumen hoch!
Bernhard

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
02 Jun 2015 14:26 #2898 von Whykiki
Whykiki antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
So Freunde, nachdem ich nun weiterhin nicht gepennt habe, sollte das Plugin JETZT hoffentlich alle Funktionen haben, die ich für meinen Kunden brauche. Ich drücke mir jetzt ganz fest selber die Daumen, dass das Ding dann auch den Praxistest besteht.... :-)
In Kürze, ich denke am Wochenende, gibt es dann auch eine grosse Doku, da werde ich für alle Interessierten das Plugin auseinandernehmen und auf Basis dessen zeigen, welchen Weg man ggf. einschlagen KANN, wenn man ein eigenes Plugin entwickeln will.
Ich hab da unterwegs ne Menge Sachen gefunden, gelernt, wie auch immer....alleine zum Thema Debuggen gibt es ne ganze Menge zu sagen. Kommt also in Kürze.

Zum Plugin:
Die neue Version hat jetzt hoffentlich die letztendliche Anleitung eingebaut, lasst mich wissen, wenn was fehlt oder euch etwas nicht gefällt.
Ebenfalls jetzt korrekt funktionierend: Erwseiterung der Range-Suche, zustzlich zu den aktuellen Filterfeldern kann man sein Ergebnis jetzt noch verfeinern druch das festlegen von zwei Filterfeldern für den von bis Wert.

Weil mein Goal ja ein CostCaluclator war, brauchte ich Währungsanzeigen. Das war trickier als gedacht. Ich denke nun eine gute Lösung gefunden zu haben, denn mit dem neuen Price Formatter kann man sich im Grunde alles als Pre- oder Suffix anzeigen lassen.
Natürlich kann der auch ausgeschaltet werden, wenn man ihn nicht braucht.

whykiki.rocks/plg_cck_field_why_ajaxxer_1.0.2.zip

Viel Spass beim Rumspielen.

LG KIki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
02 Jun 2015 18:47 - 02 Jun 2015 21:05 #2899 von FINWICK
FINWICK antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
Zur Verbesserung
tmpl/edit.php
	jQuery('input[name=bool3]').click(function(checked){
		var bool = jQuery( 'input[name=bool3]:checked' ).val();
		if(bool == 0){
			jQuery( ".hider" ).hide(500);
			}
		if(bool == 1){
			jQuery( ".hider" ).show(500);
		}
Hier ist es aus der Performance her besser
jQuery('input[name=bool3]').click(function(checked){
		if( jQuery( 'input[name=bool3]:checked' ).val() == 0 ){
			jQuery( ".hider" ).hide(500);
		} else {
			jQuery( ".hider" ).show(500);
		}
zu machen, da eine bool halt nur 0 oder 1 sein kann. (Wird schneller interpretiert)

why_ajaxxerr.php
$doc = JFactory::getDocument();
// Einbinden jQuery Price Format, wenn eingeschaltet

if(empty($field->bool4) || $field->bool4 == 1){
	$doc->addScript("/plugins/cck_field/why_ajaxxer/assets/jquery.price_format.2.0.min.js");
}
else{
}

// Normale SEBLOD® Funktionen zum Vorbereiten der Felder

class plgCCK_FieldWhy_Ajaxxer extends JCckPluginField
{
Der Code vor der Class ist nicht gut, besser in den Constructor der Class machen.

Wofür ist die leere else Anweisung? Sollte man löschen wenn kein sinnvoller Code drin steht.

ajax.php
 	  $postReturn = $_POST;
	  $fieldId = $_GET['id'];
     json_encode($postReturn);
Die dritte Zeile macht keinen Sinn, da das Ergebnis keiner Variable zugewiesen wird.
	  $query1->where($db->quoteName('id')." = '".$fieldId."'" );
Bei allen Werten die man erhält sollte man $db->qoute nuten, um SQL-Injection zu verhindern.
Besser so:
	  $query1->where($db->quoteName('id')." = ".$db->quote($fieldId));
Begründung: Du fast die Werte zwar in ' ' ein, jedoch könnte der Wert ein ' enthalten und dahinter ausführbarer Code. $db-quote interpretiert Zeichen für Zeichen und quoted diese Zeichen, sodass diese nicht ausgeführt werden können.

Donnerstag habe ich Zeit mal den Rest durchzuschauen, wenn ich was finde Poste ich es.

Gruß Norbert / FINWICK Kein Support via PN | JPlugger | NDE
Letzte Änderung: 02 Jun 2015 21:05 von FINWICK.
Folgende Benutzer bedankten sich: Cappu, Whykiki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
04 Jun 2015 02:36 #2901 von Whykiki
Whykiki antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
Scheisse, die else hab ich schlicht vergessen. Den zweiten Hinweis hatte ich erst so wie du ihn postest, weil ich das mit dem Bool und 0 und 1 schon verstanden habe, aber anscheinend hatte ich an irgendeiner anderen Stelle was falsch und hab da an mehreren Orten angepasst, auch da.
Stimmt, hast natürlich vollkommen recht, das muss da noch raus.

Zu ajax.php:
Dann habe ich da jetzt gerade aktuell einen Hänger. Mag sein, dass sich das tatsächlich durch weitergebauten Code in den letzten Wochen erübrigt hat, aber du wirst lachen, ich dachte das sei noch immer elementar wichtig. Ich muss da nun noch mal in Ruhe reinsehen. Ich sag ja, ich bin leider kein Super-Coder und weiss in vielen Fällen vermutlich den richtigen Weg auch nicht. Manches ist natürlich auch aus Beispielen von php.net aus den Manuals nachgestellt, leider eben auch in wenigen Fällen, wo ich selbst nicht gaaaaaaanz so exakt verstanden habe wie das nun funzt, aber es klappte dann.
Zudem habe ich mir auch dein Ajaxmodul gezogen @FINWICK, weil ich irgendwieanhand dessen raffen wollte was ich machen muss, aber ich war zu doof. Zumindest an dem Punkt wo ich da stand, ich habs nicht kapiert

Letztendlich habe mich an der jQuery-Funktion leider ordentlich verbaselt, das hat mich Tage gekostet, weil ich das auch nicht hinbekommen habe es korrekt zu debuggen. Und durch meine Unwissenheit vieler Standard-Funktionen konnte ich eben nur aus meinem Basisbaukasten schöpfen, also im Grunde nur sehr wenig nutzen.
Zum Glück hat sich dann ein Kollege, dem ich zuvor schon grafisch und musikalisch geholfen habe, erbarmt und ist mit mir das Ding noch mal fast 6 Stunden durchgegangen.
Aber auch er musste sich natürlich erst mal durchfummeln und ihr wisst sicher wie das ist, er hat mir natürlich erklärt wie das so zusammenhängt, aber manches versteht man so auf die Schnelle ja nicht und ich muss das eh immer erst selbst erfummeln. Heisst also: Ich hab ne Menge gelernt und im Grunde hat er nur ein paar Stellen geradegebogen in denen ich mich halt verzettelt habe.
Aber ich war an der Stelle auch schon wieder seit 36 Stunden an dem Ding dran und einfach durch :-)

Ich weiss also natürlich alles was im Plugin so los ist, aber tatsächlich muss ich mich oftmals komplett von vorn durchdenken, um wieder in den Code zu kommen.
Ich denke mittlerweile tatsächlich, dass das vllt echt n bisschen mitm Alter zu tun hat. Ich habe so spät mit dem programmieren angefangen, dass es nun jetzt deutlich schwerer ist hahahahahaha :-)

JSON muss ich nun also ersma checken.

Du oder ihr werdet sicher an so einigen Stellen Code finden, den man hätte besser machen können...
Vermutlich mag auch mein Format nicht korrekt sein....es gibt sicher feste Konventionen, aber ich kenne sie nicht, also habe ich versucht es so sinnvoll wie möglich zu machen...aber was sinnvoll für mich scheint, ist es vvllt nicht für alle anderen :-)

DAnke auch noch mal für den Hinweis mit den DB Quote, das werde ich auf jeden Fall einbauen. Ich warte jetzt mal auf Donnerstag, was du noch so findest, dann passe cih deine Änderungen an.

Sinnvoll wäre doch eigentlich, wenn ich das Plugin nach Github stelle oder??
Da können doch alle oder mehrere dran wurschteln, wenn ich das richtig verstanden habe?? Kann mir einer von euch was dazu sagen??

Gruss Kiki
Folgende Benutzer bedankten sich: FINWICK

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
04 Jun 2015 14:34 #2902 von FINWICK
FINWICK antwortete auf das Thema: Neues SEBLOD®™-Ajax Plugin testen
Also was ich Poste soll nur zur Verbesserung dienen und auf keinen Fall als Kritik verstanden werden. Nicht jeder ist ein Programier und du hast es ja auch gesagt das du keiner bist.
Will da nur was helfen, damit es besser und sicherer wird.

So etwas Zeit zum schauen, was man verbessern sollte.
ajax.php
  $postReturn = $_POST;
	  $fieldId = $_GET['id'];
$_POST und der Zugriff auf diesen ist ungefiltert, dieses ist nicht sicher, das X-Site scripting möglich ist und darüber die Seite gehackt werden kann.
	  $fieldId = $app->input->get('Id', '0');
Über die Mechanismen von Joomla auf die Werte zuzugreifen ist viel besser, da Hackversuche gefiltert werden. Beispeile findest du unter docs.joomla.org/Retrieving_request_data_using_JInput (JInput ist sehr mächtig)

Eine Problematik die zu Fehlermeldungen führen können.
$options2 = json_decode($row[0]);
	  // Array aus JSON options2->why_field_list usw
	  $WhyFieldList = $options2->why_field_list;
	  $WhyDatabaseFilter = $options2->why_database_filters;
Hier fehlt eine Überprüfung ob du Daten erhalten hast aus der Datenbank, ansonsten greifst du auf Null-Objekte zu, das quitiert PHP dann mit einer Error auf der Seite.

CSS: Das sollte man die Angabe nin einer Datei auslagern und diese dann einbinden. Warum, inline Styles müssen immer mit einem Important dahinter überschrieben werden, wenn einer andere Angaben benötigt und diese z.B. in der template.css des Templates einfügt. Das macht dem Nutzer es etwas einfacher dieses zu handhaben.
Auch wenn Leute Merger und Compressoren für CSS einsetzen ist es besser diese extern in einer Datei zu legen. Dieses verbessert das Ladeverhalten der Seite. (Gleiches gilt für JS)

Vielleicht ist es besser die Texte in die Language Dateien auszulagern, vielliecht findet sich so jemand der eine Übersetzung in eine andere Sprache macht. Reduziert gleichzeitig den Code, der nicht mehrfach gepflegt werden muss.

Es macht sicher Sinn es nach Grithub zu stellen, dann können viele dran arbeiten und optimieren.

Ich muss sagen, für deinen ersten Code ist der doch schon sehr gut gelungen.
Wie gesagt, keine Kritik von mir nur Verbesserungsvorschäge.

Ja mein AjaxModul richtet sich an Programierer, das ist nicht so einfach zu verstehen. (Beischreibung = Quellcode) (Da geht es mehr darum komplette Formulare zu übertragen.

Gruß Norbert / FINWICK Kein Support via PN | JPlugger | NDE

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
08 Jun 2015 09:38 #2918 von Whykiki
Whykiki antwortete auf das Thema: Neues SEBLOD® -Ajax Plugin testen
Hey,

sorry war wieder etwas im Stress und daher auch nur eben kurz, melde mich späer noch mal ausführlicher.

Also was ich Poste soll nur zur Verbesserung dienen und auf keinen Fall als Kritik verstanden werden. Nicht jeder ist ein Programier und du hast es ja auch gesagt das du keiner bist.
Will da nur was helfen, damit es besser und sicherer wird.


Genau so habe ich es auch verstanden :-) Irgendwie ist das noch eine meiner Macken, die ich nicht loswerde: Ich rede nahezu alles was ich mache erst mal schlecht und entschuldige mich dafür, weil ich immer so kritisch mit mir bin. Sollte ich mir sparen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum