-
Zwei Tabellen in Komponente - Unterscheidung bei Toolbarklick der tables
Hallo,
ich habe schon eine Weile rumgesucht und mir auch die Standardkomponenten
angeschaut, leider hab ich die Lösung wohl nicht gefunden oder übersehen.
Und zwar habe ich eine Komponente für Joomla 1.0.15 geschrieben(naja bin dabei) ^^
Diese Komponente hat zwei Tabellen(erstellt über die install.xml).
Wenn die Komponente installiert ist, kann man ich im Hauptmenü aussuchen, welche Tabelle ich bearbeiten will (via Menüpunkte in install.xml).
Die Toolbar hat so lange geklappt, wie ich nur eine Tabelle hatte und die bearbeiten wollte. Wie kann ich nun der Toolbar sagen, welche der beiden Tabellen ich zum beispiel editieren möchte? Leider geht die Variable "$act" verloren, sobald ich in der Tooblar auf edit/publish oder sowas drücke und kann daher die tabellen nicht unterscheiden.
Weiß jemand eine Lösung?
Bin dankbar für jeden Hinweis.
Gruß
nicki
-
-
Deine Übersicht, wo du edit/publish etc. drückst ist ja selbst ein Formular. Da kannst du versteckte Formularfelder (type="hidden") mitgeben und somit die Variablen übergeben.
-
-
Danke für deine Antwort Måria,
mittlerweile hab ich eine andere Methode gefunden, die ist aber ein bißchen aufwendiger, vermutlich werde ich deinen Tipp später umsetzen.
Ich habe in der toolbar.compname.php den Parameter, welcher vom Joomla-Admin-Menü kommt mit mosGetParam ausgewertet und dann dementsprechend verschiedene Toolbars gebaut. Ich weiß nicht ob das vielleicht bissl dirty ist, falls du denkst, dass das nicht so wirklich gut ist, würde ich es auf jedenfall ändern.
Ich habe aber noch ein anderes Problem.
Beim editieren bzw. erstellen eines Eintrags für die DB im BackEnd der Komponente wird stets eine Spalte nicht in die DB geschrieben.
Der Table sieht wie folgt aus. Die Spalte "titel" wird nicht vom Backend in die DB geschrieben. Woran kann das liegen?
aus zug aus compname.xml:
CREATE TABLE #__comp_name (
id INT NOT NULL AUTO_INCREMENT,
e_id INT NOT NULL,
titel TEXT NOT NULL,
datum DATE NOT NULL,
url TEXT NOT NULL,
published TINYINT(1) NOT NULL,
tage INT NOT NULL,
PRIMARY KEY (id) );
In der Edit-Funktion ist das Feld aber genauso implementiert wie alle anderen Felder, das eine jedoch wird nicht in der DB gespeichert?!!!!

Vielleicht hast du oder jemand anders einen Tipp woran das liegen kann.
danke im vorraus
nicki
-
-
Ohne den PHP-Code zu sehen, kann man da wenig sagen, evtl. hast du "title" statt "titel" oder probiere es mal mit `titel` (die `` sind gewollt)
-
-
Ich habe nochmal ein bißchen rumprobiert, also mit einem Update, kann ich direkt in die Tabelle schreiben.
Nur beim normalen Edit, mit den unten geschriebenen Funktionen klappt es nicht. Ich weiß nicht weiter, ...
---------------------------------------------------------------------------
Tut mir Leid, dass ich hier das Forum mit code so zuspamme.
Also das ist die Edit-Funktion:
<script language="javascript" type="text/javascript">
function submitbutton(pressbutton) {
var form = document.adminForm;
if (pressbutton == "cancel") {
submitform( pressbutton );
return;
}
submitform( pressbutton );
}
</script>
<form action="index2.php" method="post" name="adminForm" id="adminForm" class="adminForm">
<table border="0" cellpadding="3" cellspacing="0">
<tr><td>ID: </td>
<td>
<input type="text" size="50" maxsize="100" name="id" value="$row->id" />
</td></tr>
<tr><td>Event-ID: </td>
<td>
<input type="text" size="50" maxsize="100" name="e_id" value="$row->e_id" />
</td></tr>
<tr><td>Titel: </td>
<td>
<input type="text" size="50" maxsize="100" name="titel" value="$row->titel" />
</td></tr>
<tr><td>Datum: </td>
<td>
<input type="text" size="50" maxsize="100" name="datum" value="$row->datum" />
</td></tr>
<tr><td>Bild: </td>
<td>
<input id="test" type="text" size="50" maxsize="100" name="url" value="$row->url" />
</td></tr>
<tr><td>Tage: </td>
<td>
<input type="text" size="50" maxsize="100" name="tage" value="$row->tage" />
</td></tr>
</table>
<input type="hidden" name="id" value="$row->id" />
<input type="hidden" name="option" value="$option" />
<input type="hidden" name="task" value="" />
</form>
und hier noch ein auszug aus der save-Funktion:
$row = new mosBehind_The_Wall_Events($database);
$row->bind($_POST);
$row->store();
Wie gesagt, bis auf die eine Spalte speichert er ja alles.
In der DB finde ich auch keinen Hinweis darauf, dass die Spalte irgendwie gesperrt wäre oder so.
Gruß
nicki
-
-
ohoho, ist mir ja fast bissl peinlich.
die variable wurde nicht übernommen, weil in der entsprechenden klasse hatte ich vergessen die eine variable zu deklarieren, gott weiß wie warum und weshalb. naja nun gehts ^^
danke auf jedenfall erstmal für deine hilfe!!!
-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
Foren-Regeln
Lesezeichen