Zend Lab

Post on 17-May-2015

725 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Zend Lab http://leonguyen.com

Transcript

Zend Lab

leonguyen.com

Features- Purpose: An open source Zend CMS- GUI: Bootstrap + jQuery + Dojo- Technology: Zend 2 + Node.js + NoSQL

Modules- Content: + News, Media (Photo-Video|Infographic-Mindmap), Slide+ Products-Cart, Vote-Survey-Chat, Form+App- Channel: + Web, Tablet, Mobile, Email, SMS, Print

Design- Logo & Icon- Color scheme & Pattern- Typography- Elements

Layout - Responsive

Layout - Metro

Zend Core

Installation- Download Zend Server Community Edition (include Zend Framework 2.0) (http://framework.zend.com/downloads/latest)

Start Zend Server

- Go to http://localhost:10081/ZendServer

Generate a Trial License for Zend Server

- Go to http://www.zend.com/en/products/server/license

Config Zend Application

- Download Zend Skeleton Application (https://github.com/zendframework/ZendSkeletonApplication)

New Environtment Variables

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

Config Zend Server Host- Go to: C:\Program Files\Zend\ZendServer\etc\sites.d- Make host file: 'vhost_zendcms.com.conf'- Restart Zend Server

Start ZF2 Skeleton Application- Go to: http://zendcms.com

Config Zend Module

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

Add Skeleton Module- Go to: <Source Path>\zendcms\module- Extract to: 'ZendSkeletonModule'

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

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

Start Skeleton Module- Go to: http://zendcms.com/skeleton

MVC Diagram

DAO Design Pattern

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.

Create directories- Creating following directories.

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

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

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

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

Add Router- Modify 'module.config.php' under <Source Path>\zendcms\module\Album\config

Create the Controller- Create controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\Controller

DB Schema- Create SQL statements to create the album table.

Create the Model- Create model class 'Album.php' under <Source Path>\module\Album\src\Album\Model

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

Using ServiceManager to configure the table gateway and inject into the AlbumTable

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

Config DB Driver

- Modify 'global.php' under <Source Path>\config\autoload

Config DB Credentials

- Modify 'local.php' under <Source Path>\config\autoload

Create the View

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

Open Album

- Go to: http://zendcms.com/album

Forms and Actions - Add album - Form

- Create view 'AlbumForm.php' under <Source Path>\module\Album\src\Album\Form

Forms and Actions - Add album - Model

- Modify model class 'Album.php' under <Source Path>\module\Album\src\Album\Model

Forms and Actions - Add album - Controller

- Modify controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\Controller

Forms and Actions - Add album - View

- Create view 'add.phtml' under <Source Path>\module\Album\view\album\album

Forms and Actions - Add album - Open

- Go to: http://zendcms.com/album/add

Forms and Actions - Edit album - Controller

- Modify controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\Controller

Forms and Actions - Edit album - Model

- Modify model class 'Album.php' under <Source Path>\module\Album\src\Album\Model

Forms and Actions - Edit album - View

- Create view 'edit.phtml' under <Source Path>\module\Album\view\album\album

Forms and Actions - Delete album - Controller

- Modify controller class 'AlbumController.php' under <Source Path>\module\Album\src\Album\Controller

Forms and Actions - Edit album - View

- Create view 'delete.phtml' under <Source Path>\module\Album\view\album\album

Zend Authentication

Zfc [Base.User.Acl]

- Download (https://github.com/ZF-Commons/ZfcUser)(https://github.com/ZF-Commons/ZfcBase)(https://github.com/bjyoungblood/BjyAuthorize)

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

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

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

Start url User- Go to: http://zendcms.com/user/login

DB ListStar:1) User (u)2) Tag (t): Page, Menu, Category3) Post (p): Article, Products, Banner4) Meta (m): Media5) Option (o): Configuration

Table List1) u: uId, uName, uPass, uEmail, uDesc2) t: tId, tName, tDesc3) p: pId, uId, pTitle, pContent4) m: mId, pId, mKey, mValue5) o: oId, oKey, oValue

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

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

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

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

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

Login

Back-endI) User Manager (Permission)II) Tag Manager (Grid hierachy)III) Layout Manager (Row added elements)Star: 1) Header, 2) Content, 3) Footer, 4) Top, 5) BottomIV) Media ManagerV) Option ManagerPyramid: Navigation (Circle -> Menu) -> Datatable (Search-Filter,Action,Grid-Edit) -> Form (Main Input,Desc Grid) + Custom

Github

- Go to: https://github.com/leonguyen/zendcms

top related