wtorek, 26 listopada 2013

Drupal Commerce - ostrożnie z własnym kodem PHP

Wstawiłem taki kawałek kodu, aby zrobić przekierowanie:

<?php
 /* This will give an error. Note the output
  * above, which is before the header() call */
 

header('Location: http://www.example.com/');
exit;
 

?>

Drupal zaczął bardzo dziwnie się zachowywać. Długo mi zeszło zanim się zorientowałem, że to właśnie ten fragment kodu psuje aplikację...

sobota, 23 listopada 2013

Niewidoczne pole (custom field) podczas tworzenia Pricing rule dla custom Line item type

Dodawanie reguły wyliczania ceny pokazuje bardzo fajny screencast:

http://www.drupalcommerce.org/videos/tutorials/customizable-products-pizza-store

Wydawało mi się, że robię wszystko jak na tym filmiku, ale u mnie wciąż nie pojawiało się pole (custom field) z mojego line item type w selektorach. Okazuje się, że przeoczyłem jeden ważny krok w tym tutorialu. Nowe pole we własnym line item type musi mieć koniecznie typ "Odnośnik do terminu". Musimy utworzyć w kategoriach (taxonomy) słownik z parametrami, które będą wyświetlane w formatce "Add to Cart". Nie możemy wybrać innego typu, np. Lista (numeryczna) itp. To jest ograniczenie Drupal Commerce, które pewnie w przyszłości będzie poprawione.

piątek, 22 listopada 2013

Drupal 7 - Moje konto: ukrycie wyboru języka, ukrycie pola kontakt, ukrycie newslettera

Po zalogowaniu się, zwykły użytkownik na stronie "Moje konto" widzi kilka zakładek: Pokaż, Edytuj i Historia. W zakładce Edytuj widzi kilka pól, które nie zawsze są potrzebne. Nie tak łatwo się ich jednak pozbyć. Aby ukryć pole wyboru języka i checkbox "kontakt" należy dopisać hak (ang. hook) np. w naszej skórce. Trzeba znaleźć plik template.php w naszej skórce i na końcu pliku dopisać:

function NAZWA_SKÓRKI_form_alter(&$form, &$form_state, $form_id)
{
    if ($form_id == 'user_profile_form')
    {
        $form['contact']['#access'] = FALSE;
        $form['locale']['#access'] = FALSE;
    }
}

Ukrywanie Newslettera jest prostsze. Trzeba to zrobić w dwóch miejscach. Po pierwsze trzeba wejść jako administrator w
Konfiguracja --> Ludzie --> Ustawienia konta --> Zarządzaj wyświetlaniem
i ukryć Newsletter.


Efekt będzie taki, że z zakładki Pokaż zniknie informacja o Newsletterze.
Po drugie trzeba wejść w
Konfiguracja --> Ludzie --> Uprawnienia
i dla sekcji Simplenews zabrać uprawnienia "Send newsletter" oraz "Subscribe to newsletters".


Po takich zmianach użytkownik w zakładce Edycja może zmienić tylko adres email oraz hasło.

czwartek, 21 listopada 2013

Mejlowe powiadomienia na Drupalu

Źródło: Drupal Answers

First you must enable the following modules:
1. Mailsystem module http://drupal.org/project/mailsystem
2. Mimemail module http://drupal.org/project/mimemail (it contains the mail actions and sending mail function) or you can use htmlmail module http://drupal.org/project/htmlmail
3. Rules module http://drupal.org/project/rules
After that you will do some steps:
1. Create new rule in admin/config/workflow/rules/reaction/add and select the "React on event" is "After saving new content".
2. Add a condition. Choose Node (Content is of type) for condition and choose your custom content type in the "Content types" list box.
3. Add another condition. Choose User(User has roles()). Choose data selector is "node:author" and choose the role of donor.
4. Add the action. Choose System (Send HTML email). You'll change the To, CC, subject, content here.
5. Try to test that.
Be sure that you can send email using your system. If you use the htmlmail module. It will have the send test email in its setting.

Niezbędne moduły w pracy z Drupalem

Moduły ułatwiające życie administratorowi:

1. Administration menu
https://drupal.org/project/admin_menu
(Wyłączyć Toolbar - core module)

2. Module Filter
https://drupal.org/project/module_filter

3. Fast Permissions Administration
https://drupal.org/project/fpa

4. Tab Tamer
https://drupal.org/project/tabtamer
(ukrywanie i zmiana nazw zakładek)

5. Menu per role (tylko dla Drupal 6)
https://drupal.org/project/menu_per_role
(pokazywanie opcji menu w zależności od roli)

6. Menu item visibility (tylko dla Drupal 7)
https://drupal.org/project/menu_item_visibility
(podobne do Menu per role)

7. Google Analytics
https://drupal.org/project/google_analytics

Moduły bezpieczeństwa:

1. CAPTCHA
https://drupal.org/project/captcha

2. Mollom
https://drupal.org/project/mollom
Bardzo skutecznie blokuje spam

Ostrzeżenie o Cookies:

1. EU Cookie Compliance


środa, 20 listopada 2013

Sklep internetowy w Drupal 7 i moduł Drupal Commerce

Podjąłem się zbudowania sklepu internetowego za pomocą Drupala w wersji 7. Rozważałem różne moduły, aż w końcu zdecydowałem się na moduł Drupal Commerce (http://www.drupalcommerce.org/) i CRM Core  (https://drupal.org/project/crm_core). Dodatkowo zainstalowałem wiele mniejszych.

Lista zainstalowanych modułów:
1. CRM Core
https://drupal.org/project/crm_core

Moduły wymagane:
1.1 Entityreference
https://drupal.org/project/entityreference
1.2 Entity API
https://drupal.org/project/entity
1.3 Field group
https://drupal.org/project/field_group
1.4 Date (Date_api , Date , Date_popup , Date_views)
http://ftp.drupal.org/files/projects/date-7.x-2.6.tar.gz
1.5 Relation
https://drupal.org/project/relation
1.6 Name Field
https://drupal.org/project/name
1.7 Views Bulk Operations (VBO)
https://drupal.org/project/views_bulk_operations
1.8 Token (można zainstalować gdyż w core jest on ograniczony)
http://ftp.drupal.org/files/projects/token-7.x-1.5.tar.gz

2. Drupal Commerce
https://drupal.org/project/commerce

2.1 Rules
https://drupal.org/project/rules
2.2 Address Field
https://drupal.org/project/addressfield

3. CRM Core Profile
https://drupal.org/project/crm_core_profile

4. CRM Core Profile Commerce Items
https://drupal.org/project/crm_core_profile_commerce_items
(Połączenie między modułem CRM Core i Drupal Commerce)

5. Commerce Customizable Products
https://drupal.org/project/commerce_custom_product
(bez tego modułu nie można dodawać własnych Line Item Types)

6. Commerce Repair
(naprawia błąd modułu Drupal Commerce)

7. Site Disclaimer
https://drupal.org/project/site_disclaimer
(każdy sklep posiada regulamin, który trzeba zaakceptować przy rejestracji)

8. Commerce Message
https://drupal.org/project/commerce_message
http://www.drupalcommerce.org/extensions/module/project/commerce-message
(możliwość dodawania wiadomości do zamówień i historia wiadomości)

Wymaga: Message ( https://drupal.org/project/message ) i Message Notify ( https://drupal.org/project/message_notify )

9. Commerce Custom Order Status
https://drupal.org/project/commerce_custom_order_status
(statusy zamówienia)

10. Commerce Checkout Progress
https://drupal.org/project/commerce_checkout_progress
(kroki zamówienia)

11. Commerce Checkout Pages
https://drupal.org/project/dc_co_pages
http://www.drupalcommerce.org/blog/8004/commerce-module-tuesday-commerce-checkout-pages
(dodatkowe kroki w procesie zamówienia)

12. Commerce extra panes
https://drupal.org/project/commerce_extra_panes
http://commerceguys.com/blog/commerce-module-tuesday-commerce-extra-panes
(dodatkowa zawartość kroków zamówienia)

13. Commerce Checkout Buttons
https://drupal.org/project/commerce_checkout_buttons
(ustawienie nazw dla przycisków w procesie zamówienia)
Uwaga: Zmienia przyciski tylko na standardowych stronach zamówienia. Dodane za pomocą modułu Commerce Checkout Pages mają stare przyciski.

14. Commerce Addressbook
https://drupal.org/project/commerce_addressbook
(adresy, które są zarówno widoczne w Moje konto oraz podczas zamówienia produktów w sklepie)
Problem: Nie wczytują się poprawnie inne adresy niż domyślny.
 
15. Commerce Invoice Receipt
https://drupal.org/project/commerce_invoice_receipt
(zakładka Fakruty w zamówieniach)

Moduł wymagany:
15.1 Emogrifier
https://drupal.org/project/emogrifier

czwartek, 7 listopada 2013

Automatyczna generacja diagramu bazy danych w Visio dla bazy PostgreSQL

Jeśli masz bazę danych PostgreSQL (moja wersja to 9.1.6-1) i chciałbyś szybko wygenerować schemat bazy w postaci graficznej możesz do tego celu użyć Microsoft Visio. Oto co musisz zrobić:

1. Pobierz i zainstaluj PsqlODBC:
http://www.postgresql.org/ftp/odbc/versions/msi/

Ja mam system operacyjny Windows 7 64-bit, ale mój PostgreSQL jest 32-bit, dlatego muszę wybrać psqlodbc_09_01_0200-1.zip

2. Otwórz Microsoft Visio 2007 i wejdź z menu "Baza danych". Następnie wybierz opcję "Odtwórz":


3. Wybierz w kreatorze danych "Uniwersalny sterownik ODBC":


4. Podaj nazwę użytkownika bazy danych i hasło:


5. Jeśli zobaczysz ostrzeżenie to naciśnij OK.

6. Wybierz typy obiektów.

7. W następnym oknie wybierz interesujące Cię tabele.

8. W następnym oknie dodaj kształty do bieżącej strony.

9. Kolejny krok to weryfikacja, po którym następuje rysowanie diagramu.