PDA

Zobacz pełną wersję : Błąd instalacji własnego komponentu



vego007
22-07-2008, 21:25
Napisałem sobie własny komponent i stworzyłem plik mvc.xml do instalacji. Nazwa mojego komponentu to com_mvc.

Plik mvc.xml wygląda następująco:


<?xml version="1.0" ?>
<mosinstall type="component">
<name>mvc</name>
<creationDate>2008-07-22</creationDate>
<author>rav.pl</author>

<copyright>
Copyright 2008 rav.pl
</copyright>
<authorEmail>slawomir@rav.pl</authorEmail>
<authorUrl></authorUrl>
<version>1.0</version>

<description>Faktury</description>
<files>
<filename>css/CalendarControl.css</filename>
<filename>fpdf/font/arialbd.php</filename>
<filename>fpdf/font/arialbd.z</filename>
<filename>fpdf/font/arialpl.php</filename>
<filename>fpdf/font/arialpl.z</filename>
<filename>fpdf/faktura.php</filename>
<filename>fpdf/fpdf.css</filename>
<filename>fpdf/fpdf.php</filename>
<filename>fpdf/rpdf.php</filename>
<filename>js/CalendarControl.js</filename>
<filename>models/igtl.php</filename>
<filename>models/kwota.php</filename>
<filename>models/mvc.php</filename>
<filename>models/zaplacone.php</filename>
<filename>tables/mvc.php</filename>
<filename>views/mvc/view.html.php</filename>
<filename>views/mvc/tmpl/default.php</filename>
<filename>views/mvc/tmpl/klienciform.php</filename>
<filename>views/mvc/tmpl/listlayout.php</filename>
<filename>views/mvc/tmpl/paid.php</filename>
<filename>views/mvc/tmpl/unpaid.php</filename>
<filename>views/pdf/view.html.php</filename>
<filename>views/pdf/tmpl/dataform.php</filename>
<filename>views/pdf/tmpl/default.php</filename>
<filename>views/pdf/tmpl/igtlform.php</filename>
<filename>views/pdf/tmpl/pdflayout.php</filename>
</files>
<install>
<queries>
<query id="1">
CREATE TABLE IF NOT EXISTS `#__igtl` (
`id` int(1) NOT NULL,
`nazwa` varchar(100) default NULL,
`adres` varchar(200) default NULL,
`nip` varchar(30) default NULL,
`bank` varchar(50) default NULL,
`nr_rachunku` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
</query>
<query id="2">
CREATE TABLE IF NOT EXISTS `#__klienci` (
`id` int(10) NOT NULL auto_increment,
`nazwa` varchar(50) default NULL,
`nazwa_skr` varchar(30) default NULL,
`adres` varchar(200) default NULL,
`nr_telefonu` varchar(18) default NULL,
`nr_faksu` varchar(18) default NULL,
`email` varchar(100) default NULL,
`www` varchar(80) default NULL,
`nip` int(13) default NULL,
`regon` int(13) default NULL,
`rejestracja_dzialalnosci` varchar(200) default NULL,
`zarzad` varchar(150) default NULL,
`dzialalnosc` varchar(100) default NULL,
`oferta` varchar(300) default NULL,
`sekcja1` varchar(200) default NULL,
`sekcja2` tinyint(1) NOT NULL,
`sekcja3` tinyint(1) NOT NULL,
`sekcja4` tinyint(1) NOT NULL,
`os_kontakt` varchar(60) default NULL,
`st_os_kontakt` varchar(70) default NULL,
`tel_os_kontakt` varchar(18) default NULL,
`fax_os_kontakt` varchar(18) default NULL,
`email_kontakt` varchar(100) default NULL,
`bank` varchar(60) default NULL,
`nr_rachunku` varchar(40) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
</query>
<query id="3">
CREATE TABLE IF NOT EXISTS `#__kwota` (
`id` int(10) NOT NULL auto_increment,
`do_zaplaty` varchar(20) default NULL,
`do_zaplaty_slownie` varchar(100) NOT NULL,
`rok` int(4) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `rok` (`rok`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
</query>
<query id="4">
CREATE TABLE IF NOT EXISTS `#__zaplacone` (
`id` int(100) NOT NULL auto_increment,
`id_klienta` int(20) default NULL,
`miesiac` varchar(2) default NULL,
`rok` int(4) default NULL,
PRIMARY KEY (`id`),
KEY `id_klienta` (`id_klienta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=38 ;
</query>
</queries>
</install>
<uninstall>
<queries>
<query id="1">DROP TABLE IF EXISTS `#__klienci`</query>
<query id="2">DROP TABLE IF EXISTS `#__igtl`</query>
<query id="3">DROP TABLE IF EXISTS `#__zaplacone`</query>
<query id="4">DROP TABLE IF EXISTS `#__kwota`</query>
</queries>
</uninstall>
</mosinstall>


Przy próbie instalacji dostaję błąd: "Komponent Instaluj: The XML file did not contain an administration element". Mógłby ktoś mi wyjaśnić o co chodzi? Z góry dziękuję za pomoc

zwiastun
22-07-2008, 21:30
Nie ma elementu administracyjnego, a więc tego, który mówi, jakie pliki wędrują do katalogu /administrator oraz umieszcza komponent w menu zaplecza. Tym samym nie ma poleceń umieszczających skrypty na zapleczu i uruchamiających obsługę komponentu.

vego007
22-07-2008, 21:31
Dzięki. Poprawiłem i działa.

vego007
28-07-2008, 10:03
Czym różni się xml instalacyjny, gdy piszemy komponent jako 1,5x legacy od tego gdy piszemy go jako 1,5x native. Mój komponent instaluje się tylko w trybie legacy ale działa również bez niego, dlatego też chciałbym dodać do install.xml obsługę 1,5 native.

Z góry dziękuję za odpowiedź

zwiastun
28-07-2008, 12:13
najogólniej? <mosinstal...> w trybie zgodności wstecznej, <install...> w trybie naturalnym, ale różnic jest więcej. Przyjrzyj się takim plikom.