コード例 #1
0
ファイル: script.class.php プロジェクト: qeist/goose
 /**
  * run
  *
  * @param string $name
  * @return array
  */
 public function run($name)
 {
     if ($this->name != 'script') {
         return array('state' => 'error', 'message' => '잘못된 객체로 접근했습니다.');
     }
     // set run path
     $path = $this->runPath . $name . '/';
     // check run file
     if (!file_exists(__GOOSE_PWD__ . $path . 'run.php')) {
         return array('state' => 'error', 'message' => '실행코드 파일이 없습니다.');
     }
     // get meta data
     $meta = Util::jsonToArray(Util::openFile(__GOOSE_PWD__ . $path . 'meta.json'), null, true);
     return require_once __GOOSE_PWD__ . $path . 'run.php';
 }
コード例 #2
0
ファイル: view.class.php プロジェクト: qeist/goose
 /**
  * view - index
  */
 private function view_index()
 {
     // set repo
     $repo = array('run');
     // get data
     $repo['run'] = Util::getDir(__GOOSE_PWD__ . $this->runPath, 'name');
     // set data
     foreach ($repo['run'] as $k => $v) {
         $meta = Util::jsonToArray(Util::openFile(__GOOSE_PWD__ . $this->runPath . $v['name'] . '/meta.json'), null, true);
         $repo['run'][$k]['meta'] = $meta;
     }
     // set pwd_container
     $this->pwd_container = __GOOSE_PWD__ . $this->skinPath . 'view_index.html';
     require_once $this->layout->getUrl();
 }
コード例 #3
0
ファイル: help.class.php プロジェクト: qeist/goose
 /**
  * view - read
  */
 private function view_read($module)
 {
     $this->moduleName = $module;
     $this->page = $this->param['params'][0] ? $this->param['params'][0] : 'index';
     // check doc file
     $pwd_page = __GOOSE_PWD__ . 'module/' . $this->moduleName . '/help/' . $this->page;
     $this->pwd_page = Util::isFile(array($pwd_page . '.md', $pwd_page . '.html'));
     if (file_exists($this->pwd_page)) {
         // get module setting
         $this->page_modSet = Util::jsonToArray(Util::openFile(__GOOSE_PWD__ . 'module/' . $this->moduleName . '/setting.json'));
         // set pwd_container
         $this->pwd_container = __GOOSE_PWD__ . $this->skinPath . 'view_page.html';
         require_once $this->layout->getUrl();
     } else {
         Goose::error(404);
         Goose::end();
     }
 }
コード例 #4
0
ファイル: file.class.php プロジェクト: qeist/goose
 /**
  * index method
  */
 public function index()
 {
     if ($this->param['method'] == 'POST') {
         $post = Util::getMethod();
         switch ($this->param['action']) {
             case 'upload':
                 $result = $this->actUploadFiles($_FILES['file'], $post['upload_loc'], $post['table'] ? $post['table'] : $this->name);
                 echo Util::arrayToJson($result);
                 break;
             case 'remove':
                 $data = Util::jsonToArray($post['data'], true);
                 $fileSrls = $fileTmpSrls = array();
                 foreach ($data as $k => $v) {
                     if ($v['table'] == 'file_tmp') {
                         $fileTmpSrls[] = $v['srl'];
                     } else {
                         if ($v['table'] == 'file') {
                             $fileSrls[] = $v['srl'];
                         }
                     }
                 }
                 if (count($fileSrls)) {
                     $this->actRemoveFile($fileSrls, 'file');
                 }
                 if (count($fileTmpSrls)) {
                     $this->actRemoveFile($fileTmpSrls, 'file_tmp');
                 }
                 echo json_encode(array('state' => 'success'));
                 break;
         }
         Goose::end(false);
     } else {
         require_once __GOOSE_PWD__ . $this->path . 'view.class.php';
         $view = new View($this);
         $view->render();
     }
 }
コード例 #5
0
ファイル: transaction_install.php プロジェクト: qeist/goose
require_once __GOOSE_PWD__ . 'data/config.php';
// create and connect database
$this->goose->createSpawn();
$this->goose->spawn->connect($dbConfig);
$this->goose->spawn->prefix = $table_prefix;
// set admin
$this->goose->isAdmin = true;
// install modules
$arr = array('user', 'nest', 'app', 'json', 'file', 'article', 'category');
foreach ($arr as $k => $v) {
    $result = $this->installModule($v);
    echo "<p>Create table - " . $result['message'] . "</p>";
}
// add admin user
$result = Spawn::insert(array('table' => Spawn::getTableName('user'), 'data' => array('srl' => null, 'email' => $_POST['email'], 'name' => $_POST['name'], 'pw' => md5($_POST['password']), 'level' => $_POST['adminLevel'], 'regdate' => date("YmdHis"))));
echo "<p>Add admin user - " . ($result == 'success' ? 'Complete' : "ERROR : {$result}") . "</p>";
// add basic navigation on json table
$cnt = Spawn::count(array('table' => Spawn::getTableName('json'), 'where' => "name='Goose Navigation'"));
if (!$cnt) {
    $data = Util::checkUserFile(__GOOSE_PWD__ . 'core/misc/navigationTree.json');
    $data = Util::openFile($data);
    $data = Util::jsonToArray($data, true, true);
    $data = Util::arrayToJson($data, true);
    $result = Spawn::insert(array('table' => __dbPrefix__ . 'json', 'data' => array('srl' => null, 'name' => 'Goose Navigation', 'json' => $data, 'regdate' => date("YmdHis"))));
} else {
    $result = '"Goose Navigation" Data already exists.';
}
echo "<p>Add json data - " . ($result == 'success' ? 'Complete' : "ERROR : {$result}") . "</p>";
echo "<hr/>";
echo "<h1>END INSTALL</h1>";
echo "<nav><a href=\"" . __GOOSE_ROOT__ . "\">Go to intro page</a></nav>";
コード例 #6
0
ファイル: modules.class.php プロジェクト: qeist/goose
 /**
  * get setting
  *
  * @param string $modName
  * @return array
  */
 private function getSetting($modName = null)
 {
     $loc = Module::existModule($modName);
     $file = Util::checkUserFile($loc['pwd'] . 'setting.json');
     return Util::jsonToArray(Util::openFile($file), true);
 }
コード例 #7
0
// load program files
require_once __GOOSE_LIB__;
require_once 'lib/func.php';
// get preferences
try {
    $tmp = Spawn::item(['table' => Spawn::getTableName('json'), 'field' => 'json', 'where' => 'srl=' . (int) $srl_json_pref])['json'];
    if (!$tmp) {
        throw new Exception('not found preference data');
    }
    $pref = new Object(['string' => $tmp, 'json' => Util::jsonToArray($tmp, true, true)]);
    // get gnb
    $tmp = Spawn::item(['table' => Spawn::getTableName('json'), 'field' => 'json', 'where' => 'srl=' . (int) $pref->json['srl']['json_gnb']])['json'];
    if (!$tmp) {
        throw new Exception('not found global navigation data');
    }
    $gnb = new Object(['string' => $tmp, 'json' => Util::jsonToArray($tmp, true, true)]);
} catch (Exception $e) {
    echo $e->getMessage();
    Goose::end();
}
// init router
$router = Module::load('router');
$router->route->setBasePath(__ROOT__);
require_once 'lib/map.php';
$router->match = $router->route->match();
// route action
if ($router->match) {
    $_target = $router->match['target'];
    $_params = $router->match['params'];
    $_name = $router->match['name'];
    $_method = $_SERVER['REQUEST_METHOD'];
コード例 #8
0
ファイル: nest.class.php プロジェクト: qeist/goose
 /**
  * api - transaction
  *
  * @param string $method
  * @param array $post
  * @return array
  */
 public function transaction($method, $post = array())
 {
     if (!$method) {
         return array('state' => 'error', 'action' => 'back', 'message' => 'method값이 없습니다.');
     }
     if ($this->name != 'nest') {
         return array('state' => 'error', 'action' => 'back', 'message' => '잘못된 객체로 접근했습니다.');
     }
     if (!$this->isAdmin) {
         return array('state' => 'error', 'action' => 'back', 'message' => '권한이 없습니다.');
     }
     $json = Util::jsonToArray($post['json'], null, true);
     $loc = Util::isFile(array(__GOOSE_PWD__ . $this->path . 'skin/' . $post['nestSkin'] . '/transaction_' . $method . '.php', __GOOSE_PWD__ . $this->path . 'skin/' . $this->set['skin'] . '/transaction_' . $method . '.php'));
     if ($loc) {
         return require_once $loc;
     } else {
         return array('state' => 'error', 'action' => 'back', 'message' => '처리파일이 없습니다.');
     }
 }
コード例 #9
0
ファイル: transaction_remove.php プロジェクト: qeist/goose
    $file = Module::load('file');
    // get articles
    $articles = Spawn::items(array('table' => Spawn::getTableName('article'), 'field' => 'srl,json', 'where' => 'nest_srl=' . (int) $post['nest_srl']));
    $file_srls = array();
    foreach ($articles as $k => $v) {
        // remove attach files
        $data = $file->getItems(array('field' => 'srl', 'where' => 'article_srl=' . (int) $v['srl']));
        if ($data['state'] == 'success') {
            foreach ($data['data'] as $k2 => $v2) {
                if ($v2['srl']) {
                    $file_srls[] = (int) $v2['srl'];
                }
            }
        }
        // remove thumnail files
        $json = Util::jsonToArray($v['json']);
        if (__GOOSE_PWD__ . $json['thumnail']['url'] && file_exists(__GOOSE_PWD__ . $json['thumnail']['url'])) {
            unlink(__GOOSE_PWD__ . $json['thumnail']['url']);
        }
    }
    $file->actRemoveFile($file_srls, 'file');
    $result = Spawn::delete(array('table' => Spawn::getTableName('article'), 'where' => 'nest_srl=' . (int) $post['nest_srl'], 'debug' => false));
}
// remove category data
if ($post['delete_category']) {
    $result = Spawn::delete(array('table' => Spawn::getTableName('category'), 'where' => 'nest_srl=' . (int) $post['nest_srl'], 'debug' => false));
}
// remove nest data
$result = Spawn::delete(array('table' => Spawn::getTableName($this->name), 'where' => 'srl=' . (int) $post['nest_srl'], 'debug' => false));
if ($result != 'success') {
    return array('state' => 'error', 'action' => 'back', 'message' => 'Fail execution database');
コード例 #10
0
ファイル: func.php プロジェクト: qeist/goose
/**
 * get article json
 * article의 json필드의 내용을 가져온다.
 *
 * @param int $srl
 * @return array
 */
function getArticleJSON($srl)
{
    $data = Spawn::items(array('table' => Spawn::getTableName('article'), 'field' => 'json', 'where' => 'srl=' . (int) $srl));
    return count($data) ? Util::jsonToArray($data[0]['json'], null, true) : null;
}
コード例 #11
0
 /**
  * Up like
  *
  * @param array $options : [
  *   article_srl
  *   header_key
  * ]
  * @return array
  */
 public function upLike($options)
 {
     if (!$this->checkAuthHeader($options['header_key'])) {
         return ['state' => 'error', 'message' => 'Path not allowed'];
     }
     if (!$options['article_srl']) {
         return ['state' => 'error', 'message' => 'not found article_srl'];
     }
     $article = Spawn::item(['table' => Spawn::getTableName('article'), 'where' => 'srl=' . $options['article_srl'], 'field' => 'srl,json']);
     if (!isset($article['json'])) {
         return ['state' => 'error', 'message' => 'not found article data'];
     }
     $article['json'] = Util::jsonToArray($article['json'], null, true);
     $like = isset($article['json']['like']) ? (int) $article['json']['like'] : 0;
     $article['json']['like'] = $like + 1;
     $json = Util::arrayToJson($article['json'], true);
     $result = Spawn::update(['table' => Spawn::getTableName('article'), 'data' => ['json=\'' . $json . '\''], 'where' => 'srl=' . (int) $options['article_srl']]);
     return $result == 'success' ? ['state' => 'success', 'message' => 'update complete'] : ['state' => 'error', 'message' => 'fail update complete'];
 }
コード例 #12
0
ファイル: article.class.php プロジェクト: qeist/goose
 /**
  * api - get item
  *
  * @param array $getParam
  * @return array|null
  */
 public function getItem($getParam = array())
 {
     if ($this->name != 'article') {
         return array('state' => 'error', 'message' => '잘못된 객체로 접근했습니다.');
     }
     // set original parameter
     $originalParam = array('table' => Spawn::getTableName($this->name));
     // get data
     $data = Spawn::item(Util::extendArray($originalParam, $getParam));
     // check data
     if (!$data) {
         return array('state' => 'error', 'message' => '데이터가 없습니다.');
     }
     // convert json data
     if ($data['json']) {
         $data['json'] = Util::jsonToArray($data['json'], null, true);
     }
     // return data
     return array('state' => 'success', 'data' => $data);
 }
コード例 #13
0
ファイル: Module.class.php プロジェクト: qeist/goose
 /**
  * get install module
  *
  * @return array()
  */
 public static function getInstallModule()
 {
     return Util::jsonToArray(Util::openFile(__GOOSE_PWD__ . 'data/modules.json'));
 }