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

18

Click here to load reader

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

Page 1: 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

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

Bazy danych w Drupalu 7. Przygotowanie tabeli

przechowującej wpisy chatu.

prezentujący:Agnieszka Piłasiewicz

stanowiskoProgramistka Serwisów Internetowych

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

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.

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

Plik .install

W nim dodajemy funkcje potrzebne przy

instalacji modułu, odinstalowaniu modułu lub

jego aktualizacji.

Zadanie

Przygotujmy plik instalacyjny

my_module.install

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

Tabela chatu

Taką tabelę chcemy przygotować:

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

Opis pól w tabeli chatu

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

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

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

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

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`)

);

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

… 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( // … ),

)

);

}

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

Hook_schema do pobrania

http://pastebin.com/wFvL7u1Z

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

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

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

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()

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

Uaktualnienie modułu

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

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

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

Czym jest DB TNG

(Database The Next Generation)

Obiektowe API służące do tworzenia

zapytań do bazy danych.

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

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.

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

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

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

Pytania???

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

Dziękuję za uwagę