Archive for the ‘Programming’ Category

Struktur di file *.info di Drupal

  • name required
  • description recommended
  • screenshot
  • version discouraged
  • core required
  • engine required in most cases
  • base theme
  • regions
  • features
  • stylesheets
  • scripts
  • php

Tiga Konsep untuk Membuat Themes di Drupal

1. Membuat theme secara keseluruhan atau sebagian

Anda dapat membuat theme untuk keseluruhan page, atau membuat look and feel dari masing-masing page. Contohnya pada saat proses instalasi selesai, template yg digunakan oleh front end maupun back end secara default adalah Garland. Ini adalah contoh penggunaan satu template untuk keseluruhan bagian web.

2. Membangun dengan Block

Theme Drupal mencakup placeholder disebut region. Region adalah daerah yang sebuah halaman dimana konten biasanya ditampilkan.  Administrator situs dapat menetapkan berbagai output ke region melalui manajer di block admin interface. Setiap block mempunyai modul masing-masing. Dengan begitu, administrator dapat dengan leluasa memilih modul mana saja yg ingin diaktifkan dan yang tidak. Selain dapat men-generate block dari sebuah modul,dapat juga membuat modul secara manual. Block yang diciptakan secara manual akan lebih leluasa untuk menempatkannya.Proses untuk mengaktifkan modul dan menempatkan block pada region tertentu merupakan skill yang sangat mendasar dan sangat penting untuk dimiliki oleh seorang administrator.

3. Intercept dan override (saya belum mendapat arti yang pas)
Mengambil data dari raw form kemudian dirubah menjadi display yang seharusnya tanpa merubah core Drupal itu sendiri.

Tomato CMS

Tomato CMS is a framework based on Zend Framework. The content management and layout are interesting enough, especially for programmer that confusing about template design. Here you can use the default template but you can move the widget / block as you like. The layout is flexible enough, because the CMS use a widget concept. You can drag and drop widget in place you like and the web area divided into 12 grid / coulumn. If you want to know the detail about Tomato CMS, you can find in http://www.tomatocms.com/

Kesalahan Ketika Install Drupal 6.15

Ketika instalasi Drupal, ada beberapa orang yang melakukan kesalahan dengan mengikuti perintah instalasi drupal ketika harus merename file drupal6.15/sites/default/default.settings.php menjadi /settings.php. Kesalahannya adalah jangan langsung direname, file itu harus dicopy dulu, kemudian salah satu dari dua file itu direname. Jika kita hanya merenamenya tanpa mengcopy terlebih dahulu, maka ketika instalasi akan stuck di halaman database configuration tanpa ada error message, dan itu sangat menyita waktu untuk mengatahui penyebabnya. Itu saja sedikit tips dari saya. selamat mencoba Drupal…!!

Contoh Struktur Project Menggunakan Zend

   1. newproject
   2. |-- application
   3. |   |-- Bootstrap.php
   4. |   |-- configs
   5. |   |   `-- application.ini
   6. |   |-- controllers
   7. |   |   |-- ErrorController.php
   8. |   |   `-- IndexController.php
   9. |   |-- models
  10. |   `-- views
  11. |       |-- helpers
  12. |       `-- scripts
  13. |           |-- error
  14. |           |   `-- error.phtml
  15. |           `-- index
  16. |               `-- index.phtml
  17. |-- library
  18. |-- public
  19. |   `-- index.php
  20. `-- tests
  21.     |-- application
  22.     |   `-- bootstrap.php
  23.     |-- library
  24.     |   `-- bootstrap.php
  25.     `-- phpunit.xml

Rangkuman Sintak Zend_Acl

1. Zend_Acl () = Klas untuk menginstansiasi pertama kali untuk menerapkan hak akses

2. Zend_Acl_Role(namaRole) = Klas untuk membuat role baru

3. addRole(New Zend_Acl_Role(‘guest’)) = Function dalam Zend_Acl untuk membuat role baru, contoh disini Role guest

4. addRole(New Zend_Acl_Role(‘member’),’guest’) = Function dalam Zend_Acl untuk membuat role baru, contoh disini role member yang merupakan turunan dari guest

5. Zend_Acl_Resource(namaResource) = Membuat object resource baru

6. add(new Zend_Acl_Resource(namaResource)) = Menambahkan resource baru

7. deny(‘guest’,namaResource) = Untuk menolak akses, contoh disini guest tidak mempunyai akses terhadap namaResource

8. allow(‘member’,namaResource) = Untuk memberikan ijin akses pada member terhadap namaResource

9. isAllowed(‘user’,'resource’) = Untuk menanyakan hak akses terhadap role tertentu, contoh disini role user terhadap resource.

10. removeDeny(‘guest’,'resource’,'merevisi’) = Melakukan penghapusan terhadap hak akses yg semola di deny untuk guest sehingga sekarang hak aksesnya menjadi allow, contoh dini guest boleh mengases resource dan merevisinya.

11. removeAllow(‘member’,'resource’,'terbaru’) = Melakukan penghapusan terhadap hak akses yg semula allow menjadi deny sehingga sekarang hak aksesnya menjadi deny, contoh disini member ditolak untuk mengkases resourse terbaru.

Zend_Acl Part II

Membuat ACL
ACL dapat mewakili benda fisik atau object virtual yang diinginkan. Untuk membuat object ACL baru harus diinstansiasi ACL tanpa parameter.

$acl = new Zend_Acl();

Mendaftarkan Role
Aplikasi akan selalu memerlukan hirarki hak akses terhadap penggunanya. Mungkin akan ada kelompok “guest” yang mempunyai hak akses yang terbatas sekedar untuk demonstrasi.Kelompok “staff” sebagai kelompok mayoritas pengguna aplikasi sebagai operator aplikasi, “editor” yang bertanggungjawab dalam proses penerbitan, mengulas, dan mengarsipkan content, dan terakhir seorang “administrator” yang tugasnya mencakup tugas kelompok-kelompok lain serta pemeliharaan informasi, pengaturan user, data konfigurasi, back-up dan export.
Setting hak akses dapat direpresentasikan dalam registry role,memungkinkan setiap grup untuk mewarisi priviledge dari grup parentnya, serta memberikan hak istimewa yang berbeda untuk grup yg unique.Hak akses dapat dinyatakan sebagai berikut :

Nama Hak Akses Unik Mewarisi Hak Akses Dari
Guest View N/A
Staff Edit, Simpan, Update Guest
Editor Publish, Archieve, Delete Staff
Administrator Mendapat Semua Hak Akses N/A

Untuk contoh ini. Zend_Acl_Role digunakan, tetapi setiap object yang menggunakan Zend_Acl_Role_Interface dapat diterima. Grup-grup ini dapat ditambahkan ke registry sebagai berikut :

  $acl = new Zend_Acl(); 
 
 // Add groups to the Role registry using Zend_Acl_Role
 // Guest does not inherit access controls
 $roleGuest = new Zend_Acl_Role('guest');
 $acl->addRole($roleGuest); 
 
 // Staff inherits from guest
 $acl->addRole(new Zend_Acl_Role('staff'), $roleGuest); 
 
 /*
 Alternatively, the above could be written:
 $acl->addRole(new Zend_Acl_Role('staff'), 'guest');
 */ 
 
 // Editor inherits from staff
 $acl->addRole(new Zend_Acl_Role('editor'), 'staff'); 
 
 // Administrator does not inherit access controls
 $acl->addRole(new Zend_Acl_Role('administrator'));

Mendefinisikan Hak Akses
Cara untuk mendefinisikan hak akses bisa dengan cara berikut :

$acl = new Zend_Acl(); 
 
 $roleGuest = new Zend_Acl_Role('guest');
 $acl->addRole($roleGuest);
 $acl->addRole(new Zend_Acl_Role('staff'), $roleGuest);
 $acl->addRole(new Zend_Acl_Role('editor'), 'staff');
 $acl->addRole(new Zend_Acl_Role('administrator')); 
 
 // Guest may only view content
 $acl->allow($roleGuest, null, 'view'); 
 
 /*
 Alternatively, the above could be written:
 $acl->allow('guest', null, 'view');
 //*/ 
 
 // Staff inherits view privilege from guest, but also needs additional
 // privileges
 $acl->allow('staff', null, array('edit', 'submit', 'revise')); 
 
 // Editor inherits view, edit, submit, and revise privileges from
 // staff, but also needs additional privileges
 $acl->allow('editor', null, array('publish', 'archive', 'delete')); 
 
 // Administrator inherits nothing, but is allowed all privileges
 $acl->allow('administrator');

Nilai NULL sebelum allow() adalah parameter yang digunakan untuk menunjukkan bahwa aturan memungkinkan untuk semua sumber daya.

Meng-Query-kan ACL
Untuk mengetahui bahwa user mempunyai hak akses atau tidak, cukup sederhana dengan menggunakan metode isAllowed()

echo $acl->isAllowed('guest', null, 'view') ?
     "allowed" : "denied";
 // allowed 
 
 echo $acl->isAllowed('staff', null, 'publish') ?
     "allowed" : "denied";
 // denied 
 
 echo $acl->isAllowed('staff', null, 'revise') ?
     "allowed" : "denied";
 // allowed 
 
 echo $acl->isAllowed('editor', null, 'view') ?
     "allowed" : "denied";
 // allowed because of inheritance from guest 
 
 echo $acl->isAllowed('editor', null, 'update') ?
     "allowed" : "denied";
 // denied because no allow rule for 'update' 
 
 echo $acl->isAllowed('administrator', null, 'view') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges 
 
 echo $acl->isAllowed('administrator') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges 
 
 echo $acl->isAllowed('administrator', null, 'update') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges

source : http://framework.zend.com/manual/en/zend.acl.html#zend.acl.introduction.creating

Zend_Acl

Zend_Acl adalah implementasi dari Access Control List (ACL) untuk mengatur sistem priviledge. Dalam bahasan ini terdapat dua point penting yaitu resource dan role. Contoh, mobil dan pemiliknya. Mobil merupakan resource dan hanya pemilik yang memiliki hak akses untuk mobilnya, jadi tidak semua orang bisa memakai mobi tersebut. Hak akses yang dimiliki oleh si pemilik mobil terhadap mobilnya itulah yang disebut role.

Resources
Membuat resource di Zend_acl sangat sederhana.Zend_Acl menyediakan interface yaitu Zend_Acl_Resource_Interface yang berfungsi untuk memfasilitasi membuat resource dalam aplikasi. Sebuah class cukup menggunakan interface ini yang terdiri dari satu method yaitu get_resource_id() pada zend_acl untuk menandai bahwa object tersebut adalah resource. Sebagai tambahan, Zend_Acl_Resource disediakan oleh Zend_Acl sebagai resource implement dasar untuk developer dalam membuat turunannya atau saat dibutuhkan.

Zend_Acl berbentuk struktur pohon sehingga resource baru dapat ditambahkan.Karena resource yg berbentuk seperti pohon, mereka dapat diatur mulai dari root sampai leave-nya.Query-query mengenai resource tertentu akan mencari secara otomatis secara hirarki sampai ke ujungnya dan mengijinkan pewarisan yang sederhana. Contoh, jika terdapat aturan default yang akan dijalankan pada setiap gedung di sebuah kota, maka orang akan menerapkan satu aturan pada kota,bukan menerapkan aturan yg sama pada gedung.Beberapa gedung mungkin akan melakukan pengecualian terhadap beberapa aturan yang mana hal ini dapat dilakukan dengan Zend_Acl dengan cara memberikan pengecualian-pengecualian tersebut pada setiap gedung yang memerlukannya. Resource dapat diturunkan dari hanya satu parent, meskipun resource parent ini mempunyai resource parent nya sendiri.

Zend_Acl juga mendukung hak akses pada resource (seperti “create”, “read”, “update”, “delete”), sehingga developer dapat menentukan aturan yang akan berefek pada seluruh priviledge atau priviledge yg lebih specific pada satu atau lebih resource.

Roles
Sama seperti resource, membuat role juga sangat sederhana. Semua role harus meng-implement Zend_Acl_Role_Interface. Interface ini terdiri dari satu method getRoleId(),sebagai tambahannya Zend_Acl_Role disediakan aoleh Zend_Acl sebagai dasar implementasi role untuk diturunkan oleh developer sesuai kebutuhan.

Pada Zend_Acl, sebuah role diturunkan dari satu atau beberapa role. Hal ini mendukung pewarisan aturan antar role. Contoh, pengguna role, misal “editor” dan “administrator”. Developer dapat memberikan aturan kepada “editor” dan “administrator” secara terpisah, dan “sally” dapat mengadopsi aturan dari keduanya, tanpa memberikan secara langsung pada “sally”.

Walaupun kemampuan untuk menurunkan dari beberapa role sangat berguna, pewarisan dari beberapa role juga mengenalkan beberapa tingkat kerumitan. Contoh dibawah ini adalah contoh ambiguitas kondisi dan bagaimana Zend_Acl mengatasinya.

Contoh Pewarisan Dari Beberapa Role
Sintak dibawah ini menunjukkan ada tiga buah role “guest”,”member”,dan “admin” dan role bisa diturunkan dari mana saja. Kemudian,role dikenali oleh “user” muncul dan merupakan turunan dari ketiga role tersebut. Urutan dimana role ini muncul dalam bentuk array $parent sangatlah penting. Jika diperlukan, Zend_Acl akan mencari hak akses yang telah ditentukan bukan hanya dari role yg di-query-kan (“user”), tapi juga dari role yang diturunkan (“guest”,”member”,dan “admin”)

$acl = new Zend_Acl(); 
 
 $acl->addRole(new Zend_Acl_Role('guest'))
    ->addRole(new Zend_Acl_Role('member'))
    ->addRole(new Zend_Acl_Role('admin')); 
 
 $parents = array('guest', 'member', 'admin');
 $acl->addRole(new Zend_Acl_Role('someUser'), $parents); 
 
 $acl->add(new Zend_Acl_Resource('someResource')); 
 
 $acl->deny('guest', 'someResource');
 $acl->allow('member', 'someResource'); 
 
 echo $acl->isAllowed('someUser', 'someResource') ? 'allowed' : 'denied';

Karena tidak ada aturan khusus didefinisikan pada “user” pada “resource”, maka Zend_Acl harus mencari aturan dari role yang diwarisinya. Pertama, role “admin” dilihat, dan tidak ada aturan hak akses yang ditetapkan untuk itu. Selanjutnya, role “member” dilihat dan Zend_Acl menemukan aturan bahwa “member” diperbolehkan untuk mengakses “resource”.

Jika Zend_Acl melanjutkan untuk melihat role berikutnya, maka akan menemukan role “guest” tidak mempunyai hak akses terhadap “resource”.Fakta ini menunjukkan sebuah ambiguitas karena “user” mempunyai dua aturan sekaligus yang bertentangan, baik diijinkan maupun ditolak hak aksesnya terhadap “resource”, dengan alasan telah mewarisi aturan yang berbeda dari parent yang berbeda.

Zend_Acl menyelesaikan ambiguitas ini dengan melengkapi sebuah query ketika menemukan aturan pertama dan langsung berlaku untuk permintaan tersebut. Dalam kasus ini, karena role “member” dijalankan setelah role “guest” maka hak akses adalah “allowed”.

Kesimpulan
Parent terakhir yang tercantum hak aksesnya akan diterapkan untuk otorisasi

source : http://framework.zend.com/manual/en/zend.acl.html#zend.acl.introduction

Chapter 3 Storefront Basic Setup

This chapter includes :
1. Storefront requirement
2. Basic application structure
3. Bootstrapping with Zend_Application
4. Global layouts
5. Application build
6. Installing the storefront database
7. Application configuration
8. Logging and debugging

Chapter 2 The Zend MVC Architecture

In this chapter, we will cover the following topics :
1. Zend framework MVC overview
2. The Front Controller
3. The router
4. The dispatcher
5. The Request object
6. The Response object

Get Adobe Flash playerPlugin by wpburn.com wordpress themes