$30 off During Our Annual Pro Sale. View Details »

Zend Lab

Zend Lab

LeoNguyen.com

July 11, 2013
Tweet

More Decks by LeoNguyen.com

Other Decks in Programming

Transcript

  1. Zend Lab leonguyen.com

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

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

    Vote-Survey-Chat, Form+App - Channel: + Web, Tablet, Mobile, Email, SMS, Print
  4. Design - Logo & Icon - Color scheme & Pattern

    - Typography - Elements
  5. Layout - Responsive

  6. Layout - Metro

  7. Zend Core

  8. Installation - Download Zend Server Community Edition (include Zend Framework

    2.0) (http://framework.zend.com/downloads/latest)
  9. Start Zend Server - Go to http://localhost:10081/ZendServer

  10. Generate a Trial License for Zend Server - Go to

    http://www.zend.com/en/products/server/license
  11. Config Zend Application - Download Zend Skeleton Application (https://github. com/zendframework/ZendSkeletonApplication)

  12. New Environtment Variables

  13. Config Windows Host - Go to: C:\Windows\System32\drivers\etc\hosts

  14. Config Zend Server Host - Go to: C:\Program Files\Zend\ZendServer\etc\sites.d -

    Make host file: 'vhost_zendcms.com.conf' - Restart Zend Server
  15. Start ZF2 Skeleton Application - Go to: http://zendcms.com

  16. Config Zend Module - Download Zend Skeleton Module (https://github. com/zendframework/ZendSkeletonModule)

  17. Add Skeleton Module - Go to: <Source Path>\zendcms\module - Extract

    to: 'ZendSkeletonModule'
  18. Config application.config - Go to: <Source Path>\zendcms\config - Edit file:

    'application.config.php'
  19. Config module.config - Go to: <Source Path>\zendcms\module\ZendSkeletonModule\config - Edit file:

    'module.config.php'
  20. Start Skeleton Module - Go to: http://zendcms.com/skeleton

  21. Zend MVC - Programmer’s Reference Guide of Zend Framework 2:

    http://framework.zend.com/manual/2. 0/en/index.html#zendframeworkreference
  22. MVC Diagram

  23. DAO Design Pattern

  24. 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.
  25. Create directories - Creating following directories.

  26. Create Module.php - Create 'Module.php' in the Album module.

  27. Configuration - Create a file 'module.config.php' under <Source Path>\zendcms\module\Album\config

  28. Config application.config - Go to: <Source Path>\zendcms\config - Edit file:

    'application.config.php'
  29. 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
  30. Add Router - Modify 'module. config.php' under <Source Path>\zendcms\modul e\Album\config

  31. Create the Controller - Create controller class 'AlbumController.php' under <Source

    Path>\module\Album\src\Album\Controller
  32. DB Schema - Create SQL statements to create the album

    table.
  33. Create the Model - Create model class 'Album.php' under <Source

    Path>\module\Album\src\Album\Model
  34. Create the Model Table - Create model class 'AlbumTable.php' under

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

    the AlbumTable - Create 'Module.php' in the Album module.
  36. Config DB Driver - Modify 'global.php' under <Source Path>\config\autoload

  37. Config DB Credentials - Modify 'local.php' under <Source Path>\config\autoload

  38. Create the View - Create view 'index.phtml' under <Source Path>\module\Album\view\album\album

  39. Open Album - Go to: http://zendcms.com/album

  40. Forms and Actions - Add album - Form - Create

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

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

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

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

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

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

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

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

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

    view 'delete.phtml' under <Source Path>\module\Album\view\album\album
  50. Zend Authentication

  51. Zfc [Base.User.Acl] - Download (https://github.com/ZF-Commons/ZfcUser) (https://github.com/ZF-Commons/ZfcBase) (https://github.com/bjyoungblood/BjyAuthorize)

  52. Add ZfcBase, ZfcUser, BjyAuthorize - Go to: <Source Path>\zendcms\vendor -

    Extract to: 'ZfcUser', 'ZfcBase', 'BjyAuthorize'
  53. Config application.config - Go to: <Source Path>\zendcms\config - Edit file:

    'application.config.php'
  54. Make database.local - Go to: <Source Path>\zendcms\config\autoload - Create file:

    'database.local.php'
  55. Start url User - Go to: http://zendcms.com/user/login

  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. Login

  64. 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
  65. Github - Go to: https://github.com/leonguyen/zendcms