ForumCała strona

Nawigacja

Aktualnie online

Gości online: 6

Użytkowników online: 0

Łącznie użytkowników: 25,397
Najnowszy użytkownik: Lyokoheros

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

khaman
08.04.2025 12:11:31
Happy Ramadan JazOOn Smile

JazOOn
06.04.2025 00:03:11
szczesliwego nowego roku

sferahost
28.02.2025 21:31:55
Tak, "zesrało" się kodowanie. Przyznaję, za dużo rzeczy na raz a do tego jeszcze przeziębienie.

panicze
28.02.2025 20:50:22
Ten serwer co reklamuję się na stronie, to jest dla mnie anty-reklamą Źle

Pieta
28.02.2025 19:07:47
Uuu. Coś się kodowanie strony wysypało Sad

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 · 13678 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