publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
2 skomentuj »

TAGI: drupal , programowanie

2010-02-24 11:26  |  Jan Koprowski

Szkoła deweloperów Drupala. Część III: tworzymy tabele w bazie danych

Szkoła deweloperów Drupala. Część III: tworzymy tabele w bazie danych

Nasz moduł potrafi już podpiąć się pod formularz treści (drupal.node) i wyświetlić swoje pole. Jednak do czasu, w którym nie będziemy mieli, gdzie trzymać naszych danych, nic nam po nim. W tej części kursu dowiesz się, jak z użyciem odpowiednich hooków zarządać stworzenia tabeli dla modułu.

Przed rozpoczęciem tej części tutoriala wgraj najświeższą wersję Drupala 7.


Bardzo często wykorzystywaną formą przetrzymywania danych w Drupalu są tabele. Możemy je tworzyć i usuwać podczas instalacji lub deinstalacji naszej wtyczki. Do obsługi hooków związanych z tymi akcjami wykorzystamy specjalny plik install.

Poprzednie części kursu:

Plik instalacyjny

Każdy moduł może zadeklarować chęć wykonania pewnych akcji podczas jego instalacji lub usuwania z systemu. Jedną z takich rzeczy może być na przykład stworzenie potrzebnych tabel w bazie danych, a podczas usuwania – posprzątanie po sobie. Funkcjonalność taką zapewnia plik nazwa_modułu.install. Stwórz go i poinformuj o jego przynależności do modułu Drupala, dodając do sekcji info pliku ini.

 
files[]=dispositions.install

 

Tworzymy schemat tabeli

Otwórz plik dispositions.install i dodaj do niego poniższy kod:


<?php
function dispositions_schema() {
$schema['dispositions'] = array(
'description' => t('Tabela przetrzymująca uczucia dla modułu dispositions.'),
'fields' => array(
'period' => array(
'description' => t('Czas dodania rekordu'),
'type' => 'datetime',
),
'feeling' => array(
'description' => t('Nazwa emocji'),
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => 'Wypoczęty'
),
'uid' => array(
'description' => t('ID użytkownika, do którego należy dany wpis. Użytkownika, który dodał treść.'),
'type' => 'int',
'not null' => TRUE,
'default' => 0
)
),
'indexes' => array(
'uid' => array('uid')
),
'foreign keys' => array(
'uid' => array('users' => 'uid')
)
);
return $schema;
}
?>

«poprzednia 1 2 3 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
2 skomentuj »

Komentarze

  • moral

    #1 moral 2011-08-28 00:13:11 0

    zamiast 'type' => 'datetime' powinno być 'mysql_type' => 'datetime'

    IP: 62.141.255.[...] Opera/9.80 (Windows NT 6.1; U; Edition Campaign 21; pl) Presto/2.9.168 Version/11.50

  • wlochatydaniel

    #2 wlochatydaniel 2011-09-27 17:21:21 0

    Czy utworzona w powyższy sposób tabela będzie widoczna dla modułu views? W przypadku prostego utworzenia tabeli przez phpmyadmin informacje w tabeli nie są widoczne. Podobnie jest z tabelami utworzonymi przez np. moduł webform.

    IP: 78.8.147.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł