Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu

Post on 12-Jun-2015

776 views 2 download

description

Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu. Agnieszka Piłasiewicz Drupal idzie na studia

Transcript of Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu

Moduł z poprzednich zajęć

Jeżeli ktoś nie ma modułu z poprzednich

zajęć, pliki można ściągnąć

1.Plik first_module.module

http://pastebin.com/h5WSqigw

2. Plik first_module.info

http://pastebin.com/LZPRW12P

Bazy danych w Drupalu 7. Przygotowanie tabeli

przechowującej wpisy chatu.

prezentujący:Agnieszka Piłasiewicz

stanowiskoProgramistka Serwisów Internetowych

Baza danych – plan zajęć

1. Przygotowanie pliku my_module.install.

2. Przygotowanie schematu tabeli bazy

danych (hook_schema).

3. Aktualizacja modułu (hook_update_N).

4. Pierwsze zapytanie do bazy.

Plik .install

W nim dodajemy funkcje potrzebne przy

instalacji modułu, odinstalowaniu modułu lub

jego aktualizacji.

Zadanie

Przygotujmy plik instalacyjny

my_module.install

Tabela chatu

Taką tabelę chcemy przygotować:

Opis pól w tabeli chatu

● Chid – identyfikator wpisu● Timestamp – data dodania wpisu● Body – treść wpisu● Uid – identyfikator użytkownika

Unix Timestamp

Liczba sekund, która upłynęła od

1 stycznia 1970 czyli od chwili zwanej

początkiem epoki Uniksa, np.

1365495972

to

2013-04-09 10:26:12

Zapytanie w mySQL

Zapytanie w MySQL wyglądałoby tak:

CREATE TABLE `chat_entry` (

`chid` int(10) unsigned NOT NULL AUTO_INCREMENT,

`timestamp` int(10) unsigned NOT NULL,

`body` varchar(255) NOT NULL,

`uid` int(11) NOT NULL,

PRIMARY KEY (`chid`),

KEY `chat_timestamp` (`timestamp`)

);

… a tak to wygląda w Drupalu

W Drupalu używamy hook_schema.

Hook_schema składa się z nazwy i opisu tabeli, defunicji pól

tabeli, definicji kluczy i indeksów.

function first_module_schema() {

return array(

'chat_entry' => array(

'description' => '...',

'fields' => array( // … ),

)

);

}

Hook_schema do pobrania

http://pastebin.com/wFvL7u1Z

Typy danych pól bazy danych

● Porównanie typów danych pól bazy danych w Drupalu i MySQL ze strony http://drupal.org/node/159605 typy pól w bazie

Hook_update_N

● Jest to funkcja używana przy wprowadzaniu zmian w module

● mymodule_update_7100(): pierwsza funkcja update dla wersji modułu 7.x-1.*.

● Następne funkcje mymodule_update_7101() mymodule_update_7102()

Uaktualnienie modułu

Należy wejść na stronę update.php np.

http://www.drupal-zajecia.lamp/update.php

Czym jest DB TNG

(Database The Next Generation)

Obiektowe API służące do tworzenia

zapytań do bazy danych.

Proste wyświetlenie wpisów

● Wchodzimy do phpMyAdmin i wstawiamy 2-3 wpisy

● Dodajemy funkcję wysyłającą zapytanie SELECT do bazy danych.

● W treści wcześniej utworzonej strony wyświetlamy wpisy z bazy.

Przydatne linki

1.API bazy danych

http://api.drupal.org/api/drupal/includes!database!

database.inc/group/database/7

2.Typy pól w bazie http://drupal.org/node/159605

3.hook_schema http://api.drupal.org/api/drupal/modules!

system!system.api.php/function/hook_schema/7

4. hook_update_N

http://api.drupal.org/api/drupal/modules%21system

%21system.api.php/function/hook_update_N/7

Pytania???

Dziękuję za uwagę