Nawigacja
Jak pisać wtyczki?
Napisane przez Gander dnia 30 grudnia 2007 22:38 · 1 komentarz · 13451 czytań · · ·
Streszczenie:
W systemie php-fusion wtyczki noszą nazwę infusions. Są to moduły rozszerzające funkcjonalność podstawowego pakietu. W php-fusion dostępne są 3 typy wtyczek: zwykłe, zawierające panel i panele. Te zawierające panel mogą wyświetlać efekty swego działania w panelach bocznych. Żeby napisać wtyczkę dobrze jest się zaopatrzyć w pakiet SDK (Software Development Kit). Oczywiście w przypadku wtyczek-paneli nie jest to konieczne...infusion.php
jest to jeden z najważniejszych plików wtyczki - plik instalacyjny. Zapisane są w nim dane konfiguracyjne, dzięki którym możliwe będzie poprawne zainstalowanie wtyczki (nazwa wtyczki, wersja, autor, ..., tabele bazy danych).
// Sprawdzenie czy istnieje plik językowy pasujący do języka lokalnej instalacji php-fusion
if (file_exists(INFUSIONS."infusion_title/locale/".$settings['locale'].".php")) {
// Load the locale file matching the current site locale setting.
include INFUSIONS."infusion_title/locale/".$settings['locale'].".php";
} else {
// Load the infusion's default locale file.
include INFUSIONS."infusion_title/locale/English.php";
}
// Infusion general information
$inf_title = $locale['xxx100']; // nazwa wtyczki
$inf_description = $locale['xxx101']; // krótki opis przeznaczenia wtyczki
$inf_version = "1.0"; // wersja wtyczki
$inf_developer = ""; // autor wtyczki
$inf_email = ""; // e-mail autora
$inf_weburl = "http://"; // strona autora
$inf_folder = "infusion_folder"; // nazwa katalogu wtyczki
$inf_admin_image = ""; // nazwa pliku obrazu (z administartion/images/)
$inf_admin_panel = ""; // nazwa pliku panelu administracyjnego (new_infusion_admin.php)
$inf_link_name = $locale['xxx102']; // nazwa linku wstawianego do nawigacji
$inf_link_url = ""; // nazwa pliku wstawianego do nawigacji (new_infusion.php)
$inf_link_visibility = "0"; // widoczność dla grupy 0/101/102/103
$inf_newtables = 1; // liczba tworzonych tabel bazy danych
$inf_insertdbrows = 0; // liczba wstawianych rekordów
$inf_altertables = 0; // liczba modyfikowanych tabel
$inf_deldbrows = 0; // liczba usuwanych tabel
// Jeśli nie wykonuje się żadnych operacji na tabelach, to można usunąć poniższy kod:
// tworzenie tabel podczas instalacji
$inf_newtable_[1] = "table_name (
field1 SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
field2 TINYINT(5) UNSIGNED DEFAULT '1' NOT NULL,
field3 VARCHAR(200) DEFAULT '' NOT NULL,
field4 VARCHAR(50) DEFAULT '' NOT NULL,
PRIMARY KEY (field1)
) TYPE=MyISAM;";
// dodawanie rekordów podczas instalacji
$inf_insertdbrow_[1] = "table_name (field1, field2, field3, field4) VALUES('', '', '', '')";
// usuwanie tabel podczas deinstalacji
$inf_droptable_[1] = "table_name";
// modyfikowanie tabel podczas instalacji
$inf_altertable_[1] = "table_name ADD etc";
// usuwanie innych tabel podczas instalacji
$inf_deldbrow_[1] = "other_table";
Poniżej przedstawiam plik infusion.php dla MusicBox 2.5:
if (file_exists(INFUSIONS."musicbox2_panel/locale/".$settings['locale'].".php")) {
include INFUSIONS."musicbox2_panel/locale/".$settings['locale'].".php";
} else {
include INFUSIONS."musicbox2_panel/locale/English.php";
}
$inf_title = $locale['mb2_100'];
$inf_description = $locale['mb2_101'];
$inf_version = "2.5";
$inf_developer = "Gander";
$inf_email = "fusion@gander.pl";
$inf_weburl = "http://www.gander.pl/modules/MB2";
$inf_folder = "musicbox2_panel";
$inf_admin_image = "shout.gif";
$inf_admin_panel = "musicbox2_admin.php";
$inf_link_name = "";
$inf_link_url = "";
$inf_link_visibility = "0";
$inf_newtables = 3;
$inf_insertdbrows = 1;
$inf_altertables = 0;
$inf_deldbrows = 0;
$inf_newtable_[1] = "musicbox2_tracks (
track_id smallint(5) unsigned NOT NULL auto_increment,
track_title varchar(100) NOT NULL default '',
track_path varchar(255) NOT NULL default '',
track_order smallint(4) unsigned NOT NULL default '0',
track_status tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (track_id)
) TYPE=MyISAM;";
$inf_newtable_[2] = "musicbox2_playlists (
user_id smallint(5) unsigned NOT NULL,
track_id smallint(5) unsigned NOT NULL,
track_order smallint(4) unsigned NOT NULL,
KEY user_id (user_id,track_id)
) TYPE=MyISAM;";
$inf_newtable_[3] = "musicbox2_settings (
playlistpath char(3) NOT NULL default '',
autoplay tinyint(1) NOT NULL default '0',
playerskin tinyint(1) NOT NULL default '0',
overcolor varchar(7) NOT NULL default '',
playerheight tinyint(3) unsigned NOT NULL,
info tinytext NOT NULL
) TYPE=MyISAM;";
$inf_droptable_[1] = "musicbox2_tracks";
$inf_droptable_[2] = "musicbox2_playlists";
$inf_droptable_[3] = "musicbox2_settings";
$inf_insertdbrow_[1] = "musicbox2_settings (playlistpath, autoplay, playerskin, overcolor, playerheight, info) VALUES ('php', 1, 1, '#2570BA', 10, '".$locale['mb_301']."');";
Komentarze
#1 |
ppiioottrreekk
dnia 19 grudnia 2008 15:27
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.