OT: SelectList -> conditional event

  • smhaller
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
14 Jan. 2011 09:31 #27988 von smhaller
OT: SelectList -> conditional event wurde erstellt von smhaller
Hallo zusammen,

ich habe folgende Ausgangssituation:
Eine SelectList zeigt mir die verfügbaren MessagingServices (AOL,MSN) an. Gleichzeitig habe ich einen manuellen Wert "Neu" zugefügt. Eine JavaScript funktion prüft über onChange welcher Wert gesetzt wurde. bei "N" für neu kann ich einen alert Dialog aufrufen.
Code:
function check_new() { var service=document.adminForm.msgservice.value; if (service == "N") { alert('Es wurde Index '+service+' gewählt'); } }

Nun möchte ich aber statt dessen eine ModalBox aufrufen um darin den neuen MessagingService definieren zu können.
Die Entsprechende Joomla Klasse wird bereits geladen.
Code:
JHTML::_('behavior.modal');

Weiss hier jemand Rat wie ich das richtig einbaue? Respektive wie ich der JavaScript Funktion sage er soll mir eine ModalBox anzeigen mit dem gewünschten inhalt?

Ein Aufruf mit window.open öffnet entsprechend ein neues Browser Fenster, dieses kann ich aber nicht umbiegen.

Danke und Gruss
Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • smhaller
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
14 Jan. 2011 15:57 #27990 von smhaller
Die ModalBox hae ich inzwischen hinbekommen!

Hinweise:
--ALTER LINK WURDE ENTFERNT--
--ALTER LINK WURDE ENTFERNT--

Nun müsste ich darin aber noch ein Formular aufrufen können um den MessagingService zu definieren.

Gruss
Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
14 Jan. 2011 21:13 #27991 von Tribal6
Hi Stefan

Ähh....Ja.

Du hast es hinbekommen. Schön.

Nun müsste ich darin aber noch ein Formular aufrufen können um den MessagingService zu definieren.

Ja, stimmt. Oder klappt das nicht? Falls nicht, was genau geht nicht? Einbisschen mehr Infos sollten es schon sein.

Das Formular hast du schon? Ist es Joomla-Content? Oder was externes? Du müsstest deiner JavaScript-Function via onChange-Handler vermutlich nur die URL zu dem Formular mitteilen, ev. noch andere Parameter, je nach Lösungsansatz halt. Entsprechende Beispiele sind ja bei beiden Lösungsansätzen vorhanden.

Und wenn dein Formular Joomla-Content ist, d.h. von einer Joomla-Extension angezeigt wird, dann musst du der URL noch den Parameter 'tmpl=component' anhängen, damit nur der reine Content angezeigt wird, ohne Module ringsum.

Greetz
Roger

Tue das, was du kannst, mit dem was du hast, da wo du bist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • smhaller
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
17 Jan. 2011 17:58 #28014 von smhaller
Hi Roger,

danke für Deine Antwort und den Tip:

Und wenn dein Formular Joomla-Content ist, d.h. von einer Joomla-Extension angezeigt wird, dann musst du der URL noch den Parameter 'tmpl=component' anhängen, damit nur der reine Content angezeigt wird, ohne Module ringsum.


Nein, das Formular für diesen Teil muss ich mier wohl noch basteln, respektive eine eigene View dafür bauen.

Im Moment sieht der Aufruf nun so aus:
Code:
<SCRIPT> function check_new() { var service=document.adminForm.msgservice1.value; if (service == "N") { SqueezeBox.setContent('iframe', 'index.php?option=com_tab&task=add&tmpl=component'); } } </SCRIPT>

Ich frage mich nun aber ob das so Sinn macht.. Denn einen ähnlichen Funktionsaufruf brauche ich auch noch in einem weiteren Teil der Komponente. Die Schwierigkeit wird für mich sein, das zu generalisieren :-\ \ .

Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
17 Jan. 2011 21:14 #28028 von Tribal6
Ne, gar nicht so schwer:

Eine übliche Vorgehensweise wäre z.B., du schreibst dir eine PHP-Klasse mit statischen Hilf-Funktionen.

Die 'Hauptdatei' einer Komponente ist immer das PHP-File mit demselben Namen wie die Komponente selbst, aber ohne das 'com_' (im Frontend), und zwar im Root-Ordner der Erweiterung. Also bei einer Kompo mit Namen 'com_tab' wäre das dann ../components/com_tab/tab.php. Im Backend wäre es die ../administrator/components/com_tab/admin.tab.php
Die wird bei einen Aufruf auf die Komponente immer zuerst ausgeführt. Da wäre der richtige Ort um deine Helper-Klasse zu includen, dann steht sie dir Komponenten-Weit in allen M's, V's und C's zur Verfügung.

R.

Tue das, was du kannst, mit dem was du hast, da wo du bist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • smhaller
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
24 Jan. 2011 10:57 #28132 von smhaller
Hallo zusammen,

ich habs tatsächlich geschafft!
Einen kleinen Schönheitsfehler habe ich jetzt noch. Der controller liefert mir den falschen Rückgabewert.
Code:
function savetype() { $model = $this->getModel('edit'); if ($model->storeType()) { $msg= JText::_('New Type saved'); } else { $msg= JText::_('Saveing Type failed!'); } $this->setRedirect(url,$msg); }

Anstelle von erfolgreich wird fehlerhaft ausgegeben. Ich interpretiere die Funktionsweise so, dass if prüft ob der Aufruf von storeType erfolgreich war. Wenn true (0) dann .... und sonst ...

Im Model steht:
Code:
if (!$tbl_types->store()) { JError::raiseWarning( 500, $tbl_types->getError() ); }

Da der Datensatz sauber in die Tabelle geschrieben wird leuchtet mir das nicht ganz ein.

Wo mache ich dan den Denkfehler?

Danke und Gruss
Stefan

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
24 Jan. 2011 12:34 #28133 von Tribal6
Hi

Der Ausdruck im Controller prüft den Returnwert von $model->store(). Ist aber aus deinen Angaben nicht ersichtlich, was die zurückgibt. Müsste aber bei Erfolg ein 'return true;' sein.

ich schätze aber mal wenn du aus
Code:
if (!$tbl_types->store()) { JError::raiseWarning( 500, $tbl_types->getError() ); }
das da
Code:
if (!$tbl_types->store()) { JError::raiseWarning( 500, $tbl_types->getError() ); return false; } return true;
machst, könnte es gehen, denn damit lieferst du einen korrekten Rückgabewert für den Ausdruck im Controller.

Mahlzeit
Roger

Tue das, was du kannst, mit dem was du hast, da wo du bist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Moderatoren: Tribal6RePaoDragonlordChris Hoefligerpascaleadiheutschi.ch
Powered by Kunena Forum

Joomla! Verband Schweiz - Mitglied werden