Beiträge von TDroescher

    Hallo,


    ich habe mir für das Frontend ein Custom Field erstellt vom Typ "Combo".
    Über GetOptions lasse ich die Inhalte für die Auswahl laden und einfeügen.
    Wenn aber das Feld angezeigt wird und man die Auswahl über den Button aufruft, kommt die Tabelle, es sind auch die richtige Anzahl Elemente enthalten, aber kein Text.



    Hat einer eine Idee woran das liegen könnte?


    Nach meinen Recherchen baut sich das Feld mit Hilfe des JFormFieldList auf, das über "Options" seine Listenelemente hinzufügt.
    Wandle ich das Feld in ein "List" um, kommen die Einträge auch mit Text.


    Ich weiss nicht mehr weiter.

    Got it!



    Der Tipp mit der ItemId hat geholfen.
    Jetzt bleibt das MenuItem aktiv :)


    Thx so much!

    ich habs probiert:


    Wenn ich vor setRedirect() ein exit; setze, sehe ich, dass im Menü das korrekte Item active ist. Nach dem Redirect springt er auf die Default-Seite.


    Der Witz ist halt dabei, dass wirklich alles korrekt funktioniert, nur das Menü rafft es nicht das korrekt Item auf Active zu setzen.
    Ich verzweifel bald.


    Gibt es es noch Alternativen einen Task-Call durchzuführen?
    Ich habe es ja mit einem Link gemacht. Geht das evtl. auch über einen POST oder andere Wege?

    Hallo Community,


    ich habe ein sehr seltsames Problem bei dem ich nicht weiterkomme.


    Zur Erläuterung der Ausgangssituation:
    Ich habe 3 Komponenten. Diese Komponenten waren bisher für sich allein gestellt.
    Jetzt aber soll Komponente 3 einen Task in Komponente 1 oder 2 auslösen.
    Hierzu habe ich rausgefunden, dass man über eine URL diesen Task auslösen kann und hab einen Link generieren lassen, der automatisiert die anderen View laden und und anpassen soll.
    Der Link funktionierte augenscheinlich auch. Die Ansicht springt auf den View von Komponente 1 um und fügt auch die nötigen Daten ein, die mit übertragen werden sollten.
    Aber das Menü-Item, dass zu diesem View in Komponente 1 gehört, wird nicht als Active Item gesetzt, sondern die "Startseite".


    Die Methode im Controller:

    Code
    1. function search() { if(!JSession::checkToken( 'post' ) && !JSession::checkToken( 'get' )) die( 'Invalid Token' ); $action = JFactory::getApplication()->input->get('action', null, 'STRING'); switch($action) { case "search": $this->search_value(); break; default: $this->search_clear(); break; } $this->setRedirect ( SPAManagerHelper::getActionLink() ); }


    Aufruf in der default.php des Views in Komponente 3 (Ausgangsansicht):

    PHP
    1. <a href="index.php?option=<component>&task=<view>.search&action=search&searchstring=<?php echo $item->AdrNr; ?>&<?php echo JFactory::getSession()->getFormToken(); ?>=1">Foo</a>


    Mein Problem ist, dass in den Parametern dieses Menuitems wichtige Einstellungen enthalten sind, die für die Darstellung benötigt werden. Da das Menuitem nicht aktiv ist, bekommt es die Params nicht und die Anzeige stimmt nicht mehr.


    Hat Jemand eine Idee, was das sein kann?

    Danke für den Hinweis mit der Version.
    Das werden wir auf jeden Fall noch machen, aber wir haben zu viele Eigenentwicklungen drin, die vorab noch geprüft werden müssen.


    Leider klappt das bei unserer Konfiguration so nicht, da unser Login nicht mit der Startseite gekoppelt ist (ich habs nicht so gewollt, es wurde so vorgegeben). Der Menüpunkt für den Login leitet dort fest auf die Startseite weiter.


    Naja, jetzt weiss ich wenigstens, wo man das evtl. einstellen kann, das war mir auch nicht klar.


    Danke trotzdem :)

    Hallo,


    wir haben ein Problem mit einer Joomla-Instanz 3.7.2


    Es kommt bei uns öfters vor, dass Benutzer per E-Mail über neue Beiträge, Downloads etc. informiert werden. Die Links zu diesem Seiten sind in den E-Mails dann auch enthalten.
    Sobald der Benutzer diesen Link anklickt, muss er sich aber erstmal an der Seite anmelden. Nach der Anmeldung landet der Benutzer auf der definierten Startseite, nicht auf der Seite, die im Link definiert war.


    Ein Beispiel:
    - Link in E-Mail - http://domain.com/descriptions/newtopic wird angeklickt
    - Seite öffnet im Browser mit Login-Form
    - Nach der Anmeldung lädt die Seite http://domain.com/welcome


    Wie kriegt man es hin, dass er nach dem Login die eigtl. Url aufruft, nicht die Startseite?


    Sind für jeden Tipp dankbar.

    Hallo Community,


    ich habe ein Modul mit einfachen Parametern geschrieben und unter Joomla 3.7.2 installiert.


    <modul>.xml


    Wenn ich nun nach der Installation das Modul in der Verwaltung aufrufe und versuche die Parameter zu speichern, wird in die Datenbank nichts geschrieben. Sobald das Modul wieder zur Bearbeitung geöffnet wird, kommen wieder die Standard-Parameter. Das gleiche Bild zeichnet sich auch ab, wenn man versucht die Parameter des Moduls auf Code-Seite zu laden. Hierbei sind alle dort angegebenen Parameter gar nicht vorhanden.


    Wo kann denn da der Fehler sein?


    Habe ein anderes Modul, deren Parameter sehr ähnlich aufgebaut sind, das funktioniert einwandfrei.

    Habe die Lösung durch Zufall in einem kleineren Forum finden können.


    In der XML-Datei des Moduls muss im <config>-Block ein <fieldset> definiert werden mit dem Tag:
    addfieldpath=""


    In diesem Pfad können dann die Formfield-Dateien abgelegt und innerhalb des Fieldsets dann über den Type geladen werden.


    <module>.xml

    Code
    1. <config>
    2. <fieldset name="basic" addfieldpath="/modules/mod_example/formfields">
    3. <field name="title" type="City" label="anythging" description="" />
    4. </fieldset>

    Hallo Community,


    ich habe ein Problem, zu dem ich leider keine Lösung finde.


    Ich habe ein Modul mit einem Config-Bereich in der XML (logisch eigtl.).
    Durch die Vorgaben des Moduls benötige ich dort Felder, die über Daten einer Datenbanktabelle einer anderen Komponente oder eines anderen Moduls bereitgestellt werden müssen, da diese Felder rudimentär wichtig für die Darstellung im Modul sind.


    Mein Problem jedoch ist, dass ich keinen Ansatz finde, wie ich solche Form-Fields in einem Modul erstellen kann.
    Bei Komponenten ist das ja über den Models-Ordner möglich, aber wie geht das bei Modulen?


    Hintergrund ist, dass ich ein Package habe. In diesem Package sind mehrere Kompenenten, Module und Plugins enthalten, die zum Teil gegenseitig auf einander zugreifen und Daten abrufen.
    Um eine doppelte Datenhaltung zu vermeiden, möchte ich natürlich versuchen die Daten zu erhalten und entsprechend bereitzustellen, die bereits vorhanden sind.


    Vielen Dank für die Hilfe. Ich hoffe, dass es überhaupt geht ;)


    Das sind immer so Pauschalaussagen...
    Könnte ich jetzt genauso flach behaupten: Wegen Suchmaschinen sollte man es so machen, da die Daten für diese lesbar geladen werden.


    Es wäre nett, wenn man seine eigene Meinung auch mitteilen kann ohne gleich verurteilt zu werden.
    display: none hat uns bereits oft Probleme bereitet, daher versuchen wir diese Option weitestgehend zu vermeiden.


    Ich verurteile ja auch niemand, ich teile nur meine Meinung und Empfehlungen auf Grund der Erfahrungen mit.

    BreezingForms ist eine sehr mächtige Komponente.
    Leider kann man da schlecht Beispiele geben, da es grundlegen dynamisch ist und so keine direkten Vorgaben hat.
    Es liegt aber vom Hersteller eine sehr umfangreiche und verständliche Dokumentation vor. Die hat mir auch auch des öfteren geholfen.

    Ich würde mit POST-Parametern (bei Links mit GET-Parametern) arbeiten.
    Über die GET lässt sich dann im Modul definieren, was es anzeigen soll.
    So kann man schnell und einfach die Anzeige anpassen.


    Die Daten per Ajax zu laden und anzuzeigen kann man machen, wenn nur ein Teil im Modul dynamisch gesetzt werden soll. Wenn sich allerdings die Ansicht im Modul komplett auf eine "Unterseite" umstellen soll, ist das eher nicht zu empfehlen.


    Von Optionen wie "display: none" würde ich definitiv abraten, da die Daten trotzdem geladen und im HTML-Code enthalten sind. Da erhöht die Datenmenge extrem und jeder Mobile User wird dich dafür verfluchen, weil der Traffic im Winde verweht.


    PS:

    Code
    1. // helper.php
    2. $query = $db->getQuery(true)
    3. ->select($db->quoteName(['id','Name1','PLZ','Ort']))
    4. ->from($db->quoteName('#__meinmodul'))
    5. ->order('PLZ ASC');
    6. $db->setQuery($query);


    Funktioniert auch und schreibt sich schneller da nicht jedes Feld eine neue Zeile braucht. Damit bleiben auch größere Queries lesbar.

    Eine fertige Erweiterung ist mir leider nicht bekannt.
    Ich habe so etwas ähnliches mal geschrieben als Modul zur Strompreisberechnung.


    Darin war ein einfaches Formular und ein JQuery-Code, der über Change-Events der Input-Felder reagierte und die Inhalte aufgerechnet hat.


    Alternativ würde evtl. noch BreezingForms klappen. Diese Erweiterung kann dynamisch Formulare zusammen stellen und unterstützt auch JavaScript. Evtl. klappt's damit ;)

    Vielen Dank für die schnelle Antwort :)
    Der Weg funktioniert zwar, habs gerade getestet, aber ist für die Firmen-Webseite leider sehr unpraktisch, da so alle Inhalte doppelt geführt werden müssen. Der Verwaltungsaufwand ist dann leider doch sehr groß.


    Gibt es evtl. über den Code eine Alternative?


    Hatte schon überlegt mit das Module selbst zusammen zu bauen, in dem ich die Daten aus der #__modules-Tabelle lese. Aber da fehlen mir einfach zu viele Hintergrundinformationen, wie ich dieses Modul soweit bekomme, dass es gerendert werden kann. Zudem kommt dann noch dazu, ob die Plugins noch funktionieren oder diese dann auch noch getriggert werden müssen.

    Hallo Community,


    ich bin dabei ein Dashboard-Modul zu schreiben, in dem verschiedenste Daten aus Joomla als Widgets bereitgestellt werden sollen.
    Als Option soll in einem Widget ein selbst erstelltes Modul (Eigenes Modul) angezeigt werden können.


    Hierfür bin ich bis jetzt soweit:


    Mein Problem hierbei ist jedoch, dass er ein Modul über Modul-Name und Titel nur finden kann, wenn diese gesuchte Modul auch auf der Seite selbst in einer Position angezeigt wird.
    Ist dies nicht der Fall, liefert getModule() ein leeres Modul-Objekt zurück, mit dem an eigtl. nichts anfangen kann.


    Ein Beispiel:
    Modul liegt auf Seite A in Position left.
    Angezeigt werden soll dieses Modul aber dynamisch auch auf Seite B in Position Content.


    Ruft man Seite A auf, funktioniert es einwandfrei.
    Ruft man Seite B auf, kommt ein leeres Modul.


    Meine Frage nun:
    Wie kann ich es erreichen dieses Modul komplett gerendert zu erhalten, auch wenn ich auf einer anderen Seite bin?


    Habe schon so viel versucht, sogar "Seite A" im Hintergrund erzeugen zu lassen (klappt aber nicht, da JDocument das nicht mitmachen wollte).


    Hat einer eine Idee? Ich stecke seit 2 Tagen in dieser Falle...

    Soll das ganze direkt berechnet werden, oder per Button-Click?


    Für die Direkt-Berechnung muss ggf. JQuery mit geladen werden.
    In der default.php im Kopf folgendes einfügen:

    Code
    1. JHtml::_('jquery.framework', false);


    Über ein <script></script> lässt sich dann der Inhalt eines <form> einlesen und die Berechnung durchführen. Hierbei berechnet sich dann z.B. der Gesamtbetrag direkt bei der Eingabe. Besser wäre hier aber auch ein Button, der dann die Gesamtsumme berechnet, wenn alle Eingaben erfolgten.


    Wenn es per Button-Click über PHP berechnet werden soll, sind ein controller etc. notwendig, damit ein Task ausgelöst wird.
    Dieser Task muss dann entsprechende Funktionen ausführen um die Daten für die default.php bereit zu stellen.


    Leider gibt es für diese Anforderung sehr viele Lösungswege. Daher ist eine genauere Beschreibung bestimmt hilfreich :)