 Sebenarnya, saya tidak mempunyai MC untuk memperkenalkan saya. Jadi saya akan memperkenalkan diri saya. Nama saya S.J. Dan saya akan memperkenalkan dengan lebih banyak latihan. Dalam latihan latihan. Pertama-tama, untuk memperkenalkan semua orang. Dalam sesi ini, kita tidak akan menerima setiap kota. Tidak seperti sebelum sesi. Jika anda duduk dalam sesi sebelumnya, saya akan memperkenalkan dengan lebih banyak latihan. Tetapi, perkara yang saya akan memperkenalkan hari ini adalah lebih banyak cara untuk memperkenalkan diri saya. Dan ada cara untuk memperkenalkan diri saya tanpa menerima setiap kota. Dan itu adalah kekuatan untuk memperkenalkan diri saya. Sekarang, kita akan memperkenalkan diri saya. Saya masih belajar bagaimana untuk memperkenalkan diri saya. Jika anda duduk di sana, anda mungkin tahu lebih banyak tentang diri saya daripada saya. Jadi jika anda tahu lebih banyak, sila beritahu untuk berkongsi dengan orang lain. Nama saya S.J. Saya berkongsi dengan orang lain. Namun, nama saya Solyan Jinnata. Saya belum sangat berkongsi. Saya harap saya akan berkongsi dengan orang lain. Saya seorang pemimpin di PixelAnyen. PixelAnyen adalah sebuah pakaian yang kita perlukan di Singapura Biasa Digital. Kami mempunyai organisasi medium dan besar dengan strategi digital, desain usia-santrik, dan perkembangan aplikasi web. Kami mungkin hanya mempunyai 99% berkongsi di Singapura. Kami mempunyai beberapa pakaian yang lebih besar di Singapura. Kami mempunyai S.M.U. di online hari ini. Saya memulai pakaian sebagai hubungan apabila saya 12 tahun. Saya memulai logo. Berapa banyak anda dengar logo? Seperti triangle, tertarik, kemudian anda perlu mencari kawasan. Tidak? Saya itu. Kemudian, saya bergerak ke basic. Saya tidak ingat apabila saya membangun game Mastermind saya sendiri dengan basic sebenarnya. Kami semua tahu, ini mempunyai Game Colour, Mastermind. Saya bergerak dari Drupal 5. Saya bergerak dengan Drupal 2. Saya bergerak di Drupal Singapura dan komuniti Jal. Sebelum kami bergerak, kami bergerak ke Jal. Kami bergerak ke Drupal Way, Kata Architektur, Kata Walkthrough dan Summary. Sebelum kami bergerak. Boleh saya jelaskan kawasan dulu? Berapa banyak anda menggunakan Drupal? 1, 2, 3, 4. Drupal 5. Drupal 5. Yang lain, ada anda dengar Drupal? Ya, tapi saya belum menggunakan Drupal. Baiklah. Saya percaya semua penerbangan anda bergerak. Siapa yang tak bergerak? Semua orang bergerak. Baiklah. Selama dua tahun pengalaman, tiada apa-apa. 2-5 tahun. Lebih daripada 5 tahun. 5 tahun. Baiklah. Baiklah. Siapa yang menggunakan Drupal, anda menggunakan dia setiap hari? Atau anda mencuba salah satu penerbangan, anda menggunakan dia dan bergerak. Anda menangis. Anda tahu tak? Saat saya pertama menggunakan Drupal 5, pada tahun 2008, saya pergi ke pemeriksaan dan saya menggunakan dia. Saya tak pernah bergerak lagi sehingga tahun 2011. Baiklah. Saya harap hari ini akan mengambil penerbangan. Baiklah. Baiklah. Pertama, Drupal hanya ada satu cara untuk membuat penerbangan. Sekarang, pertama penerbangan, Drupal tersebut sebagai sistem penerbangan cms dan sehingga keadaan menjadi framework penerbangan. Framework penerbangan, apa maksudnya? Maksudnya, ia adalah framework untuk membuat sistem penerbangan. Baiklah. Saya akan katakan bahawa ia mungkin hanya membuat penerbangan dengan banyak modus. Anda melihat penerbangan, jumlah, jantung. Mereka mempunyai modus. Mereka mempunyai penerbangan. Mereka mempunyai modus. Di Drupal, tidak ada perkara yang mempunyai modus. Mereka mempunyai servis berlainan kepada modus, tetapi tidak ada modus yang mempunyai modus. Jadi, semua modusnya mempunyai. Ia adalah penerbangan. Saya tak boleh mengingat jika saya tidak salah penerbangan top 3 cms di dunia, Drupal, Workpress dan jumlah. Drupal adalah perangkapan yang terlalu mudah jika saya tidak salah, tetapi jika saya tidak salah, jika saya memangi berjaga-jaga juga. Ia menunjukkan migraflan perangkat. Jika anda ingin menikmati Linux, Linux mempunyai minggu yang berlainan. Jadi, apa yang itu? Sial. Saya akan menerima pada Ubuntu dan sebagainya, jadi, pada Drupal, sesuatu seperti yang kita nampak dikongsi. Ia sangat berusaha dan berkongsi. Untuk orang yang belum nampak Drupal, saya akan jelaskan dengan cepat. Drupal berada di Singapura dan mungkin di Asia. Mereka berada di sebuah website internasional. Drupal boleh digunakan untuk membuat perjalanan baru. Ia berada di Drupal. Dan ada perjalanan installasi untuk membuat website perjalanan online. Ia dipanggil Open Publish. Di Drupal 8, ada pilihan yang dipanggil Thunder. Ia digunakan untuk membuat perjalanan Olimpik. Ia berada di Drupal. Ia digunakan untuk membuat perjalanan universiti. Dalam universiti di Singapura yang menggunakan Drupal adalah SMU. Ia boleh digunakan untuk membuat perjalanan e-commerce. Jadi, anda tidak perlu menggunakan perjalanan. Anda boleh menggunakan perjalanan Drupal dan perjalanan Drupal untuk menghidupkan kuasa CMS. Bellabox adalah startup Australia yang mempunyai produk yang menggunakan pilihan. Ia boleh digunakan untuk membuat portal OpenData. Ia adalah profil installasi yang lain yang dipanggil DKAM. Dan anda juga boleh membuat perjalanan social-networking. Ia ada banyak perjalanan lain yang anda boleh membuat menggunakan Drupal. Apabila saya bercakap tentang Drupal, saya tidak bermain dengan semantik. Berbeda dengan perjalanan developer, coder, programmer. Ia adalah orang yang menggunakan coder. Di Drupal-Lingo, ada sebuah ruang yang dipanggil SiteBuilder. SiteBuilder dapat menggunakan coder Drupal tanpa menggunakan pilihan. Drupal developer juga dapat menggunakan coder Drupal dengan menggunakan coder. Jadi, ada beberapa cara untuk menghasilkan perkara yang sama. Apa yang saya harap adalah untuk Drupal developer untuk tahu bagaimana untuk membuat SiteBuilder. Tetapi ia tidak sepatutnya untuk membuat SiteBuilder untuk tahu bagaimana untuk membuat SiteBuilder dengan menggunakan coder. Ini adalah apa yang saya menjelaskan. Banyak kali. Sejujurnya dan sebagainya. Ia tidak hanya berkongsi dengan saya, tetapi juga berkongsi dengan membuat Drupal dan berkongsi dengan sebagainya. Biasanya, developer PHP tidak sepatutnya Drupal yang sangat baik. Saya akan menjelaskan sebabnya. Tetapi ia ada sesuatu yang perlu dibuat dengan apa yang kita nama Drupal Way. Sekarang, anda ingin berkongsi atau anda ingin menjelaskan satu minit dan berkongsi dengan seorang di depan anda dan berkongsi dengan apa yang anda fikir Drupal Way adalah jika anda mendengar sebelumnya atau anda boleh selalu menghubungi juga. Anda mempunyai laptop. Developer perlu diperlukan, bukan? Sekarang. Anda dapat berkongsi. Berkongsi bermaksud bercakap. Oh, anda sedang menjelaskan. Okey, 30 saat. 15 saat. Okey, berkongsi. Siapa nak berkongsi? Apa yang anda fikir adalah Drupal Way? Siapa? Flexibiliti. Flexibiliti. Okey. Siapa lagi? Komplexiti. Apa yang berkongsi dengan komplexiti? Drupal Way adalah komplex, okey. Ya. Saya akan menunjukkan kepada anda. Saya tidak tahu jika anda melihat komik itu di Drupal keadaan Drupal apabila anda bercakap tentang komplex, bukan? Okey, siapa lagi? Saya mencari komik. Siapa lagi? Flexibiliti. Komplexiti. Apa lagi? Maaf? Extensibiliti. Okey? Lokalisabiliti. Lokalisabiliti. Jadi ini apa yang mereka cakap. Ia tidak sangat jelas, bukan? Tapi mereka cakap kerja belajar ini adalah pelajari dan tahu dan ini adalah masa. Jadi saya rasa mereka boleh menyebabkan apabila ia berkongsi, berkongsi, berkongsi. Drupal akan bergerak dan kembali. Tapi ia berkongsi. Baiklah. Okey, jadi kita ada komplexiti, extensibiliti. Apa lagi? Lokalisabiliti. Siapa lagi? Interoperabiliti. Okey, sangat besar. Apa maksudnya? Baiklah. Jadi untuk saya memikirkan cara drupal dalam keadaan dalam keadaan developer, ia mungkin berkongsi, tapi ia benar-benar datang. Okey, ia benar-benar datang. Ia berkongsi, tapi ia adalah sesuatu yang berkongsi oleh top drupal developer di seluruh dunia. Kenapa? Kerana cara drupal berkongsi, jangan mengambil keadaan. Pindahkan modul keadaan. Pindahkan modul keadaan. Pindahkan modul keadaan dan kembali. Jika anda melihat modul keadaan dan tidak memiliki keadaan yang anda inginkan, dan anda rasa ia adalah keadaan yang sama, atau ia boleh menerima komuniti. Pindahkan keadaan dalam keadaan drupal.org dan kembali ke komuniti. Kita perlu mengalami modul keadaan yang tidak berkongsi dengan modul keadaan. Pindahkan modul keadaan sangat kuat. Pindahkan keadaan 3,000 kota. Dalam keadaan yang terlebih dahulu, yang kita ada, keadaan yang terlebih dahulu berkongsi 3,000 atau 4,000 kota. Ia adalah bagi. Kita mengambil modul keadaan dan kita hanya mengambil 300 kota modul keadaan. Ia menjadi lebih keadaan dan lebih berkongsi dan lebih berkongsi juga. Sekarang, kita perlu membuat semua ini, menggunakan modul keadaan, mempunyai modul keadaan. Tetapi, kita juga perlu membalaskan keadaan hanya untuk menggunakan modul keadaan. Drupal juga bermaksud kita perlu jelas berkongsi antara logik dan keadaan. Saya pertama tahu tentang keadaan dengan membuat keadaan OIS. Siapa dengar keadaan OIS sebelumnya? Ya. Jadi, ia bukan sebuah MBC. Banyak logik perniagaan dalam layak perasaan. Jadi, saya hanya boleh menerima html keadaan, apa-apa pun. Apabila saya pertama berkongsi Drupal, saya menerima 1 modul keadaan. Saya menerima beberapa html keadaan. Apabila saya menerima html keadaan, ia tidak muncul. Dan itu sebab ada separasi yang sangat jelas daripada keadaan dan keadaan. Sebenarnya pada projek yang kita menerima, kita selalu melihat keadaan logik perniagaan dalam layak perasaan, yang membuat tidak benar-benar menerima. Anda mengubah keadaan logik perniagaan dengan itu. Jadi, cara Drupal juga bermakna kita perlu menggunakan cara keadaan untuk programmer keadaan untuk membuat modul keadaan dan menggunakan keadaan keadaan daripada keadaan. Apa yang keadaan keadaan keadaan ini? Ia sebab menerima keadaan logik perniagaan supaya anda dapat menggunakan keadaan yang lain. Jadi, anda menerima dari masyarakat lokal yang anda dapat mengubah sebagai perniagaan perniagaan keadaan, keadaan, keadaan, dan apa yang anda lakukan adalah anda menerima konfigurasi. Jika anda menerima perniagaan, anda menerima keadaan keadaan dan anda melakukan perkara yang sama. Dan cara Drupal juga bermakna kita perlu membuat keadaan untuk keadaan, keadaan, keadaan dan keadaan. Lebih banyak daripada tidak, mungkin anda menerima modul keadaan, ada selalu satu atau dua keadaan yang tidak menerima di sini. Jadi, untuk menerima keadaan ini, ada banyak cara untuk menerima keadaan. Tetapi, saya akan berkata bahawa ada cara yang menerima keadaan Drupal. Jadi, ini adalah beberapa bahan-bahan yang anda boleh cuba menerima dan menerima keadaan. Yang pertama saya menerima adalah keadaan Drupal, keadaan adalah semua keadaan Drupal yang sebenarnya menerima keadaan bagaimana ia bermaksud cara Drupal menerima keadaan. Ada pertanyaan untuk cara Drupal? Tidak. Bagus. Baiklah, keadaan Drupal. Jika anda tidak perlu menerima, kita harus belajar tentang keadaan Drupal. Pertama, bagaimana yang digunakan dari box? Tidak menggunakan kode. Sekarang, ada modul ini, bukan modul taxonomy. Ini adalah modul yang berkonten dan struktur konten. Dan anda dapat membuat beberapa jenis konten dengan apa yang kita panggil Untuk memberikan contoh, anda dapat mempunyai konten artikel, anda dapat mempunyai konten basic page. Itu adalah keadaan yang mempunyai dari box. Tetapi anda dapat mempunyai, anda dapat membuat konten custom, konten rom, konten event. Apa lagi? Konten registrasi. Untuk contoh. Dan untuk setiap konten ini, anda dapat mempunyai kode. Apa yang mempunyai? Kode lay-how. Apa yang diperlukan untuk diselesaikan? Sebenarnya, apa yang kita panggil modul yang mempunyai. Dan di Drupal 8, ada satu lagi ekspansi. Di sini, anda dapat mempunyai form, menggunakan modul yang kita panggil. Sekarang, sesama dengan kode dan referensi antitif, mereka adalah kode yang mempunyai. Di Drupal, ada perkara ini yang dipanggil antiti. Jadi, ini semua antiti. Dan, mereka adalah antiti yang mempunyai dan mereka adalah antiti yang tidak mempunyai. Mari kita ambil kode. Kode adalah antiti yang mempunyai. Jadi, jika anda bercakap tentang konten event, node event. Fikiran yang berbeda atau kode event, speaker, masa, venue. Sekarang, speaker ini mempunyai form antitif, yang mempunyai profil user, atau konten yang melakukannya. Conten yang melakukannya dapat mempunyai nama, apa yang kita panggil untuk pengalaman, Untuk jendera dan sebagainya. Jadi, ini adalah modul yang mengubah konten sebuah kata-kata. Mereka ada banyak kata-kata, bulan, komentar, e-mel, file, image, link, list, telefon, text, entity, referensi, dan ada kombinasi untuk mengubah kata-kata, kata-kata, nombor, integer, float, dan dari kata-kata, node and block, node and block konten adalah kontrol revision. Apa maksudnya? Maksudnya, setiap kali kamu melihat value baru pada file, kamu akan melihatnya sebagai revision baru. Jadi, revision block adalah new in Drupal 8. It was not available in Drupal 7. Block field adalah juga new in Drupal 8. Block type adalah juga new in Drupal 8. Jadi, block and node sekarang sangat berbeza. Pertama-tama, block tidak mempunyai user ID untuknya, tetapi node masih mempunyai user ID. Jadi, kamu tahu siapa yang membuat konten. Orta dari konten. Kata-kata, node mempunyai banyak nombor-nombor, yang juga membuat kata-kata sangat berbeza. Sekarang, dengan mengatakan ini, biasanya untuk aplikasi yang mudah, kita dapat mengalami nombor-nombor untuk membuat apa yang saya katakan. Rumbu keing, contohnya, atau kata-kata dan sebagainya. Tetapi, ia datang pada kata-kata. Kata-kata, node mempunyai kontrol revisi. Nombor-nombor dan sebagainya. Jadi, ia membuat kata-kata, kata-kata sangat berbeza. Jika kamu membuat aplikasi yang mempunyai performa, kamu mungkin mahu membuat untuk membuat entiti sendiri daripada menggunakan node. Sekarang, hanya untuk berkongsi nombor-nombor yang saya lihat apabila nombor-nombor menggunakan nombor-nombor untuk nombor-nombor. Tetapi, jauh-jauh-jauh nombor-nombor yang saya katakan dan kadang-kadang mempunyai kontrol revisi. Sebenarnya, ia bergantung pada kata-kata. Tetapi, nombor-nombor ini adalah nombor-nombor. Orang menggunakan node untuk menggunakan nombor-nombor. Ini sebenarnya berbeza. Untuk kita, kita gunakan nombor-nombor untuk menerima pabrik kerana nombor-nombor itu sepatutnya menjadi kondisit. Bahkan, kita pasti semua pabrik dalam website itu sebenarnya adalahnya pabrik yang dusok, ia hanya adalah konten. Tetapi jika kita bincang pabrik event, nombor-nombor akan menjadi nombor kata-kata. Ini tidak ada nombor-nombor. Ini tidak ada nombor-nombor. Pada kedua, saya menerima bahawa, menggunakan kemahiran menggunakan kemahiran menggunakan kemahiran untuk satu kategori. Sekarang kemahiran adalah sebuah kategori untuk menggunakan kemahiran. Jadi, kemahiran yang paling mudah adalah kemahiran, kemahiran kemasan. Ia boleh menjadi sebuah kemahiran. Sebuah kemahiran boleh menjadi kemahiran atau kemahiran. Jadi, apabila kemahiran menggunakan kemahiran dengan dua kategori yang berbeda untuk menggunakan kemahiran yang sama. Ia berfungsi jika kemahiran adalah betul-betul berbeza, tetapi ketika saya melihat kemahiran adalah betul-betul sama, tetapi kemahiran menggunakan kemahiran dengan dua kategori yang berbeda. Membuat kemahiran sangat mudah untuk menggunakan kemahiran. Pada masa ini, mari saya mula menunjukkan dulu. Biar saya menunjukkan kemahiran. Macam mana kemahiran ini. Jika anda mempunyai kemahiran 888, ia sepatutnya mempunyai sesuatu seperti ini. Ini adalah kemahiran 888.1.8. Ia masih sangat lembut. Jadi, ke rumah. Jadi, ini sebenarnya kemahiran. Dan ini sebenarnya kemahiran. Dan jika kita mempunyai kemahiran, ini sebenarnya bukan kemahiran. Maafkan saya. Ini hanya kemahiran. Ini hanya kemahiran. Ini adalah kemahiran. Ini adalah kemahiran. Ini sebenarnya menyebabkan kemahiran 888.1.8. Jadi, saya boleh membuat kemahiran seperti... ...BHP Conference Top. Anda boleh mengeluarkan gambar jika anda mahu... ...mengembar dan mempunyai. Di sana, kami membuat... ...kemahiran pertama. Membuat kemahiran 888.1.8. Saya akan mempunyai masa untuk mencoba kemahiran ini nanti... ...jika saya boleh membuat kemahiran. Sekarang anda dapat melihat di sini... ...dia adalah kemahiran. Ini sebenarnya kemahiran. Apabila kita kembali ke rumah, yang adalah kemahiran... ...dia patut menunjukkan kemahiran. Sebenarnya, kita mempunyai kemahiran pertama di sini. Kita boleh membuat kemahiran kedua... ...dengan membuat kemahiran yang sama. Saya akan membuat kemahiran kedua. Saya akan mempunyai kemahiran kedua... ...segera. Kembali ke rumah... ...dan itu saja. Anda mempunyai dua kemahiran yang berbeda di sini. Baiklah. Jadi, kemahiran kedua mempunyai kemahiran taxonomi... ...menunjukkan kemahiran antiti... ...atau kemahiran terma. Dan ada sebuah blok di sini. Kami mahu menambah blok lain di sini. Saya akan mempunyai sesuatu kemahiran. Sesuatu kemahiran. Saya akan membuat kemahiran di sini dengan cepat. Tapi nanti kita boleh membuat kemahiran dengan cepat. Pada blok custom. Saya telah membuat kemahiran ini. Saya akan membuat kemahiran ini dulu. Kami akan membuat kemahiran. Info. Baiklah. Baiklah. Menariknya, ia tidak muncul di sini. Ini apa yang saya bincangkan tadi. Ada kemahiran yang membuat kemahiran di sini. Baiklah. Ini sedikit kemahiran yang tidak muncul di sini. Ia sepatutnya muncul di sini. Sibar pertama. Plis blok. Ah, okey. Saya perlu menangiskan. Jadi, ada plis blok di sini. Plis blok. Sibar pertama. Plis blok. Info. Plis blok. Plis blok. Mari kembali. Di sini. Jadi, blok sebenarnya muncul di sini. Itu sangat mudah dan cepat untuk membuat kemahiran di sini. Ia betul-betul berguna bagaimana anda mahu membuat kemahiran. Kerana seperti yang saya katakan, walaupun ini adalah kontrol revisi, tapi ia tidak mempunyai informasi penggunaan. Informasi penggunaan di sini. Jadi, ya. Apa ini? Ia betul-betul menjual, kita tidak tahu. Ia betul-betul berguna bagi aplikasi. Okey. Ada sebuah pertanyaan untuk plis blok dan teksonomi? Semua orang sudah siap? Atau anda sudah terlepas saya? Okey. Okey. Bagus. Okey, yang lain. Modul penggunaan, yang dikorek juga. Ia sepatutnya untuk penggunaan untuk penggunaan di sini. Jadi, apabila anda membuat penggunaan di Drupal, anda memberi mereka untuk menghubungi ke web. Dan membuat kemahiran yang hanya penggunaan yang dikorek dapat. Ia dapat dikorek, tapi tidak ada revisi. Ia bekerja dengan plis blok dan teksonomi untuk penggunaan dan teksonomi. Jadi, ada sebuah modul di Drupal disebabkan plis blok dan teksonomi. Ia dapat dikorek kemahiran yang dikorek dan teksonomi. Jadi, anda dapat mempunyai orang yang memilih kemahiran sendiri jika anda mahu memilih kemahiran yang sebenarnya dikorek. Jadi, kemahiran yang dikorek di web akan dikorek kemahiran mereka. Ia adalah penggunaan dikorek dan dengan setiap penggunaan adalah penggunaan di Drupal. Jadi, sekarang saya katakan bahawa apabila saya pertama meletakkan Drupal saya sebenarnya mempunyai penggunaan yang dikorek. Penggunaan penggunaan di Drupal sangat besar. Ia dapat dikorek untuk orang yang pertama melihatnya. Jadi, ini penggunaan penggunaan yang dikorek. Tapi, tidak perlu mempunyai kemahiran yang dikorek. Kerana apa yang anda perlu tahu adalah jauh-jauh seperti bagaimanapun, mari kita bercakap tentang note. Jadi, anda melihat penggunaan itu adalah mengambil konten yang dikorek. Kami mengajar penggunaan penggunaan yang dikorek. Kami mengajar penggunaan penggunaan yang dikorek tetapi apabila kami bercakap mengambil konten baru untuk artikel sebenarnya, mereka tidak dikorek. Hanya penggunaan yang dikorek dapat mengambil konten yang dikorek. Kali yang lain, mengambil konten yang dikorek. Hanya juga tidak dikorek. Hanya penggunaan yang dikorek. Jadi, ia sangat mudah. Ia hanya bahawa kawal yang dikorek untuk orang yang pertama melihatnya. Tidak mengingat saya katakan bahawa anda dapat mengambil konten yang dikorek. Jadi, ada beberapa kawal yang anda dapat mengambil konten yang dikorek. Yang tidak terlalu bagus sebenarnya. Tapi itu bermaksud anda mempunyai 10 konten dengan banyak konten dalam termasuk penggunaan anda dapat banyak penggunaan. Dan penggunaan yang dikorek tetapi dalam kawal yang dikorek ini terpaksa mengambil konten yang dikorek yang digunakan di Facebook. Penggunaan penggunaan bermaksud penggunaan yang dikorek hanya dapat mengambil konten yang dikorek hanya dapat mengambil konten yang dikorek. Untuk konten yang dikorek lebih lama, saya akan mengambil konten yang dikorek dengan kawal yang dikorek. Kemudian konten yang perlu dikorek akan mengambil konten yang terakhir. Mereka mengambil konten yang dikorek juga. Dan sekali lagi, hanya untuk berkongsi penggunaan penggunaan yang dikorek dan mengambil konten yang dikorek. Saya telah melihat kawal yang terlalu banyak kawal yang terlalu banyak konten konten yang dikorek. Kawal yang dikorek mengambil konten yang dikorek untuk contohnya, anda dapat membuat kawal yang dikorek dan hanya konten yang dikorek dalam kawal ini orang yang dikorek adalah membuat kawal itu. Kawal itu adalah kawal organik. Kemudian ada kawal yang dikorek yang dikorek membuat lebih banyak kawal dalam kawal yang dikorek membuat kawal yang dikorek membuat kawal semua konten yang sama Sebenarnya, sebuah pengalaman utama adalah membuat oleh pengalaman unik dan pengalaman unik. Tetapi, ada banyak keperluan dari klien yang berkata, Ya, bolehkah anda membuat... Bolehkah anda menggunakan pengalaman unik untuk pengalaman unik? Atau saya ada... Sistem saya sebenarnya mempunyai pengalaman unik. Jadi, itu sebenarnya... Sebuah pengalaman unik, saya akan kata, menggunakan... Atau mengubah pengalaman unik. Okey, ada sebuah pertanyaan untuk pengalaman unik? Tidak? Okey, selanjutnya, pengalaman unik. Pengalaman unik dibuat dari klien juga. Pada pengalaman unik, ia sangat lebih mudah. Mereka hanya ada 4 pengalaman unik. Langgan, pengalaman unik, pengalaman unik, pengalaman unik. Saya tidak akan masuk ke detik. Baiklah. Dan ia... Sebenarnya mengikuti apa yang kita panggil untuk pengalaman unik... dan pengalaman unik. Sangat bergantung. Ia bermaksud bahawa... Ia mengambil semua jalan ke jalan ke-1. Anda dapat mempunyai apabila beberapa pengalaman unik perlu diletakkan atau tidak. Okey. Pada pengalaman unik, apabila kita bercakap tentang pengalaman unik, ia adalah pengalaman unik. Pada pengalaman unik, sebenarnya ada beberapa pengalaman unik pada pengalaman unik... yang dipanggil pengalaman unik. Jadi, itu yang mengambil... pengalaman unik untuk dibelakkan. Baiklah. Pada pengalaman unik yang tersebut... ia sangat berbahaya. Ia berkontrik pengalaman unik pada pengalaman unik dan 7. Dan menjadi sebahagian daripada pengalaman unik sekarang adalah pengalaman unik. Okey. Pengalaman unik... memperoleh pengalaman unik... memperoleh kita memperoleh pengalaman unik... dalam pengalaman unik dan panggil pengalaman unik... daripada menuliskan pengalaman unik. Ia harus diperlukan untuk memperoleh... pengalaman unik pada pengalaman unik. Seperti yang anda nampak tadi... apabila saya pergi ke pakaian rumah, ia meletakkan dua bahagian yang berbeza. Ia sebenarnya memperoleh oleh pengalaman unik. Jadi, ini adalah pengalaman pengalaman unik. Macam mana pengalaman unik sebenarnya terlihat. Ia sangat sama seperti pengalaman unik... yang anda memperoleh. Apa yang anda memperoleh? Ia semua di sini. Di mana... Kondisi di sini sebenarnya. Ini adalah sebuah arpegin yang benar. Sekarang perkara yang baik... pengalaman mengalami... kekatkan fungsi... lebih parah... anda boleh membuat seluruh pagi... pada sewajah... display. Di味anya... yang memperoleh... display-type. Lalu anda boleh memperoleh... 게bagi... Kita boleh membuat apa yang kita nampak untuk membuat penyelidik dan menggunakannya sebagai panel. Dan yang saya tidak memilih di atas sini, menolakkan anda mengenai penyelidik. Jadi anda dapat sebenarnya mempunyai satu penyelidik untuk bahagian yang berlainan. Bagaimana? Pada jika ada penyelidik, saya akan membuat penyelidik. Pada penyelidik, saya akan membuat penyelidik yang berlainan. Dan saya akan membuat penyelidik. Dan saya akan membuat penyelidik. So, there's the common pitfall of other vendors. A lot of Drupal developers implementing views is that they have 10 different pages, 10 different lists, they create 10 different view display. It makes it very, very difficult to maintain. And it's very bad if let's say when they create a new view display, they call it as the display list is the same page. So, you will see here page, page, page, page, page, page, page, page, page, page. There's no way that you can tell just at one glance, right? That, oh, this is a particular view display that I want to edit. Okay, the rest of the common views features I just mentioned here quickly. There's an action, stracar, aggregator, band, book, big pipe. Big pipe I mentioned earlier about the cache, partial cache. Breakpoint, migrate to migrate the content. RDF, this is for what you call it, what's the name, schema.org. So that your content can be recognized by search engine. Caching, forum, search, REST, REST as in RESTful API. So it's available in core as well. You can just turn it on, then your Drupal website can become the so-called your database server for your app. Responsive image, responsive image and breakpoint work together. And you can define the, well, the responsive image for the different breakpoint. So those are the core modules I mentioned. Now I go to the contributed modules. I'll not go through a lot of them. These are the ones that we use a lot of times. First one is path auto. This is to generate SEO friendly URL. Like, for example, like I said earlier, slash events, slash PHP conference, for example. If we don't use path auto, the node will appear as the system path. Example.com slash node slash 41. The next set of modules, paragraphs, C tools, panels and DS. DS is short form of display suite. We use them a lot for layouting tools. Now, this is something that we actually do differently. And what I notice the leading Drupal shop in the world doing differently as well. Well, actually probably not very true. But a lot of shops are actually using these modules to do the layout rather than doing the layout directly in the template file. For us, the reason why we do this is that we want to empower our client as well. If they need to change something, they don't need to go inside the file. They need to know which TPLPHP file, which tweak file in Drupal 8. They need to change. And after that, they need to know how to do a git commit, git push, git pull. Okay, some of our clients actually don't really know all these things. So if everything is on the interface by using all of these modules, right? If they want to add additional field, they want to display additional field or they want to customize how that field looks like, right? They can actually do all these themselves rather than coming back to us as a developer. Eform is a module to do webform. I'm not sure whether this is really working well for Drupal 8. I have not tried it myself. In Drupal 7, there's a webform module, very powerful. Field permissions, content access, these are the modules that we use a lot of time for access control. You can set a granular permission to the field or to the content. And Workbench is used for publishing workflow. Rules is used for point-and-click automation. When I say automation here is that when someone save a node of an article content type, display a message, congratulations, for example. All these are really point-and-click. There is no need for you to write any single line of code. Commerce, obviously, is for e-commerce. So those are the country modules that we use a lot in our projects. Now, if we exhausted all the modules already and we still cannot find what we want, there we go into creating our own custom modules. There are really thousands of excellent online resources on teaching you how to code Drupal custom module properly. These are some of my past presentations. You can also subscribe to this newsletter, weekly drop and Drupal newsletter. They have a lot of links every week to point you to good Drupal resources. Actually, sometimes there are really no right or wrong way of building a site. Only what works for the project and for the client. And this is also shared by Greg Dunlop. He is one of the senior architect in Lallapot. Lallapot is a leading Drupal shop in the US. They are the one who built an MTV website, if I'm not wrong, and CNBC, if I'm not wrong. So, in one of his project, he actually insisted to do it the right way. But then the budget is not enough to do it the right way. So, what he did is really just enough, acceptable to fit into the budget. But he didn't take shortcuts. That's the most important. Pros of writing custom modules is that it is very quick to achieve unique requirements of client. He has less dependencies, meaning that less possibility of breakage. If one of the, let's say Drupal Core is updated, but you don't write, you don't use any of the, what do you call it, services of Drupal Core, for example, then chances are your module will not break. But the cons is that it's not covered by Drupal security team. There is this Drupal security team. They are professional. They are paid by Drupal.org to actually find vulnerabilities in Drupal Core as well as Drupal contrib modules. So, if your module is not in Drupal.org, it means that they will not cover these security loopholes. And the other two cons are you are reinventing the wheel rather than contributing back to the community. And you also cannot depend on community for documentation and patches. So, to me, there are actually more cons than pros in terms of writing our own custom module. This is something that I realized after I did my first gig, my first Drupal gig, what happened is my background is developer, so obviously I just code all the way. Then, when the time comes for me to update all the modules, the core modules, the contrib modules because of security patches, that's when I get the headache. Then, my custom code actually breaks or it's not compatible with the new one and so on and so forth. So, ever since then, when we build sites, especially bigger, really big-scale sites, SMU, we sell them right, hardly right, custom module. When we built SMU site back in 2012, 2013, we actually didn't write any single custom module at all. Custom JavaScript, yes. No custom module at all. My unfortunately, the SMU site that you see now, what I heard is that 90% of the code implementation has changed already as well. Now, the last part that I want to touch here is configuration management. So, in Drupal 7, there's a module called Features and the purpose is like I mentioned earlier, it export the configuration from database to file so that you can commit it in your repository, pull it in the other environment, then you just revert the configuration. In Drupal 8, it's being called configuration management module and it solves a lot of the problem of configuration management in Drupal 7. This is my observation so far. Features in Drupal 7, not many people actually use it. Venders here in Singapore around the region. I think only those who are more active like being involved in Drupal Midap know about this and use it. Other than this, I don't see much developer actually using it which is actually quite sad. But that is also because Features were quite difficult to use in Drupal 7. Configuration management make it much, much easier to export configuration which we will try later on. The issue is that it's all just dumb for you. The whole Drupal configuration, the whole Drupal configuration just dumb to you in single folder. So in the end, we still go back to use Features. Features in Drupal 8 is actually much, much better already. We will try it out later. Any question on the building blocks? I talk too much already. So let's start with the activity, Architectural Cutter. Time to get our hands dirty. Let's split into 4 groups. Let me see how many people are there? 3, 5, 10, 15, 19. Ya, I think it's just nice. Split into 4 groups about 4 to 5 people each. Okay? Go. Make your group. You want to join? Okay. Okay. You can join the discussion if you want to. I will just stay here. Okay, everyone has your group already. Everyone has your team. Who doesn't have team yet? Who doesn't have team yet? Okay, team 1. Team 1. Raise your hand. Can 2 more join? Okay, team 2. Okay. How about both of you just join team 1? Then team 2, you can join 5 people. Okay? Okay, so team 1 here. Team 2 all the way to the bank. Okay. Team 3, team 4 just nice. Okay. I think you need to join team 4. Okay, no problem. I don't have to join yet. I'll be fun. Okay, everyone clear, right? On the team formation. The... The... The... What do you need, team? The playing capture the flag. Okay, so we will generate and agree to work on one architectural kata. Anyone seen this before? Akatas. HeroQF.com. No? Okay. I'll show you what it is later. So what we... What you do during the discussion later is to do a research and discuss on the following. What should the content structure be of the platform that you are going to build? Right? Which modules are you going to use? And is there any custom modules? Why do you need the custom modules? Right? Now in every team, can I have a short hand as well? Who has a Drupal experience again? Drupal experience. Drupal experience. Okay, that team is very unfair. Okay. I work with Jesse and Vanessa. So... Okay, this group. Drupal experience, you have. Okay. That group have... Anyone with Drupal experience? Don't have? Don't have at all. Okay. Okay. I think Jesse will hate my decision. Can you move? Can you swap one team member or you feel comfortable without any Drupal experience teammate? Okay, fine. Okay. Now, what we are going to do is 15-minute discussion. After that, we have 2-minute sharing by each team. And then another 15-minute discussion. Okay. So, what are we going to build then? Let's try out. Let's see. Let's see whether this is something that is doable. So, this is actually generated randomly. Okay. Let's just read this one first. If it is not doable, then we can generate the other one. How have the BLT? A national sandwich shop wants to enable fax in your order, but over the internet instead... Over the internet instead, to their current faxing service. User, million of users. Requirement, user will place their order. Then be given a time to pick up their sandwich and directions to the shop, which must integrate with Google Maps. If the shop offers a delivery service, dispatch the driver with the sandwich to the user. Mobile device accessibility offer national, daily, promotional or specials. Offer local, daily, promotional or specials in an online or in person or on delivery. Okay. This is actually a good platform. Although I feel for this group probably this is very heavy on the commerce side. Install commerce, you can have everything around. Almost everything. So, let's try if we can get another one. I am generating this randomly but it is more to have that surprise element as well. Some unknown element, but I have some backup if let's say we cannot find the one that we can work on. Check your work. Okay. University has greatly expanded its CS course and wants to be able to automate the grading of simple programming assignments. 300 plus students per year plus staff and admin. Student must be able to upload their source code which will be run and graded. Grades and runs must be persistent and auditable. There must be a plagiarism detection system involving comparing with other submissions and also submitting to a web-based service to needn't need. There must be some level of integration with the university's LMS. How many feel that this is a doable platform? Or you want to try this? No? No one? Okay. Let's refresh again. Let's see. If until 5, we cannot find the one that everyone is agreeable to do, right? I'll pick one. All staff, no craft. Conference organizer needs a management system for the conferences he runs. Interesting. Requirements. Attendees can access speaking schedule online including room assignments. Speakers can manage talks, enter, edit, modify. Attendees put up, down talks. Organizer can modify attendees of schedule changes up to the minute if attendees are in. Each conference being a different subject can be branded independently. Speakers' slides are accessible online only to attendees. Evaluation system via web page, email, SMS or phone. Users, hundreds of speakers, dozens of event staff, thousands of attendees. I think this is very doable and is very relevant to today's session. Shall we do this? Okay. Alright. Okay. I see some people nodding. That's approval. Okay. So, again to recap, right? I'll leave this here. But to recap, what you need to do is that to have 15-minute discussion discuss on what kind of content structure you're going to have. What kind of modules to use. You have your laptop to do a search if you have Drupal site on your website, on your laptop already will be good, right? You can try it out straight away. If not, then or you can rely on people who have done Drupal before. And is there any custom module that you need? He's just try it out first. Then we will after you discuss and let people share. You can learn from the other group sharing. And see if your strategy actually change. Then you can discuss again and then we will go through the walkthrough of how are we going to build this website using Drupal. Okay. The Drupal way. Okay. 15-minute starts now and you can switch off first. Please listen. Yes? Use of modules. So, you discuss about the modules. Alright. Okay. What are the modules? Use of modules. Okay. User has different types. Speaker Organizer Attendees. Okay. Tox. Tox. Room assignment. Room assignment. Votes. Sorry? Votes. Votes. Okay. So, vote is another another type. Module or So, you're talking about user module earlier. Then top. Is it module or is it note? Note. Okay. So, this note. Alright. Room assignment. No. Vote. Module. Okay. Alright. Okay. So, vote module. Okay. What else? Feedback. Feedback. Module. Okay. You can discuss this later. Then. Anything else that you discuss? Alright. So, content structure modules to use. Custom module? No. No custom module at all. Okay. Alright. Team 2. What did you discuss? Scaling module. Oh. You didn't search? We just discuss. Calendar. Calendar. Is calendar in Drupal 8? No. Okay. Is... Oh, no. Is it? Is that Drupal 8? Okay. How to check is your search, right? Drupal calendar. Then you're going to report the org slash project slash calendar. And scroll all the way to the bottom. You'll see the releases. If you see anything like 8.something Drupal 8. Drupal 8. Drupal 8. Drupal 8. Actively be important. Okay. Next. Evaluation. Evaluation. What is this? Is this a module or... Just think of the function. Okay. Just try to search for the module. Good. Slides and documentation. Slides. Presentation. What is this? Also just a group of function. Bagus. You know both? Now, as in... Can we... To the building blocks that we discussed earlier? Have you thought about this? Custom content, maybe? Custom content. Okay. So this content is nodes, right? Anything else? Anything else? Just like the node has its own cost of content. The cost of content is that you have the name, the title, the description, the slide, presentation. So slide presentation is another content types. That's what you're saying. Okay. Any other things? The whole thing are very simple. No. There's a module for that. Yes. There's a trademark, you know. There's a module for that. There's a module for that. It's trademark control. Okay, anyway. Anything else? Yeah, sure. This is your site. User content type. Okay, user. Okay, what are those? Speaker organizer and attendee. Speaker organizer and attendee. Okay. Anything else? Is it subcontent type? Yes. Okay. Anything else? Room. Okay, anything else? That's all? Okay, cool. Right, in three. Did you come up with? Yes. Okay, user. User. Okay. Speaker Organizer and this. Next. Organizer has schedule changes. The organizer can modify schedule changes. Okay. Brand and what? Brand conference The rest? You can also listen and borrow ideas from other groups, yeah? User. Apples. Brand conference. Sorry? Speaker can manage top and assignment. And assignment groups. It's the speaker. Manages as in edit thoughts, right? Okay. Then assignment group and set group. Okay, next. Attendee Help in Help in Quantification Okay. Next. Schedule Speaker Can access. Can access. Can access schedule. Can access schedule. So this is attendance, right? Yeah. Attendance can access slides. Okay. Anything else? Attendance can feedback. Anything else? Sorry? Feedback. Okay. Anything else? Can use C6 C6 C6 C6 C6 C6 C6 C6 C6 C6 C6 Feedback and we contact module. Okay. Alright. Anything else? Okay. Before. Before. Yes. Yes. Yes. Yes. Okay. Okay. Talk is contact type. So, user. Attendance okay? Okay. So, slide. Just a few. Alright. So, that's very good. So, the first team focus a lot on the user. Okay. So, team 2 focus more on the function. Right? Team 3. Actually, it's not really function either. Yes. There are some function, some user content type as well. Team 3 actually comes out interesting like the user stories. Right? So, which is good to come up with to translate the requirement to small chunks that is, that you can take action. Then team 4 come out with the exact what which module to use and which content type to use and so on and so forth. Okay. So, let me see what time is it now. Another 15 minutes you can improve on the idea based on what you hear from the other team or you can always build on top of what you have discussed just now which were not really complete. At the end of the discussion you really need to know the content structure. Which one going to be known? Which modules to use and if there is any custom module. By the way, team 2, 3, 4 may I ask do you identify any custom module? No? No? Okay, good. 15 minutes. Okay. Reminder? Actually, we found the module even calendar. So, this one is before we found. So, this is the module for the schedule. Okay, alright. Great. Okay, cool. Anything else? The user module already dead. So, team found rate module and the event calendar module. Or the integration and the rating module. Okay, application for using the rate then. Good. Team 2? Any update? Any update to don't know how to search? Just looking at it which is so hard. Okay, good. That's a good observation. Unless I need to know so what what use or what function they can do. That's valid. Okay. So, there is no more improvement to this. Okay, team 3 Any updates? Okay. So, for brand conference for the brand this one, the conference you just text on me, okay. What schedule changes action? Multify schedule changes action, okay. Talks. Finish talk, okay. Quick edit. Activity tracker for the marketing information. Okay, so another tracker. Okay. Options for thing of it. Options. Options for okay. So, option 3 of it. Okay. Next. Then for evaluation system, we're not sure if it's the evaluation public or private. If it's public, then we use command. If it's private, then we use command. Okay. So, access schedule which one? Access schedule. Access schedule. So, this one calendar. Calendar not for Drupal. Standard module. Alright. You say event calendar, you found event calendar. Okay. E-form. E-form which one? E-form E-form for which one? E-form collecting feedback. Collecting feedback, okay. Feedback. Anything else? Okay. Okay. Feedback. E-form. E-form. Okay, good. How do you find the discussion? Do you have any questions? So, I know there is one question. So, the thing is we have limited time, right? So, let's see. I'll just cover the questions first. Because that is probably it's more important. So, the question coming from Rule 2 is how do we know which module to use, right? The description is probably it's not very clear either. Okay. I personally actually like group 3's approach. Because all of the modules mentioned there other than calendar are all modules, which is possible to be done that way. So, feedback up, down, up, or down-board, that one was not really covered. Of feedback using command for me that works too, right? So, this is a very real situation, case in real life. When client actually ask for specific feature, then there is no contrary module. So, what do you do? Do you tell them that, okay, we will just do it? Or, you tell them that okay, if we just want to use a contrary module in rule 4, then you may not have exactly the same functionality. But you have this functionality, right? It can be a workaround. It can fit into a fitting set of their which is probably better rather than creating a custom module. So, if just now you say working module, which module is better? Module rating. I was looking for 5 star. 5 star is very popular last time, but it's okay. So, rate is not available for people, okay? Currently being ordered, okay? So, maybe it's there already. It's there, and maybe we can find it. Person disappears. I'd like to I'd like to there aren't any resources for module rating. It's the name rating. It is, right? So, I'd like to show you this tool as well, which if you were in BenMark's presentation earlier, you saw that there is a tool to help to make developers life easier, right? So, this is the command line tool built on top of a composer. It's meant for Drupal 8 only. It's called Drupal Console. All the while, the Drupal Shell which we call Drash has been around for since Drupal 6, Drupal 7, and also available for Drupal 8. But there is this guy called Enzo. He actually visited us beginning of the year. He's from Costa Rica and he has been creating this Drupal Console project. Well, there are a lot of interesting things that you can do with Drupal Console which I hope I can share with you later. But you can use either Drupal Console or you can use Drash to check, for example, the version Drash RL Rate. Drash RL Rate. And then we see that there are all these versions. You can actually download these versions directly on the command line. And you go to the website then you download it, put it in the folder enable it in the Drupal interface and so on and so forth. So, a rate we can't really use. So, how do we select? There are a few things. First is to read the description. Description not clear enough. The only way is to or there is another way is to take a look at the screenshot. Sometimes the screenshot is very clear. If the screenshot is not clear enough the only way is really to just download the module enable it on your local sandbox site. And see whether it works or not. Whether does it fit to your requirement or not. So, that's the only way to assess. Another thing that you need to see is that when you are browsing the project page, take a look at this reported install. If you have anything beyond 5,000 that's very good already. It means really there are a lot of people downloading this and using this. And then take a look at the version number as well. Is it a stable release? Is it covered by the Drupal security team? If there is only the dev version, then it means that it's not stable release. Sometimes it works. We have some dev only version module on production site as well. Then the other thing to see is the activity as well as the bug report. How many issues are there in total open? How many of those issues are actually bugs? Soft bugs. So this will help you determine whether or not you actually use this module. If really a lot of like 142 open, then you can just click it and see what are the comments there. You can see user can still vote on their own comments. And that doesn't sound too nice. So you can read through weekly. Then what you can do is search for another module that every doesn't fit your purpose. So that's how we normally select modules. And of course it comes with experience as well. When I say that in the past I use 5 stars. So that's really the that's the I know that this is a so-called module that can give feedback very nice. But unfortunately, again, no Drupal 8 version. So this is the challenge with Drupal 8. It was released last November. From our observation normally Drupal major release stabilize pretty quickly in terms of the porn module but the country module will only be ported to the new version about one to one and a half year after the after the major version is released. So this means that probably by this November or by quarter what next year only then we have more country modules So that makes us to be very selective as well on which project that we want to do with Drupal 8. Give it a simple side like this one is actually considered a simple side. We can actually do it in Drupal 8 with some compromises. But what's the advantage? The client shelf life the website shelf life is probably like another 7 years I don't know 5 to 7 years Drupal 7 was released in 2011 and I don't think it will reach end of life in another 2 or 3 years time. So there's about 7 to 8 years there. And what they say is Drupal 7 will become LTS long term support until Drupal 9 is release or until Drupal 9 reach long term support. So yeah Drupal 7 still have some knowledge but if you can do Drupal 8 now it will be good as well. So that's about the module selection. Any other question? Anyone has any other question on how to choose or how to decide how to build, how to decide? No? I think pretty much all the 4 teams come out with similar approach and the very distinctive one is the user everyone come out with 3 user 3 user roles and that means that you will need to configure the permission based on these 3 user roles. Okey So now we have half an hour only. If you can earlier you can actually go to PHP Meetup earlier and eat faster over there. Or you can use the time all the way until 7 o'clock and you also have a choice here do you want to go through the demo of building the Drupal site what we discussed just now or do you want me to go through some of the tools like for example Drush and Drupal console that one is really meant for or more meant for developer actually. Your choice. So just give just have a show or hand who wants to build the site continue to build the site Nobody? Is it a demo? Is really go through what we discussed just now and to configure Sorry? Yes How do we actually go about it and in the end we'll export it using the features configuration management. So that's the first part. The second part is Drush using Drush using Drupal console probably this will be shorter we can end much faster So demo on the so called site building site building we choose for site building site building Drush Drupal console Laren everything private session Anyway I need to meet you Okay So let's do the site building then Okay Who has the Drupal 8 on your laptop already? Okay we have some those who don't have yet just share just punch up together to see Okay so that's the part just on the walkthrough then after that I'll close with the summary and that's it Just Alright Okay so we were talking about user right just now everyone get the Drupal 8 site already You can log in as admin You see this page has the other 2 tracks have the other 2 tracks finish Yes Okay Huh? What? Okay Okay So we go to roles here under people roles actually add more roles normally we don't add if it is the least privileged user in this case attendees we don't create additional role we just reuse the authenticated user because no matter what attendees I would say that attendees should be able to log into the website or if the attendees are not supposed to log into the website then you can actually use the anonymous user role but they should be able to like subscribe to the notification and so on and so forth chances are you will want to have the authenticated user role Okay So I would just add 2 more which is the organizer and speaker So speaker first Speaker Organizer Organizer Okay cool We have 5 now and now different user may have different fields but I think in this particular use case there is no such requirement we need to have different fields for different user okay now so how about so we talk about the user then we can try to create the taxonomy now taxonomy falls on the structure taxonomy now we can add the vocabulary what are some of the idea for the taxonomy vocabulary just now someone say it's a room then the branding the top itself no the conference branding is equal conference you are counting top okay how does it say okay I lose it tu tu tu tu tu tu iya I really lose it architectural kata okay never mind okay so let's just we can just say it's a brand of the top and then we can add term just to populate that first php conference Asia 2016 then we have ruby red dot ruby 2016 we have triple camera Singapore now at this time probably I will just realize that oh actually we should have another field here we already have the description we have the name so we can actually create manage field for these particular brands vocabulary then we can add field which is image field enable so in the field setting you can set different things like for example what's the maximum resolution what's the minimum resolution enable the title or the alt tags tags then you can also set the field setting to be how many values do you allow people to to upload right and then the other thing that we can set is also to set the default or is that file directory date custom what we can do here although I'm not very sure in Drupal yet there is a way to put in this is what we call token in Drupal so the format will look something like this taxonomy term but I'm not exactly sure how the format is like so it will just create this file directory in the files folder of Drupal just leave everything to be to be the default now if I go back to the brands so we are talking about the brands vocabulary with these terms then we can upload the feature for php conference asia 2016 choose image php save it okay all tags is required okay and that's it so when you click on the particular or the particular taxonomy term you can actually see the image here but you can also hide the image if you want to now the thing is this particular taxonomy term is not tagged to any talk yet so let's how about we create the talk now okay so talk I think everyone agree that talk is actually a content type so we will create a new content type other structure content types add new content type title review, yeah I just leave everything to be default now the default field is the body field we can add more field what is it, what other field the brands right taxonomy term label brand singular referencing to taxonomy term and then we can actually limit that the taxonomy term that we want to reference is only for brands vocabulary and then we can set it to be required field so what else what other field under talk content type that we can think of session right the time right speaker is okay good speaker actually say you can actually do that so it will be user reference speaker only one it's also required save and then we should have the date, okay hang time date required field save so we have these four fields enough for our purpose for the demo so let's create some talk then but before we create talk we should probably create speakers first because there is a reference to speaker so we add a new user now so how do we add new user go to people add user okay speaker one and mainly niter.com username speaker one password 123 123 and he is actually a speaker okay the rest default we have speaker 2 niter.com speaker 2 123 speaker okay alright so we have 2 speakers already now let's populate the the talk so we create the new content the talk content talk content type and well website building or developer okay the brand is php conference Asia complete speaker is speaker one and the date will be today's date is 22 August 2016 4 o'clock save and publish let's create just another one magento module development speaker 2 so we actually have 2 talk already and if we go back to the taxonomy terms structure taxonomy go under brands lease terms now if I click on the php conference Asia by right you should show the 2 notes which are actually tagged by this particular taxonomy term so this is the default behavior of Drupal we can actually customize this if you want to so how do we customize this okay let's try to create okay the easiest way to customize this is let's say I want to move the image down or I want to hide this image label here that's where the view mode when I mentioned earlier view mode actually comes into picture so in every in almost every entity in Drupal there is the or the bundle in every bundle in Drupal one vocabulary this is actually a bundle content type is also a bundle you can manage the display and here okay we can actually just we hide like for example image label hidden description we can show it if you want to there is no description actually then another thing that we can do is we can actually format the image so we can auto resize the image can be bigger or smaller let's make it into a thumbnail save it let's go back to the PHP there you go so far we have done all these configuration without writing any single line of code at all okay so in the interest of time what I'll do next is to show you the configuration management how do we actually export all these features so that we can deploy to production to the staging or production server right I have installed the features module here so what I need to do is okay before that maybe I'll show you my git so that can see let me just stitch everything so that we can just see the difference later on okay not necessary that we stitch all those line let's say that we want to export what we call the features so under configuration features we can create the new features so what do we name this feature it can be let's say we call it an event management module event management module so what you are doing here is actually creating a custom module but again you're not writing any single line of code at all you let feature module to export all these settings so you can put in the version there best practice you should actually put in the description as well so what do I want to export I want to export the talk content type and we'll automatically select the different fields just now in the talk content type right it also export the view display that we created just now but this is more on the node which is the talk itself right so what else do we need to export the brands the brands and chances are the fields will be exported there as well and the entity view is also exported so all these configuration are being package now together so what else do we want to export how about the role because we need to have a speaker role at least so it's there as well so if you want to if there happens to be some view that you create to create a list you can also tick the list that tick the view that you want to export to like for example we want to export the content view so after doing this what we do is we just click right it will be generated in the modules custom event management let's take a look so you see the this module event management and you have the YML configuration file ready for the module itself there is the info YML or this is the feature YML this is the info YML what it does is listing all the dependencies the modules that you need before you can actually enable this feature module date, time, field, image then in terms of the configuration itself you can take a look that everything is actually here the top content type is here together with the configuration the field, let's see the taxonomy for calibrary brands is here as well can you all see from now very small anyway I can't zoom in either then just now the field taxonomy brand field image is here if you remember that we actually configure the view display and we configure the view display to use image style thumbnail it's all there so by exporting this module basically you are creating a new functionality a new module and management it serve as its own module it become a custom module you can just if you want you can create this kind of custom module upload to Drupal.org there may be other people who might find exactly the same use case as you do or what you can do what we normally do is just that we just to repository then we just pull it in staging then we just do a Features Revert by doing a Features Revert what it does is that any value that is available in the database will be overwritten by the value that is available in the file okay to give you an example let's say that it is no longer image style thumbnail let's say that it is image style large open let's see wether image style large large large so if i go to configuration now configuration management configuration synchronization right now you can see that there is one change 29 remove okay so this one we probably don't care you can actually find the changes there so i hope i've not done this before i hope i'm doing the right thing by changing the value here from thumbnail to just large and then here image style large as well then let me refresh this view display ya it doesn't really show ah okay i know why it's because i have not enabled this particular module so if i go to the module list itself event management i enable it first now by right you should be able to see the differences of the two configuration in two different places one is under the features page that's what happen in Drupal 7 but Drupal 8 there should be that additional page that we saw earlier configuration synchronization we should be able to see it here text view mode let's try on the features there is a change state here clicking on the change you should be able to see that there are two ya but it just highlight a different one actually okay so i still need to learn about this module it's very new to me as well i'm familiar with the one in Drupal 7 Drupal 8 not very sure yet how it actually works in Drupal 7 we have some issues as well on things like image style for example it's not really exported well either so maybe that problem still exists in Drupal 8 need to explore further but this is pretty much how we actually do it in real life after we configure everything in our local development machine or the development server what we do is export it to file commit then we deploy it to the other servers so that's pretty much how we do how we build Drupal 6 without writing any single line of code at all can we actually write or rather there are use cases that we need to write at the minimal or at the maximum actually what we call the form author function form author what it does is really just to tweak how a form looks like i don't have the time i can actually use Drupal console to easily create that kind of function so like for example Drupal module Drupal generate D8.1 Drupal generate so let's talk about if we want to create a proper Drupal 8 module controller dependency injection service container as in accessing the service and service container and so on and so forth we can use this generate controller i think in some other some other platform or framework it is called scaffolding name of the module my module we can also install autocomplete here so when i type my it just autocomplete enter the control class name for controller enter the control method title load enter the method name hello enter the root path is my module 2 my module hello 3 for example then the parameter so that's it i don't want to write anything else we want to generate unit test class even generate the unit test class for us say yes so what services do we want database what else form builder you want to confirm generation yes so what we see here there is a new module or the custom module that i created earlier my module there is an additional file there and all this line of codes generated automatically by Drupal console so that's the good thing if you are still learning about Drupal 8 development you can use Drupal console also to learn how all these things work because router is definitely moved to symphony router already and it's no longer using the menu hooks that's what we use in Drupal 7 so let me go back to my slides so that's the walkthrough i hope that you learn something today and to summarize we talk about the Drupal way so to create a good Drupal side scalable Drupal side not necessarily to always write custom modules you can achieve that by configuring the different modules together in fact it is actually better sometimes it is better because it prioritizes security, scalability performance and always know your modules and decide balance out between having a contract module or a custom module so that's all any questions? no, okay so how to reach me you want to reach me my email is sjapixion.com you can find my Drupal handler www.drupal.org.u Drupal Singapore Facebook page and thank you for coming right