コード例 #1
0
        /**
         * init shop
         * @param $site_srl
         * @return Object
         */
        public function initShop($site_srl){
            $oCounterController = getController('counter');
            $oDocumentController = getController('document');
            $oCommentController = getController('comment');
            $oTagController = getController('tag');
            $oAddonController = getController('addon');
            $oEditorController = getController('editor');
            $oTrackbackController = getController('trackback');
            $oModuleModel = getModel('module');
            $oShopModel = getModel('shop');
            $oMemberModel = getModel('member');

            $site_info = $oModuleModel->getSiteInfo($site_srl);
            $module_srl = $site_info->index_module_srl;
            $args = new stdClass();
            $args->site_srl = $site_srl;

            $oShop = new ShopInfo($module_srl);
            if($oShop->module_srl != $module_srl) return new Object(-1,'msg_invalid_request');

            $oCounterController->deleteSiteCounterLogs($args->site_srl);
            $oAddonController->removeAddonConfig($args->site_srl);

            $args->module_srl = $module_srl;
            $output = executeQuery('shop.deleteShopFavorites', $args);
            $output = executeQuery('shop.deleteShopTags', $args);
            $output = executeQuery('shop.deleteShopVoteLogs', $args);
            $output = executeQuery('shop.deleteShopMemos', $args);
            $output = executeQuery('shop.deleteShopReferer', $args);
            $output = executeQuery('shop.deleteShopGuestbook', $args);
            $output = executeQuery('shop.deleteShopSupporters', $args);
            $output = executeQuery('shop.deletePublishLogs', $args);

            FileHandler::removeFile(sprintf("./files/cache/shop/shop_deny/%d.php",$module_srl));
            FileHandler::removeDir($oShopModel->getShopPath($module_srl));

            // delete document comment tag
            $output = $oDocumentController->triggerDeleteModuleDocuments($args);
            $output = $oCommentController->triggerDeleteModuleComments($args);
            $output = $oTagController->triggerDeleteModuleTags($args);
            $output = $oTrackbackController->triggerDeleteModuleTrackbacks($args);
            $args->module_srl = $args->module_srl *-1;

            $output = $oDocumentController->triggerDeleteModuleDocuments($args);
            $output = $oCommentController->triggerDeleteModuleComments($args);
            $output = $oTagController->triggerDeleteModuleTags($args);
            $args->module_srl = $args->module_srl *-1;

            // set category
            $obj = new stdClass();
            $obj->module_srl = $module_srl;
            $obj->title = Context::getLang('init_category_title');
            $oDocumentController->insertCategory($obj);

            FileHandler::copyDir($this->module_path.'skins/'.$this->skin, $oShopModel->getShopPath($module_srl));

            $langType = Context::getLangType();
            $file = sprintf('%ssample/%s.html',$this->module_path,$langType);
            if(!file_exists(FileHandler::getRealPath($file))){
                $file = sprintf('%ssample/ko.html',$this->module_path);
            }

            $member_info = $oMemberModel->getMemberInfoByEmailAddress($oShop->getUserId());
            $doc = new stdClass();
            $doc->module_srl = $module_srl;
            $doc->title = Context::getLang('sample_title');
            $doc->tags = Context::getLang('sample_tags');
            $doc->content = FileHandler::readFile($file);
            $doc->member_srl = $member_info->member_srl;
            $doc->user_id = $member_info->user_id;
            $doc->user_name = $member_info->user_name;
            $doc->nick_name = $member_info->nick_name;
            $doc->email_address = $member_info->email_address;
            $doc->homepage = $member_info->homepage;
            $output = $oDocumentController->insertDocument($doc, true);

            return new Object(1,'success_shop_init');
        }