Zobacz pełną wersję : Moduły - tworzenie tabel w bazie
Czy można dodać do paczki instalacyjnej plik, który będzie odpowiedzialny za stworzenie odpowiedniej tabeli w bazie danych?
Zacząłem od tworzenia modułów i nigdzie nie znalazłem informacji na ten temat. Dopiero przy tworzeniu komponentów jest o tym wspomniane, ale struktura folderów się wtedy zmienia i chyba bez controllera nie jest to możliwe.
Moduły z założenia pobierają i wyświetlają dane. Są rozwiązania gdzie moduł dodaje informacje do bazy danych ale już do istniejącej tabeli (np.: moduł rejestracji). Sprawdź czy podczas instalacji modułu nie da się utworzyć nowej tabeli. Są rozszerzenia (komponenty), które w mają umieszczony kod w opisie(w pliku xml), w momencie wyświetlania opisu zaraz po instalacji w Joomla, w tym opisie pojawia się przycisk instaluj,po kliknięciu tworzona jest nowa tabela/nowe tabele.
Pokombinuj w ten sposób.
Witam
Ja bym spróbował tak
<install type="module" version="1.5.0">
<name>Nazwa modułu</name>
<creationDate>2010-09-06</creationDate>
<author>dkint</author>
<authorEmail>info@jakisemail.info</authorEmail>
<authorUrl>http://www.jakasstrona.info</authorUrl>
<copyright>Info o prawach autorskich</copyright>
<license>Info o licencji</license>
<version>1.0.0000</version>
<description>Moduł do czegoś tam</description>
<installfile>install.properties.php</installfile>
<uninstallfile>uninstall.properties.php</uninstallfile>
<install>
<queries>
<query>
CREATE TABLE IF NOT EXISTS `#__jakas_tabela` (
`id` int(2) NOT NULL auto_increment,
`name` varchar(100) default NULL,
`alias` varchar(100) default NULL,
`parent` int(2) default NULL,
`published` tinyint(1) NOT NULL,
`ordering` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
</query>
</queries>
</install>
<files>
<filename module="mod_jakismodul">mod_jakismodul.php</filename>
<filename>helper.php</filename>
<filename>index.html</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
</install>Oczywiście to przykład do prób, nie wiem jaki moduł tworzysz ...
pozdrawiam
Krzysiek
@moje chciałbym to załatwić w module, bo tworzę dość prostą aplikację i nie wiem czy jest sens podciągać to pod komponent.
@dkint dzięki wielkie, jutro spróbuję czy coś z tego wyjdzie. Starałem się to zrobić tak jak w komponentach, ale bez kontrolera nic z tego nie wyjdzie.
Napisałem o komponencie bo w takim rozszerzeniu to widziałem,osobiście nie sprawdzałem czy działa to w module ale powinno.
Witam
Chyba za szybko się pośpieszyłem bo jednak nie zapisuje do bazy ... sorry mój błąd, testowałem na komponentach ...
-edit-
może jednak nie będzie tak źle, poczytaj tutaj ... http://docs.joomla.org/Sql_parameter_type ...
pozdrawiam
Krzysiek
@dkint pod tym linkiem jest tylko wyjaśnione jak pobierać dane z tabeli i wyświetlać jako drop down list.
Pokombinuję jeszcze nieco jutro, a jak nie da rady, to zwyczajnie podciągnę to pod komponent i też będzie ok.
Dzięki Panowie.
W:
<description> ... </description>
Umieść link do pliku jakis-modul_instal.php (z użyciem encji zamiast znaków specjalnych).
Ten o to plik utworzy Ci odpowiednią tabelę, po czym otworzy plik jakis-modul.xml jako plik tekstowy, usunie z niego link do pliku jakis-modul_insal.php, żeby zapobiec ponownemu utworzeniu tabeli, zapisze i zamknie plik jakis-modul.xml, a na koniec otworzy stronę/przekieruje na stronę listy modułów (czyli index.php?option=com_modules na zapleczu).
Witam
Robster faktycznie nie przyda Ci się i ten link - przetestowałem i nie działa, skorzystaj z porady moje albo zrób komponent ...
pozdrawiam
Krzysiek
@moje spróbuję chodź troszeczkę to dla mnie kosmos (nigdy nie edytowałem kodem .php innego pliku .php - albo inaczej, nigdy w ten sposób nie usuwałem kodu z pliku). Jak nie wyjdzie, to zrobię komponent.
EDIT:
Zrobiłem tak jak napisałeś @moje i wszystko ładnie śmiga :) Dzięki serdeczne.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!