mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 08:49:56 +09:00
게시글 연동 구글 애드센스 애드온 추가
git-svn-id: http://xe-core.googlecode.com/svn/trunk@1934 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
8c09488be4
commit
c2699bb91b
3 changed files with 149 additions and 0 deletions
76
addons/google_adsense/conf/info.xml
Normal file
76
addons/google_adsense/conf/info.xml
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">게시글 구글 애드센스 연동</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<description xml:lang="ko">
|
||||
게시글의 상/하단에 구글 애드센스를 추가할 수 있습니다.
|
||||
추가확장폼에서 사용자에게 구글애드센스 코드를 받게 하여 글쓴이와 연동되는 애드센스 출력이 가능합니다.
|
||||
이 기능을 사용하지 않거나 사용자가 애드센스 코드를 입력하지 않았다면 기본으로 설정된 애드센스 코드가 사용됩니다.
|
||||
색상을 입력할때는 # 을 제외한 나머지 6자리의 색상코드를 입력해주세요.
|
||||
위치를 top 또는 bottom을 입력하시면 게시글 상단 또는 하단에 광고를 출력할 수 있습니다.
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="position">
|
||||
<title xml:lang="ko">위치</title>
|
||||
<description xml:lang="ko">top : 게시글 상단, bottom : 게시글 하단 을 지정하실 수 있습니다.</description>
|
||||
</var>
|
||||
<var name="ad_client">
|
||||
<title xml:lang="ko">구글 애드센스 키</title>
|
||||
<description xml:lang="ko">기본으로 사용될 구글 애드센스 키를 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="user_ad_client">
|
||||
<title xml:lang="ko">회원 키 항목 이름</title>
|
||||
<description xml:lang="ko">회원의 구글 애드센스를 허락하시려면 가입항목중 구글 키 입력 항목 이름을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ad_width">
|
||||
<title xml:lang="ko">가로 길이</title>
|
||||
<description xml:lang="ko">애드센스의 가로길이를 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ad_height">
|
||||
<title xml:lang="ko">세로 길이</title>
|
||||
<description xml:lang="ko">애드센스의 세로길이를 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ad_format">
|
||||
<title xml:lang="ko">포맷</title>
|
||||
<description xml:lang="ko">애드센스 포맷을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ad_type">
|
||||
<title xml:lang="ko">타입</title>
|
||||
<description xml:lang="ko">애드센스의 타입을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ad_channel">
|
||||
<title xml:lang="ko">채널</title>
|
||||
<description xml:lang="ko">채널을 입력해주세요. (사용자 정의 구글 애드센스일 경우 사용되지 않습니다)</description>
|
||||
</var>
|
||||
<var name="color_border">
|
||||
<title xml:lang="ko">외곽선 색상</title>
|
||||
<description xml:lang="ko">외곽선 색상을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="color_bg">
|
||||
<title xml:lang="ko">배경색</title>
|
||||
<description xml:lang="ko">배경색상을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="link_color">
|
||||
<title xml:lang="ko">링크 글자색</title>
|
||||
<description xml:lang="ko">링크가 걸린 글자의 색상을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="text_color">
|
||||
<title xml:lang="ko">글자 색 </title>
|
||||
<description xml:lang="ko">링크가 걸리지 않은 글자의 색을 입력해주세요</description>
|
||||
</var>
|
||||
<var name="url_color">
|
||||
<title xml:lang="ko">URL 색</title>
|
||||
<description xml:lang="ko">URL의 글자색을 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="ui_features">
|
||||
<title xml:lang="ko">테두리 형태</title>
|
||||
<description xml:lang="ko">테두리 형태를 입력해주세요.</description>
|
||||
</var>
|
||||
<var name="background_image">
|
||||
<title xml:lang="ko">배경 이미지를 입력해주세요.</title>
|
||||
<description xml:lang="ko">접근가능한 웹서버에 올린 배경 이미지의 URL을 입력해주세요.</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</addon>
|
||||
23
addons/google_adsense/google_adsense.addon.php
Normal file
23
addons/google_adsense/google_adsense.addon.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
if(!defined("__ZBXE__")) exit();
|
||||
|
||||
/**
|
||||
* @file google_adsense.addon.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief google_adsense를 게시글의 상/하단에 출력할 수 있도록 한다.
|
||||
*
|
||||
* 모든 출력이 끝난후에 사용이 됨.
|
||||
**/
|
||||
|
||||
// called_position이 before_module_init일때만 실행
|
||||
if($called_position != 'before_display_content' || Context::getResponseMethod()=="XMLRPC") return;
|
||||
|
||||
require_once("./addons/google_adsense/google_adsense.lib.php");
|
||||
|
||||
if($addon_info->position == "top") $pos_regx = "!<\!--BeforeDocument\(([0-9]+),([0-9]+)\)-->!is";
|
||||
else $pos_regx = "!<\!--AfterDocument\(([0-9]+),([0-9]+)\)-->!is";
|
||||
|
||||
$GLOBALS['__g_addon_info__'] = $addon_info;
|
||||
|
||||
$output = preg_replace_callback($pos_regx, matchDocument, $output);
|
||||
?>
|
||||
50
addons/google_adsense/google_adsense.lib.php
Normal file
50
addons/google_adsense/google_adsense.lib.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
function matchDocument($matches) {
|
||||
$addon_info = $GLOBALS['__g_addon_info__'];
|
||||
|
||||
$source_code = $matches[0];
|
||||
$document_srl = $matches[1];
|
||||
$member_srl = $matches[2];
|
||||
|
||||
// 사용자 입력을 지원하면 해당 회원의 정보에서 구글 키를 가져옴
|
||||
if($member_srl && $addon_info->user_ad_client) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
$key = $member_info->{$addon_info->user_ad_client};
|
||||
if($key) $addon_info->ad_client = $key;
|
||||
}
|
||||
|
||||
$adsense_code = addAdSense($addon_info);
|
||||
|
||||
return $source_code.$adsense_code;
|
||||
}
|
||||
|
||||
function addAdSense($addon_info) {
|
||||
$script_code = <<<EndOfScript
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "{$addon_info->ad_client}";
|
||||
google_ad_width = "{$addon_info->ad_width}";
|
||||
google_ad_height = "{$addon_info->ad_height}";
|
||||
google_ad_format = "{$addon_info->ad_format}";
|
||||
google_ad_type = "{$addon_info->ad_format}";
|
||||
google_ad_channel = "{$addon_info->ad_type}";
|
||||
google_color_border = "{$addon_info->color_border}";
|
||||
google_color_bg = "{$addon_info->color_bg}";
|
||||
google_color_link = "{$addon_info->link_color}";
|
||||
google_color_text = "{$addon_info->text_color}";
|
||||
google_color_url = "{$addon_info->url_color}";
|
||||
google_ui_features = "{$addon_info->ui_features}";
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
|
||||
EndOfScript;
|
||||
|
||||
if($addon_info->background_image) $backgroundStyle = sprintf('background-image:url(%s)', $addon_info->background_image);
|
||||
|
||||
$script_code = sprintf('<div style="width:%dpx;height:%dpx;%s;margin:10px 0 10px 0px;">%s</div>',$addon_info->ad_width, $addon_info->ad_height, $backgroundStyle, $script_code);
|
||||
|
||||
return $script_code;
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue