Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.

Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
D
DannyUlm 0.png 12.01.2015 22:43

Version 5.7.x Paket erstellen

Hallo zusammen,

hat schon jemand Erfahrungen mit der Entwicklung von Paketen in der aktuellen Version 5.7 gesammelt?

Ich nutze die version 5.6 schon länger und habe bisher Themes als Pakete erstellt.

Jetzt möchte ich etwas ausgefalleneres machen und stehe vor dem Problem, dass ich bei der Installation des Pakets in neue, eigene Tabellen verschiedene Standard-Datensätze einfügen muss.

Hat mir jemand einen Tip, wie ich das beim durchführen der Installation des Pakets am besten lösen kann?

Vorab danke für eure Hilfe.

Gruß
Danny
R
RII 0.png 15.01.2015 17:20
kannst du bitte dein Problem etwas mehr erklären, ich weiss nicht genau was du meinst mit eigene Tabellen und Datensätze!
D
DannyUlm 0.png 16.01.2015 17:51
Danke für eine Rückmeldung. Klar gebe ich gerne mehr Details:

Das Paket (Add-On) besteht nur aus wenigen Dingen, um mich in die Thematik einzuarbeiten.

Das Paket enthält eine Controller.php, in der wie üblich die Eigenschaften und Funktionen für die Installation beinhaltet sind.

Zudem habe ich eine db.xml erstellt, in der eine eigene Tabelle (Name "Versuch") während der Installation über den Controller angelegt wird.

Die Tabelle hat die Felder "bID" und "Werte".

Ich würde jetzt gerne im Controller in der Funktion install gerne die Tabelle "Versuch" gleich mit mehreren neuen Datensätzen füllen.

Variante1:
Versucht habe ich es einmal in der db.xml mit den Nodes "Query".

Variante 2:
Desweiteren habe ich versucht im Controller am Ende der install-Funktion manuell via Sql die Daten in die neue Tabelle zu schreiben.

In beiden Fällen, läuft die Installation des Pakets erfolgreich und sauber durch, die Tabelle wird auch angelegt, aber sie wird nicht mit Daten befüllt.

Meine Vermutung geht dahin, das Variante 1 nicht greift, da in der Version 5.7.x der Datenlayer getauscht wurde und für <Query> keine Kompatibilität geschaffen wurde.
Warum Variante 2 nicht funktioniert, kann ich mir leider nicht erklären. wenn die Datenbank noch nicht vorhanden ist, dann sollte doch eigentlich ene Fehlermeldung zu sehen sein, oder?

Wenn du noch mehr infos brauchst, gerne kurz anfordern, bin danke für jede Hilfe.

Gruß
Danny
R
RII 0.png 19.01.2015 10:52
kannst du bitte den Code vom controller hier einstellen!
D
DannyUlm 0.png 19.01.2015 18:24
Gerne doch:

[php]
<?php
namespace Concrete\Package\Spielwiese;
use SinglePage;
use Database;

class Controller extends \Concrete\Core\Package\Package {
protected $pkgHandle = 'spielwiese';
protected $appVersionRequired = '5.7.3';
protected $pkgVersion = '1.0';

public function getPackageName {
return t('Spielwiese');
}

public function getPackageDescription {
return t('Test-Paket zum Einarbeiten in die concrete5 Programmierung');
}

public function install() {
$pkg = parent::install();
$this->fillDB();
}

public function uninstall() {
parent::uninstall();
$db = Database::getActiveConnection();
$db->Execute('DROP TABLE IF EXISTS sw_versuch');
}

private function fillDB() {
$db = Loader::db();
$sql = 'INSERT INTO sw_versuch (bID, Wert) VALUES (?, ?)';
$db->Execute($sql, array('1', 'Der erste Wert'));
$db->Execute($sql, array('2', 'Der zweite Wert'));
$db->Execute($sql, array('3', 'Der dritte Wert'));
$db->Execute($sql, array('4', 'Der vierte Wert'));
}
}
?>
[/php]
D
DannyUlm 0.png 03.02.2015 17:56
Hallo RII,

hattest du schon Zeit dir den Code freundlicherweise anzuschauen?
Konnte schon jemand das Problem nachvollziehen?

Gruß
Danny
R
RII 0.png 04.02.2015 12:12
HEy,

der Code ist richtig, habe es auch getestet und es funktioniert, das Problem scheint wo anders im package zu sein!!!
C
cabonara 0.png 16.05.2015 15:20
Na und wo lag das problem jetzt?
D
DannyUlm 0.png 18.05.2015 18:54
Hey cabonara,

das Beispiel ist soweit korrekt, jedoch muss zu Beginn noch die Loader-Klasse importiert werden. Danach lief es ohne Probleme.

Gruss
Danny

Nachricht hinzufügen