April 27 2024 09:19:15
Rozdział 3
blank.gif






Rozdział 3 - Pliki i katalogi systemu zarządzania społecznością




Tworzymy plik o nazwie index.php w katalogu głównym naszej aplikacji . Będzie on odpowiedzialny za działanie całego serwisu , więc powinien być skonstruowany w sposób umożliwiający wywołanie wszystkich funkcji . Z tego względu użyjemy w nim klas , które są zawarte w odpowiednich plikach , odpowiedzialnych za każdą ze stron naszego serwisu .












  • Otwieramy znacznik PHP oraz rozpoczynamy sesjÄ™ session_start() oraz rejestrujemy w niej odpowiednie zmienne , potrzebne do rozpoznania użytkownika .



    session_start();
    session_register('user_id', 'user_email', 'user_firm', 'user_lang');






    Kolejnym krokiem jest włączenie danych do konfiguracji połączenia z bazą danych oraz ogólnych danych konfiguracyjnych serwisu .





    include('./config/config_database.php');
    include('./config/config_framework.php');


    Ponieważ nasz serwis będzie posiadał możliwość wyboru spośród kilku języków (w naszym przykładzie będą to język polski i język angielski) , należy sprawdzić czy w sesji użytkownika została ustawiona wartość , która pozwoli taki język zidentyfikować . Gdyby jej nie było , wówczas ustawiamy wartość tej zmiennej na podstawie danych konfiguracyjnych .



    if($_SESSION['user_lang'] == ""){$_SESSION['user_lang'] = $config['default_lang'];}














  • Administrator bÄ™dzie musiaÅ‚ posiadać swojÄ… wÅ‚asnÄ… tabelÄ™ , tak aby można siÄ™ byÅ‚o zalogować na konto , za którego poÅ›rednictwem można bÄ™dzie zarzÄ…dzać wszystkimi zgÅ‚oszeniami o niewÅ‚aÅ›ciwych wpisach , użytkownikami , stronami czy reklamami . Nazwa tabeli : fb_admin .



    CREATE TABLE `fb_admin` (
    `admin_id` int(11) NOT NULL AUTO_INCREMENT,
    `admin_login` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `admin_pswd` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `admin_lang` char(2) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`admin_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;




    Pola będą odpowiedzialne za przechowywanie danych , takich jak : identyfikator użytkownika , login , hasło dostępu oraz język , który jest określony jako domyślny .




    Ponieważ nie będziemy tworzyć specjalnego panelu przeznaczonego do wprowadzania administratorów , ze względów bezpieczeństwa musimy dodać przynajmniej jednego użytkownika , z którego konta będziemy moderować całą stronę .



    INSERT INTO `fb_admin` VALUES (1, 'xfacebook@facebook.com', 'a4757d7419ff3b48e92e90596f0e7548', 'pl');











  • Reklama jest dźwigniÄ… handlu . W naszym przypadku bÄ™dzie to podstawa funkcjonowania portalu i opÅ‚acania za pieniÄ…dze zarobione na reklamach naszego hostingu oraz domeny . Tworzymy tabelÄ™ fb_adv . ZnajdujÄ… siÄ™ w niej pola : identyfikator reklamy , nazwa , treść , okreÅ›lenie , czy dana reklama jest aktywna , oraz liczba jej wyÅ›wietleÅ„ .



    CREATE TABLE `fb_adv` (
    `adv_id` int(11) NOT NULL AUTO_INCREMENT,
    `adv_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
    `adv_content` text COLLATE utf8_unicode_ci NOT NULL,
    `adv_active` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `adv_view` int(11) NOT NULL,
    PRIMARY KEY (`adv_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ;



    Dorzućmy trochę danych , aby strona od razu lepiej się prezentowała . Dzięki nim nie będzie wyglądać pusto .



    INSERT INTO `fb_adv` VALUES (2, 'Facebook', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1044);



    INSERT INTO `fb_adv` VALUES (3, 'Google', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1034);


    INSERT INTO `fb_adv` VALUES (4, 'Gmail', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1049);


    INSERT INTO `fb_adv` VALUES (5, 'Twitter', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1050);


    INSERT INTO `fb_adv` VALUES (6, 'Microsoft', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1030);


    INSERT INTO `fb_adv` VALUES (7, 'NOVELL', '

    Lorem ipsum dolor sit amet , consectetuer adipiscing elit . Suspendisse sapien lorem , consequat tristique fringilla id , molestie in nunc . Phasellus eu mauris a felis ullamcorper pharetra .
    ', 'y', 1048);











  • Użytkownicy bÄ™dÄ… mogli tworzyć wÅ‚asne albumy zdjęć , a nastÄ™pnie publikować je i pokazywać swoim znajomym , którzy z kolei bÄ™dÄ… mogli je komentować . Należy utworzyć dwie tabele . Pierwsza bÄ™dzie przechowywaÅ‚a informacje o albumach danego użytkownika i nosiÅ‚a nazwÄ™ fb_album . Kolejne pola : identyfikator albumu , nazwa albumu oraz identyfikator użytkownika , który taki album zaÅ‚ożyÅ‚ .



    CREATE TABLE `fb_album` (
    `album_id` int(11) NOT NULL AUTO_INCREMENT,
    `album_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `album_user_id` int(11) NOT NULL,
    PRIMARY KEY (`album_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;



    Druga tabela jest przeznaczona na wpisanie obrazów , które będą znajdowały się w danym albumie w celu ich posegregowania . Tabela będzie nosiła nazwę fb_album_pictures . Kolejne pola w niej to : identyfikator obrazu , identyfikator albumu , identyfikator użytkownika , plik , opis obrazu oraz informacja o fakcie , że dany plik został usunięty przez użytkownika .



    CREATE TABLE `fb_album_pictures` (
    `pic_id` int(11) NOT NULL AUTO_INCREMENT,
    `pic_album_id` int(11) NOT NULL,
    `pic_user_id` int(11) NOT NULL,
    `pic_file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `pic_status` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `pic_delete` char(1) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`album_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;











  • Komentarze to jeden z najcenniejszych elementów , który możemy zastosować w naszej stronie , aby umożliwić wszystkim zainteresowanym dodawanie opisów elementów opublikowanych przez znajomych za poÅ›rednictwem strony . Nazwa tabeli to: fb_comment . Stworzymy w niej pola : identyfikator komentarza , identyfikator treÅ›ci która zostaÅ‚a skomentowana , identyfikator użytkownika , treść komentarza , datÄ™ publikacji , element , którego dotyczy komentarz oraz informacjÄ™ czy zostaÅ‚ on usuniÄ™ty .



    CREATE TABLE `fb_comment` (
    `comm_id` int(11) NOT NULL AUTO_INCREMENT,
    `comm_cont_id` int(11) NOT NULL,
    `comm_user_id` int(11) NOT NULL,
    `comm_comment` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `comm_date` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    `comm_what` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `comm_deleted` char(1) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`comm_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;












  • Zaprzyjaźnione osoby w Å›wiecie rzeczywistym bÄ™dÄ… mogÅ‚y informować innych , iż sÄ… także przyjaciółmi w Å›wiecie wirtualnym . Dodatkowo zaproszenie drugiej strony spowoduje , że na jej tablicy zacznÄ… siÄ™ pojawiać treÅ›ci publikowane wÅ‚aÅ›nie poprzez innych użytkowników , których doÅ‚Ä…czyÅ‚ do strony . Tabela nosi nazwÄ™ fb_friends . Pola utworzone w tabeli: identyfikator rekordu , identyfikator użytkownika , identyfikator przyjaciela , rodzaj znajomoÅ›ci oraz informacja czy dana propozycja zaproszenia zostaÅ‚a zaakceptowana .



    CREATE TABLE `fb_friends` (
    `friend_id` int(11) NOT NULL AUTO_INCREMENT,
    `friend_user_id` int(11) NOT NULL,
    `friend_friend_id` int(11) NOT NULL,
    `friend_kind` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `friend_accept` char(1) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`friend_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;











  • Tak jak w każdej spoÅ‚ecznoÅ›ci nie można zapomnieć o poÅ›wiÄ™ceniu czasu na wÅ‚asne rozrywki , tak samo i tutaj trzeba zapewnić użytkownikom możliwość korzystania z różnych rozrywek . Tabela przeznaczona na gry: fb_games . Zawiera ona pola: identyfikator gry , identyfikator użytkownika , który dodaÅ‚ grÄ™ nazwÄ™ gry oraz specjalny adres URL pod którym bÄ™dzie siÄ™ ona znajdowaÅ‚a .



    CREATE TABLE `fb_games` (
    `game_id` int(11) NOT NULL AUTO_INCREMENT,
    `game_user_id` int(11) NOT NULL,
    `game_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `game_url` text COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`game_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;



    Będzie potrzebne miejsce , w którym można przechować informacje o tym , jaką grę użytkownik dodał do swoich ulubionych , tak aby dotarcie do niej nie zajmowało wiele czasu . Tabela nosi nazwę fb_user_games i posiada pola: identyfikator rekordu , identyfikator użytkownika oraz identyfikator gry .



    CREATE TABLE `fb_user_games` (
    `game_id` int(11) NOT NULL AUTO_INCREMENT,
    `game_user_id` int(11) NOT NULL,
    `game_game_id` int(11) NOT NULL,
    PRIMARY KEY (`game_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=69 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=69 ;











  • Kiedy bÄ™dziemy chcieli , aby nasza strona ożyÅ‚a i znalazÅ‚o siÄ™ na niej mnóstwo nowych osób , trzeba bÄ™dzie pomyÅ›leć o sposobie zapraszania nowych uczestników przez już istniejÄ…ce grona fanów . Tabela fb_invite bÄ™dzie pozwalaÅ‚a na zapraszanie poprzez odpowiedni list e-mailowy wysÅ‚any na skrzynkÄ™ pocztowÄ… . Tworzymy w niej pola z identyfikatorem zaproszenia , adresem e-mailowym osoby oraz identyfikatorem użytkownika , tak aby mógÅ‚ wysÅ‚ać list tylko jeden raz do tej samej osoby .



    CREATE TABLE `fb_invite` (
    `invite_id` int(11) NOT NULL AUTO_INCREMENT,
    `invite_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `invite_user_id` int(11) NOT NULL,
    PRIMARY KEY (`invite_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;











  • Osoby , które interesujÄ… siÄ™ danÄ… tematykykÄ… , na pewno bÄ™dÄ… chciaÅ‚y dodać stronÄ™ do ulubionych . System pozwala na rejestracjÄ™ nie tylko osobom , ale także firmom , które tworzÄ… witryny na dany temat . Tabela fb_likeit bÄ™dzie zawieraÅ‚a pola: identyfikator rekordu , identyfikator użytkownika oraz identyfikator strony .



    CREATE TABLE `fb_likeit` (
    `likeit_id` int(11) NOT NULL AUTO_INCREMENT,
    `likeit_user_id` int(11) NOT NULL,
    `likeit_friend_id` int(11) NOT NULL,
    PRIMARY KEY (`likeit_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;











  • Profil użytkownika jest bardzo rozbudowany , jednak umieszczenie wszystkich danych w tabeli z ich danymi byÅ‚by poprostu marnowaniem miejsca w bazie danych . Dlatego stworzymy tabelÄ™ fb_otherplaces zawierajÄ…cÄ… krótkie informacje na temat ulubionych miejsc . Pola: identyfikator rekordu , identyfikator użytkownika , tytuÅ‚ oraz krótki opis miejsca .



    CREATE TABLE `fb_otherplaces` (
    `place_id` int(11) NOT NULL AUTO_INCREMENT,
    `place_user_id` int(11) NOT NULL,
    `place_title` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    `place_brief` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`likeit_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;











  • Pewnie nie raz bÄ™dzie nam potrzebne dodanie kilku stron informacjami dla użytkownika . Do tego celu posÅ‚uży nam tabela fb_page z polami: identyfikator strony , tytuÅ‚ oraz treść .



    CREATE TABLE `fb_page` (
    `page_id` int(11) NOT NULL AUTO_INCREMENT,
    `page_title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `page_content` text COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`likeit_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;












  • System prywatnych wiadomoÅ›ci bÄ™dzie sposobem komunikowania siÄ™ użytkowników wewnÄ…trz systemu . W ten sposób nie bÄ™dÄ… musieli pisać e-maila do drugiej osoby , a jedynie wyÅ›lÄ… jej wiadomość , która od razu pojawi siÄ™ w skrzynce odbiorczej . Konstrukcja wiadomoÅ›ci bÄ™dzie potrzebowaÅ‚a dwóch tabel do sprawnego dziaÅ‚ania . Pierwsza tabela z wiadomoÅ›ciami otrzymanymi nosi nazwÄ™ fb_pm_received i zawiera pola:identyfikator wiadomoÅ›ci , identyfikator osoby , która jÄ… wysÅ‚aÅ‚a , identyfikator osoby , która jÄ… otrzymaÅ‚a , temat , treść wiadomoÅ›ci , informacja czy zostaÅ‚a przeczytana oraz czas jej wysÅ‚ania .



    CREATE TABLE `fb_pm_received` (
    `pm_id` int(11) NOT NULL AUTO_INCREMENT,
    `pm_from_user` int(11) NOT NULL,
    `pm_to_user` int(11) NOT NULL,
    `pm_topic` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `pm_content` text COLLATE utf8_unicode_ci NOT NULL,
    `pm_read` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `pm_time` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`pm_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=231 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=231 ;



    Druga tabela będzie zawierała informacje o wiadomościach wysłanych . Będą tam przechowywane informacje , które sam użytkownik wysłał do innych i chciałby mieć ich kopie . Nosi ona nazwę: fb_pm_send i zawiera kolejno pola: identyfikator wiadomości , identyfikator użytkownika , od którego wiadomość została wysłana , identyfikator użytkownika , do którego wiadomość trafiła , temat , treść , informacja czy została ona przeczytana oraz czas jej wysłania .



    CREATE TABLE `fb_pm_send` (
    `pm_id` int(11) NOT NULL AUTO_INCREMENT,
    `pm_from_user` int(11) NOT NULL,
    `pm_to_user` int(11) NOT NULL,
    `pm_topic` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `pm_content` text COLLATE utf8_unicode_ci NOT NULL,
    `pm_read` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `pm_time` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`pm_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;











  • Podstawa wspólnej komunikacji to strona główna , na której można zamieszczać swoje statusy , zdjÄ™cia , linki do stron zewnÄ™trznych oraz filmy . Tabela fb_publication sÅ‚uży wÅ‚aÅ›nie do tego celu . Zdefiniowane w niej pola: identyfikator publikacji , rodzaj publikacji , status , zdjÄ™cie , film , link , opis , czas zamieszczenia , identyfikator użytkownika bÄ™dÄ…cego jej wÅ‚aÅ›cicielem oraz osoby , które bÄ™dÄ… mogÅ‚y jÄ… oglÄ…dać .



    CREATE TABLE `fb_publication` (
    `publication_id` int(11) NOT NULL AUTO_INCREMENT,
    `publication_kind` char(1) COLLATE utf8_unicode_ci NOT NULL,
    `publication_status` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `publication_picture` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `publication_movie` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `publication_link` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `publication_brief` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `publication_time` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    `publication_user_id` int(11) NOT NULL,
    `publication_to_user_id` int(11) NOT NULL,
    PRIMARY KEY (`pm_id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=35 ;








blank.gif
Users Online Now
blank.gif Guests Online: 1

Members Online: 0

Total Members: 1
Newest Member: Adminek
blank.gif
Sign In
blank.gif
Not a member yet? Click here to register.

Forgot Password?
blank.gif
Render time: 0.03 seconds 1,809 unique visits Theme New Project by |