ForumCała strona

Nawigacja

Aktualnie online

Gości online: 2

Użytkowników online: 0

Łącznie użytkowników: 25,400
Najnowszy użytkownik: AlojzyBartek

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

piterus
30.10.2024 19:45:48
I będziemy śpiewać: "Kiedy 20 blisko, przebadaj wszystko, przebadaj wszystko..." Pfft

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Nawigacja

Jak pisać wtyczki?

Napisane przez Gander dnia 30 grudnia 2007 22:38 · 1 komentarz · 13451 czytań · Drukuj · Facebook · Wykop

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
Czemu tworzenie tabeli jest taki dziwnie podane?. Zamiast $inf_newtable_[1] ma być $inf_newtable[1], bo inaczej nie utworzy nowej tabeli.
Przynajmniej ja miałem taki problem a odpowiedź znalazłem na forum. Myślę że ktoś to powinien poprawić.

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl