How to develop system using YII

Blog
  index.php Web application entry script file
  assets/ containing published resource files
  css/ containing CSS files
  images/ containing image files
  themes/ containing application themes
  protected/ containing protected application files
     yiic yiic command line script
     yiic.bat yiic command line script for Windows
     commands/ containing customized 'yiic' commands
          shell/ containing customized 'yiic shell' commands
     components/ containing reusable user components
          MainMenu.php the 'MainMenu' widget class
          Identity.php the 'Identity' class used for authentication
          views/ containing view files for widgets
               mainMenu.php the view file for 'MainMenu' widget
          config/ containing configuration files
               console.php the console application configuration
               main.php the Web application configuration
          controllers/ containing controller class files
               SiteController.php the default controller class
          extensions/ containing third-party extensions
          messages/ containing translated messages
          models/ containing model class files
               LoginForm.php the form model for 'login' action
               ContactForm.php the form model for 'contact' action
          runtime/ containing temporarily generated files
          views/ containing controller view and layout files
               layouts/ containing layout view files
                    main.php the default layout for all views
               site/ containing view files for the 'site' controller
                     contact.php the view for 'contact' action
                     index.php the view for 'index' action
                     login.php the view for 'login' action
               system/ containing system view files
go to down load FCK via http://www.yiiframework.com/extension/fckeditor-integration/files/fckeditor-integration-0.0.4.zip 
put it to extensions目录
<?php $this->widget('application.extensions.fckeditor.FCKEditorWidget',array(
    "model"=>$pages,                # Data-Model
    "attribute"=>'content',         # Attribute in the Data-Model
    "height"=>'400px',
    "width"=>'100%',
    "toolbarSet"=>'Basic',          # EXISTING(!) Toolbar (see: fckeditor.js)
    "fckeditor"=>Yii::app()->basePath."/../fckeditor/fckeditor.php",
                                    # Path to fckeditor.php
    "fckBasePath"=>Yii::app()->baseUrl."/fckeditor/",
                                    # Realtive Path to the Editor (from Web-Root)
    "config" => array("EditorAreaCSS"=>Yii::app()->baseUrl.'/css/index.css',),
                                    # Additional Parameter (Can't configure a Toolbar dynamicly)
) ); ?>
public function actionCreate()
{
   $model=new Post;
   if(isset($_POST['post']))
   {
     $model->attributes=$_POST['post'];
     if($model=>save())
        $this->redirect(array('view','id'=>$model->id));
   }
   $this->render('create',array('model'=>$model));
}

public function actionUpdate()
{
   $model=$this->loadModel();
   if(isset($_POST['post']))
   {
      $model->attributes=$_POST['post'];
      if($model=>save())
        $this->redirect(array('view','id'=>$model->id));
   }
   $this->render('update',array('model'=>$model));
}
<div class='title'><?php echo CHtml::encode($data->title);?></div>
<?php $this->beginWidget('CMarkdown',array('purifyOutput'=>true));
echo $data->content_short;
$this->endWidget();?>
</div>

public function rules(){
  return array(
             array('password','cmpPassword'),
  );
}
public function cmpPasswd($attribute,$params)
{
  if(!$this->hasErrors())
  {
      if(!$this->re_passwd!=$this->password)
      {
         $this->addError('re_passwd','please confirm your repassword');
      }else{
         $this->salt=$this->generateSalt();
         $this->password=$this->hashPassword($this->password,$this->salt);
      }
  }
}
<div class='row'>
<?php echo CHtml::activeLabelEx($model,'re_passwd');?>
<?php echo CHtml::activeTextField($model,'salt',array('size'=>60,'maxlength'=>128));?>
<?php echo CHtml::error($model,'re_passwd');?>
</div>

public function actionAdmin()
{
  $criteria=new CDbCriteria(array());
  if(Yii::app()->user->name!='admin'){
   $criteria->addSearchCondition('author_id',Yii::app( )->user->id); 
                                      $dataProvider=new CActiveDataProvider('Post', 
                                         array( 
                                             'sort'=>array( 
                                             'defaultOrder'=>'status, update_time DESC', 
                                         ), 
                                          'criteria'=>$criteria, 
)); 
$this->render('admin',array( 
'dataProvider'=>$dataProvider, 
)); 

  }
    
}
添加站点新闻 
CREATE TABLE tbl_news 
( 
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
content TEXT NOT NULL, 
status INTEGER NOT NULL, 
create_time INTEGER, 
update_time INTEGER 
) 
D: 
cd D:\AppServ\www\blog 
..\yii\framework\yiic shell 
>> model news 
>> crud news

创建联动菜单
http://yiiframework.net/post/84/%E8%81%94%E5%8A%A8%E4%B8%8B%E6%8B%89%E8%8F%9C%E5%8D%95
 
 Yii::app()->cache->set($id,$value,30);//30sec
Yii::app()->cache->set($id,$value,30,new CFileCacheDependency('FileName'));//30sec
$value=Yii::app()->cache->get($id);
if($value===false){}$cache=Yii::app()->cache;
$cache['var1']=$value1;
$value2=$cache['var2'];
Fragment cache
<?php if($this->beginCache($id,array('duration'=>3600)){?>
...content to be cached
<?php $this->endCache();?>
<?php if($this->beginCache($id, array('dependency'=>array(
                                       'class'=>'system.caching.dependencies.CDbCacheDependency',
                                       'sql'=>'SELECT MAX(lastModified) FROM Post')))) { ?>
...content to be cached...
<?php $this->endCache(); } ?>
Nested Caching
<?php if($this->beginCache($id1)) {?>
...outer content to be cached...
<?php if($this->beginCache($id2)) { ?>
...inner content to be cached...
<?php $this->endCache(); } ?>
...outer content to be cached...
<?php $this->endCache(); }?>
Yii::import('ext.xyz.XyzClass');
Using 3rd party libraries
protected/vendors/Zend/Search/Lucene.php
Yii::import('application.vendors.*');
require once('Zend/Search/Lucene.php');
Once the above set up is ready, we can use the Lucene class in a controller action, like the
following:
Nice URl 
array(
'posts'=>'post/list',
'post/<id:nd+>'=>'post/read',
'post/<year:ndf4g>/<title>'=>'post/read',
)
1.Calling $this->createUrl('post/list') generates /index.php/posts. The rst rule
is applied.
2 Calling $this->createUrl('post/read',array('id'=>100)) generates /index.php/post/
100. The second rule is applied.
3 Calling $this->createUrl('post/read',array('year'=>2008,'title'=>'a sample post'))
generates /index.php/post/2008/a%20sample%20post. The third rule is applied.
4 Calling $this->createUrl('post/read') generates /index.php/post/read. None of
the rules is applied.
how to use theme
Yii::app()->theme->baseUrl.'/images/FileName.gif'
how to log 
Yii::log($message,$leavel,$category);
Yii::trace($message,$category);
how to using cookie
// retrieve the cookie with the specified name
$cookie=Yii::app()->request->cookies[$name];
$value=$cookie->value;
......
// send a cookie
$cookie=new CHttpCookie($name,$value);
Yii::app()->request->cookies[$name]=$cookie;
$cs=Yii::app()->clientScript;
$cs->scriptMap=array(
'jquery.js'=>'/js/all.js',
'jquery.ajaxqueue.js'=>'/js/all.js',
'jquery.metadata.js'=>'/js/all.js',
......
);
<head>
<?php echo CGoogleApi::init(); ?>
<?php echo CHtml::script(
CGoogleApi::load('jquery','1.3.2') . "nn" .
CGoogleApi::load('jquery.ajaxqueue.js') . "nn" .
CGoogleApi::load('jquery.metadata.js')
); ?>
......
</head>
$lucene=new Zend Search Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值