Joomla! Forum Schweiz wird Teil der D-A-CH Community

Nach vielen Jahren als zentrale Anlaufstelle für Fragen rund um Joomla! in der Schweiz wird das Joomla! Forum Schweiz künftig als Archiv weitergeführt.

Die Joomla!-Communities aus Deutschland, Österreich und der Schweiz arbeiten heute enger denn je zusammen. Deshalb bündeln wir künftig auch den deutschsprachigen Support und Austausch an einem gemeinsamen Ort im Joomla! D-A-CH Forum.

Für neue Fragen, Diskussionen und den Austausch mit der Community nutzt bitte ab sofort:

forum.joomla.de

Das Joomla! Forum Schweiz bleibt weiterhin bestehen und wird als Archiv im Lesemodus erhalten. Die vielen Beiträge, Lösungen und Erfahrungen aus den vergangenen Jahren bleiben damit weiterhin zugänglich und über die Suche auffindbar.

Wir bedanken uns herzlich bei allen Mitgliedern, Moderatoren und Helfern, die das Schweizer Joomla! Forum über viele Jahre mit ihrem Wissen und ihrem Engagement geprägt haben.

Wir sehen uns im Joomla! D-A-CH Forum!

3ten Status in der Listenübersicht

Mehr
28 Apr. 2019 00:03 #46695 von beetnick
3ten Status in der Listenübersicht wurde erstellt von beetnick
Hallo,
in meiner eigene Komponente gibt es zusätzlich eine view anwesenheit und anwesenheitslist. So weit so gut, die Komponente funktioniert einwandfrei.
Nun möchte der Kunde in der Anwesenheit einen 3ten Status, also unpublished schreibt eine 0, published schreibt eine 1 ind die DB und nun sollte es einen Status geben wo eine 2 (oder eine andetre Zahl) in die DB geschrieben wird und irgendein Icon angezeigt wird, das spielt nicht so eine Rolle.

Bisher konnte ich das so lösen:
Erste Spalte:
<?php echo JHtml::_('grid.id', $i, $row->id); ?>

und dann zum direkten umschalten:
<?php echo JHtml::_('jgrid.published', $row->published, $i, "anwesenheitlist."); ?>

Wie um himmelswillen bringe ich da einen dritten Status rein, wie ihr seht sind meine Kenntnisse doch eher Bescheiden. Könnte mir vorstellen dass man hier vermutlich recht einfach durch ein weiteres klicken den 3ten Status in die Tabelle anwesenheit -> published schreiben kann.

Kann mir jemand helfen, wäre sehr nett?

Beste Grüsse
Beat
Mehr
28 Apr. 2019 09:06 #46696 von Chris Hoefliger
Chris Hoefliger antwortete auf 3ten Status in der Listenübersicht
Verschoben nach Programmierung

Joomla! 3: Professionelle Webentwicklung von David Jardin und Elisa Foltyn - das Standardwerk zu Joomla! 3
Wer nicht über den Anstand verfügt, ein kleines "Thänx" auszusprechen, muss sich nicht wundern, künftig ignoriert zu werden!
Kein Support via PM oder Mail. Entsprechende Anfragen werden ignoriert.
Mehr
29 Apr. 2019 10:35 #46698 von Tribal6
Tribal6 antwortete auf 3ten Status in der Listenübersicht
Prinzipiell ist 'Status' oder 'state' normalerweise eine Spalte in der Datenbank, mit irgendeinem Wert drinn. Und in einer eigenen Komponente kannst du ja machen was du willst, da kannst du 10 oder 20 Stati haben. Du bist ja schliesslich der Entwickler.

Du scheinst dich aber an Joomla und dessen (JHTML-)Klassen zu halten. Da sind ja fix 4 Stati eingebaut. Neben Publish (1) und Unpublished (0) noch Archiv (2) und Papierkorb (-2). Am einfachsten wird es wohl sein, du nimmst einen der vorhanden und änderst dessen Bezeichnung.

Oder aber du machst einen neuen, und änderst die Funktionalitäten von Ein- und Ausgabe in der Liste/im Formular. Entweder durch eine eigene Funktion in View oder der tmpl/default.php, oder durch überschreiben/erweitern der 'jgrid.published'-Funktion und als eigenes JForm-Formularfeld für das Formular, falls JForm benutzt wird. Denn diese (JHtml und JForm) können ja auch einfach mit eigenen Klassen erweitert werden.

Das ist eben das schöne an Joomla - es geht eigentlich alles und es gibt für jedes Problem meist immer mehrere Lösungen.

Und schliesslich ist es ist deine eigene Erweiterung. Das heisst du kannst PHP. Und damit geht ja schliesslich alles :)

Tue das, was du kannst, mit dem was du hast, da wo du bist.
Folgende Benutzer bedankten sich: beetnick
Mehr
30 Apr. 2019 17:46 #46710 von beetnick
beetnick antwortete auf 3ten Status in der Listenübersicht
Herzlichen Dank für Deine Ausführungen. Das wäre genau passend für meine Anforderung, ich brauche eine 2 in der DB also nehme ich Archiv.

<field name="published" type="radio" class="btn-group"
label="JSTATUS"
description="JFIELD_PUBLISHED_DESC"
filter="intval"
size="1"
default="1"

<option value="1">JPUBLISHED</option>
<option value="0">JUNPUBLISHED</option>
<option value="2">JARCHIVED</option>

</field>


Soweit so gut, im edit Layout passt alles und es wird eine 2 in die DB geschrieben.

Anhang wurde nicht gefunden.



In der Listenansicht kann ich einen Hacken setzen beim entsprechenden Satz, eine 2 wird in die DB geschrieben und das Archive Icon erscheint.

Klicke ich jedoch auf das Icon wechselt es immer nur zwischen 0 (rotes Kreuz) und 1 (grüner Hacken) beim dritten klick möchte ich den Status Archiv ????

Anhang wurde nicht gefunden.




Aufruf in der View:
<?php echo JHtml::_('jgrid.published', $row->published, $i, "anwesenheitlist."); ?>
was mache ich falsch?
Mehr
02 Mai 2019 09:00 #46713 von Tribal6
Tribal6 antwortete auf 3ten Status in der Listenübersicht
Das ist das normale Verhalten, und die ganze 'Action' findet in der
libraries/cms/html/jgrid.php
statt.

Wie gesagt, wenn du dieses Verhalten ändern willst, musst du auch den Code dazu schreiben. Und damit der Code der Listenansicht übersichtlich bleibt, kannst du deinen eigenen JHTML-Helper schreiben:
in einem Ordner Namens
administrator/DEINE-KOMPONENTE/helpers
erstellst du eine Datei Namens 'myhelper.php', und darin eine Klasse Namens 'JHTMLMyhelper' mit einer public static function 'mypublish'.

Wenn du dann in der Listenansicht
<?php echo JHtml::_('myhelper.mypublish', $item->state, $i, 'events.', $canChange, 'cb'); ?>
verwendest, geht das durch deinen eigenen Helper, wo du die Funktionalität von jgrid.php reinkopieren und deinen Wünschen entsprechend anpassen/erweitern kannst.

Obige verwendete Namen kannst du natürlich anpassen, ausser der Klassenname muss den Prefix 'JHTML' haben.

Alles Weitere findest du über Google, dem PHP-Manual und im Joomla-Code selbst.
Denn 'Kunde' und 'eigene Erweiterung' lässt darauf schliessen, dass du für Geld selber was geschrieben hast. Dann musst du auch deine Hausaufgaben selber machen.

Tue das, was du kannst, mit dem was du hast, da wo du bist.
Folgende Benutzer bedankten sich: beetnick
Mehr
03 Mai 2019 01:03 #46716 von beetnick
beetnick antwortete auf 3ten Status in der Listenübersicht
Herzlichen Dank für Deine Unterstützung und du hast natürlich recht ich muss das selber machen und mich da durch kämpfen. Denke meine PHP Kenntnisse sind zu schwach, dennoch bleibe ich dran und muss halt ab und an was fragen.

Habe es genau nach deiner Empfehlung gemacht.
Beim Seitenaufruf dieser view, view=anwesenheitlist kommt der Fehler:

JHtml myhelper not found.
/home/residen1/public_html/rhkristall/libraries/src/HTML/HTMLHelper.php:122

Debug sagt:
hier wird gesucht:
JROOT/libraries/cms/html/myhelper.php -> (aber hier wollen wir ihn ja nicht)

Wo muss ich myhelper.php einbinden?
Mehr
03 Mai 2019 08:07 #46717 von Tribal6
Tribal6 antwortete auf 3ten Status in der Listenübersicht
Sorry, mein Fehler, ich hab was wichtiges vergessen. Nähmlich JHTML den zus. Pfad mitteilen, wo auch noch nach Klassen gesucht werden sollte.
Also, einbinden mittels einem

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/');

irgendwo 'auf dem Weg' zur Ansicht, also in einem Controller, in der view.html.php oder in der tmpl/default.php, falls diese so heisst bei dir :)

Cheers
Roger

Tue das, was du kannst, mit dem was du hast, da wo du bist.
Folgende Benutzer bedankten sich: beetnick
Mehr
03 Mai 2019 14:15 #46718 von beetnick
beetnick antwortete auf 3ten Status in der Listenübersicht
Super jetzt wird mein Helper durchlaufen :-)
Besten Dank
Beat
Moderatoren: pascaleadiheutschi.chTribal6RePaoDragonlordChris Hoefliger
Powered by Kunena Forum

Joomla! Verband Schweiz - Mitglied werden