Publish Button in Komponente
- luckynuts
-
Autor
- Neues Mitglied
-
ich bin gerade dabe die Komponente von [url:2peyblu5] openbook.galileocomputing.de/joomla15/jo...be552737852c3f1ad6f7 [/url]
auszubauen und diese dann wenn ich einige sachen hinzugefügt hab zum download zu geben.
Die Komponente soll am Ende Turnier/Wettkampf Ergebnisse von diversen Sportarten einfach Managen lassen und diese im Frontend zur verfügung stellen.
Jetzt wollte ich im Backend die Funktion zum publishen bzw. unpublishen einbauen. Der Button usw. steht auch schon, leider hab ich es aber noch nciht geschafft dass diese auch funktionieren.
Ich hab mich vorallem an die Komponente Weblinks orientiert.
Hat einer von euch eine Ahnung was fehlt? Wenn ja, kannst du das vlt ergänzen und im Quelltext kommentieren, damit ich das anschauen kann?
Die Komponente habe ich in einem zip archiv angehängt.
Dankeschön
und schöne Weihnachten euch alle!!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- luckynuts
-
Autor
- Neues Mitglied
-
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Tribal6
-
- Offline
-
...wenn du in deinem Model "pairrank" in den Methode "publish" in der Query selbst den Zusatz:
"..... ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ) )'" rausnimmst, dann funktionierts wunderbar.
So wie es jetzt ist, checkt die Methode mit dieser ursprünglichen Query, ob der Datensatz ausgecheckt ist, und falls ja, von welchem Benutzer. Das wiederum bedingt, das
- Die Datensätze beim Bearbeiten ausgecheckt werden
- und das dann logischerweise auch entsprechende Felder in der Tabelle der Datensätze vorhanden sind....
...und da müssten deine Datensätze da mindestenst eine Spalte `checked_out` haben, der momentanen Query nach. Da diese Spalte aber nicht vorhanden ist, wird auch nichts zum publishen "gefunden".
Füge entsprechende Spalte in der DB hinzu, oder passe (temporär) die "Publish/Unpublish"-Query an.
Cheers
Roger
Tue das, was du kannst, mit dem was du hast, da wo du bist.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- luckynuts
-
Autor
- Neues Mitglied
-
okay, also so wie ich das verstanden habe ist die spalte "checked_out" welche momentan bei mir noch fehlt, dazu zuständig zu überprüfen und zu kontrollieren, dass keine zwei user gleichzeitig an einem datensatz arbeiten können/dürfen?
Daher wiederum ist es wichtig dass das Datenbankfeld "checked_out" vorhanden ist. (Beispiel wie die Sperre beim bearbeiten von Contents)
Lieg ich damit richtig?
EDIT: Hab die Tabelle mal im phpmyadmin hinzugefügt, funktioniert jetzt wirklich
Danke für die Hilfe!!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Tribal6
-
- Offline
-
Für die Erstellung der Tabellen während des Installierens ist entweder eine Query im xml-File deiner Erweiterung zuständig, oder ein externes SQL-File, das du dann in der xml-Datei benennst.
Thema auschecken:
Wenn in deiner Tabelle die Felder `checked_out` (int) und `checked_out_time` (date/time) vorhanden sind, dann kannst du ganz easy die zwei Methoden der geerbten JTable-Klasse dazu verwenden:
und zum wieder "einchecken":
Es steht dir natürlich auch frei, diese Methoden zu kopieren oder selber eine solche Funktion zu schreiben, um sie z.B. in deinem Model zu verwenden, solltest du bei deiner Erweiterung keine Tabellenklasse verwenden.
Um das zu überprüfen, kannst du vor dem Laden des Datensatzes die Methode isCheckedOut() der JTable-Klasse verwenden:okay, also so wie ich das verstanden habe ist die spalte "checked_out" welche momentan bei mir noch fehlt, dazu zuständig zu überprüfen und zu kontrollieren, dass keine zwei user gleichzeitig an einem datensatz arbeiten können/dürfen?
(mit oben erwähnten zwei zusätzlichen DB-Feldern)
isCheckedOut (line 688)
Check if an item is checked out
This function can be used as a static function too, when you do so you need to also provide the a value for the $against parameter.
* access: public
boolean isCheckedOut (integer $with, [integer $against = null])
* integer $with: The userid to preform the match with, if an item is checked out by this user the function will return false
* integer $against: The userid to perform the match against when the function is used as a static function.
Die Möglichkeiten, die du mit der (geerbten) Tabellenklasse hast, siehst du hier
--ALTER LINK WURDE ENTFERNT--
Da sind einige nützliche Methoden dabei, die dir das Leben leichter machen.....
Weiterhin viel Spass.
Cheers
Roger
Tue das, was du kannst, mit dem was du hast, da wo du bist.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.