Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Budowa serwisu oparta na modulach
jakal
post 11.01.2004, 15:53:09
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 11.01.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Mam takie pytanie:
Czy to dobre rozwiazanie oprzec serwis o moduly?

Moze opisze jak to ma wygladac:
Pliki serwisu:
+grafika/ <- grafika do strony
+strona/
-logowanie.php <-modul obslugujacy logowanie urzytkownikow
-jakisdzial.php <-modul wyswietlajacy jakis dzial
-jakisdzial2.php <-inny dzial
-funkcje.php <-zestaw funkcji do obslugi modulow w tym MySQL
itp...
+admin/
-logowanie.php <-modul obslugujacy logowanie admina
-urzytkownicy.php <-modul do zarzadzania urzytkownikami serwisu
-sondy.php <-modul do zarzadzania sondami
-news.php <-modul do dodawania/edytowania/kasowania newsow
-artukuly.php <-modul do dodawania/edytowania/kasowania artykulow
-funkcje.php <-zestaw funkcji do obslugi modulow w tym MySQL
itd.
-index.php <-strona z ktorej beda wywolywane moduly strony
-admin.php <-strona z ktorej beda wywolywane moduly admina
-style.css <-style

Cos w tym stylu oczewiscie bedzie tego wiecej, beda czesci dla urzytkownikow (strona/) dla admina (admin/) i wspolpracownikow (wspolpraca/) wywolywane odpowiednio z index.php, admin.php oraz wspolpraca.php
Obluga modulow:
Moduly beda wywolywane przez linki
np.
1) www.nazwa.pl/index.php?modul=logowanie&akcja=formularz <-wywola sie formularz do logowania.
2) www.nazwa.pl/index.php?modul=logowanie&akcja=sprawdz <- sprawdzanie podanych danych.

Czy to dobry sposob budowania serwisow?
Jakie sa inne sposoby?
Jeszcze nic nie zrobilem to sa tylko plany, wiec jeszcze jedno pytanie :
Da sie wyslac formularz(np. logowania) do strony:
www.nazwa.pl/index.php?modul=logowanie&akcja=sprawdz
zadziala to? jesli nie to jak rozwiazac ten problem?
Go to the top of the page
+Quote Post
showstoppa
post 11.01.2004, 19:28:10
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.01.2004

Ostrzeżenie: (0%)
-----


witam!

dobre pytanie, sam tworze cos takiego, choc zajmuje sie jedynie cms`em, bo o stronie www decyduje klient, a on jak zwykle bardzo grymasi. I tu robie juz pod konkretne zyczenia.

Ale do rzeczy. Moja idea budowania cms opiera sie wlasnie o moduly, uzywam szablonow smarty i biblioteki PEAR.

Modul u mnie sklada sie nie tylko z jednego pliku, ale bym powiedzial calego szeregu elementow, jak odpowiednich szablonow, zestawu tabel MySQL, pliku XML i wpisow do glownego pliku szablonu main.tpl. Wszystko odpowiednio poukladane. Teraz po kolei.

Gdy admin wejdzie na cms zostaja sprawdzone pliki XML (kazdy modul ma 1 plik XML)

[xml:1:068f372332]

<?xml version="1.0"?>
<modul module_name="newsletter" menu_name="menu newsletter">
<sekcja>
<nazwa>napisz i wyslij</nazwa>
<stan>800</stan>
</sekcja>
<sekcja>
<nazwa>archiwum</nazwa>
<stan>810</stan>
</sekcja>
<sekcja>
<nazwa>odbiorcy</nazwa>
<stan>820</stan>
</sekcja>
</modul>

[/xml:1:068f372332]

z nich generowane jest menu, tzn. tworze rozbudowana tablice w zmiennej sesyjnej i ja parsuje. Jesli mam modul newslettera, to linki sa postaci: main.php?module=newsletter&stan=800

Mam zdefiniowane stale, ktore przekladaja sie na konkretne czynnosci.

jesli user kliknie na linka (kazdy odwoluje sie do pliku main.php) w tym pliku mam cos takiego:

[php:1:068f372332]<?php


if (isset($_GET['module']))
{
$modul = $_GET['module'];

if (file_exists (TO_ROOT . 'modules/' . $modul . '/kernel.' . $modul . '.php'))
include (TO_ROOT . 'modules/' . $modul . '/kernel.' . $modul . '.php');
else
echo "nie ma takiego pliku modulu";
}

?>[/php:1:068f372332]

i automatycznie mam dostep do pliku, gdzie obslugiwany jest stan aplikacji.

Jesli jakiejs sekcji nie bedzie w pliku xml, admin nie bedzie mial do niej dostepu.

Zas w szablonie smarty robie cos takiego
Kod
{if $smarty.request.module == "newsletter"}



{if $smarty.request.module == "600"}

{include "templates/newsletter/add_form.tpl}

{if else}





itd.



{/if}

{/if}


W ten sposob mam porozdzielane szablony od odpowiednich sekcji (modulow).

Ciekaw jestem co sadzicie o moim rozwiazaniu, chetnie poczytam Wasze opinie, nie wiem czy to dobrze i jasno wszystko opisalem, ale byc moze cos komus pomoze.

Pozdrawiam
Go to the top of the page
+Quote Post
menic
post 12.01.2004, 13:17:48
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

Ostrzeżenie: (0%)
-----


Żadnej Ameryki nie odkryliście tongue.gif Wiekszość CMS'ow jest na takiej zasadzie tworzona. Między innymi mój mSite. Tylko oczywiście to jeszcze bardziej rozbudowałem o baze danych itp. Ale ogólna zasada działania wszedzie jest taka sama :]


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
matic
post 27.01.2004, 01:11:41
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.07.2003

Ostrzeżenie: (0%)
-----


Proszę, proszę... Widzę, że nastały już czasy kiedy to każdy szanujący się "webmaster" posiada swój własny CMS rolleyes.gif
Go to the top of the page
+Quote Post
Bakus
post 27.01.2004, 02:08:33
Post #5


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

Ostrzeżenie: (0%)
-----


Własny - b. dobrze znany... winksmiley.jpg

Jeżeli samemu napisze się CMS łatwiej jest go zmienić (przy minimalnym nakładzie pracy) do konkretnych potrzeb...
Jest to niesamowite ułatwienie...


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 23:09