ForumCała strona

Nawigacja

Aktualnie online

Gości online: 8

Użytkowników online: 0

Łącznie użytkowników: 25,386
Najnowszy użytkownik: Hisfatt

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

Zbigniew@
28.04.2024 21:33:51
Nareszcie udało się .V9 Document checking completed. No errors or warnings to show.

JazOOn
27.04.2024 21:35:25
Jazda. Udało się. Firma rusza.

Zbigniew@
01.04.2024 12:28:45
Wszystkiego najlepszego z okazji świąt.

JazOOn
28.02.2024 19:25:31
ja zostałem przy fusionie ale nazywa się 360. Projektowanie i druk 3d...

MajsterBieda
25.02.2024 00:12:42
Ponad 20 lat .... tosz to sioook panie.... Grin

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