Moduly, wtyczki itp.

0

Pewnego razu Marooned wspomnial o tym aby zrobic cos na wzor modulow czy wtyczek. Tak, aby mozna bylo wybrac czy projekt ma zawierac BugTrackera, dzial "Praca" (to wkrotce) itp. Hmm... ale Maroonedzie, masz pomysl jak to mialoby wygladac (albo ktokolwiek inny?). Ja nie mam pomyslu aby napisac az tak skalowalny system, aby mozna bylo latwo odlaczac forum itp. rzeczy.

0

Nie wiem, czy myslimy o tym samym, ale ja widze to rozumiem tak: chcę postawić coyota - wrzucam pliki do katalogu i odpalam powiedzmy http://localhost/coyote/setup.php

Tam mogę sobie wybrać jakieś tam parametry połączenia do bazy, inne ustawienia. Jest też lista typu:

[ ]..
[x] Artykuły
[x] Praca
[x] Kosz
[ ] Bugtracker

Po zatwierdzeniu zmieniam tylko uprawnienia do pliku, by nikt mi tego nie włączył przypadkiem i tyle.

Jak się mylę, poprawcie mnie.

W bazie mogłoby być zapisane, które moduły lub działy są obsługiwane i zależnie od tego - pokazywałby link (np.: do tworzenia artykułów) lub nie.

0

Tak, tak, ale chodzi mi tutaj o bardziej techniczna strone :) Bo myslalem raczej o modulach, takich jakie sa w systemach portalowych (typu Mambo). Czyli struktura tabeli, organizacja katalogow, wymagane pliki do includowania itp.

Hmm... no bo jak: nalezaloby rozdzielic pliki SQL przechowujace strukture tabeli. Te od tabel BugTrackera, od dzialu "Praca" itp... i w zaleznosci od tego co user wybral, dodawac je, prawda?

Przykladowo: modul sluzacy do blokowania robotow czy programow typu Teleport, hmm... to juz trudniejsze? jakos sobie tego nie wyobrazam :) jak to mogloby wygladac. Chyba jakos latwo nie da sie tego zrobic, to musi byc cos w stylu phpbb hacks ;)

0

Mam tylko jedną uwagę: błagam nie wzorujcie się na Mambo!

// A co do włączania - wyłączania modułów - albo niech to będzie poprzez sktypt php [szybsze] albo cacheowane zapytania SQL.

0

Noooooo :)
W końcu jakieś mega pozytywne zmiany [a raczej plany].

Faktem jest, że jedyny taki system od strony technicznej jaki znam, to Mambo. Nie ma on samych minusów, jakby można było wywnioskować z postu Qyona, aczkolwiek jest on przeznaczony do innych celów - u nas chyba niemożliwe by było napisać coś a'la Mambo - tam skórka, to jeden plik php, bez forum...

Niestety, nie wiem jak wyglądają wtyczki do phpBB, IPB :(

Jednak ja bym to widział od strony użytkowej jak w Mambo - czyli każdą wtyczkę można doinstalować, usunąć czy chwilowo wyłączyć w każdej chwili przez admin panel.

Myślę, że .zip z niezbędnymi plikami + opis co do czego w XML to dobry pomysł - dość skalowalny i łatwy w implementacji.

Największy problem jest taki, czy ograniczyć możliwości wtyczek [jak w Mambo] tylko do kilku rzeczy [mogą dodać pewien kod na jakieś strony] czy spróbować wymyślić system, który zezwoli wtyczce całkowicie zmienić funkcjonowanie dowolnej części strony. Chwilowo nie wiem, czy takie coś jest wykonalne...

Fajnie, gdyby ktoś po krótce opisał jak to jest w innych systemach, forach..

Będę myślał.. i liczę na konstruktywną debatę :)

P.S.
A to, o czym napisał Szczawik, to inna para kaloszy - to wybór instalowanych wtyczek przy instalacji - będą wtyczki, będzie wybór przy instalacji - to jasne :)

Marzeniem jest oddzielić stronę główną od forum tak, by można było zainstalować tylko jedno z tego jeśli zajdzie taka potrzeba...

0

Wtyczki do phpBB ja wiem jak wyglądają. Nie istnieją. Wszelkie mody to ręczna modyfikacja odpowiednich plików oryginalnego skryptu.

0

Ktos: Ale zauważ, jak są zrealizowane wtyczki w phpBB mod by Przemo - tam każdą możesz sobie wyłączyć wedle życzenia. Jedną opcją w AdminPanelu.

0

Co do wykonania to ja mam następujący pomysł (bo ostatnio sam nad czymś takim siedzę do strony firmy). Nie testowałem, ale to taka myśl.

Idea jest taka, by stworzyć klasę posiadającą określoną przez użytkownika funkcjonalność (będzie posiadała tylko wybrane operacje) - ideowo będzie to coś takiego:

//////////////////////////////////////////////////////////////////////
// main.php
//////////////////////////////////////////////////////////////////////
class KlasaBazowa
{
..
}

include('kosz.php');
include('praca.php');

$Obiekt = new KlasaPraca; // KlasaPraca bo na samym dole hierarchii

if (method_exists($Obiekt, 'DodajLink_OproznianieKosza'))
  DodajLink_OproznianieKosza();

//////////////////////////////////////////////////////////////////////
// kosz.php
//////////////////////////////////////////////////////////////////////
if ($wybrano_kosz)
{
  class KlasaKosz extends KlasaBazowa
  {
  //.. metody Kosza, np.: function DodajLink_OproznianieKosza() { }
  }
}
else
{
  class KlasaKosz extends KlasaBazowa
  {
  // bez nowych metod, tylko by zachować hierarchię
  }
}
//////////////////////////////////////////////////////////////////////
// praca.php
//////////////////////////////////////////////////////////////////////
if ($wybrano_praca)
{
  class KlasaPraca extends KlasaKosz
  {
  //.. metody Pracy
  }
}
else
{
  class KlasaPraca extends KlasaKosz
  {
  // bez nowych metod, tylko by zachować hierarchię
  }
}

Taki jest zarys. [soczek]

0
Szczawik napisał(a)
if (method_exists($Obiekt, 'DodajLink_OproznianieKosza'))
DodajLink_OproznianieKosza();

Sorry, ale zalatuje mi tu LLoP - możesz jakoś jaśniej to przedstawić?

0

LLoP? Cokolwiek..

Chodzi mi o to, aby na razie nie tyle dodawać nową funkcjonalność poprzez moduły, co obecną podzielić na moduły i stworzyć klasę, która zawierałaby funkcjonalność użytą przez administratora do stworzenia danej instalacji.

Szablony byłyby tak przerobione, aby wykonać określoną funkcjonalność, tylko, jeśli klasa ją posiada. Rozumiem oczywiście problem, że tu z góry byłoby ustalone, jakie klasa posiada metody, ale to problem do rozpatrzenia.

Może ta klasa pozwoliłaby jakoś wyewoluować w rozszerzalny model modułowy. Nad tym jeszcze rozmyślam. Na przykład nowe moduły dodawałyby się do jakiejś tablicy (tablic) będącej polami tej klasy.

Przyznam, że dodawanie modułów jest trudne, bo należałoby jakoś zdecydować, w którym miejscu dodawany moduł ma "obiawiać swoją obecność" - gdzie wstawić jakiegoś linka, podstronę czy coś takiego.

Pytanie też, jak szeroko kto pojmuje proponowany zakres działania dodawanego modułu.. ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0