![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Od razu zaznaczę - sporo czytałem na temat mojego problemu zarówno na tym forum jak i po różnych wygoglowanych stronach, jednak nie znalazłem czegoś co pasuję do mojego problemu. Przyszedł moment na mój własny CMS i pojawił się znany Wam problem - pluginy i moduły. Zacznijmy od podstaw - rozumienie przeze mnie tych dwóch pojęć aby nie było nieporozumień: plugin - mała zmiana w działaniu strony jak np. dodanie możliwości komentowania profilu innej osoby na portalu lub oceniania go, kalendarz, bbcode. moduł - to coś "większego" jak np. moduł sklepu lub moduł forum. Ważne jest aby pluginy umiały się wpasować w odpowiednie miejsce tam gdzie powinny się wyświetlać - boczny panel (oczywiście możliwość ustawienia czy dajmy na to pod menu a może nad nim - wszystko to z poziomu panelu administratora) lub środek profilu użytkownika (wspomniane komentarze lub oceny). Sporo czytałem o jądrze systemu i wydaje mi się, że to właśnie w tym miejscu powinno się odbywać wczytywanie ewentualnych pluginów i modułów. Wszystko wsparte było by bazą danych w której przechowywany by był stan pluginu/modułu (zainstalowany/nie zainstalowany, włączony/wyłączony). Jakieś pomysły jak to rozwiązać? Jeśli to jakoś pomoże lub naprowadzi Was na odpowiedni tor myślenia to przedstawię zarys projektu jądra: 1. Wczytanie pliku konfiguracyjnego 2. Wczytanie ustawień z mysql 3. Język strony 4. Ewentualne pluginy, moduły 5. Wczytanie ewentualnej podstrony, treści etc. 6. Wczytanie templatu Nie mam pojęcia jak to rozwiązać dlatego zwracam się do Was. Po raz kolejny przypominam, że czytałem sporo na ten temat, ale tam wszystko rozwiązane jest obiektowo, a ja pomimo nauki jednak chyba nadal wolę strukturalny sposób. Proszę o rady (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Dawniej przy pisaniu aplikacji obsługującej PITy wymyśliliśmy inny sposób na implementację pluginów. Zamiast zastanawiać się jak i gdzie podczepić plugin do kodu, można użyć pluginu jako koordynatora dla modułu. Wystarczy moduł rozbić na atomy(funkcje) i jeżeli plugin istnieje pokierować atomami tak jak chce.
np. plugin nie istnieje kontrole przejmuje moduł Moduł wykonuje: 1. a(); 2. b(); 3. c(); plugin istnieje i przejmuje kontrole: Moduł wykonuje: 1. c(); 2. b(); 3. a(); 4. d(); 5. e(); Zasadniczo męczące i strasznie czasochłonne jest samo pisanie modułów ale potem zwraca się to z nawiązką Ten post edytował CuteOne 14.08.2010, 07:13:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 05:21 |