Zend Lab
Post on 17-May-2015
725 Views
Preview:
DESCRIPTION
Transcript
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)
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
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'
Zend MVC
- Programmer’s Reference Guide of Zend Framework 2: http://framework.zend.com/manual/2.0/en/index.html#zendframeworkreference
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
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'
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
top related