Ich habe viel gelernt, was sonst nicht an mir vorbeigekommen wäre. Ich war jeden Tag gespannt was als nächstes kommt. Danke
Beiträge von finnern
-
-
Sind das deine eigenen Module ?
Hier ein Link wie Assets in J4x behandelt werden. J4 Assets
Abschnitte Ein Asset registrieren und Ein Asset aktivieren sind die wichtigsten
Wenn es fremde Module sind soweit möglich updaten
-
Download -> Upload ? Es geht um Benutzer die Bilder auf die Website kopieren -> Upload oder ?
Es macht keinen Sinn jedem zu erlauben Bilder hochzuladen da dann den "erotischen" oder anderweitig manipulierten Bilder Tür und Tor geöffnet ist.
-
Zitat
Umlaute Ä Ö Ü
Sprachdateien müssen UTF-8 encoded ohne BOM (Kennung) gespeichert werden. bitte Einstellungen im Editor prüfen
-
Nach viel Schweiss und Versuchen fand ich eine hinreichende Einbindung.
Trick: Import und dann Adressierung der Klasse über den kompletten in der Klasse angegebenen Namespace.
GalleryTreeModel
Codenamespace Joomla\Component\RSGallery2\Administrator\Model; ... class GalleryTreeModel extends BaseModel { ... public function isRootItemExisting()
Install script
Code$GalleryTreeModelFileName = JPATH_ADMINISTRATOR . '/components/com_rsgallery2/Model/GalleryTreeModel.php'; include ($GalleryTreeModelFileName); $galleryTreeModel = new Joomla\Component\Rsgallery2\Administrator\Model\GalleryTreeModel (); // check for root item $isRootItemExisting = $galleryTreeModel->isRootItemExisting();
In wieweit dort dann komplexe Aufrufstrukturen d.h. andere Namespaces benutzt werden können weiss ich nicht. Mein Bauchgefühl sagt wird wohl nicht funktionieren.
-
-
Danke für die Info.
Der Dateiname ist relativ zum Installationspfad da es nur bei der Installation nicht funktioniert.
Wenn ich das Selbe aus der installierten Komponente starte dann werden die Funktionen / Dateien über Namespace geladen und gestartet.
Werde es im Postflight nochmal probieren, da sind die Dateien übertragen. Donnerstag nehme ich mir dafür Zeit.
-
-
Weder register noch load half soweit
install script Datei
Code
Alles anzeigen//use Joomla\Component\Rsgallery2\Administrator\Helper\InstallMessage; //require_once(dirname(__FILE__) . '/administrator/components/com_rsgallery2/Helper/InstallMessage.php'); $rsg2FileName = dirname(__FILE__) . '/administrator/components/com_rsgallery2/Helper/InstallMessage.php'; $rsg2ClassName = 'InstallMessage'; \JLoader::register($rsg2ClassName, $rsg2FileName); \JLoader::load($rsg2ClassName); .... public function postflight($type, $parent) { $msg = InstallMessage::createLinksHtml($this->newRelease); echo $msg; ---------------------------------- class InstallMessage { ... public static function createLinksHtml($newRelease) { ....
wenn die Componente schon installiert ist, dann kann mit der obersten auskommentierten use Anweisung die Klasse geöffnet und der Text angezeigt werden.
In der Zeile mit $msg = InstallMessage kann die Klasse nicht efunden werden.
"Error: Class 'InstallMessage' not found in ..."
-
Danke für die Mühe.
Sorry für die vermissten Daten.
Ich programmiere seit 2014 für die Gallery RSGallery2 mit PHP Storm und passe sie gerade für J4 an (Jug Stuttgart Robert Mittl sagt die wird nie fertig
)
Sorry für die fehlende Information:
* Single step im ? installerAdapter.php ? brachte mich immer zur Zeile der Exception.
* Wenn die Komponente installiert war, also beim Update funktionierte es wie gewünscht. DH. die Klassen konnten mit Use ... eingebunden werden.
Ich probiere jetzt relative Pfade für require once am Anfang der Datei und teile das Ergebnis mit.
-
In meiner Komponente möchte ich im Installations-Skript Hilfsklassen laden die auch sonst benutzt werden.
Im preflight sind noch keine Dateien übertragen.
Bei Install, update, und postflight sind sie kopiert.
Ich versuche in install oder update eine externe Klasse zu laden und zu benutzen.
Require once findet die Datei aber die Klasse kann nicht mit new ... instanziert werden
Use ... geht auch nicht mit new ...
Gibt es da Einschränkungen oder muss ich meinen Code verbessern ?
Oder gibt es Beispiele anderer Komponenten
-
Zeilen die nicht funktionieren werden bei mir auskommentiert damit ich noch weiß was ich schon getestet habe
folgendes funktioniert leider nicht
use Joomla\Plugin\Content\Remote_markdown\Parsedown\Parsedown;
//use Joomla\Plugins\Content\Remote_markdown\Parsedown\Parsedown;
//use Joomla\CMS\Plugin\Content\Remote_markdown\Parsedown\Parsedown;
//use Parsedown\Parsedown;
Siehe branch b_test_namespace. Im master habe ich es hingeschummelt um etwas lauffähiges zu haben (Klasse hinten angehägt
Info: Der Branch kann installiert werden. Im Artikel folgende Zeile eintragen. Dann soll im Ergebnis die Fehlermeldung erscheinen. Ziel: Text mit Bildern
{remotemarkdown:https://raw.githubusercontent.com/RSGallery2/RSG…deshowConfig.md}
-
Sorry falsche Rubrik -> sollte nach Plugin
-
plg_remote_markdown
Das Plugin zeigt Markdown Text definiert über URL Link in einem Artikel an.
Repository:
https://github.com/ThomasFinnern/plg_remote_markdown
branch b_test_namespace
Ich möchte die Parsedown Klasse aus einer Datei im Unterverzeichnis mit new Parsedown einer Variablen zuweisen.
Struktur:
.../joomla4x/plugins/content/remote_markdown/remote_markdown.php
.../joomla4x/plugins/content/remote_markdown/Parsedown/Parsedown.php
Im Plugin remote_markdown.php ist folgender Namespace definiert
use Joomla\Plugin\Content\Remote_markdown\Parsedown\Parsedown;
Fehler:
Class 'Joomla\Plugin\Content\Remote_markdown\Parsedown\Parsedown' not found
Version Joomla: 4.0.0-beta1-dev
Stimmt die Namensraumangabe ?
Muss die Klasse anders importiert werden ?
PS: Im master habe ich die Klasse in die Datei kopiert und das plugin läuft in erster Version
-
Ich glaube, so alt wie die Komponente ist, hält sie sich nicht an das MVC pattern.
Das Backend ist zu 95 % umgestellt. Das Frontend kommt demnächst
Deine Komponente hat eine eigene Konfiguration und dort einen Button Save. Wenn du mit dem Inspector schaust, oder im Quelltext: Wie sieht der Code unter dem Button aus?
Ich nutze die Gallery selbst und habe Tausende von Bildern und die Struktur macht es schwer umzusteigen. Es gibt einige aktive Benutzer und sehr viele nicht mehr gepflegte Seiten mit der RSGallery2.
Wie sieht der Code unter dem Button aus
Siehe Code Oben
-
Ich muss es wohl anders machen. Beim debuggen geht es in die Komponente com_config. Da will ich nichts ändern. Beitrag darf als erledigt gelkennzeichnet werden
-
Wenn ich in meiner Komponenten Konfiguration Save drücke welcher Controller und welches Modul wird dann in meiner Komponente aufgerufen ?
-
Ich möchte wenn möglich das Standardverhalten der Komponenten Konfiguration benutzen. Bislang wurden die Konfigurationsparameter in einer eigenen SQL Tabelle gespeichert. (Die Komponente RSGallery2 stammt aus den 2005er Jahren) Jetzt ziehen die Parameter um und ich weiss nicht ob eine Stelle gibt (oder Event) wo ich manche Parameter ändern kann bevor sie gespeichert werden oder nachdem sie geladen werden.
-
Die zu verwendeten exifTags sind eine dynamische Liste vom User auszuwählen
Altes Model Config:
Config lesen
Code//------------------------------------------ // special variables exifTags ... //------------------------------------------ if (isset ($data['exifTags'])){ $data['exifTags'] = explode('|', $data['exifTags']); }
sichern
Codeif ($row->name == 'exifTags' && is_array($row->value)){ $row->value = implode('|', $row->value); } $row->check(); $row->store();
-
In der Komponente wurden die Konfiguration in einer eignen Tabelle gespeichert. Nun bewege ich die Werte zum Standard Platz für J3.x d.h. über die config.xml ... Bislang enthält die "Exif" variable ein array das mit "|" beim speichern verbunden (implode) und beim laden entsprechend wider aufgeteilt wird (explode).
An welcher Stelle der Standard save / load Funktion der Komponenten Konfiguration kann ich diesen Code einbauen.