Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03238.jsonl.gz/462

Anscheinend wird da kein vernünftiges Argument der Funktion load() übergeben, da die Benutzerdetails in deinem print_r leer sind. Da findet gar keine Prüfung statt, à la:
$authorId = JRequest::getInt('created_by');
if(!$authorId) {
JError::raiseError( 500, 'No valid id given');
// oder auch
die('User-Id ungültig: '.var_dump($authorId));
// oder mit der J-Dump Extension
dump($authorId, 'Author-Id');
}
Einen Debugger und Haltepunkte wäre auch was. Da kannst du den Code Schritt für Schritt (oder Breakpoints) abarbeiten lassen, und siehst jederzeit welche Variablen an welcher Stelle gesetzt sind, und welchen Inhalt sie (an genau dieser Stelle) haben.
Prüfe mal, was du mit JRequest::getInt('created_by'); erhälst.
Desweiteren lädts du auch mit der Methode '$authordetails->load()' denselben Author gleich zweimal (da die JTableUser-Klasse weder im Singleton-Pattern noch sonstwie einen Caching-Machanismus hat). Einen Tick besser wäre es, den Return in einer Variablen zu speichern, damit sparst du dir eine Datenbank-Abfrage:
Allerdings ist es im Falle von registrierten Usern überhaupt nicht nötig, die JTableUser-Klasse direkt zu instanzieren, dafür gibt es eine Methode in der JFactory (inkl. 'Caching' durch Singelton) mit nur einer Zeile, überigens genau gleich wie schon in der J-1.5:
$author = JFactory::getUser($authorId);
Ich hoffe das half.
Prost, Roger
Tu das was du kannst, mit dem was du hast, da wo du bist
Anhand der spärlichen Informationen vermute ich mal, das du versuchst ein Plugin vom Typ 'System' für die 2.5 lauffähig zu machen, und das dieses Plugin beim Speichern von Content irgendwas mit dem Autor, rsp. dessen User-Id machen soll, und versucht wird, die relevanten Daten aus den POST-Array eines Formulars auszulesen. Ist das korrekt soweit?
Dann wäre aber ein Plugin vom Typ 'Content' vermutlich geeigneter, das hat unter anderem Events mit Namen 'onContentBeforeSave' und 'onContentAfterSave' die beide den kompletten Artikel als Funktionsargument bekommen, ganz ohne JRequest::....... Und wird bei einem Artikel das Feld 'Autor' leer gelassen, so wird beim Speichern in der Table-Klasse automatisch die ID des aktuellen Users zugewiesen, sodass im Event 'onAfterContentSave' garantiert eine Autor-Id mit dabei ist.
Bei der 2.5 hat sich einiges geändert, stimmt. Aber 'altes' wurde grösstenteils auch belassen. Code einer Extension (Template, Modul, Komponente, Plugin...) die '1.5'-konform programmiert sind, kann in der 2.5 bis zu ca. 90% oder mehr unverändert übernommen werden. Es sind nur wenige Dinge die angepasst werden müssen. Sogar 1.0er Extensions laufen meist mit ein paar Änderungen in einer 2.5. Was aber aus diversen Gründen nicht wirklich zu empfehlen ist. Und neue Features wie z.B. ACL fehlen dann natürlich auch, wenn man die nicht nachträglich dazuschreibt.
Vesuche doch mal mit dem Entwickler des Plugins Kontakt aufzunehmen. Eventuell ist ja eine 2.5er Version schon in der Pipeline. Oder er passt dir das für ein paar Kreuzer an, wenn du dieses Plugin unbedingt brauchst.
R.
Tu das was du kannst, mit dem was du hast, da wo du bist
Die XML "geht ja ... ". Was ich Anfangs "übersah", waren die neuen 2.5er Kategorien (section gibts nat. nicht mehr ...). Dann haben sich einige Feldnamen geändert. Komplex & viel Tipperei. An einigen Stellen habe ich immer noch Schwierigkeiten, an die Werte zu kommen und oft ist mir noch unklar, weshalb hier welche Werte überhaupt nötig sind. Das legt grundsätzlich Fragen zur Architektur nah und stellt das einfach stumpf auf Lauffähigkeit durchboxen in Frage.
Jetzte renne ich grad in die ACL, die ich auch nicht (so) eingeplant habe ....
Ich habe bei dysolutions mal vorsichtig angefragt, ob sie planen, das auf 2.5 upzudaten.
- und mach mir "Architekturgedanken" ...
Alternativ bastele ich noch an NotifyArticleSubmit in Richtung 2.5: extensions.joomla.org/extensions/authori...lanned-content/14742
das mach allerdings nur Artikel (die obsoleten Notificationfeatures hat J!2.5. ja entwicklerfreundlicherweise ausgelassen - technisch: wieso gibts eine Info bei einem neuen Content, aber nicht wenn einer gespeichert wird?), daher habe ich den Schwerpunkt erstmal auf obiges gelegt.
Da du dir Gedanken zur Architektur machst, ist anzunehmen, das du Ahnung von der Materie hast. Und scheinbar geht es darum, bei neuen und/oder geänderten Content- und Weblinkeinträgen benachrichtigt zu werden. Falls dem so ist:
Schreib dir doch diese 20-30 Zeilen Code selbst, und gut ist. Einfach im geeigneten Event im Systemplugin bei einem Speichervorgang alle POST und GET Variablen anzeigen lassen, diese analysieren (option, view, task, id...) und falls nötig entsprechende Mails versenden.
(Autoren-Id u.ä. kann du ja im Plugin auch nachträglich/zusätzlich mit einer DB-Query holen, falls im POST nicht vorhanden).