ajax实时任务提示功能的实现代码第1/2页
ajax实时任务提示功能的实现代码第1/2页
发布时间:2016-12-29 来源:查字典编辑
摘要:项目代码结构见我之前写的[EXT/FCKEditor集成--AJAXUI--一种web开发的新的思维,要及时转换思想]一文.中的├─task...

项目代码结构见 我之前写的[EXT/FCKEditor 集成 -- AJAX UI -- 一种web开发的新的思维,要及时转换思想]一文.

中的

├─taskofpig

│ ├─Controller

│ ├─Dao

│ ├─js

│ ├─music

│ ├─tpl

│ ├─tpl_c

│ └─_log

项目代码如下:

db.sql

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for task

-- ----------------------------

CREATE TABLE `task` (

`id` int(11) NOT NULL,

`title` varchar(100) collate utf8_unicode_ci NOT NULL,

`desc` text collate utf8_unicode_ci,

`date` datetime NOT NULL,

`created` int(11) default NULL,

`updated` int(11) default NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------

-- Table structure for task_seq

-- ----------------------------

CREATE TABLE `task_seq` (

`id` int(11) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/ucren/taskofpig/index.php

<?php

//设置正确的时区

date_default_timezone_set("Asia/Shanghai");

define('TASKOFPIG_DIR',dirname(__FILE__)) ;

require('../phplibs/FLEA/FLEA.php');

// 对$GLOBALS[G_FLEA_VAR]['CLASS_PATH'] 进行配置

FLEA::import(TASKOFPIG_DIR); //将当前目录加入到环境变量中

FLEA::loadAppInf('appConfig.php') ; //将配置文件单独分出来,容易维护

FLEA::init();

// 由于 FLEA_Db_TableDataGateway 并不是自动载入的,因此需要明确载入

FLEA::loadClass('FLEA_Db_TableDataGateway');

FLEA::runMVC();

?>

/ucren/taskofpig/appConfig.php

<?php

// 对 $GLOBALS[G_FLEA_VAR]['APP_INF'] 进行配置

return array(

'dispatcher' => 'FLEA_Dispatcher_Simple' , //定制调度器 FLEA_Dispatcher_Auth

'controllerAccessor' => 'ctl' ,

'actionAccessor' => 'act' ,

'view' => 'FLEA_View_Smarty', //定制视图

'viewConfig' => array(

'smartyDir' => '../phplibs/Smarty',

'template_dir' => './tpl',

'compile_dir' => './tpl_c',

'left_delimiter' => '<%',

'right_delimiter' => '%>',

'debugging' => false

),

'dbDSN' => array( //定制数据库连接参数

'driver' => 'mysql',

'host' => 'localhost',

'login' => 'dbuser',

'password' => 'dbpass',

'database' => 'dbname' ,

'charset ' => 'utf8'

) ,

'logFileDir' => './log' , //定制日志

'logFilename' => 'task_admin.log'

);

?>

/ucren/taskofpig/Dao/Table.php

<?php

//生气猪的任务计划表

class Dao_TaskTable extends FLEA_Db_TableDataGateway

{

// 指定数据表名称

var $tableName = 'task';

// 指定主键字段名

var $primaryKey = 'id';

}

?>

/ucren/taskofpig/Controller/Default.php

<?php

FLEA::loadFile('Dao_Table.php',true) ;

FLEA::loadFile('FLEA_Ajax_JSON.php',true) ;

class Controller_Default extends FLEA_Controller_Action

{

var $smarty ;

function Controller_Default()

{

$this->smarty = $this->_getView();

$this->smarty->assign('sitename','任务计划表 -- 生气猪') ;

$this->smarty->assign('opname','任务列表') ;//缺省应该在子模块中更改值

}

function actionIndex()

{

$this->toModulePage(); //缺省显示任务列表页

}

//定义一个函数用于调用FCKeditor

function call_fck($input_name,$input_value,$w='800',$h='400')

{

include_once '../fckeditor/fckeditor.php';

$fcked = new FCKeditor($input_name) ;

$fcked->BasePath = '../fckeditor/';

$fcked->ToolbarSet = 'Default' ; //工具栏设置

$fcked->InstanceName = $input_name ;

$fcked->Width = $w;

$fcked->Height = $h;

$fcked->Value = $input_value;

$fck_area = $fcked->CreateHtml();

$this->smarty->assign('fck_area',$fck_area);

unset($fck_area) ;

unset($fcked) ;

}

function _showPage($tpl='taskofpig.main.html')

{

$this->smarty->display($tpl);

}

function actionAdd()

{

$this->addTask();

}

function actionUpdate()

{

$this->updateTask();

}

function deleteTask($id){

$row = array('id'=>$id);

$thisDao = & new Dao_TaskTable() ;

$status = $thisDao->remove($row); //返回boolean值

unset($thisDao);

return $status ;

}

function listTask()

{

$thisDao = & new Dao_TaskTable() ;

$rows = $thisDao->findAll(); //二维数组

foreach($rows as &$row) //注意这里要传引用

{

$row['desc'] = mb_substr($row['desc'],0,40,'UTF-8');

}

$this->smarty->assign('rowSet',$rows);

$this->_showPage();

}

function addTask()

{

$thisDao = & new Dao_TaskTable() ;

$row = array(

'title' => $_REQUEST['title'],

'desc' => $_REQUEST['desc'],

'date' => $_REQUEST['date']

);

$commitId = $thisDao->create($row);

unset($thisDao);

echo "成功添加新任务";

redirect( url("Default"),1) ;

}

function updateTask()

{

$thisDao = & new Dao_TaskTable() ;

$row = array(

'id' => $_REQUEST['id'],

'title' => $_REQUEST['title'],

'desc' => $_REQUEST['desc'],

'date' => $_REQUEST['date']

);

$commitId = $thisDao->update($row);

unset($thisDao);

echo "成功更新任务";

redirect( url("Default"),1) ;

}

function queryTask($id){

$thisDao = & new Dao_TaskTable() ;

$row = $thisDao->find(array('id'=>$id));

unset($thisDao);

return $row ;

}

function queryTaskForDate($date=null)

{

$thisDao = & new Dao_TaskTable() ; //'2008-08-17 07:42:29'

$row = $thisDao->find(array('date'=>date('Y-m-d H:i:s')));

unset($thisDao);

if (!empty($row))

{

$jsonobj = new Services_JSON();

echo $jsonobj->encode($row);

}

else

die(date('Y-m-d H:i:s'));

}

//任务流转控制方法

function toModulePage()

{

if ($_REQUEST['op'] == 'search') {

$this->queryTaskForDate();

}

else if ($_REQUEST['op'] == 'add') {

$this->smarty->assign('opname','添加新任务') ;

$this->smarty->assign('taskTime',date('Y-m-d H:i:s')) ;

$this->call_fck('desc','');

$this->_showPage('taskofpig.add.html');

}

else if ($_REQUEST['op'] == 'del') {

if ( isset($_REQUEST['id']) && is_numeric($_REQUEST['id']) )

$status = $this->deleteTask($_REQUEST['id']) ;

$this->listTask();

}

else if ($_REQUEST['op'] == 'edit') {

if ( isset($_REQUEST['id']) && is_numeric($_REQUEST['id']) ){

$row = $this->queryTask($_REQUEST['id']) ;

}

$this->call_fck('desc',$row['desc']);

unset($row['desc']) ;

$this->smarty->assign('rowSet',$row);

$this->smarty->assign('opname','修改任务') ;

$this->_showPage('taskofpig.edit.html');

}

else { //列表

$this->listTask();

}

}

}

?>

当前1/2页12下一页阅读全文

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新AJAX相关学习
热门AJAX相关学习
编程开发子分类