#135 트랙백 모듈 제거.

This commit is contained in:
bnu 2013-12-05 10:46:56 +09:00
parent 8a7e5a8794
commit d9e6a5c776
34 changed files with 0 additions and 1886 deletions

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">엮인글</title>
<title xml:lang="zh-CN">引用管理</title>
<title xml:lang="jp">トラックバック</title>
<title xml:lang="en">Trackback</title>
<title xml:lang="vi">Liên kết Web</title>
<title xml:lang="es">Trackback</title>
<title xml:lang="ru">Трекбек</title>
<title xml:lang="zh-TW">引用</title>
<title xml:lang="tr">Geri izleme</title>
<description xml:lang="ko">엮인글 관리</description>
<description xml:lang="zh-CN">管理引用模块。</description>
<description xml:lang="jp">トラックバック管理モジュール</description>
<description xml:lang="vi">Module dành cho quản lý liên kết Web.</description>
<description xml:lang="en">Module for managing trackbacks.</description>
<description xml:lang="es">Módulo para el manejo de trackbacks.</description>
<description xml:lang="ru">Модуль для управления трекбеками.</description>
<description xml:lang="zh-TW">引用管理模組。</description>
<description xml:lang="en">Module for managing trackbacks.</description>
<description xml:lang="tr">Geri izlemeleri yönetme modülü.</description>
<version>1.7</version>
<date>2013-11-27</date>
<category>content</category>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NAVER</name>
<name xml:lang="vi">NAVER</name>
<name xml:lang="zh-CN">NAVER</name>
<name xml:lang="jp">NAVER</name>
<name xml:lang="en">NAVER</name>
<name xml:lang="es">NAVER</name>
<name xml:lang="ru">NAVER</name>
<name xml:lang="zh-TW">NAVER</name>
<name xml:lang="tr">NAVER</name>
</author>
</module>

View file

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<permissions />
<actions>
<action name="dispTrackbackSend" type="view" />
<action name="dispTrackbackAdminList" type="view" admin_index="true" menu_name="trackback" menu_index="true" />
<action name="trackback" type="controller" />
<action name="procTrackbackSend" type="controller" ruleset="sendTrackback" />
<action name="procTrackbackGetList" type="controller" />
<action name="procTrackbackAdminDeleteChecked" type="controller" ruleset="deleteChecked" />
<action name="procTrackbackAdminInsertConfig" type="controller" />
<action name="procTrackbackAdminInsertModuleConfig" type="controller" />
<action name="procTrackbackAdminAddCart" type="controller" />
</actions>
<menus>
<menu name="trackback">
<title xml:lang="en">Trackback</title>
<title xml:lang="ko">엮인글</title>
<title xml:lang="zh-CN">Trackback</title>
<title xml:lang="jp">Trackback</title>
<title xml:lang="es">Trackback</title>
<title xml:lang="ru">Trackback</title>
<title xml:lang="fr">Trackback</title>
<title xml:lang="zh-TW">引用</title>
<title xml:lang="vi">Trackback</title>
<title xml:lang="mn">Trackback</title>
<title xml:lang="tr">Trackback</title>
</menu>
</menus>
</module>

View file

@ -1,215 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<lang>
<item name="cmd_toggle_checked_trackback">
<value xml:lang="ko"><![CDATA[선택항목 반전]]></value>
<value xml:lang="en"><![CDATA[Invert Selection]]></value>
<value xml:lang="jp"><![CDATA[選択トラックバック反転]]></value>
<value xml:lang="zh-CN"><![CDATA[反选]]></value>
<value xml:lang="zh-TW"><![CDATA[反向選擇]]></value>
<value xml:lang="fr"><![CDATA[Renverser les rétroliens choisis]]></value>
<value xml:lang="ru"><![CDATA[Reverse selected trackback(s)]]></value>
<value xml:lang="es"><![CDATA[Reverse selected trackback(s)]]></value>
<value xml:lang="tr"><![CDATA[Seçili geri izlemeleri iptal et]]></value>
<value xml:lang="vi"><![CDATA[Nhận liên kết Web đã chọn]]></value>
</item>
<item name="cmd_delete_checked_trackback">
<value xml:lang="ko"><![CDATA[선택항목 삭제]]></value>
<value xml:lang="en"><![CDATA[Delete selected]]></value>
<value xml:lang="jp"><![CDATA[選択トラックバック削除]]></value>
<value xml:lang="zh-CN"><![CDATA[删除所选]]></value>
<value xml:lang="zh-TW"><![CDATA[刪除所選]]></value>
<value xml:lang="fr"><![CDATA[Supprimer les rétroliens choisis]]></value>
<value xml:lang="ru"><![CDATA[Удалить выбранные трекбеки]]></value>
<value xml:lang="es"><![CDATA[Trackback(s) es eliminado]]></value>
<value xml:lang="tr"><![CDATA[Seçili geri izlemeleri sil]]></value>
<value xml:lang="vi"><![CDATA[Xóa liên kết Web đã chọn]]></value>
</item>
<item name="msg_cart_is_null">
<value xml:lang="ko"><![CDATA[삭제할 글을 선택해주세요.]]></value>
<value xml:lang="en"><![CDATA[Please select a trackback to delete.]]></value>
<value xml:lang="jp"><![CDATA[削除する書き込みを選択してください。]]></value>
<value xml:lang="zh-CN"><![CDATA[请选择要删除的文章]]></value>
<value xml:lang="zh-TW"><![CDATA[請選擇要刪除的引用]]></value>
<value xml:lang="fr"><![CDATA[Choisissez un rétrolien à supprimer, S.V.P.]]></value>
<value xml:lang="ru"><![CDATA[Пожалуйста, выберите трекбек для удаления.]]></value>
<value xml:lang="es"><![CDATA[Seleccione un trackback para ser eliminado.]]></value>
<value xml:lang="tr"><![CDATA[Lütfen silinecek geri izlemeyi seçin.]]></value>
<value xml:lang="vi"><![CDATA[Xin hãy chọn liên kết Web muốn xóa.]]></value>
</item>
<item name="msg_checked_trackback_is_deleted">
<value xml:lang="ko"><![CDATA[%d개의 엮인글을 삭제했습니다.]]></value>
<value xml:lang="en"><![CDATA[%d trackback(s) deleted.]]></value>
<value xml:lang="jp"><![CDATA[%d個のトラックバックが削除されました。]]></value>
<value xml:lang="zh-CN"><![CDATA[已删除%d个引用]]></value>
<value xml:lang="zh-TW"><![CDATA[已刪除 %d 個引用]]></value>
<value xml:lang="fr"><![CDATA[%d rétrolien(s) est(sont) supprimé(s).]]></value>
<value xml:lang="ru"><![CDATA[%d трекбеков удалено.]]></value>
<value xml:lang="es"><![CDATA[%d trackback(s) eliminado.]]></value>
<value xml:lang="tr"><![CDATA[%d geri izlemeleri silindi.]]></value>
<value xml:lang="vi"><![CDATA[%d đã được xóa.]]></value>
</item>
<item name="send_trackback_url">
<value xml:lang="ko"><![CDATA[발송할 주소]]></value>
<value xml:lang="en"><![CDATA[Destination URL]]></value>
<value xml:lang="jp"><![CDATA[送信するURL]]></value>
<value xml:lang="zh-CN"><![CDATA[发送地址]]></value>
<value xml:lang="zh-TW"><![CDATA[發送網址]]></value>
<value xml:lang="fr"><![CDATA[URL de Destination]]></value>
<value xml:lang="tr"><![CDATA[Hedef URL]]></value>
<value xml:lang="vi"><![CDATA[Địa chỉ muốn gửi]]></value>
</item>
<item name="msg_trackback_url_is_invalid">
<value xml:lang="ko"><![CDATA[발송할 대상의 주소가 올바르지 않습니다.]]></value>
<value xml:lang="en"><![CDATA[Destination URL is invalid.]]></value>
<value xml:lang="jp"><![CDATA[トラックバックのurlが正しくありません。]]></value>
<value xml:lang="zh-CN"><![CDATA[错误的发送地址!]]></value>
<value xml:lang="zh-TW"><![CDATA[發送錯誤!]]></value>
<value xml:lang="fr"><![CDATA[URL de Destination est invalide]]></value>
<value xml:lang="tr"><![CDATA[Hedef URL geçersiz.]]></value>
<value xml:lang="vi"><![CDATA[Địa chỉ muốn gửi không hợp lệ]]></value>
</item>
<item name="msg_trackback_send_success">
<value xml:lang="ko"><![CDATA[엮인글을 발송했습니다.]]></value>
<value xml:lang="en"><![CDATA[Sent successfully.]]></value>
<value xml:lang="jp"><![CDATA[トラックバックを送信しました。]]></value>
<value xml:lang="zh-CN"><![CDATA[成功发送引用。]]></value>
<value xml:lang="zh-TW"><![CDATA[成功發送。]]></value>
<value xml:lang="fr"><![CDATA[Envoyé avec succès]]></value>
<value xml:lang="tr"><![CDATA[Başarıyla gönderildi]]></value>
<value xml:lang="vi"><![CDATA[Đã gửi thành công.]]></value>
</item>
<item name="search_target_list" type="array">
<item name="url">
<value xml:lang="ko"><![CDATA[대상 URL]]></value>
<value xml:lang="en"><![CDATA[Target URL]]></value>
<value xml:lang="jp"><![CDATA[URL]]></value>
<value xml:lang="zh-CN"><![CDATA[对象URL]]></value>
<value xml:lang="zh-TW"><![CDATA[目標網址]]></value>
<value xml:lang="fr"><![CDATA[URL objectif]]></value>
<value xml:lang="ru"><![CDATA[URL назначения]]></value>
<value xml:lang="es"><![CDATA[URL objetivo]]></value>
<value xml:lang="tr"><![CDATA[Hedef URL]]></value>
<value xml:lang="vi"><![CDATA[URL muốn gửi]]></value>
</item>
<item name="blog_name">
<value xml:lang="ko"><![CDATA[대상 사이트 이름]]></value>
<value xml:lang="en"><![CDATA[Target Site Name]]></value>
<value xml:lang="jp"><![CDATA[サイト(ブログ)名]]></value>
<value xml:lang="zh-CN"><![CDATA[对象网站名称]]></value>
<value xml:lang="zh-TW"><![CDATA[目標網站名稱]]></value>
<value xml:lang="fr"><![CDATA[Nom du Site objectif]]></value>
<value xml:lang="ru"><![CDATA[Имя сайта]]></value>
<value xml:lang="es"><![CDATA[Ojetivo del nombre de sitio]]></value>
<value xml:lang="tr"><![CDATA[Hedef Site Adı]]></value>
<value xml:lang="vi"><![CDATA[Tên Website muốn gửi]]></value>
</item>
<item name="title">
<value xml:lang="ko"><![CDATA[제목]]></value>
<value xml:lang="en"><![CDATA[Title]]></value>
<value xml:lang="jp"><![CDATA[タイトル]]></value>
<value xml:lang="zh-CN"><![CDATA[标题]]></value>
<value xml:lang="zh-TW"><![CDATA[標題]]></value>
<value xml:lang="fr"><![CDATA[Titre]]></value>
<value xml:lang="ru"><![CDATA[Заголовок]]></value>
<value xml:lang="es"><![CDATA[Título]]></value>
<value xml:lang="tr"><![CDATA[Başlık]]></value>
<value xml:lang="vi"><![CDATA[Tiêu đề]]></value>
</item>
<item name="excerpt">
<value xml:lang="ko"><![CDATA[내용]]></value>
<value xml:lang="en"><![CDATA[Excerpt]]></value>
<value xml:lang="jp"><![CDATA[要約内容]]></value>
<value xml:lang="zh-CN"><![CDATA[内容]]></value>
<value xml:lang="zh-TW"><![CDATA[內容]]></value>
<value xml:lang="fr"><![CDATA[Contenu]]></value>
<value xml:lang="ru"><![CDATA[Выдержка]]></value>
<value xml:lang="es"><![CDATA[Contenido]]></value>
<value xml:lang="tr"><![CDATA[Alıntı]]></value>
<value xml:lang="vi"><![CDATA[Trích đoạn]]></value>
</item>
<item name="regdate">
<value xml:lang="ko"><![CDATA[등록일]]></value>
<value xml:lang="en"><![CDATA[Posted Date]]></value>
<value xml:lang="jp"><![CDATA[登録日]]></value>
<value xml:lang="zh-CN"><![CDATA[登录日期]]></value>
<value xml:lang="zh-TW"><![CDATA[登錄日期]]></value>
<value xml:lang="fr"><![CDATA[Jour]]></value>
<value xml:lang="ru"><![CDATA[Дата отправки]]></value>
<value xml:lang="es"><![CDATA[Fecha del posteo]]></value>
<value xml:lang="tr"><![CDATA[Gönderilme Tarihi]]></value>
<value xml:lang="vi"><![CDATA[Ngày gửi]]></value>
</item>
<item name="ipaddress">
<value xml:lang="ko"><![CDATA[IP 주소]]></value>
<value xml:lang="en"><![CDATA[IP Address]]></value>
<value xml:lang="jp"><![CDATA[IPアドレス]]></value>
<value xml:lang="zh-CN"><![CDATA[IP地址]]></value>
<value xml:lang="zh-TW"><![CDATA[IP 位址]]></value>
<value xml:lang="fr"><![CDATA[Adresse IP]]></value>
<value xml:lang="ru"><![CDATA[IP-адрес]]></value>
<value xml:lang="es"><![CDATA[Dirección IP]]></value>
<value xml:lang="tr"><![CDATA[IP Adresi]]></value>
<value xml:lang="vi"><![CDATA[IP]]></value>
</item>
</item>
<item name="enable_trackback">
<value xml:lang="ko"><![CDATA[엮인글 허용]]></value>
<value xml:lang="en"><![CDATA[Allow Trackback]]></value>
<value xml:lang="jp"><![CDATA[トラックバックを可能にする]]></value>
<value xml:lang="zh-CN"><![CDATA[使用引用]]></value>
<value xml:lang="zh-TW"><![CDATA[允許引用]]></value>
<value xml:lang="fr"><![CDATA[Utiliser le Rétrolien]]></value>
<value xml:lang="ru"><![CDATA[Включить трекбек]]></value>
<value xml:lang="es"><![CDATA[Usar trackback]]></value>
<value xml:lang="tr"><![CDATA[Geri izleme kullan.]]></value>
<value xml:lang="vi"><![CDATA[Sử dụng liên kết Web]]></value>
</item>
<item name="about_enable_trackback">
<value xml:lang="ko"><![CDATA[체크를 해제하면 모든 글의 엮인글 접수를 중지합니다.]]></value>
<value xml:lang="en"><![CDATA[When it is unchecked, all the trackback collection on the site will be stopped.]]></value>
<value xml:lang="jp"><![CDATA[チェックを外すと、すべてのコンテンツに対し、トラックバックの受信を中止します。]]></value>
<value xml:lang="zh-CN"><![CDATA[取消此项勾选将对网站内的所有主题禁止接收引用。]]></value>
<value xml:lang="zh-TW"><![CDATA[不選取的話,將會使網站內所有的主題都禁止接收引用。]]></value>
<value xml:lang="fr"><![CDATA[Si vous annulez la coché, on arrêtera de ramasser les rétroliens de tous les articles du site]]></value>
<value xml:lang="ru"><![CDATA[Эта опция включает/выключает фукцию трекбека.]]></value>
<value xml:lang="es"><![CDATA[Si no selecciona esta opción, desactiva la inscripción de trackback en todos los documentos del sitio]]></value>
<value xml:lang="tr"><![CDATA[Geri izleme devredışı bırakıldığında, sitedeki tüm geri izleme (trackback) koleksiyonları durdurulacaktır.]]></value>
<value xml:lang="vi"><![CDATA[Khi chọn là tắt chức năng này, mọi liên kết Web trên Website sẽ ngừng hoạt động.]]></value>
</item>
<item name="no_trackbacks">
<value xml:lang="ko"><![CDATA[엮인글이 없습니다.]]></value>
<value xml:lang="en"><![CDATA[No Trackbacks]]></value>
<value xml:lang="jp"><![CDATA[トラックバックがありません。]]></value>
<value xml:lang="zh-TW"><![CDATA[沒有引用]]></value>
</item>
<item name="trackback_manager">
<value xml:lang="ko"><![CDATA[선택한 엮인글 관리]]></value>
<value xml:lang="en"><![CDATA[Manage selected trackbacks]]></value>
<value xml:lang="jp"><![CDATA[選択したトラックバック管理]]></value>
<value xml:lang="zh-TW"><![CDATA[管理所選引用]]></value>
</item>
<item name="selected_trackback">
<value xml:lang="ko"><![CDATA[선택한 엮인글]]></value>
<value xml:lang="en"><![CDATA[Selected trackbacks]]></value>
<value xml:lang="jp"><![CDATA[選択したトラックバック]]></value>
<value xml:lang="zh-TW"><![CDATA[已選擇的引用]]></value>
</item>
<item name="site">
<value xml:lang="ko"><![CDATA[사이트]]></value>
<value xml:lang="en"><![CDATA[Site]]></value>
<value xml:lang="jp"><![CDATA[サイト]]></value>
<value xml:lang="zh-TW"><![CDATA[網站]]></value>
</item>
<item name="msg_invalid_key">
<value xml:lang="ko"><![CDATA[유효하지 않은 키입니다.]]></value>
<value xml:lang="en"><![CDATA[유효하지 않은 키입니다.]]></value>
</item>
<item name="msg_disable_trackback">
<value xml:lang="ko"><![CDATA[엮인글이 비활성화 되어있습니다.]]></value>
<value xml:lang="en"><![CDATA[엮인글이 비활성화 되어있습니다.]]></value>
</item>
<item name="msg_trackback_send_failed">
<value xml:lang="ko"><![CDATA[엮인글 발송을 실패하였습니다.]]></value>
<value xml:lang="en"><![CDATA[Failed to send]]></value>
</item>
</lang>

View file

@ -1,8 +0,0 @@
<query id="deleteTrackbacks" action="delete">
<tables>
<table name="trackbacks" />
</tables>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,8 +0,0 @@
<query id="deleteTrackback" action="delete">
<tables>
<table name="trackbacks" />
</tables>
<conditions>
<condition operation="equal" column="trackback_srl" var="trackback_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,8 +0,0 @@
<query id="deleteTrackbacks" action="delete">
<tables>
<table name="trackbacks" />
</tables>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,18 +0,0 @@
<query id="getNewestTrackbackList" action="select">
<tables>
<table name="trackbacks" />
<table name="modules" />
</tables>
<columns>
<column name="trackbacks.*" />
</columns>
<conditions>
<condition operation="equal" column="modules.site_srl" var="site_srl" filter="number" pipe="and" />
<condition operation="in" column="modules.module_srl" var="module_srl" filter="number" pipe="and" />
<condition operation="equal" column="trackbacks.module_srl" default="modules.module_srl" filter="number" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="trackbacks.list_order" order="asc" />
<list_count var="list_count" default="20" />
</navigation>
</query>

View file

@ -1,18 +0,0 @@
<query id="getRegistedTrackback" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="more" column="regdate" var="regdate" notnull="notnull" />
<group pipe="and">
<condition operation="like_prefix" column="ipaddress" var="ipaddress" />
<condition operation="equal" column="url" var="url" pipe="or" />
<condition operation="equal" column="blog_name" var="blog_name" pipe="or" />
<condition operation="equal" column="title" var="title" pipe="or" />
<condition operation="equal" column="excerpt" var="excerpt" pipe="or" />
</group>
</conditions>
</query>

View file

@ -1,18 +0,0 @@
<query id="getRegistedTrackbacks" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="more" column="regdate" var="regdate" notnull="notnull" />
<group pipe="and">
<condition operation="like_prefix" column="ipaddress" var="ipaddress" notnull="notnull" />
<condition operation="equal" column="url" var="url" pipe="or" />
<condition operation="equal" column="blog_name" var="blog_name" pipe="or" />
<condition operation="equal" column="title" var="title" pipe="or" />
<condition operation="equal" column="excerpt" var="excerpt" pipe="or" />
</group>
</conditions>
</query>

View file

@ -1,27 +0,0 @@
<query id="getTotalTrackbackList" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="in" column="trackback_srl" var="trackbackSrlList" filter="number" />
<condition operation="in" column="module_srl" var="s_module_srl" pipe="and" />
<condition operation="notin" column="module_srl" var="exclude_module_srl" pipe="and" />
<group pipe="and">
<condition operation="like" column="url" var="s_url" />
<condition operation="like" column="blog_name" var="s_blog_name" pipe="or" />
<condition operation="like" column="title" var="s_title" pipe="or" />
<condition operation="like" column="excerpt" var="s_excerpt" pipe="or" />
<condition operation="like_prefix" column="regdate" var="s_regdate" pipe="or" />
<condition operation="like_prefix" column="ipaddress" var="s_ipaddress" pipe="or" />
</group>
</conditions>
<navigation>
<index var="sort_index" default="list_order" order="asc" />
<list_count var="list_count" default="20" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -1,8 +0,0 @@
<query id="getTrackback" action="select">
<tables>
<table name="trackbacks" />
</tables>
<conditions>
<condition operation="equal" column="trackback_srl" var="trackback_srl" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -1,13 +0,0 @@
<query id="getTrackbackCount" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" />
<condition operation="in" column="module_srl" var="module_srl" filter="number" pipe="and" />
<condition operation="like_prefix" column="regdate" var="regDate" pipe="and" />
</conditions>
</query>

View file

@ -1,12 +0,0 @@
<query id="getTrackbackCountByIPAddress" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
<condition operation="equal" column="ipaddress" var="ipaddress" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -1,14 +0,0 @@
<query id="getTrackbackList" action="select">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
</conditions>
<navigation>
<index var="list_order" default="list_order" order="asc" />
</navigation>
</query>

View file

@ -1,17 +0,0 @@
<query id="insertTrackback" action="insert">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="trackback_srl" var="trackback_srl" notnull="notnull" />
<column name="module_srl" var="module_srl" filter="number" notnull="notnull" />
<column name="document_srl" var="document_srl" filter="number" notnull="notnull" />
<column name="url" var="url" notnull="notnull" minlength="2" maxlength="250" />
<column name="title" var="title" notnull="notnull" minlength="2" maxlength="250" />
<column name="blog_name" var="blog_name" notnull="notnull" minlength="2" maxlength="250" />
<column name="excerpt" var="excerpt" notnull="notnull" />
<column name="regdate" var="regdate" default="curdate()" />
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
<column name="list_order" var="list_order" default="0" />
</columns>
</query>

View file

@ -1,11 +0,0 @@
<query id="updateTrackbackModule" action="update">
<tables>
<table name="trackbacks" />
</tables>
<columns>
<column name="module_srl" var="module_srl" filter="number" default="0" />
</columns>
<conditions>
<condition operation="in" column="document_srl" var="document_srls" notnull="notnull" />
</conditions>
</query>

View file

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

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ruleset version="1.5.0">
<customrules>
<rule name="charset" type="enum" test="UTF-8, EUC-KR, EUC-JP, SHIFT_JIS, EUC-CN, HZ, BIG5" />
</customrules>
<fields>
<field name="target_srl" required="true" rule="number" />
<field name="trackback_url" required="true" rule="url" />
<field name="charset" required="true" rule="charset" default="UTF-8" />
</fields>
</ruleset>

View file

@ -1,12 +0,0 @@
<table name="trackbacks">
<column name="trackback_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<column name="module_srl" type="number" size="11" default="0" notnull="notnull" index="idx_module_srl" />
<column name="document_srl" type="number" size="11" default="0" notnull="notnull" index="idx_document_srl" />
<column name="url" type="varchar" size="250" notnull="notnull" />
<column name="title" type="varchar" size="250" notnull="notnull" />
<column name="blog_name" type="varchar" size="250" notnull="notnull" />
<column name="excerpt" type="text" notnull="notnull" />
<column name="regdate" type="date" index="idx_regdate" />
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress" />
<column name="list_order" type="number" size="11" notnull="notnull" index="idx_list_order" />
</table>

View file

@ -1,12 +0,0 @@
<filter name="delete_checked" module="trackback" act="procTrackbackAdminDeleteChecked" confirm_msg_code="confirm_delete">
<form>
<node target="cart" required="true" />
</form>
<parameter>
<param name="cart" target="cart" />
</parameter>
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,5 +0,0 @@
<filter name="insert_config" module="trackback" act="procTrackbackAdminInsertConfig" confirm_msg_code="confirm_submit">
<form />
<parameter />
<response />
</filter>

View file

@ -1,7 +0,0 @@
<filter name="insert_trackback_module_config" module="trackback" act="procTrackbackAdminInsertModuleConfig" confirm_msg_code="confirm_submit">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -1,9 +0,0 @@
<filter name="send_trackback" module="trackback" act="procTrackbackSend">
<form>
<node target="target_srl" required="true" />
<node target="trackback_url" required="true" />
<node target="charset" required="true" />
</form>
<parameter />
<response />
</filter>

View file

@ -1,76 +0,0 @@
function doCheckAll(bToggle) {
var fo_obj = jQuery('#fo_list')[0], el = null;
if(typeof(bToggle) == "undefined") bToggle = false;
for(var i=0; i<fo_obj.elements.length; i++) {
el = fo_obj.elements[i];
if(el.name == 'cart'){
if(!el.checked || !bToggle) el.checked = true;
else el.checked = false;
}
}
}
function insertSelectedModule(id, module_srl, mid, browser_title) {
location.href = current_url.setQuery('module_srl',module_srl);
}
function getTrackbackList()
{
var trackbackListTable = jQuery('#trackbackListTable');
var cartList = [];
trackbackListTable.find(':checkbox[name=cart]').each(function(){
if(this.checked) cartList.push(this.value);
});
var params = new Array();
var response_tags = ['error','message', 'trackback_list'];
params["trackback_srls"] = cartList.join(",");
exec_xml('trackback','procTrackbackGetList',params, completeGetTrackbackList, response_tags);
}
function completeGetTrackbackList(ret_obj, response_tags)
{
var htmlListBuffer = '';
var statusNameList = {"N":"Public", "Y":"Secret"};
if(ret_obj['trackback_list'] == null)
{
htmlListBuffer = '<tr>' +
'<td colspan="2" style="text-align:center;">'+ret_obj['message']+'</td>' +
'</tr>';
}
else
{
var trackback_list = ret_obj['trackback_list']['item'];
if(!jQuery.isArray(trackback_list)) trackback_list = [trackback_list];
for(var x in trackback_list)
{
var objTrackback = trackback_list[x];
htmlListBuffer += '<tr>' +
'<tr>' +
'<td class="text"> <strong>'+ objTrackback.title +'</strong>' +
'<p>'+ objTrackback.excerpt +'</p>' +
'</td>' +
'<td class="nowr">'+ objTrackback.blog_name +'</td>' +
'</tr>' +
'<input type="hidden" name="cart[]" value="'+objTrackback.trackback_srl+'" />';
}
jQuery('#selectedTrackbackCount').html(trackback_list.length);
}
jQuery('#trackbackManageListTable>tbody').html(htmlListBuffer);
}
function checkSearch(form)
{
if(form.search_target.value == '')
{
alert(xe.lang.msg_empty_search_target);
return false;
}
if(form.search_keyword.value == '')
{
alert(xe.lang.msg_empty_search_keyword);
return false;
}
}

View file

@ -1,38 +0,0 @@
<h1 class="h1">{$lang->cmd_send_trackback}</h1>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/trackback/tpl/send_trackback_form/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="sendTrackback" action="./" method="post">
<input type="hidden" name="module" value="trackback" />
<input type="hidden" name="act" value="procTrackbackSend" />
<input type="hidden" name="target_srl" value="{$oDocument->document_srl}" />
<input type="hidden" name="xe_validator_id" value="modules/trackback/tpl/send_trackback_form/1" />
<table class="x_table x_table-striped x_table-hover">
<tr>
<th scope="row"><label>{$lang->title}</label></th>
<td>{$oDocument->getTitleText()}</td>
</tr>
<tr>
<th scope="row"><label>{$lang->content}</label></th>
<td>{$oDocument->getSummary()}</td>
</tr>
<tr>
<th scope="row"><label for="textfield1">{$lang->send_trackback_url}</label></th>
<td>
<input type="text" id="textfield1" name="trackback_url" value="" />
<select name="charset">
<option value='UTF-8'>UTF-8</option>
<option value='EUC-KR'>EUC-KR</option>
<option value='EUC-JP'>EUC-JP</option>
<option value='SHIFT_JIS'>SHIFT_JIS</option>
<option value='EUC-CN'>EUC-CN</option>
<option value='HZ'>HZ</option>
<option value='BIG5'>BIG5</option>
</select>
</td>
</tr>
</table>
<div class="btnArea">
<input class="btn" type="submit" value="{$lang->cmd_send_trackback}" />
</div>
</form>

View file

@ -1,145 +0,0 @@
<script>
xe.lang.msg_empty_search_target = '{$lang->msg_empty_search_target}';
xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
</script>
<load target="js/trackback_admin.js" />
<form action="">
<div class="x_page-header">
<h1>{$lang->trackback} <a class="x_icon-question-sign" href="./admin/help/index.html#UMAN_content_trackback" target="_blank">{$lang->help}</a></h1>
</div>
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/trackback/tpl/trackback_list/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<table width="100%" id="trackbackListTable" class="x_table x_table-striped x_table-hover">
<caption>
<strong>{$lang->all}({number_format($total_count)})</strong>
<span class="x_pull-right">
<a href="#listManager" class="x_btn modalAnchor" onclick="getTrackbackList();">{$lang->delete}</a>
</span>
</caption>
<thead>
<tr>
<th scope="col">{$lang->title}</th>
<th scope="col" class="nowr">{$lang->site}</th>
<th scope="col" class="nowr">{$lang->date}</th>
<th scope="col" class="nowr">{$lang->ipaddress}</th>
<th scope="col"><input type="checkbox" title="Check All" /></th>
</tr>
</thead>
<tbody>
<tr loop="$trackback_list => $no, $val">
<td>
<a href="{getUrl('','document_srl',$val->document_srl)}#trackback_{$val->trackback_srl}" target="_blank">{htmlspecialchars($val->title, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}</a>
<p>{$val->excerpt}</p>
</td>
<td class="nowr"><a href="{$val->url}" target="_blank">{htmlspecialchars($val->blog_name, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}</a></td>
<td class="nowr">{zdate($val->regdate,"Y-m-d")}</td>
<td class="nowr"><a href="{getUrl('search_target','ipaddress','search_keyword',$val->ipaddress)}">{$val->ipaddress}</a></td>
<td><input type="checkbox" name="cart" value="{$val->trackback_srl}" /></td>
</tr>
</tbody>
</table>
<div class="x_pull-right">
<a href="#listManager" class="x_btn modalAnchor" onclick="getTrackbackList();">{$lang->delete}</a>
</div>
</form>
<form action="" class="x_pagination">
<input type="hidden" name="error_return_url" value="" />
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<input cond="$search_keyword" type="hidden" name="search_keyword" value="{$search_keyword}" />
<input cond="$search_target" type="hidden" name="search_target" value="{$search_target}" />
<ul>
<li class="x_disabled"|cond="!$page || $page == 1"><a href="{getUrl('page', '')}">&laquo; {$lang->first_page}</a></li>
<block cond="$page_navigation->first_page != 1 && $page_navigation->first_page + $page_navigation->page_count > $page_navigation->last_page - 1 && $page_navigation->page_count != $page_navigation->total_page">
{@$isGoTo = true}
<li>
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">&hellip;</a>
<span cond="$isGoTo" id="goTo" class="x_input-append">
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
<button type="submit" class="x_add-on">Go</button>
</span>
</li>
</block>
<!--@while($page_no = $page_navigation->getNextPage())-->
{@$last_page = $page_no}
<li class="x_active"|cond="$page_no == $page"><a href="{getUrl('page', $page_no)}">{$page_no}</a></li>
<!--@end-->
<block cond="$last_page != $page_navigation->last_page && $last_page + 1 != $page_navigation->last_page">
{@$isGoTo = true}
<li>
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">&hellip;</a>
<span cond="$isGoTo" id="goTo" class="x_input-append">
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
<button type="submit" class="x_add-on">Go</button>
</span>
</li>
</block>
<li class="x_disabled"|cond="$page == $page_navigation->last_page"><a href="{getUrl('page', $page_navigation->last_page)}" title="{$page_navigation->last_page}">{$lang->last_page} &raquo;</a></li>
</ul>
</form>
<form action="" class="search center x_input-append">
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="error_return_url" value="" />
<select name="search_target" title="{$lang->search_target}" style="margin-right:4px">
<!--@foreach($lang->search_target_list as $key => $val)-->
<option value="{$key}" <!--@if($search_target==$key)-->selected="selected"<!--@end-->>{$val}</option>
<!--@end-->
</select>
<input type="search" name="search_keyword" value="{htmlspecialchars($search_keyword, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}" />
<button type="submit" class="x_btn x_btn-inverse">{$lang->cmd_search}</button>
<a class="x_btn" href="{getUrl('','module',$module,'act',$act)}">{$lang->cmd_cancel}</a>
</form>
<form ruleset="deleteChecked" action="./" method="post" class="x_modal" id="listManager">
<input type="hidden" name="module" value="trackback" />
<input type="hidden" name="act" value="procTrackbackAdminDeleteChecked" />
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="xe_validator_id" value="modules/trackback/tpl/trackback_list/1" />
<div class="x_modal-header">
<h1>{$lang->trackback_manager}: {$lang->delete}</h1>
</div>
<div class="x_modal-body">
<table id="trackbackManageListTable" class="x_table x_table-striped x_table-hover">
<caption>
<strong>{$lang->selected_trackback} <span id="selectedTrackbackCount"></span></strong>
</caption>
<thead>
<tr>
<th scope="col" class="title"><span>{$lang->title}</span></th>
<th scope="col">{$lang->site}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="x_modal-footer">
<button type="submit" class="x_btn x_btn-inverse">{$lang->cmd_delete}</button>
</div>
</form>
<script>
jQuery(function($){
// Modal anchor activation
var $docTable = $('#trackbackListTable');
$docTable.find(':checkbox').change(function(){
var $modalAnchor = $('a.modalAnchor');
if($docTable.find('tbody :checked').length == 0){
$modalAnchor.removeAttr('href').addClass('x_disabled');
} else {
$modalAnchor.attr('href','#listManager').removeClass('x_disabled');
}
}).change();
// Modal anchor button action
$('a.modalAnchor').bind('before-open.mw', function(){
if($docTable.find('tbody :checked').length == 0){
$('body').css('overflow','auto');
alert('{$lang->msg_cart_is_null}');
return false;
}
});
});
</script>

View file

@ -1,22 +0,0 @@
<section class="section">
<h1>{$lang->trackback}</h1>
<form action="./" method="post" class="x_form-horizontal">
<input type="hidden" name="module" value="trackback" />
<input type="hidden" name="act" value="procTrackbackAdminInsertModuleConfig" />
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<input type="hidden" name="target_module_srl" value="{$trackback_config->module_srl?$trackback_config->module_srl:$module_srls}" />
<div class="x_control-group">
<label class="x_control-label">{$lang->enable_trackback}</label>
<div class="x_controls">
<label for="trackback_y" class="x_inline"><input type="radio" name="enable_trackback" id="trackback_y" value="Y" checked="checked"|cond="$trackback_config->enable_trackback == 'Y'" /> {$lang->yes}</label>
<label for="trackback_n" class="x_inline"><input type="radio" name="enable_trackback" id="trackback_n" value="N" checked="checked"|cond="$trackback_config->enable_trackback != 'Y'" /> {$lang->not}</label>
</div>
</div>
<div class="btnArea">
<button class="x_btn x_btn-primary" type="submit">{$lang->cmd_save}</button>
</div>
</form>
</section>

View file

@ -1,153 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* trackbackAdminController class
* trackback module admin controller class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackAdminController extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Trackbacks delete selected in admin page
* @return void|Object
*/
function procTrackbackAdminDeleteChecked()
{
// An error appears if no document is selected
$cart = Context::get('cart');
if(!is_array($cart)) $trackback_srl_list= explode('|@|', $cart);
else $trackback_srl_list = $cart;
$trackback_count = count($trackback_srl_list);
if(!$trackback_count) return $this->stop('msg_cart_is_null');
$oTrackbackController = &getController('trackback');
// Delete the post
for($i=0;$i<$trackback_count;$i++)
{
$trackback_srl = trim($trackback_srl_list[$i]);
if(!$trackback_srl) continue;
$oTrackbackController->deleteTrackback($trackback_srl, true);
}
$this->setMessage( sprintf(Context::getLang('msg_checked_trackback_is_deleted'), $trackback_count) );
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList');
$this->setRedirectUrl($returnUrl);
}
/**
* Save Settings
* @return object
*/
function procTrackbackAdminInsertConfig()
{
$config->enable_trackback = Context::get('enable_trackback');
if($config->enable_trackback != 'Y') $config->enable_trackback = 'N';
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('trackback',$config);
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList');
return $this->setRedirectUrl($returnUrl, $output);
}
/**
* Trackback Module Settings
* @return void|Object
*/
function procTrackbackAdminInsertModuleConfig()
{
// Get variables
$module_srl = Context::get('target_module_srl');
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
else $module_srl = array($module_srl);
$enable_trackback = Context::get('enable_trackback');
if(!in_array($enable_trackback, array('Y','N'))) $enable_trackback = 'N';
if(!$module_srl || !$enable_trackback) return new Object(-1, 'msg_invalid_request');
for($i=0;$i<count($module_srl);$i++)
{
$srl = trim($module_srl[$i]);
if(!$srl) continue;
$output = $this->setTrackbackModuleConfig($srl, $enable_trackback);
}
$this->setError(-1);
$this->setMessage('success_updated', 'info');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
$this->setRedirectUrl($returnUrl);
}
/**
* Trackback Module Settings
* @return void
*/
function procTrackbackAdminAddCart()
{
$trackback_srl = (int)Context::get('trackback_srl');
$oTrackbackAdminModel = &getAdminModel('trackback');
//$columnList = array('trackback_srl');
$args->trackbackSrlList = array($trackback_srl);
$output = $oTrackbackAdminModel->getTotalTrackbackList($args);
if(is_array($output->data))
{
foreach($output->data AS $key=>$value)
{
if($_SESSION['trackback_management'][$value->trackback_srl]) unset($_SESSION['trackback_management'][$value->trackback_srl]);
else $_SESSION['trackback_management'][$value->trackback_srl] = true;
}
}
}
/**
* Trackback modular set function
* @param int $module_srl
* @param string $enable_trackback 'Y' or 'N'
* @return Object
*/
function setTrackbackModuleConfig($module_srl, $enable_trackback)
{
$config = new stdClass();
$config->enable_trackback = $enable_trackback;
$oModuleController = &getController('module');
$oModuleController->insertModulePartConfig('trackback', $module_srl, $config);
return new Object();
}
/**
* Modules belonging to remove all trackbacks
* @param int $module_srl
* @return object
*/
function deleteModuleTrackbacks($module_srl)
{
// Delete
$args = new stdClass();
$args->module_srl = $module_srl;
$output = executeQuery('trackback.deleteModuleTrackbacks', $args);
return $output;
}
}
/* End of file trackback.admin.controller.php */
/* Location: ./modules/trackback/trackback.admin.controller.php */

View file

@ -1,96 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* @class trackbackAdminModel
* @brief trackback module admin model class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackAdminModel extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Trackbacks Bringing all the time in reverse order (administrative)
* @param object $obj
* @return object
*/
function getTotalTrackbackList($obj)
{
// Search options
$search_target = $obj->search_target?$obj->search_target:trim(Context::get('search_target'));
$search_keyword = $obj->search_keyword?$obj->search_keyword:trim(Context::get('search_keyword'));
$args = new stdClass();
if($search_target && $search_keyword)
{
switch($search_target)
{
case 'url' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_url = $search_keyword;
break;
case 'title' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_title= $search_keyword;
break;
case 'blog_name' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_blog_name= $search_keyword;
break;
case 'excerpt' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_excerpt = $search_keyword;
break;
case 'regdate' :
$args->s_regdate = $search_keyword;
break;
case 'ipaddress' :
$args->s_ipaddress= $search_keyword;
break;
}
}
// Variables
$args->sort_index = $obj->sort_index;
$args->page = $obj->page?$obj->page:1;
$args->list_count = $obj->list_count?$obj->list_count:20;
$args->page_count = $obj->page_count?$obj->page_count:10;
$args->s_module_srl = $obj->module_srl;
$args->exclude_module_srl = $obj->exclude_module_srl;
$args->trackbackSrlList = $obj->trackbackSrlList;
// trackback.getTotalTrackbackList query execution
$output = executeQuery('trackback.getTotalTrackbackList', $args);
// Return if no result or an error occurs
if(!$output->toBool()||!count($output->data)) return $output;
return $output;
}
/**
* Return trackback count by date
* @param strgin $date
* @param array $moduleSrlList
* @return int
*/
function getTrackbackCountByDate($date = '', $moduleSrlList = array())
{
if($date) $args->regDate = date('Ymd', strtotime($date));
if(count($moduleSrlList)>0) $args->module_srl = $moduleSrlList;
$output = executeQuery('trackback.getTrackbackCount', $args);
if(!$output->toBool()) return 0;
return $output->data->count;
}
}
/* End of file trackback.admin.model.php */
/* Location: ./modules/trackback/trackback.admin.model.php */

View file

@ -1,61 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* trackbackAdminView class
* trackback module admin view class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackAdminView extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Display output list (administrative)
* @return void
*/
function dispTrackbackAdminList()
{
// Wanted set
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('trackback');
Context::set('config',$config);
// Options to get a list
$args = new stdClass();
$args->page = Context::get('page'); // / "Page
$args->list_count = 30; // / "One page of posts to show the
$args->page_count = 10; // / "Number of pages that appear in the page navigation
$args->sort_index = 'list_order'; // / "Sorting values
$args->module_srl = Context::get('module_srl');
// Get a list
$oTrackbackAdminModel = &getAdminModel('trackback');
$output = $oTrackbackAdminModel->getTotalTrackbackList($args);
// To write to a template parameter settings
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('trackback_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
//Security
$security = new Security();
$security->encodeHTML('config.');
$security->encodeHTML('trackback_list..');
// Set a template
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('trackback_list');
}
}
/* End of file trackback.admin.view.php */
/* Location: ./modules/trackback/trackback.admin.view.php */

View file

@ -1,95 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* trackback class
* trackback module's high class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackback extends ModuleObject
{
/**
* Implement if additional tasks are necessary when installing
* @return Object
*/
function moduleInstall()
{
// Register action forward (to use in administrator mode)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('trackback', 'controller', 'trackback');
// 2007. 10. 17 posts deleted and will be deleted when the trigger property Trackbacks
$oModuleController->insertTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after');
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add Trackbacks
$oModuleController->insertTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after');
// 2007. 10. Yeokingeul sent from the popup menu features 18 additional posts
$oModuleController->insertTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after');
// 2007. 10. The ability to receive 19 additional modular yeokingeul
$oModuleController->insertTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before');
return new Object();
}
/**
* A method to check if successfully installed
* @return bool
*/
function checkUpdate()
{
$oModuleModel = &getModel('module');
// 2007. 10. 17 posts deleted, even when the comments will be deleted trigger property
if(!$oModuleModel->getTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after')) return true;
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add Trackbacks
if(!$oModuleModel->getTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after')) return true;
// 2007. 10. Yeokingeul sent from the popup menu features 18 additional posts
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after')) return true;
// 2007. 10. The ability to receive 19 additional modular yeokingeul
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before')) return true;
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'trackback', 'controller', 'triggerCopyModule', 'after')) return true;
return false;
}
/**
* Execute update
* @return Object
*/
function moduleUpdate()
{
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
// 2007. 10. 17 posts deleted, even when the comments will be deleted trigger property
if(!$oModuleModel->getTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after'))
$oModuleController->insertTrigger('document.deleteDocument', 'trackback', 'controller', 'triggerDeleteDocumentTrackbacks', 'after');
// 2007. 10. 17 modules are deleted when you delete all registered triggers that add Trackbacks
if(!$oModuleModel->getTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after'))
$oModuleController->insertTrigger('module.deleteModule', 'trackback', 'controller', 'triggerDeleteModuleTrackbacks', 'after');
// 2007. 10. Yeokingeul sent from the popup menu features 18 additional posts
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after'))
$oModuleController->insertTrigger('document.getDocumentMenu', 'trackback', 'controller', 'triggerSendTrackback', 'after');
// 2007. 10. The ability to receive 19 additional modular yeokingeul
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before'))
$oModuleController->insertTrigger('module.dispAdditionSetup', 'trackback', 'view', 'triggerDispTrackbackAdditionSetup', 'before');
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'trackback', 'controller', 'triggerCopyModule', 'after'))
{
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'trackback', 'controller', 'triggerCopyModule', 'after');
}
return new Object(0, 'success_updated');
}
/**
* Re-generate the cache file
* @return void
*/
function recompileCache()
{
}
}
/* End of file trackback.class.php */
/* Location: ./modules/trackback/trackback.class.php */

View file

@ -1,398 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* trackbackController class
* trackback module's Controller class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackController extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Trackbacks sent
* @return object
*/
function procTrackbackSend()
{
// Yeokingeul to post numbers and shipping addresses Wanted
$document_srl = Context::get('target_srl');
$trackback_url = Context::get('trackback_url');
$charset = Context::get('charset');
if(!$document_srl || !$trackback_url || !$charset) return new Object(-1, 'msg_invalid_request');
// Login Information Wanted
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl) return new Object(-1, 'msg_not_permitted');
// Posts of the information obtained permission to come and check whether
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
if(!$oDocument->isExists() || !$oDocument->getSummary()) return new Object(-1, 'msg_invalid_request');
if($oDocument->getMemberSrl() != $logged_info->member_srl) return new Object(-1, 'msg_not_permitted');
// Specify the title of the module, the current article
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($oDocument->get('module_srl'));
Context::setBrowserTitle($module_info->browser_title);
// Shipping yeokingeul
$output = $this->sendTrackback($oDocument, $trackback_url, $charset);
if($output->toBool() && !in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
{
global $lang;
htmlHeader();
alertScript($lang->success_registed);
reload(true);
closePopupScript();
htmlFooter();
Context::close();
exit;
}
return $output;
}
/**
* Trackback List
* @return void
*/
function procTrackbackGetList()
{
if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted');
$trackbackSrls = Context::get('trackback_srls');
if($trackbackSrls) $trackbackSrlList = explode(',', $trackbackSrls);
global $lang;
if(count($trackbackSrlList) > 0)
{
$oTrackbackAdminModel = &getAdminModel('trackback');
$args->trackbackSrlList = $trackbackSrlList;
$args->list_count = 100;
$output = $oTrackbackAdminModel->getTotalTrackbackList($args);
if(is_array($output->data)) $trackbackList = $output->data;
else
{
unset($_SESSION['trackback_management']);
$trackbackList = array();
$this->setMessage($lang->no_trackbacks);
}
}
else
{
$trackbackList = array();
$this->setMessage($lang->no_trackbacks);
}
$oSecurity = new Security($trackbackList);
$oSecurity->encodeHTML('..title', '..blog_name', '..excerpt');
$this->add('trackback_list', $trackbackList);
}
/**
* Trackbacks send documents from the popup menu add a menu
* @parma array $menu_list
*/
function triggerSendTrackback(&$menu_list)
{
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl) return new Object();
// Post number and the current login information requested Wanted
$document_srl = Context::get('target_srl');
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
if(!$oDocument->isExists()) return new Object();
if($oDocument->getMemberSrl() != $logged_info->member_srl) return new Object();
// Add a link sent yeokingeul
$oDocumentController = &getController('document');
$url = getUrl('','module','trackback','act','dispTrackbackSend','document_srl', $document_srl);
$oDocumentController->addDocumentPopupMenu($url,'cmd_send_trackback','','popup');
return new Object();
}
/**
* Delete document in the document to delete the trigger Trackbacks
* @param object $obj
* @return Object
*/
function triggerDeleteDocumentTrackbacks(&$obj)
{
$document_srl = $obj->document_srl;
if(!$document_srl) return new Object();
return $this->deleteTrackbacks($document_srl, true);
}
/**
* Deletion module that deletes all the trigger yeokingeul
* @param object $obj
* @return Object
*/
function triggerDeleteModuleTrackbacks(&$obj)
{
$module_srl = $obj->module_srl;
if(!$module_srl) return new Object();
$oTrackbackController = &getAdminController('trackback');
return $oTrackbackController->deleteModuleTrackbacks($module_srl);
}
/**
* Trackback inserted
* @return Object
*/
function trackback()
{
// Output is set to XMLRPC
Context::setRequestMethod("XMLRPC");
// When receiving the necessary variables yeokingeul Wanted
$obj = Context::gets('document_srl','blog_name','url','title','excerpt');
if(!$obj->document_srl || !$obj->url || !$obj->title || !$obj->excerpt) return $this->stop('msg_invalid_request');
// Checks for correct trackback url
$given_key = Context::get('key');
$oTrackbackModel = &getModel('trackback');
$key = $oTrackbackModel->getTrackbackKey($obj->document_srl);
if($key != $given_key) return $this->stop('msg_invalid_key');
// Yeokingeul module out of the default settings
$module_srl = Context::get('module_srl');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModulePartConfig('trackback', $module_srl);
$enable_trackback = $config->enable_trackback;
if(!$enable_trackback)
{
$config = $oModuleModel->getModuleConfig('trackback');
$enable_trackback = $config->enable_trackback;
}
// If managers were banned does not Trackbacks
if($enable_trackback == 'N') return $this->stop('msg_disable_trackback');
return $this->insertTrackback($obj);
}
/**
* Trackback inserted
* @param object $obj
* @param bool $manual_inserted
* @return Object
*/
function insertTrackback($obj, $manual_inserted = false)
{
// List trackback
$obj = Context::convertEncoding($obj);
if(!$obj->blog_name) $obj->blog_name = $obj->title;
$obj->excerpt = strip_tags($obj->excerpt);
// Call a trigger (before)
$output = ModuleHandler::triggerCall('trackback.insertTrackback', 'before', $obj);
if(!$output->toBool()) return $output;
// Document_srl see passed in GET, if an error ~
$document_srl = $obj->document_srl;
if(!$manual_inserted)
{
// Imported document model object, it permits you to wonbongeul
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
// If you do not allow two or trackback wonbongeul error display
if(!$oDocument->isExists()) return $this->stop('fail');
if(!$oDocument->allowTrackback()) return new Object(-1,'fail');
$obj->module_srl = $oDocument->get('module_srl');
}
// Enter Trackbacks
$obj->trackback_srl = getNextSequence();
$obj->list_order = $obj->trackback_srl*-1;
$output = executeQuery('trackback.insertTrackback', $obj);
if(!$output->toBool()) return $output;
// If there is more to enter the article number yeokingeul Rounds
if(!$manual_inserted)
{
// trackback model object creation
$oTrackbackModel = &getModel('trackback');
// All the article number yeokingeul guhaeom
$trackback_count = $oTrackbackModel->getTrackbackCount($document_srl);
// document controller object creation
$oDocumentController = &getController('document');
// Update the number of posts that yeokingeul
$output = $oDocumentController->updateTrackbackCount($document_srl, $trackback_count);
// Return result
if(!$output->toBool()) return $output;
}
// Notify wonbongeul (notify_message) if there is a Send a message
if(!$manual_inserted) $oDocument->notify(Context::getLang('trackback'), $obj->excerpt);
// Call a trigger (after)
$output = ModuleHandler::triggerCall('trackback.insertTrackback', 'after', $obj);
if(!$output->toBool()) return $output;
return new Object();
}
/**
* Deleting a single yeokingeul
* @param int $trackback_srl
* @param bool $is_admin
* @return object
*/
function deleteTrackback($trackback_srl, $is_admin = false)
{
// trackback model object creation
$oTrackbackModel = &getModel('trackback');
// Make sure that you want to delete Trackbacks
$trackback = $oTrackbackModel->getTrackback($trackback_srl);
if($trackback->data->trackback_srl != $trackback_srl) return new Object(-1, 'msg_invalid_request');
$document_srl = $trackback->data->document_srl;
// Call a trigger (before)
$output = ModuleHandler::triggerCall('trackback.deleteTrackback', 'before', $trackback);
if(!$output->toBool()) return $output;
// Create a document model object
$oDocumentModel = &getModel('document');
// Check if a permossion is granted
if(!$is_admin && !$oDocumentModel->isGranted($document_srl)) return new Object(-1, 'msg_not_permitted');
$args->trackback_srl = $trackback_srl;
$output = executeQuery('trackback.deleteTrackback', $args);
if(!$output->toBool()) return new Object(-1, 'msg_error_occured');
// Obtain the number of yeokingeul Update
$trackback_count = $oTrackbackModel->getTrackbackCount($document_srl);
// document controller object creation
$oDocumentController = &getController('document','controller');
// Update the number of posts that yeokingeul
$output = $oDocumentController->updateTrackbackCount($document_srl, $trackback_count);
$output->add('document_srl', $document_srl);
// Call a trigger (before)
$output = ModuleHandler::triggerCall('trackback.deleteTrackback', 'after', $trackback);
if(!$output->toBool()) return $output;
return $output;
}
/**
* Delete All RSS Trackback
* @param int $document_srl
* @return object
*/
function deleteTrackbacks($document_srl)
{
// Delete
$args = new stdClass();
$args->document_srl = $document_srl;
$output = executeQuery('trackback.deleteTrackbacks', $args);
return $output;
}
/**
* Trackbacks sent to
* After sending the results are not sticky and handling
* @param documentItem $oDocument
* @param string $trackback_url
* @param string $charset
* @return Object
*/
function sendTrackback($oDocument, $trackback_url, $charset)
{
$oModuleController = &getController('module');
// Information sent by
$http = parse_url($trackback_url);
$obj->blog_name = str_replace(array('&lt;','&gt;','&amp;','&quot;'), array('<','>','&','"'), Context::getBrowserTitle());
$oModuleController->replaceDefinedLangCode($obj->blog_name);
$obj->title = $oDocument->getTitleText();
$obj->excerpt = $oDocument->getSummary(200);
$obj->url = getFullUrl('','document_srl',$oDocument->document_srl);
// blog_name, title, excerpt, url charset of the string to the requested change
if($charset && function_exists('iconv'))
{
foreach($obj as $key=>$val)
{
$obj->{$key} = iconv('UTF-8',$charset,$val);
}
}
$content = sprintf(
"title=%s&".
"url=%s&".
"blog_name=%s&".
"excerpt=%s",
urlencode($obj->title),
urlencode($obj->url),
urlencode($obj->blog_name),
urlencode($obj->excerpt)
);
$buff = FileHandler::getRemoteResource($trackback_url, $content, 3, 'POST', 'application/x-www-form-urlencoded');
$oXmlParser = new XmlParser();
$xmlDoc = $oXmlParser->parse($buff);
if($xmlDoc->response->error->body == '0')
{
return new Object(0, 'msg_trackback_send_success');
}
else
{
if($xmlDoc->response->message->body)
{
return new Object(-1, sprintf('%s: %s', Context::getLang('msg_trackback_send_failed'), $xmlDoc->response->message->body));
}
else
{
return new Object(-1, 'msg_trackback_send_failed');
}
}
}
/**
* Within a specific time of a specific ipaddress Trackbacks delete all
* @param int $time
* @param string $ipaddress
* @param string $url
* @param string $blog_name
* @param string $title
* @param string $excerpt
* @return void
*/
function deleteTrackbackSender($time, $ipaddress, $url, $blog_name, $title, $excerpt)
{
$obj->regdate = date("YmdHis",$_SERVER['REQUEST_TIME']-$time);
$obj->ipaddress = $ipaddress;
$obj->url = $url;
$obj->blog_name = $blog_name;
$obj->title = $title;
$obj->excerpt = $excerpt;
$output = executeQueryArray('trackback.getRegistedTrackbacks', $obj);
if(!$output->data || !count($output->data)) return;
foreach($output->data as $trackback)
{
$trackback_srl = $trackback->trackback_srl;
$this->deleteTrackback($trackback_srl, true);
}
}
function triggerCopyModule(&$obj)
{
$oModuleModel = &getModel('module');
$trackbackConfig = $oModuleModel->getModulePartConfig('trackback', $obj->originModuleSrl);
$oModuleController = &getController('module');
if(is_array($obj->moduleSrlList))
{
foreach($obj->moduleSrlList AS $key=>$moduleSrl)
{
$oModuleController->insertModulePartConfig('trackback', $moduleSrl, $trackbackConfig);
}
}
}
}
/* End of file trackback.controller.php */
/* Location: ./modules/trackback/trackback.controller.php */

View file

@ -1,195 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* trackbackModel class
* trackback module model class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackModel extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Wanted a trackback information
* @param int $trackback_srl
* @param array $columnList
* @return object
*/
function getTrackback($trackback_srl, $columnList = array())
{
$args->trackback_srl = $trackback_srl;
$output = executeQuery('trackback.getTrackback', $args, $columnList);
return $output;
}
/**
* Trackbacks document_srl corresponding to the bringing of the total number of
* @param int $document_srl
* @return int
*/
function getTrackbackCount($document_srl)
{
$args->document_srl = $document_srl;
$output = executeQuery('trackback.getTrackbackCount', $args);
$total_count = $output->data->count;
return (int)$total_count;
}
/**
* Trackbacks module_srl corresponding to the bringing of the total number of
* @param int $module_srl
* @return int
*/
function getTrackbackAllCount($module_srl)
{
$args->module_srl = $module_srl;
$output = executeQuery('trackback.getTrackbackCount', $args);
$total_count = $output->data->count;
return (int)$total_count;
}
/**
* For a particular document to a specific ip number of trackbacks recorded
* Im spamfilter method used in
* @param int $document_srl
* @param string $ipaddress
* @return int
*/
function getTrackbackCountByIPAddress($document_srl, $ipaddress)
{
$args->document_srl = $document_srl;
$args->ipaddress = $ipaddress;
$output = executeQuery('trackback.getTrackbackCountByIPAddress', $args);
$total_count = $output->data->count;
return (int)$total_count;
}
/**
* Trackbacks certain documents belonging to the bringing of the list
* @param int $document_srl
* @return array
*/
function getTrackbackList($document_srl)
{
$args->document_srl = $document_srl;
$args->list_order = 'list_order';
$output = executeQuery('trackback.getTrackbackList', $args);
if(!$output->toBool()) return $output;
$trackback_list = $output->data;
if(!is_array($trackback_list)) $trackback_list = array($trackback_list);
return $trackback_list;
}
/**
* Bringing a mid Trackbacks
* @param object $obj
* @return object
*/
function getNewestTrackbackList($obj)
{
if($obj->mid)
{
$oModuleModel = &getModel('module');
$obj->module_srl = $oModuleModel->getModuleSrlByMid($obj->mid);
unset($obj->mid);
}
// Module_srl passed the array may be a check whether the array
if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
else $args->module_srl = $obj->module_srl;
$args->list_count = $obj->list_count;
if($obj->site_srl) $args->site_srl = (int)$obj->site_srl;
$args->sort_index = 'trackbacks.list_order';
$args->order = 'asc';
$output = executeQueryArray('trackback.getNewestTrackbackList', $args);
return $output;
}
/**
* Return to a specific set of modules trackback
* @param int $module_srl
* @return object
*/
function getTrackbackModuleConfig($module_srl)
{
// Bringing trackback module config
$oModuleModel = &getModel('module');
$module_trackback_config = $oModuleModel->getModulePartConfig('trackback', $module_srl);
if(!$module_trackback_config)
{
$trackback_config = $oModuleModel->getModuleConfig('trackback');
$module_trackback_config = new stdClass();
$module_trackback_config->enable_trackback = $trackback_config->enable_trackback!='N'?'Y':'N';
}
$module_trackback_config->module_srl = $module_srl;
return $module_trackback_config;
}
/**
* Fixed in time for the entire yeokingeul Wanted to Register
* @param int $time
* @param string $ipaddress
* @param string $url
* @param string $blog_name
* @param string $title
* @param string excerpt
* @return int
*/
function getRegistedTrackback($time, $ipaddress, $url, $blog_name, $title, $excerpt)
{
$obj->regdate = date("YmdHis",$_SERVER['REQUEST_TIME']-$time);
$obj->ipaddress = $ipaddress;
$obj->url = $url;
$obj->blog_name = $blog_name;
$obj->title = $title;
$obj->excerpt = $excerpt;
$output = executeQuery('trackback.getRegistedTrackback', $obj);
return $output->data->count;
}
/**
* Return by creating a trackback url
* Adds the key value in the trackback url.
* @param int $document_srl
* @return string
*/
function getTrackbackUrl($document_srl, $mid = NULL)
{
$url = getFullUrl('', 'mid', $mid, 'document_srl',$document_srl,'act','trackback','key',$this->getTrackbackKey($document_srl));
return $url;
}
/**
* Return keys by generating
* db key value information, plus a 10 minute off-duty time together and hash values and deal with the results
* So was extended only url, 1, 10, 20-digit combination of letters only, one return
* @param int $document_srl
* @return string
*/
function getTrackbackKey($document_srl)
{
$time = (int) ($_SERVER['REQUEST_TIME']/(60*10));
$db_info = Context::getDBInfo();
$key = md5($document_srl.$db_info->db_password.$time);
return sprintf("%s%s%s",substr($key,1,1),substr($key,10,1),substr($key,20,1));
}
}
/* End of file trackback.model.php */
/* Location: ./modules/trackback/trackback.model.php */

View file

@ -1,78 +0,0 @@
<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* @class trackbackView
* @brief trackback module's view class
*
* @author NAVER (developers@xpressengine.com)
* @package /modules/trackback
* @version 0.1
*/
class trackbackView extends trackback
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Display output list (administrative)
* @return void
*/
function dispTrackbackSend()
{
$document_srl = Context::get('document_srl');
if(!$document_srl) return $this->stop('msg_invalid_request');
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl) return $this->stop('msg_not_permitted');
// Wanted Original article information
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
if(!$oDocument->isExists()) return $this->stop('msg_invalid_document');
if($oDocument->isSecret()) return $this->stop('msg_invalid_request');
if($oDocument->getMemberSrl() != $logged_info->member_srl) return $this->stop('msg_not_permitted');
Context::set('oDocument', $oDocument);
// Set a template
$this->setLayoutFile('popup_layout');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('send_trackback_form');
}
/**
* An additional set of parts for a service module
* Use the form out of the settings for trackback
* @param string $obj
* @return Object
*/
function triggerDispTrackbackAdditionSetup(&$obj)
{
$current_module_srl = Context::get('module_srl');
$current_module_srls = Context::get('module_srls');
if(!$current_module_srl && !$current_module_srls)
{
// Get information of the current module
$current_module_info = Context::get('current_module_info');
$current_module_srl = $current_module_info->module_srl;
if(!$current_module_srl) return new Object();
}
// Imported trackback settings of the selected module
$oTrackbackModel = &getModel('trackback');
$trackback_config = $oTrackbackModel->getTrackbackModuleConfig($current_module_srl);
Context::set('trackback_config', $trackback_config);
// Set a template file
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'trackback_module_config');
$obj .= $tpl;
return new Object();
}
}
/* End of file trackback.view.php */
/* Location: ./modules/trackback/trackback.view.php */