Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zend Lab

Zend Lab

LeoNguyen.com

July 11, 2013
Tweet

More Decks by LeoNguyen.com

Other Decks in Programming

Transcript

  1. Features - Purpose: An open source Zend CMS - GUI:

    Bootstrap + jQuery + Dojo - Technology: Zend 2 + Node.js + NoSQL
  2. Modules - Content: + News, Media (Photo-Video|Infographic-Mindmap), Slide + Products-Cart,

    Vote-Survey-Chat, Form+App - Channel: + Web, Tablet, Mobile, Email, SMS, Print
  3. Installation - Download Zend Server Community Edition (include Zend Framework

    2.0) (http://framework.zend.com/downloads/latest)
  4. Generate a Trial License for Zend Server - Go to

    http://www.zend.com/en/products/server/license
  5. Config Zend Server Host - Go to: C:\Program Files\Zend\ZendServer\etc\sites.d -

    Make host file: 'vhost_zendcms.com.conf' - Restart Zend Server
  6. Zend MVC - Programmer’s Reference Guide of Zend Framework 2:

    http://framework.zend.com/manual/2. 0/en/index.html#zendframeworkreference
  7. Describe Album Module - The application that we are going

    to build is a simple inventory system to display which albums we own. The main page will list our collection and allow us to add, edit and delete CDs. Page Description List of albums This will display the list of albums and provide links to edit and delete them. Also, a link to enable adding new albums will be provided. Add new album This page will provide a form for adding a new album. Edit album This page will provide a form for editing an album. Delete album This page will confirm that we want to delete an album and then delete it.
  8. Routing and controllers - As we have four pages that

    all apply to albums, we will group them in a single controller AlbumController within our Album module as four actions Page Controller Action Home AlbumController index Add new album AlbumController add Edit album AlbumController edit Delete album AlbumController delete
  9. Create the Model Table - Create model class 'AlbumTable.php' under

    <Source Path>\module\Album\src\Albu m\Model
  10. Using ServiceManager to configure the table gateway and inject into

    the AlbumTable - Create 'Module.php' in the Album module.
  11. Forms and Actions - Add album - Form - Create

    view 'AlbumForm.php' under <Source Path>\module\Album\src\Album\Form
  12. Forms and Actions - Add album - Model - Modify

    model class 'Album.php' under <Source Path>\module\Album\src\Album\M odel
  13. Forms and Actions - Add album - Controller - Modify

    controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\Controller
  14. Forms and Actions - Add album - View - Create

    view 'add.phtml' under <Source Path>\module\Album\view\album\album
  15. Forms and Actions - Add album - Open - Go

    to: http://zendcms.com/album/add
  16. Forms and Actions - Edit album - Controller - Modify

    controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\C ontroller
  17. Forms and Actions - Edit album - Model - Modify

    model class 'Album.php' under <Source Path>\module\Album\src\Album\Model
  18. Forms and Actions - Edit album - View - Create

    view 'edit.phtml' under <Source Path>\module\Album\view\album\album
  19. Forms and Actions - Delete album - Controller - Modify

    controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\C ontroller
  20. Forms and Actions - Edit album - View - Create

    view 'delete.phtml' under <Source Path>\module\Album\view\album\album
  21. Add ZfcBase, ZfcUser, BjyAuthorize - Go to: <Source Path>\zendcms\vendor -

    Extract to: 'ZfcUser', 'ZfcBase', 'BjyAuthorize'
  22. DB List Star: 1) User (u) 2) Tag (t): Page,

    Menu, Category 3) Post (p): Article, Products, Banner 4) Meta (m): Media 5) Option (o): Configuration
  23. Table List 1) u: uId, uName, uPass, uEmail, uDesc 2)

    t: tId, tName, tDesc 3) p: pId, uId, pTitle, pContent 4) m: mId, pId, mKey, mValue 5) o: oId, oKey, oValue
  24. 1) User (u) CREATE TABLE `user` ( `uId` INT NOT

    NULL AUTO_INCREMENT , `uName` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `uPass` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `uEmail` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `uDesc` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , PRIMARY KEY ( `uId` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
  25. 2) Tag (t) CREATE TABLE `tag` ( `tId` INT NOT

    NULL AUTO_INCREMENT , `tName` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `tDesc` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , PRIMARY KEY ( `tId` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
  26. 3) Post (p) CREATE TABLE `post` ( `pId` INT NOT

    NULL AUTO_INCREMENT , `uId` INT NOT NULL , `pTitle` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `pContent` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , PRIMARY KEY ( `pId` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
  27. 4) Meta (m) CREATE TABLE `meta` ( `mId` INT NOT

    NULL AUTO_INCREMENT , `pId` INT NOT NULL , `mKey` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `mValue` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `mId` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
  28. 5) Option (o) CREATE TABLE `option` ( `oId` INT NOT

    NULL AUTO_INCREMENT , `oKey` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `oValue` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `oId` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
  29. Back-end I) User Manager (Permission) II) Tag Manager (Grid hierachy)

    III) Layout Manager (Row added elements) Star: 1) Header, 2) Content, 3) Footer, 4) Top, 5) Bottom IV) Media Manager V) Option Manager Pyramid: Navigation (Circle -> Menu) -> Datatable (Search-Filter, Action,Grid-Edit) -> Form (Main Input,Desc Grid) + Custom