KodExplorer/controller/app.class.php

133 lines
3.2 KiB
PHP
Executable File

<?php
/*
* @link http://www.kalcaddle.com/
* @author warlee | e-mail:kalcaddle@qq.com
* @copyright warlee 2014.(Shanghai)Co.,Ltd
* @license http://kalcaddle.com/tools/licenses/license.txt
*/
class app extends Controller{
function __construct() {
parent::__construct();
$this->sql=new fileCache(USER_SYSTEM.'apps.php');
}
/**
* 用户首页展示
*/
public function index() {
$this->display(TEMPLATE.'app/index.php');
}
public function init_app($user_info){
$list = $this->sql->get();
$new_user_app = $this->config['setting_system']['new_user_app'];
$default = explode(',',$new_user_app);
$info = array();
foreach ($default as $key) {
$info[$key] = $list[$key];
}
$desktop = iconv_system(user_home_path($user_info).'desktop/');
mk_dir($desktop);
if(!path_writeable($desktop)){
return;
}
foreach ($info as $key => $data) {
if (!is_array($data)) {
continue;
}
$path = $desktop.iconv_system($key).'.oexe';
unset($data['name']);
unset($data['desc']);
unset($data['group']);
file_put_contents($path, json_encode($data));
}
}
/**
* 用户app 添加、编辑
*/
public function user_app() {
$path = _DIR($this->in['path']);
if (isset($this->in['action']) &&
$this->in['action'] == 'add'){
$path .= '.oexe';
}
if (!checkExt($path)) {
show_json($this->L['error']);exit;
}
$data = $this->_init();
unset($data['name']);unset($data['desc']);unset($data['group']);
$res = file_put_contents($path, json_encode($data));
show_json($this->L['success']);
}
/**
* 获取列表
*/
public function get() {
$list = array();
if (!isset($this->in['group']) || $this->in['group']=='all') {
$list = $this->sql->get();
}else{
$list = $this->sql->get(array('group',$this->in['group']));
}
$list = array_reverse($list);
show_json($list);
}
/**
* 添加
*/
public function add() {
$res=$this->sql->set(rawurldecode($this->in['name']),$this->_init());
if($res) show_json($this->L['success']);
show_json($this->L['error_repeat'],false);
}
/**
* 编辑
*/
public function edit() {
//查找到一条记录,修改为该数组
$this->sql->remove(rawurldecode($this->in['old_name']));
if($this->sql->set(rawurldecode($this->in['name']),$this->_init())){
show_json($this->L['success']);
}
show_json($this->L['error_repeat'],false);
}
/**
* 删除
*/
public function del() {
if($this->sql->remove(rawurldecode($this->in['name']))){
show_json($this->L['success']);
}
show_json($this->L['error'],false);
}
public function get_url_title(){
$html = curl_get_contents($this->in['url']);
$result = match($html,"<title>(.*)<\/title>");
if (strlen($result)>50) {
$result = mb_substr($result,0,50,'utf-8');
}
if (!$result || strlen($result) == 0) {
$result = $this->in['url'];
$result = str_replace(array('http://','&','/'),array('','@','-'), $result);
}
show_json($result);
}
private function _init(){
$data = rawurldecode($this->in['data']);
$arr = json_decode($data,true);
if(!is_array($arr)){
show_json($this->L['error'],false);
}
return $arr;
}
}