delete syndication module

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9287 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2011-09-23 01:58:54 +00:00
parent bebb46c072
commit e4294e0dff
40 changed files with 0 additions and 1437 deletions

View file

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">Syndication</title>
<title xml:lang="zh-TW">聯合供搞</title>
<title xml:lang="tr">İçerik Paylaşımı</title>
<description xml:lang="ko">검색서비스업체와 직접 통신을 통해 컨텐츠를 잘 검색되도록 하는 Syndication 규약을 따라 정보를 주고받는 모듈</description>
<description xml:lang="zh-TW">검색서비스업체와 직접 통신을 통해 컨텐츠를 잘 검색되도록 하는 Syndication 규약을 따라 정보를 주고받는 모듈</description>
<description xml:lang="tr">검색서비스업체와 직접 통신을 통해 컨텐츠를 잘 검색되도록 하는 Syndication 규약을 따라 정보를 주고받는 모듈</description>
<version>1.0.1</version>
<date>2010-06-23</date>
<category>interlock</category>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="zh-TW">NHN</name>
<name xml:lang="tr">NHN</name>
</author>
</module>

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="getSyndicationList" type="model" standalone="true" />
<action name="dispSyndicationAdminConfig" type="view" standalone="true" admin_index="true" />
<action name="procSyndicationAdminInsertService" type="controller" standalone="true" ruleset="insertService" />
<action name="procSyndicationAdminCheckSitePingResult" type="controller" standalone="true" />
<action name="procSyndicationAdminCheckApiStatus" type="controller" standalone="true" />
</actions>
</module>

View file

@ -1,116 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<lang>
<item name="syndication">
<value xml:lang="ko"><![CDATA[신디케이션]]></value>
<value xml:lang="en"><![CDATA[Syndication]]></value>
<value xml:lang="zh-TW"><![CDATA[聯合供搞]]></value>
<value xml:lang="tr"><![CDATA[İçerik Paylaşımı]]></value>
</item>
<item name="about_syndication">
<value xml:lang="ko"><![CDATA[신디케이션이란 검색 서비스 업체와 syndication 이라는 표준 규약을 통해서 보다 더 잘 검색되게 하는 기능입니다.<br/>최소한의 요청만으로 효과적으로 컨텐츠를 검색 서비스 업체와 동기화합니다]]></value>
<value xml:lang="en"><![CDATA[Syndication communicates with search service providers with standard protocol called "syndication", and makes it much better to search any information.<br/>It will synchronize contents with search service providers with the least requests.]]></value>
<value xml:lang="tr"><![CDATA[İçerik Paylaşımı, adı "sendikasyon" olan standard bir protokole bağlı arama hizmeti sunucularıyla iletişime geçer ve her türlü bilgiye ulaşmayı daha kolay hale getirir.<br/>Gerekli olan şeyleri en aza indirerek, arama hizmeti sunucusunu içeriklerle uygun hale getirir.]]></value>
</item>
<item name="syndication_service">
<value xml:lang="ko"><![CDATA[신디케이션 서비스]]></value>
<value xml:lang="en"><![CDATA[Syndication Service]]></value>
<value xml:lang="zh-TW"><![CDATA[供稿服務]]></value>
<value xml:lang="tr"><![CDATA[İçerik Paylaşım Hizmeti]]></value>
</item>
<item name="about_syndication_service">
<value xml:lang="ko"><![CDATA[신디케이션 표준 규약에 맞춰 신디케이션 서비스를 제공하는 곳입니다.<br/>[적용하기] 버튼을 선택하시면 선택 또는 해제된 서비스에 Ping 을 통해서 결과를 통보하게 됩니다]]></value>
<value xml:lang="en"><![CDATA[Syndication Service provides syndication services according to a standard protocol.<br/>You will get Ping result from the selected (deselected) services if you apply.]]></value>
<value xml:lang="zh-TW"><![CDATA[提供根據標準協議的聯合供搞服務。<br/>[應用] 透過 Ping 的方式]]></value>
<value xml:lang="tr"><![CDATA[İçerik Paylaşım Hizmeti, sendikasyon hizmetlerini standard bir protokole göre sağlar.<br/>Tercih edilen(edilmeyen) hizmetlerin Ping sonuçlarını başvurarak alabilirsiniz.]]></value>
</item>
<item name="my_syndication_url">
<value xml:lang="ko"><![CDATA[사이트 주소]]></value>
<value xml:lang="en"><![CDATA[URL]]></value>
<value xml:lang="zh-TW"><![CDATA[供稿網址]]></value>
</item>
<item name="about_my_syndication_url">
<value xml:lang="ko"><![CDATA[신디케이션 정보를 제공할때 사용되는 사이트의 주소를 입력해주세요. 이 주소는 대표 주소를 이용해주시고 가능한 바꾸시지 않는 것이 좋습니다]]></value>
<value xml:lang="en"><![CDATA[Please input the URL which will be used when providing syndication information. It is recommended to use representative URL and keep it as long as you can.]]></value>
<value xml:lang="tr"><![CDATA[Lütfen sendikasyon bilgilerini sağlarken kullanılacak URLyi girin. Temsili bir URLyi mümkün olduğu sürece kullanmak daha uygun olabilir.]]></value>
</item>
<item name="except_module">
<value xml:lang="ko"><![CDATA[제외시킬 모듈]]></value>
<value xml:lang="en"><![CDATA[Modules to exclude]]></value>
<value xml:lang="tr"><![CDATA[Dahil edilmeyecek modüller]]></value>
</item>
<item name="about_except_module">
<value xml:lang="ko"><![CDATA[신디케이션 대상에서 제외시켜 검색서비스 업체와 동기화를 시키지 않을 모듈을 선택해주세요]]></value>
<value xml:lang="en"><![CDATA[Selected modules will not be synchronized with search service providers.]]></value>
<value xml:lang="tr"><![CDATA[Seçili modüller arama hizmeti sağlayıcısıyla uyumlu hale getirilmeyecek.]]></value>
</item>
<item name="msg_site_url_is_null">
<value xml:lang="ko"><![CDATA[사이트 주소를 입력해주세요]]></value>
<value xml:lang="en"><![CDATA[Please input URL]]></value>
<value xml:lang="zh-TW"><![CDATA[請輸入網站網址]]></value>
<value xml:lang="tr"><![CDATA[Lütfen URL girişi yapın]]></value>
</item>
<item name="success_applied">
<value xml:lang="ko"><![CDATA[적용되었습니다]]></value>
<value xml:lang="en"><![CDATA[Successfully Applied]]></value>
<value xml:lang="tr"><![CDATA[Başarıyla Uygulandı]]></value>
</item>
<item name="msg_ping_test_error">
<value xml:lang="ko"><![CDATA[Ping 테스트 에러입니다. 도메인 및 서버 설정을 확인해주세요]]></value>
<value xml:lang="en"><![CDATA[Ping test error found. Please check domain and server configurations.]]></value>
<value xml:lang="tr"><![CDATA[Ping testi hatası bulundu. Lütfen alan adı ve sunucu yapılandırmasını kontrol edin.]]></value>
</item>
<item name="msg_success_ping_test">
<value xml:lang="ko"><![CDATA[정상적 동작으로 확인되었습니다.]]></value>
<value xml:lang="en"><![CDATA[Ping test works fine.]]></value>
<value xml:lang="tr"><![CDATA[Ping test gayet iyi çalışıyor.]]></value>
</item>
<item name="cmd_check_syndication_echo">
<value xml:lang="ko"><![CDATA[Syndication 문서 출력 동작확인]]></value>
<value xml:lang="en"><![CDATA[Check Syndication ariticle printing]]></value>
<value xml:lang="tr"><![CDATA[İçerik paylaşımlı yazı yazdırmayı kontrol et.]]></value>
</item>
<item name="cmd_check_syndication_status">
<value xml:lang="ko"><![CDATA[연결상태 확인]]></value>
<value xml:lang="en"><![CDATA[Check connection status]]></value>
<value xml:lang="tr"><![CDATA[Bağlantı statülerini kontrol et]]></value>
</item>
<item name="site">
<value xml:lang="ko"><![CDATA[사이트]]></value>
<value xml:lang="en"><![CDATA[Site]]></value>
</item>
<item name="syndication_synic_start_date">
<value xml:lang="ko"><![CDATA[서버 등록일]]></value>
<value xml:lang="en"><![CDATA[Server registered]]></value>
<value xml:lang="tr"><![CDATA[Sunucu kaydedildi.]]></value>
</item>
<item name="syndication_synic_last_date">
<value xml:lang="ko"><![CDATA[마지막 업데이트]]></value>
<value xml:lang="en"><![CDATA[Latest updates]]></value>
<value xml:lang="tr"><![CDATA[Son Güncellemeler]]></value>
</item>
<item name="syndication_visit_ok_count">
<value xml:lang="ko"><![CDATA[Ping 연속접속 성공 횟수]]></value>
<value xml:lang="en"><![CDATA[Ping successed]]></value>
<value xml:lang="tr"><![CDATA[Ping tamamlandı]]></value>
</item>
<item name="syndication_visit_fail_count">
<value xml:lang="ko"><![CDATA[Ping 실패 횟수]]></value>
<value xml:lang="en"><![CDATA[Ping failed]]></value>
<value xml:lang="tr"><![CDATA[Ping tamamlanamadı]]></value>
</item>
<item name="syndication_status_result">
<value xml:lang="ko"><![CDATA[상태정보]]></value>
<value xml:lang="en"><![CDATA[Status]]></value>
<value xml:lang="tr"><![CDATA[Statüler]]></value>
</item>
<item name="syndication_sync_article">
<value xml:lang="ko"><![CDATA[동기화 문서]]></value>
<value xml:lang="en"><![CDATA[Synchronized Articles]]></value>
<value xml:lang="tr"><![CDATA[Eş zamanlı hale getirilmiş yazılar]]></value>
</item>
<item name="syndication_status">
<value xml:lang="ko"><![CDATA[동기화 상태]]></value>
<value xml:lang="en"><![CDATA[Synchronization Status]]></value>
<value xml:lang="tr"><![CDATA[Eş zamanlama statüleri]]></value>
</item>
</lang>

View file

@ -1,5 +0,0 @@
<query id="deleteExceptModules" action="delete">
<tables>
<table name="syndication_except_modules" />
</tables>
</query>

View file

@ -1,19 +0,0 @@
<query id="getDeletedList" action="select">
<tables>
<table name="syndication_logs" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" />
<condition operation="more" column="regdate" var="start_date" filter="number" pipe="and" />
<condition operation="less" column="regdate" var="end_date" filter="number" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="log_srl" order="asc" />
<list_count var="list_count" default="100" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -1,31 +0,0 @@
<query id="getDocumentList" action="select">
<tables>
<table name="documents" alias="doc" />
<table name="modules" alias="modules" />
<table name="syndication_except_modules" alias="except_modules" type="left join">
<conditions>
<condition operation="equal" column="modules.module_srl" default="except_modules.module_srl" />
</conditions>
</table>
</tables>
<columns>
<column name="doc.*" />
<column name="modules.mid" alias="mid" />
</columns>
<conditions>
<condition operation="equal" column="doc.module_srl" var="module_srl" filter="number" />
<condition operation="notin" column="doc.module_srl" var="except_module_srls" pipe="and" />
<condition operation="null" column="except_modules.module_srl" default="1" pipe="and" />
<condition operation="equal" column="doc.status" default="PUBLIC" pipe="and" />
<condition operation="equal" column="modules.module_srl" default="doc.module_srl" filter="number" pipe="and" />
<condition operation="notin" column="modules.module_srl" var="except_modules" filter="numbers" pipe="and" />
<condition operation="more" column="doc.last_update" var="start_date" filter="number" pipe="and" />
<condition operation="less" column="doc.last_update" var="end_date" filter="number" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="doc.update_order" order="asc" />
<list_count var="list_count" default="100" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -1,11 +0,0 @@
<query id="getExceptModule" action="select">
<tables>
<table name="syndication_except_modules" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,8 +0,0 @@
<query id="getExceptModuleSrls" action="select">
<tables>
<table name="syndication_except_modules" />
</tables>
<columns>
<column name="module_srl" />
</columns>
</query>

View file

@ -1,14 +0,0 @@
<query id="getExceptModules" action="select">
<tables>
<table name="syndication_except_modules" />
<table name="modules" />
</tables>
<columns>
<column name="syndication_except_modules.*" />
<column name="modules.mid" alias="mid" />
<column name="modules.browser_title" alias="browser_title" />
</columns>
<conditions>
<condition operation="equal" column="syndication_except_modules.module_srl" default="modules.module_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,17 +0,0 @@
<query id="getGrantedModule" action="select">
<tables>
<table name="module_grants" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
<condition operation="in" column="name" default="'access','view','list'" notnull="notnull" pipe="and" />
<group pipe="and">
<condition operation="more" column="group_srl" default="1" notnull="notnull" />
<condition operation="equal" column="group_srl" default="-1" notnull="notnull" pipe="or" />
<condition operation="equal" column="group_srl" default="-2" notnull="notnull" pipe="or" />
</group>
</conditions>
</query>

View file

@ -1,19 +0,0 @@
<query id="getGrantedModules" action="select">
<tables>
<table name="module_grants" />
</tables>
<columns>
<column name="module_srl" />
</columns>
<conditions>
<condition operation="in" column="name" default="'access','view','list'" notnull="notnull" />
<group pipe="and">
<condition operation="more" column="group_srl" default="1" notnull="notnull" />
<condition operation="equal" column="group_srl" default="-1" notnull="notnull" pipe="or" />
<condition operation="equal" column="group_srl" default="-2" notnull="notnull" pipe="or" />
</group>
</conditions>
<groups>
<group column="module_srl" />
</groups>
</query>

View file

@ -1,12 +0,0 @@
<query id="getLang" action="select">
<tables>
<table name="lang" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" filter="number" />
<condition operation="equal" column="lang_code" var="lang_code" pipe="and" />
</conditions>
</query>

View file

@ -1,15 +0,0 @@
<query id="getModuleSiteInfo" action="select">
<tables>
<table name="modules" alias="modules" />
<table name="sites" alias="sites" />
</tables>
<columns>
<column name="modules.module_srl" alias="module_srl" />
<column name="modules.mid" alias="mid" />
<column name="sites.domain" alias="domain" />
</columns>
<conditions>
<condition operation="equal" column="modules.module_srl" var="module_srl" filter="number" />
<condition operation="equal" column="sites.site_srl" default="modules.site_srl" notnull="notnull" filter="number" pipe="and" />
</conditions>
</query>

View file

@ -1,26 +0,0 @@
<query id="getModules" action="select">
<tables>
<table name="sites" />
<table name="modules" />
<table name="syndication_except_modules" alias="except_modules" type="left join">
<conditions>
<condition operation="equal" column="modules.module_srl" default="except_modules.module_srl" />
</conditions>
</table>
</tables>
<columns>
<column name="modules.site_srl" alias="site_srl" />
<column name="modules.module_srl" alias="module_srl" />
<column name="sites.domain" alias="domain" />
<column name="modules.mid" alias="mid" />
<column name="modules.module" alias="module" />
<column name="modules.browser_title" alias="browser_title" />
<column name="modules.description" alias="description" />
</columns>
<conditions>
<condition operation="in" column="modules.module_srl" var="module_srls" />
<condition operation="notin" column="modules.module_srl" var="except_module_srls" pipe="and" />
<condition operation="equal" column="sites.site_srl" default="modules.site_srl" notnull="notnull" pipe="and" />
<condition operation="null" column="except_modules.module_srl" default="1" pipe="and" />
</conditions>
</query>

View file

@ -1,14 +0,0 @@
<query id="getSiteUpdatedTime" action="select">
<tables>
<table name="documents" alias="doc" />
</tables>
<columns>
<column name="max(doc.last_update)" alias="last_update" />
</columns>
<conditions>
<condition operation="equal" column="doc.module_srl" var="module_srl" filter="number" />
<condition operation="more" column="doc.last_update" var="start_date" filter="number" pipe="and" />
<condition operation="less" column="doc.last_update" var="end_date" filter="number" pipe="and" />
<condition operation="notin" column="doc.module_srl" var="except_modules" pipe="and" />
</conditions>
</query>

View file

@ -1,9 +0,0 @@
<query id="insertExceptModule" action="insert">
<tables>
<table name="syndication_except_modules" />
</tables>
<columns>
<column name="module_srl" var="module_srl" filter="number" notnull="notnull" />
<column name="regdate" default="curdate()" notnull="notnull" />
</columns>
</query>

View file

@ -1,13 +0,0 @@
<query id="insertLog" action="insert">
<tables>
<table name="syndication_logs" />
</tables>
<columns>
<column name="log_srl" default="sequence()" />
<column name="module_srl" var="module_srl" />
<column name="document_srl" var="document_srl" />
<column name="title" var="title" />
<column name="summary" var="summary" />
<column name="regdate" default="curdate()" notnull="notnull" />
</columns>
</query>

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ruleset version="1.5.0">
<customrules>
</customrules>
<fields>
<field name="site_url" required="true" />
</fields>
</ruleset>

View file

@ -1,4 +0,0 @@
<table name="syndication_except_modules">
<column name="module_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<column name="regdate" type="date" />
</table>

View file

@ -1,8 +0,0 @@
<table name="syndication_logs">
<column name="log_srl" type="number" size="11" notnull="notnull" unique="primary_key" />
<column name="module_srl" type="number" size="11" default="0" />
<column name="document_srl" type="number" size="11" default="0" />
<column name="title" type="varchar" size="255" />
<column name="summary" type="varchar" size="255" />
<column name="regdate" type="date" index="idx_regdate" />
</table>

View file

@ -1,140 +0,0 @@
<?php
/**
* @class syndicationAdminController
* @author NHN (developers@xpressengine.com)
* @brief syndication module admin Controller class
**/
class syndicationAdminController extends syndication {
function init() {
}
function procSyndicationAdminInsertService() {
$oModuleController = &getController('module');
$oSyndicationController = &getController('syndication');
$oSyndicationModel = &getModel('syndication');
$config->target_services = explode('|@|',Context::get('target_services'));
$config->site_url = preg_replace('/\/+$/is','',Context::get('site_url'));
$config->year = Context::get('year');
if(!$config->site_url) return new Object(-1,'msg_site_url_is_null');
$oModuleController->insertModuleConfig('syndication',$config);
$oSyndicationController->ping($oSyndicationModel->getID('site'), 'site');
$except_module = Context::get('except_module');
$output = executeQuery('syndication.deleteExceptModules');
if(!$output->toBool()) return $output;
if ($except_module){
$modules = explode(',',$except_module);
for($i=0,$c=count($modules);$i<$c;$i++) {
$args->module_srl = $modules[$i];
$output = executeQuery('syndication.insertExceptModule',$args);
if(!$output->toBool()) return $output;
}
}
$this->setMessage('success_applied');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSyndicationAdminConfig');
header('location:'.$returnUrl);
return;
}
}
function procSyndicationAdminCheckSitePingResult(){
$site_url = trim(Context::get('site_url'));
if(!$site_url) return new Object(-1,'msg_invalid_request');
$oSyndicationModel = &getModel('syndication');
$id = $oSyndicationModel->getID('site');
if(substr($site_url,-1)!='/') $site_url .= '/';
$site_ping = sprintf('http://%s?module=syndication&act=getSyndicationList&id=%s&type=site', $site_url, $id);
$headers = array();
$headers['Connection'] = 'TE, close';
$headers['User-Agent'] = 'Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp)';
$xml = FileHandler::getRemoteResource($site_ping, null, 3, 'GET', '', $headers);
if(!$xml) return new Object(-1, 'msg_ping_test_error');
$oXmlParser = new XmlParser();
$oXml = $oXmlParser->parse($xml);
if(!$oXml || !is_object($oXml) || !$oXml->entry || !$oXml->entry->id || !$oXml->entry->title) {
$this->setMessage('msg_ping_test_error');
$this->add('ping_result',$xml);
}else{
$this->setMessage('msg_success_ping_test');
}
}
function procSyndicationAdminCheckApiStatus(){
$target_service = Context::get('target_service');
if(!$target_service) return new Object(-1,'msg_invalid_request');
$status_url = trim($this->statuses[$target_service]);
if(!$status_url) return new Object(-1,'msg_syndication_status_not_support');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('syndication');
$site_url = preg_replace('/^(http|https):\/\//i','',$config->site_url);
$method = 'getSyndicationStatus' . ucfirst(strtolower($target_service));
if(!method_exists($this, $method)) return new Object(-1,'msg_syndication_status_not_support');
$output = call_user_func(array(&$this,$method),$site_url);
if(!$output->toBool()) return $output;
$this->add('result_status',$output->get('result_status'));
}
function getSyndicationStatusNaver($site_url){
$status_url = trim($this->statuses['Naver']);
$xml = FileHandler::getRemoteResource(sprintf($status_url,$site_url), null, 3, 'GET', 'application/xml');
$oXmlParser = new XmlParser();
$oXml = $oXmlParser->parse($xml);
$oStatus = $oXml->syndication_status;
if($oStatus->error->body != 0) return new Object(-1,$oStatus->message->body);
$result->site_name = $oStatus->site_name->body;
$result->first_update = $oStatus->first_update->body;
$result->last_update = $oStatus->last_update->body;
$result->visit_ok_count = $oStatus->visit_ok_count->body;
$result->visit_fail_count = $oStatus->visit_fail_count->body;
$result->status = $oStatus->status->body;
if(!$oStatus->sync || !$oStatus->sync->article){
$oArticleList = array();
}else{
$oArticleList = $oStatus->sync->article;
if(!is_array($oArticleList)) $oArticleList = array($oArticleList);
}
if(count($oArticleList)>0){
$article_count = array();
foreach($oArticleList as $article){
$article_count[$article->attrs->date] = $article->body;
}
$result->article_count = $article_count;
$result->max_article_count = max($result->article_count);
}
Context::set('result', $result);
$oTemplateHandler = &TemplateHandler::getInstance();
$html = $oTemplateHandler->compile($this->module_path.'tpl', 'naver_result');
$output = new Object();
$output->add('result_status', $html);
return $output;
}
}
?>

View file

@ -1,56 +0,0 @@
<?php
/**
* @class syndicationAdminView
* @author NHN (developers@xpressengine.com)
* @brief syndication admin view class
**/
class syndicationAdminView extends syndication {
function init() {
}
function dispSyndicationAdminConfig() {
$oModuleModel = &getModel('module');
$module_config = $oModuleModel->getModuleConfig('syndication');
if(!$module_config->target_services) $module_config->target_services = array();
foreach($this->services as $key => $val) {
unset($obj);
$obj->service = $key;
$obj->ping = $val;
$obj->selected = in_array($key, $module_config->target_services)?true:false;
$services[] = $obj;
}
Context::set('services', $services);
if(!$module_config->site_url) {
$module_config->site_url = Context::getDefaultUrl()?Context::getDefaultUrl():getFullUrl();
}
Context::set('site_url', preg_replace('/^(http|https):\/\//i','',$module_config->site_url));
if(!$module_config->year) {
$module_config->year = date("Y");
}
Context::set('year', $module_config->year);
$output = executeQueryArray('syndication.getExceptModules');
$except_module_list = array();
for($i=0,$c=count($output->data);$i<$c;$i++) {
$except_module_list[] = $output->data[$i];
}
Context::set('except_module', $except_module_list);
//Security
$security = new Security();
$security->encodeHTML('services..service','except_module..ping');
$security->encodeHTML('except_module..mid','except_module..browser_title');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('config');
}
}
?>

View file

@ -1,74 +0,0 @@
<?php
/**
* @class syndication
* @author NHN (developers@xpressengine.com)
* @brief syndication module's high class
**/
define('SyndicationModule', 'M');
define('SyndicationDocument', 'D');
define('SyndicationInserted', 'I');
define('SyndicationUpdated', 'U');
define('SyndicationDeleted', 'D');
class syndication extends ModuleObject {
var $services = array(
'Naver' => 'http://syndication.openapi.naver.com/ping/',
);
var $statuses = array(
'Naver' => 'http://syndication.openapi.naver.com/status/?site=%s',
);
function moduleInstall() {
$oModuleController = &getController('module');
$oModuleController->insertTrigger('document.insertDocument', 'syndication', 'controller', 'triggerInsertDocument', 'after');
$oModuleController->insertTrigger('document.updateDocument', 'syndication', 'controller', 'triggerUpdateDocument', 'after');
$oModuleController->insertTrigger('document.deleteDocument', 'syndication', 'controller', 'triggerDeleteDocument', 'after');
$oModuleController->insertTrigger('module.deleteModule', 'syndication', 'controller', 'triggerDeleteModule', 'after');
$oModuleController->insertTrigger('document.moveDocumentToTrash', 'syndication', 'controller', 'triggerMoveDocumentToTrash', 'after');
$oModuleController->insertTrigger('document.restoreTrash', 'syndication', 'controller', 'triggerRestoreTrash', 'after');
$oAddonAdminModel = &getAdminModel('addon');
if($oAddonAdminModel->getAddonInfoXml('catpcha')){
$oAddonAdminController = &addonAdminController::getInstance();
$oAddonAdminController->doActivate('catpcha');
$oAddonAdminController->makeCacheFile();
}
}
function checkUpdate() {
$oModuleModel = &getModel('module');
if(!$oModuleModel->getTrigger('document.moveDocumentToTrash', 'syndication', 'controller', 'triggerMoveDocumentToTrash', 'after')) return true;
if(!$oModuleModel->getTrigger('document.restoreTrash', 'syndication', 'controller', 'triggerRestoreTrash', 'after')) return true;
return false;
}
function moduleUpdate() {
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
if(!$oModuleModel->getTrigger('document.moveDocumentToTrash', 'syndication', 'controller', 'triggerMoveDocumentToTrash', 'after')){
$oModuleController->insertTrigger('document.moveDocumentToTrash', 'syndication', 'controller', 'triggerMoveDocumentToTrash', 'after');
}
if(!$oModuleModel->getTrigger('document.restoreTrash', 'syndication', 'controller', 'triggerRestoreTrash', 'after')){
$oModuleController->insertTrigger('document.restoreTrash', 'syndication', 'controller', 'triggerRestoreTrash', 'after');
}
$oAddonAdminModel = &getAdminModel('addon');
if($oAddonAdminModel->getAddonInfoXml('catpcha')){
$oAddonAdminController = &addonAdminController::getInstance();
$oAddonAdminController->doActivate('catpcha');
$oAddonAdminController->makeCacheFile();
}
}
function recompileCache() {
}
}
?>

View file

@ -1,127 +0,0 @@
<?php
/**
* @class syndicationController
* @author NHN (developers@xpressengine.com)
* @brief syndication module's Controller class
**/
class syndicationController extends syndication {
function triggerInsertDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$config = $oModuleModel->getModuleConfig('syndication');
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'article');
return new Object();
}
function triggerUpdateDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$config = $oModuleModel->getModuleConfig('syndication');
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'article');
return new Object();
}
function triggerDeleteDocument(&$obj) {
if($obj->module_srl < 1) return new Object();
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$this->insertLog($obj->module_srl, $obj->document_srl, $obj->title, $obj->content);
$id = $oSyndicationModel->getID('channel', $obj->module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerDeleteModule(&$obj) {
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($obj->module_srl)) return new Object();
$this->insertLog($obj->module_srl, $obj->document_srl, $obj->title, $obj->content);
$output = executeQuery('syndication.getExceptModule', $obj);
if($output->data->count) return new Object();
$id = $oSyndicationModel->getID('site', $obj->module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerMoveDocumentToTrash(&$obj) {
$document_srl = $obj->document_srl;
$module_srl = $obj->module_srl;
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($module_srl)) return new Object();
$id = $oSyndicationModel->getID('channel', $module_srl);
$this->ping($id, 'deleted');
return new Object();
}
function triggerRestoreTrash(&$obj) {
$document_srl = $obj->document_srl;
$module_srl = $obj->module_srl;
$oSyndicationModel = &getModel('syndication');
$oModuleModel = &getModel('module');
if($oSyndicationModel->isExceptedModules($module_srl)) return new Object();
$id = $oSyndicationModel->getID('article', $module_srl.'-'.$document_srl);
$this->ping($id, 'article');
return new Object();
}
function insertLog($module_srl, $document_srl, $title = null, $summary = null) {
$args->module_srl = $module_srl;
$args->document_srl = $document_srl;
$args->title = $title;
$args->summary = $summary;
$output = executeQuery('syndication.insertLog', $args);
}
function ping($id, $type) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('syndication');
if(!count($config->target_services)) return;
if(substr($config->site_url,-1)!='/') $config->site_url .= '/';
foreach($config->target_services as $key => $val) {
$ping_url = trim($this->services[$val]);
if(!$ping_url) continue;
$ping_body = sprintf('http://%s?module=syndication&act=getSyndicationList&id=%s&type=%s', $config->site_url, $id, $type);
FileHandler::getRemoteResource($ping_url, null, 3, 'POST', 'application/x-www-form-urlencoded', array(), array(), array('link'=>$ping_body));
}
}
}
?>

View file

@ -1,383 +0,0 @@
<?php
/**
* @class getSyndicationList
* @author NHN (developers@xpressengine.com)
* @brief syndication model class of the module
**/
class syndicationModel extends syndication {
var $site_url = null;
var $target_services = array();
var $year = null;
var $langs = array();
var $granted_modules = array();
function init() {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('syndication');
$this->site_url = preg_replace('/\/+$/is','',$config->site_url);
$this->target_services = $config->target_services;
$this->year = $config->year;
$output = executeQueryArray('syndication.getGrantedModules');
if($output->data) {
foreach($output->data as $key => $val) {
$this->granted_modules[] = $val->module_srl;
}
}
}
function isExceptedModules($module_srl) {
$args->module_srl = $module_srl;
$output = executeQuery('syndication.getExceptModule', $args);
if($output->data->count) return true;
$output = executeQuery('syndication.getGrantedModule', $args);
if($output->data->count) return true;
return false;
}
function getLang($key, $site_srl)
{
if(!$this->langs[$site_srl])
{
$this->langs[$site_srl] = array();
$args->site_srl = $site_srl;
$args->lang_code = Context::getLangType();
$output = executeQueryArray("syndication.getLang", $args);
if(!$output->toBool() || !$output->data) return $key;
foreach($output->data as $value)
{
$this->langs[$site_srl][$value->name] = $value->value;
}
}
if($this->langs[$site_srl][$key])
{
return $this->langs[$site_srl][$key];
}
else return $key;
}
function handleLang($title, $site_srl)
{
$matches = null;
if(!preg_match("/\\\$user_lang->(.+)/",$title, $matches)) return $title;
else
{
return $this->getLang($matches[1], $site_srl);
}
}
function getSyndicationList() {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('syndication');
if(!$config->year || !$config->site_url) return new Object(-1,'msg_check_syndication_config');
$id = Context::get('id');
$type = Context::get('type');
$page = Context::get('page');
if(!$id || !$type) return new Object(-1,'msg_invalid_request');
if(!preg_match('/^tag:([^,]+),([0-9]+):(site|channel|article)(.*)$/i',$id,$matches)) return new Object(-1,'msg_invalid_request');
$url = $matches[1];
$year = $matches[2];
$target = $matches[3];
$id = $matches[4];
if($id && $id{0}==':') $id = substr($id, 1);
if($id && strpos($id,'-')!==false) list($module_srl, $document_srl) = explode('-',$id);
elseif($id) $module_srl = $id;
if(!$url || !$year || !$target) return new Object(-1,'msg_invalid_request');
$startTime = Context::get('start-time');
$endTime = Context::get('end-time');
$time_zone = substr($GLOBALS['_time_zone'],0,3).':'.substr($GLOBALS['_time_zone'],3);
Context::set('time_zone', $time_zone);
$site_module_info = Context::get('site_module_info');
if($target == 'channel' && !$module_srl) $target = 'site';
if($target == 'channel' && $module_srl) {
$args->module_srls = $module_srl;
$output = executeQuery('syndication.getModules', $args);
$module_info = $output->data;
if($module_info) {
$args->module_srl = $module_srl;
$output = executeQuery('syndication.getExceptModules', $args);
if($output->data->count) $error = 'target is not founded';
} else $error = 'target is not founded';
unset($args);
}
if(!$error) {
Context::set('target', $target);
Context::set('type', $type);
switch($target) {
case 'site' :
$site_info->id = $this->getID('site');
$site_info->title = $this->handleLang($site_module_info->browser_title, $site_module_info->site_srl);
$except_module_output = executeQueryArray('syndication.getExceptModuleSrls');
if (is_array($except_module_output->data))
{
$except_module_srls = array();
foreach($except_module_output->data as $val)
{
$except_module_srls[] = $val->module_srl;
}
$args->except_modules = implode(',',$except_module_srls);
}
$output = executeQuery('syndication.getSiteUpdatedTime', $args);
if($output->data) $site_info->updated = date("Y-m-d\\TH:i:s", ztime($output->data->last_update)).$time_zone;
$site_info->self_href = $this->getSelfHref($site_info->id,$type);
$site_info->alternative_href =$this->getAlternativeHref();
Context::set('site_info', $site_info);
$this->setTemplateFile('site');
switch($type) {
case 'channel' :
Context::set('channels', $this->getChannels());
break;
case 'article' :
Context::set('articles', $this->getArticles(null, $page, $startTime, $endTime, 'article',$site_info->id));
break;
case 'deleted' :
Context::set('deleted', $this->getDeleted(null, $page, $startTime, $endTime, 'deleted',$site_info->id));
break;
default :
$this->setTemplateFile('site.info');
break;
}
break;
case 'channel' :
$channel_info->id = $this->getID('channel', $module_info->module_srl);
$channel_info->title = $this->handleLang($module_info->browser_title, $module_info->site_srl);
$channel_info->updated = date("Y-m-d\\TH:i:s").$time_zone;
$channel_info->self_href = $this->getSelfHref($channel_info->id, $type);
$channel_info->alternative_href = $this->getAlternativeHref($module_info);
$channel_info->summary = $module_info->description;
if($module_info->module == "textyle")
{
$channel_info->type = "blog";
$channel_info->rss_href = getFullSiteUrl($module_info->domain, '', 'mid', $module_info->mid, 'act', 'rss');
}
else
{
$channel_info->type = "web";
}
$except_module_output = executeQueryArray('syndication.getExceptModuleSrls');
if (is_array($except_module_output->data))
{
$except_module_srls = array();
foreach($except_module_output->data as $val)
{
$except_module_srls[] = $val->module_srl;
}
$args->except_modules = implode(',',$except_module_srls);
}
$output = executeQuery('syndication.getSiteUpdatedTime', $args);
if($output->data) $channel_info->updated = date("Y-m-d\\TH:i:s", ztime($output->data->last_update)).$time_zone;
Context::set('channel_info', $channel_info);
$this->setTemplateFile('channel');
switch($type) {
case 'article' :
Context::set('articles', $this->getArticles($module_srl, $page, $startTime, $endTime, 'article', $channel_info->id));
break;
case 'deleted' :
Context::set('deleted', $this->getDeleted($module_srl, $page, $startTime, $endTime, 'deleted', $channel_info->id));
break;
default :
$this->setTemplateFile('channel.info');
break;
}
break;
case 'article':
Context::set('article', $this->getArticle($document_srl));
$this->setTemplateFile('include.articles');
break;
}
} else {
Context::set('message', $error);
$this->setTemplateFile('error');
}
$this->setTemplatePath($this->module_path.'tpl');
Context::setResponseMethod('XMLRPC');
}
function getChannels() {
if($module_srls) $args->module_srls = $module_srls;
if(count($this->granted_modules)) $args->except_module_srls = implode(',',$this->granted_modules);
$output = executeQueryArray('syndication.getModules', $args);
if($output->data) {
foreach($output->data as $module_info) {
unset($obj);
$obj->id = $this->getID('channel', $module_info->module_srl);
$obj->title = $this->handleLang($module_info->browser_title, $module_info->site_srl);
$obj->updated = date("Y-m-d\\TH:i:s").$time_zone;
$obj->self_href = $this->getSelfHref($obj->id, 'channel');
$obj->alternative_href = $this->getAlternativeHref($module_info);
$obj->summary = $module_info->description;
if($module_info->module == "textyle")
{
$obj->type = "blog";
$obj->rss_href = getFullSiteUrl($module_info->domain, '', 'mid', $module_info->mid, 'act', 'rss');
}
else
{
$obj->type = "web";
}
$list[] = $obj;
}
}
return $list;
}
function getArticle($document_srl) {
if($this->site_url==null) $this->init();
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl,false,false);
if(!$oDocument->isExists()) return;
$val = $oDocument->getObjectVars();
$val->id = $this->getID('article', $val->module_srl.'-'.$val->document_srl);
$val->updated = date("Y-m-d\\TH:i:s", ztime($val->last_update)).$GLOBALS['_time_zone'];
$val->alternative_href = getFullSiteUrl($this->site_url, '', 'document_srl', $val->document_srl);
$val->channel_alternative_href = $this->getChannelAlternativeHref($val->module_srl);
$val->channel_id = $this->getID('channel', $val->module_srl.'-'.$val->document_srl);
if(!$val->nick_name) $val->nick_name = $val->user_name;
return $val;
}
function getArticles($module_srl = null, $page=1, $startTime = null, $endTime = null, $type = null, $id = null) {
if($this->site_url==null) $this->init();
if($module_srl) $args->module_srl = $module_srl;
if($startTime) $args->start_date = $this->getDate($startTime);
if($endTime) $args->end_date = $this->getDate($endTime);
if(count($this->granted_modules)) $args->except_module_srls = implode(',',$this->granted_modules);
$args->page = $page;
$output = executeQueryArray('syndication.getDocumentList', $args);
$cur_page = $output->page_navigation->cur_page;
$total_page = $output->page_navigation->last_page;
$result->next_url = null;
$result->list = array();
if($cur_page<$total_page) {
$next_url = $this->getSelfHref($id, $type);
if($startTime) $next_url .= '&startTime='.$startTime;
if($endTime) $next_url .= '&endTime='.$endTime;
$result->next_url = $next_url.'&page='.($cur_page+1);
}
if($output->data) {
foreach($output->data as $key => $val) {
$val->id = $this->getID('article', $val->module_srl.'-'.$val->document_srl);
$val->updated = date("Y-m-d\\TH:i:s", ztime($val->last_update)).$GLOBALS['_time_zone'];
$val->alternative_href = getFullSiteUrl($this->site_url, '', 'document_srl', $val->document_srl);
$val->channel_alternative_href = $this->getChannelAlternativeHref($val->module_srl);
$val->channel_id = $this->getID('channel', $val->module_srl.'-'.$val->document_srl);
if(!$val->nick_name) $val->nick_name = $val->user_name;
$output->data[$key] = $val;
}
$result->list = $output->data;
}
return $result;
}
function getDeleted($module_srl = null, $page = 1, $startTime = null, $endTime = null, $type = null, $id = null) {
if($this->site_url==null) $this->init();
if($module_srl) $args->module_srl= $module_srl;
if($startTime) $args->start_date = $this->getDate($startTime);
if($endTime) $args->end_date = $this->getDate($endTime);
$args->page = $page;
$output = executeQueryArray('syndication.getDeletedList', $args);
$cur_page = $output->page_navigation->cur_page;
$total_page = $output->page_navigation->last_page;
$result->next_url = null;
$result->list = array();
if($cur_page<$total_page) {
$next_url = $this->getSelfHref($id, $type);
if($startTime) $next_url .= '&startTime='.$startTime;
if($endTime) $next_url .= '&endTime='.$endTime;
$result->next_url = $next_url . '&page='.($cur_page+1);
}
if($output->data) {
foreach($output->data as $key => $val) {
$val->id = $this->getID('article', $val->module_srl.'-'.$val->document_srl);
$val->deleted = date("Y-m-d\\TH:i:s", ztime($val->regdate)).$GLOBALS['_time_zone'];
$val->alternative_href = getFullSiteUrl($this->site_url, '', 'document_srl', $val->document_srl);
$val->channel_id = $this->getID('channel', $val->module_srl.'-'.$val->document_srl);
$output->data[$key] = $val;
}
$result->list = $output->data;
}
return $result;
}
function getID($type, $target_id = null) {
if($this->site_url==null) $this->init();
return sprintf('tag:%s,%d:%s', $this->site_url, $this->year, $type) . ($target_id?':'.$target_id:'');
}
function getChannelAlternativeHref($module_srl) {
static $module_info = array();
if(!isset($module_info[$module_srl])) {
$args->module_srl = $module_srl;
$output = executeQuery('syndication.getModuleSiteInfo', $args);
if($output->data) $module_info[$module_srl] = $output->data;
else $module_info[$module_srl] = null;
}
if(is_null($module_info[$module_srl])) return $this->site_url;
$domain = $module_info[$module_srl]->domain;
$url = getFullSiteUrl($domain, '', 'mid', $module_info[$module_srl]->mid);
if(substr($url,0,1)=='/') $domain = 'http://'.$this->site_url.$url;
return $url;
}
function getSelfHref($id, $type = null) {
if($this->site_url==null) $this->init();
return sprintf('http://%s/?module=syndication&act=getSyndicationList&id=%s&type=%s', $this->site_url, $id, $type);
}
function getAlternativeHref($module_info = null) {
if($this->site_url==null) $this->init();
if(!$module_info) return sprintf('http://%s', $this->site_url);
if(!$module_info->site_srl) return getFullUrl('', 'mid', $module_info->mid);
$domain = $module_info->domain;
$url = getFullSiteUrl($domain, '', 'mid', $module_info->mid);
if(substr($url,0,1)=='/') $domain = 'http://'.$this->site_url.$url;
return $url;
}
function getDate($date) {
$time = strtotime($date);
if($time == -1) $time = ztime(str_replace(array('-','T',':'),'',$date));
return date('YmdHis', $time);
}
}
?>

View file

@ -1,16 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<feed xmlns="http://www.w3.org/2005/Atom">
<!--#include("./include.channel.html")-->
<!--@if($articles->list)-->
<!--@if($articles->next_url)--><link rel="next-in-thread" href="{htmlspecialchars($articles->next_url)}" /><!--@end-->
<!--@foreach($articles->list as $key => $article)-->
<!--#include("./include.articles.html")-->
<!--@end-->
<!--@elseif($deleted->list)-->
<!--@if($deleted->next_url)--><link rel="next-in-thread" href="{htmlspecialchars($deleted->next_url)}" /><!--@end-->
<!--@foreach($deleted->list as $key => $delete)-->
<!--#include("./include.deleted.html")-->
<!--@end-->
<!--@end-->
</feed>

View file

@ -1,5 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<entry xmlns="http://www.w3.org/2005/Atom">
<!--#include("./include.channel.html")-->
</entry>

View file

@ -1,63 +0,0 @@
<load target="css/syndication.css" usecdn="true" />
<load target="js/syndication.js" usecdn="true" />
<h3 class="xeAdmin">{$lang->syndication} <span class="gray">{$lang->cmd_management}</span></h3>
<p class="summary">{$lang->about_syndication}</p>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="insertService" action="./" method="post">
<input type="hidden" name="act" value="procSyndicationAdminInsertService" />
<input type="hidden" name="year" value="{$year}" />
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->my_syndication_url}</div></th>
<td>
http://<input type="text" id="site_url" name="site_url" value="{$site_url}" class="inputTypeText siteUrl" />
<span class="button green"><input type="button" value="{$lang->cmd_check_syndication_echo}" onclick="pingSite(jQuery('#site_url').val())" /></span>
<p>{$lang->about_my_syndication_url}</p>
<p class="ping_test_result"></p>
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->syndication_service}</div></th>
<td>
<ul class="syndiService">
<!--@foreach($services as $key => $val)-->
<li>
<input type="checkbox" name="target_services" value="{$val->service}" id="target_service_{$val->service}" <!--@if($val->selected)-->checked="checked"<!--@end--> />
<label for="target_service_{$val->service}">{$val->service}</label>
<!--@if($val->selected)--><span class="button green small"><input type="button" value="{$lang->cmd_check_syndication_status}" onclick="checkSyndicationStatus('{$val->service}')" /></span><!--@end-->
</li>
<!--@end-->
</ul>
<div class="print_result_status"></div>
<p>{$lang->about_syndication}</p>
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->except_module}</div></th>
<td>
<select name="_except_module" id="_except_module" size="10" class="exceptModuleList">
{@$except_module_srls = array()}
<!--@foreach($except_module as $v)-->
{@$except_module_srls[] = $v->module_srl}
<option value="{$v->module_srl}">{$v->browser_title} ({$v->mid})</option>
<!--@end-->
</select>
<ul class="midCommand">
<li><a href="{getUrl('','module','module','act','dispModuleSelectList','id','except_module')}" onclick="popopen(this.href, 'ModuleSelect');return false;" class="button blue"><span>{$lang->cmd_insert}</span></a></li>
<li><a href="#" onclick="removeExceptModule('except_module');return false;" class="button red"><span>{$lang->cmd_delete}</span></a></li>
</ul>
<p>{$lang->about_except_module}</p>
<input type="hidden" name="except_module" id="except_module" value="{implode(',',$except_module_srls)}" />
</td>
</tr>
<tr>
<th colspan="2" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_apply}" accesskey="s" /></span>
</th>
</tr>
</table>
</form>

View file

@ -1,17 +0,0 @@
@charset "utf-8";
input.siteUrl { width:400px; }
ul.syndiService { list-style:none; margin:0; padding:0;}
ul.syndiService li { padding:10px 0; margin:0;}
select.exceptModuleList { width:400px; }
ul.midCommand { margin:20px 0 0 0; padding:0; list-style:none; }
ul.midCommand li { display:inline; margin:0 20px 0 0; padding:0;}
/* Vertical Bar Graph */
.vGraph{ padding:20px 0;}
.vGraph ul{ margin:0; padding:0; height:100px; border:1px solid #ddd; border-top:0; border-right:0; font-size:11px; font-family:Tahoma, Geneva, sans-serif; list-style:none;}
.vGraph ul:after{ content:""; display:block; clear:both;}
.vGraph li{ float:left; display:inline; width:8%; height:100%; margin:0 3%; position:relative; text-align:center; white-space:nowrap;}
.vGraph .gTerm{ position:relative; display:inline-block; width:100%; height:20px; line-height:20px; margin:0 -100% -20px 0; padding:100px 0 0 0; vertical-align:bottom; color:#767676; font-weight:bold;}
.vGraph .gBar{ position:relative; display:inline-block; width:100%; margin:-1px 0 0 0; border:1px solid #ccc; border-bottom:0; background:#e9e9e9; vertical-align:bottom;}
.vGraph .gBar span{ position:absolute; width:100%; top:-20px; left:0; color:#767676;}

View file

@ -1,5 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<feed xmlns="http://www.w3.org/2005/Atom">
<error>-1</error>
<message>{$message}</message>
</feed>

View file

@ -1,8 +0,0 @@
<filter name="insert_service" module="syndication" act="procSyndicationAdminInsertService" confirm_msg_code="confirm_submit">
<form />
<parameter />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,14 +0,0 @@
<entry>
<id>{htmlspecialchars($article->id)}</id>
<title>{htmlspecialchars($article->title)}</title>
<updated>{$article->updated}</updated>
<link rel="alternative" href="{$article->alternative_href}" />
<link rel="channel" href="{htmlspecialchars($article->channel_id)}" />
<link rel="channel-alternative" href="{$article->channel_alternative_href}" />
<published>{date('Y-m-d\TH:i:s',ztime($article->regdate)).$time_zone}</published>
<author>
<name>{htmlspecialchars($article->nick_name)}</name>
</author>
<content>{htmlspecialchars($article->content)}</content>
</entry>

View file

@ -1,8 +0,0 @@
<id>{htmlspecialchars($channel_info->id)}</id>
<title>{htmlspecialchars($channel_info->title)}</title>
<updated>{$channel_info->updated}</updated>
<link rel="self" href="{htmlspecialchars($channel_info->self_href)}" />
<link rel="alternative" href="{$channel_info->alternative_href}" />
<!--@if($channel_info->rss_href)--><link rel="rss" href="{$channel_info->rss_href}" /><!--@end-->
<type>{$channel_info->type}</type>
<summary>{htmlspecialchars($channel_info->summary)}</summary>

View file

@ -1,8 +0,0 @@
<entry>
<id>{htmlspecialchars($channel_info->id)}</id>
<title>{htmlspecialchars($channel_info->title)}</title>
<updated>{$channel_info->updated}</updated>
<link rel="self" href="{htmlspecialchars($channel_info->self_href)}" />
<link rel="alternative" href="{$channel_info->alternative_href}" />
<summary>{htmlspecialchars($channel_info->summary)}</summary>
</entry>

View file

@ -1,8 +0,0 @@
<entry>
<id>{htmlspecialchars($delete->id)}</id>
<title>{htmlspecialchars($delete->title)}</title>
<updated>{$delete->deleted}</updated>
<link rel="alternative" href="{$delete->alternative_href}" />
<deleted>{$delete->deleted}</deleted>
</entry>

View file

@ -1,5 +0,0 @@
<id>{htmlspecialchars($site_info->id)}</id>
<title>{htmlspecialchars($site_info->title)}</title>
<updated>{$site_info->updated}</updated>
<link rel="self" href="{htmlspecialchars($site_info->self_href)}" />
<link rel="alternative" href="{$site_info->alternative_href}" />

View file

@ -1,55 +0,0 @@
function insertSelectedModules(id, module_srl, mid, browser_title) {
var sel_obj = get_by_id('_'+id);
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
sel_obj.options[sel_obj.options.length] = opt;
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
doSyncExceptModules(id);
}
function removeExceptModule(id) {
var sel_obj = get_by_id('_'+id);
sel_obj.remove(sel_obj.selectedIndex);
if(sel_obj.options.length) sel_obj.selectedIndex = sel_obj.options.length-1;
doSyncExceptModules(id);
}
function doSyncExceptModules(id) {
var selected_module_srls = new Array();
var sel_obj = get_by_id('_'+id);
for(var i=0;i<sel_obj.options.length;i++) {
selected_module_srls.push(sel_obj.options[i].value);
}
get_by_id(id).value = selected_module_srls.join(',');
}
function pingSite(site_url){
jQuery('p.ping_test_result').html('');
var response_tags = new Array('error','message','ping_result');
exec_xml('syndication','procSyndicationAdminCheckSitePingResult',{'site_url':site_url},function(ret_obj,response_tags){
var error = ret_obj['error'];
var message = ret_obj['message'];
var ping_result = ret_obj['ping_result'];
if(ping_result) jQuery('p.ping_test_result').text(ping_result);
alert(message);
},response_tags);
}
function checkSyndicationStatus(service){
jQuery('p.print_result_status').html('');
var response_tags = new Array('error','message','result_status');
exec_xml('syndication','procSyndicationAdminCheckApiStatus',{target_service:service},function(ret_obj,response_tags){
var error = ret_obj['error'];
var message = ret_obj['message'];
var result = ret_obj['result_status'];
if(result) jQuery('div.print_result_status').html(result);
if(error!=0) alert(message);
},response_tags);
}

View file

@ -1,41 +0,0 @@
<h3>Naver Syndication Status</h3>
<h4>{$lang->syndication_status_result}</h4>
<table>
<tbody>
<tr>
<th>{$lang->site}</th>
<td>{$result->site_name}</td>
</tr>
<tr>
<th>{$lang->syndication_status}</th>
<td><strong>{$result->status}</strong></td>
</tr>
<tr>
<th>{$lang->syndication_synic_start_date}</th>
<td>{$result->first_update}</td>
</tr>
<tr>
<th>{$lang->syndication_synic_last_date}</th>
<td>{$result->last_update}</td>
</tr>
<tr>
<th>{$lang->syndication_visit_ok_count}</th>
<td>{number_format($result->visit_ok_count)}</td>
</tr>
<tr>
<th>{$lang->syndication_visit_fail_count}</th>
<td>{number_format($result->visit_fail_count)}</td>
</tr>
</tbody>
</table>
<h4>{$lang->syndication_sync_article}</h4>
<div class="vGraph">
<!--@if($result->article_count)-->
<ul>
<!--@foreach($result->article_count as $date => $count)-->
<li><span class="gTerm">{$date}</span><span class="gBar" style="height:{intval(($count/$result->max_article_count)*100)}%"><span>{number_format($count)}</span></span></li>
<!--@end-->
</ul>
<!--@end-->
</div>

View file

@ -1,21 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<feed xmlns="http://www.w3.org/2005/Atom">
<!--#include("./include.site.html")-->
<!--@if(count($channels))-->
<!--@foreach($channels as $key => $channel_info)-->
<entry>
<!--#include("./include.channel.html")-->
</entry>
<!--@end-->
<!--@elseif(count($articles->list))-->
<!--@if($articles->next_url)--><link rel="next-in-thread" href="{htmlspecialchars($articles->next_url)}" /><!--@end-->
<!--@foreach($articles->list as $key => $article)-->
<!--#include("./include.articles.html")-->
<!--@end-->
<!--@elseif(count($deleted->list))-->
<!--@if($deleted->next_url)--><link rel="next-in-thread" href="{htmlspecialchars($deleted->next_url)}" /><!--@end-->
<!--@foreach($deleted->list as $key => $delete)-->
<!--#include("./include.deleted.html")-->
<!--@end-->
<!--@end-->
</feed>

View file

@ -1,4 +0,0 @@
{'<?xml version="1.0" encoding="utf-8"?>'}
<entry xmlns="http://www.w3.org/2005/Atom">
<!--#include("./include.site.html")-->
</entry>