mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-02 16:52:16 +09:00
Author name update.
NHN developers@xpressengine.com http://xpressengine.com/ git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7676 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7d1fa86e5c
commit
8f385a592b
603 changed files with 67379 additions and 67522 deletions
|
|
@ -1,65 +1,65 @@
|
|||
<?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">Point System</title>
|
||||
<title xml:lang="vi">Hệ thống điểm</title>
|
||||
<title xml:lang="es">Sistema de Punto</title>
|
||||
<title xml:lang="ru">Система поитов</title>
|
||||
<title xml:lang="zh-TW">點數系統</title>
|
||||
<description xml:lang="ko">
|
||||
글작성/삭제/댓글작성/삭제시에 포인트를 부여할 수 있습니다.
|
||||
포인트마다 레벨을 지정하여 사용자 이름 앞에 아이콘을 표시할 수도 있습니다.
|
||||
단 포인트 관련 애드온을 활성화 시키셔야 됩니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可以在发表/删除新帖,发表/删除评论时,付与相应积分。
|
||||
也可以以积分设置级别,并在用户名前显示级别图标。
|
||||
必须是先激活积分系统才可以使用。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
書き込み作成・削除/コメント作成・削除の活動に対するポイントを計算するシステムです。
|
||||
ポイントごとレベルを指定してユーザ名の前にアイコンを表示させることが出来ます。
|
||||
但し、ポイントシステムアドオンを「使用」に設定しないと作動しません。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
You can grant point on writing/deleting/adding comments/deleting comments.
|
||||
You can also display point icon in front of user name by selecting level on each point.
|
||||
But to enable these functions, you need to activate point related addons.
|
||||
</description>
|
||||
<description xml:lang="vi">
|
||||
Bạn có thể cho hay trừ điểm của các thành viên khi Gửi bài, Xóa bài, Thêm bình luận, Xóa bình luận.
|
||||
bạn cũng có thể cho phép hiển thị Icon của cấp độ điểm trước tên sử dụng bằng việc lụa chọn Icon cấp độ điểm.
|
||||
Để kích hoạt chức năng này, bạn phải kích hoạt Addon Hệ thống điểm.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Usted puede entregar puntos a las acciones de escribir/eliminar/agregar comentarios/eliminar comentarios.
|
||||
Usted también puede mostrar el ícono de punto delande del nombre del usuario seleccionando el nivel sobre cada puntos.
|
||||
Pero para activar esas funciones, Usted necesita activar addon relacionado a los puntos.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Вы можете назначать поинты за написание/удаление/добавление комментариев/удаление комментариев.
|
||||
Вы также можете отображать икнку поинтов напротив имени пользователя, установив уровени для поинтов.
|
||||
Но чтобы включить эти функции, Вам надо активировать аддоны, относящиеся к поинтам.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
可在發表/刪除評論時,付出相對應的點數。
|
||||
也能以點數設置等級,並在用戶名稱前顯示等級圖示。
|
||||
但是必須先啟用點數系統才能使用。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-07-26</date>
|
||||
<category>member</category>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="vi">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
</module>
|
||||
<?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">Point System</title>
|
||||
<title xml:lang="vi">Hệ thống điểm</title>
|
||||
<title xml:lang="es">Sistema de Punto</title>
|
||||
<title xml:lang="ru">Система поитов</title>
|
||||
<title xml:lang="zh-TW">點數系統</title>
|
||||
<description xml:lang="ko">
|
||||
글작성/삭제/댓글작성/삭제시에 포인트를 부여할 수 있습니다.
|
||||
포인트마다 레벨을 지정하여 사용자 이름 앞에 아이콘을 표시할 수도 있습니다.
|
||||
단 포인트 관련 애드온을 활성화 시키셔야 됩니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可以在发表/删除新帖,发表/删除评论时,付与相应积分。
|
||||
也可以以积分设置级别,并在用户名前显示级别图标。
|
||||
必须是先激活积分系统才可以使用。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
書き込み作成・削除/コメント作成・削除の活動に対するポイントを計算するシステムです。
|
||||
ポイントごとレベルを指定してユーザ名の前にアイコンを表示させることが出来ます。
|
||||
但し、ポイントシステムアドオンを「使用」に設定しないと作動しません。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
You can grant point on writing/deleting/adding comments/deleting comments.
|
||||
You can also display point icon in front of user name by selecting level on each point.
|
||||
But to enable these functions, you need to activate point related addons.
|
||||
</description>
|
||||
<description xml:lang="vi">
|
||||
Bạn có thể cho hay trừ điểm của các thành viên khi Gửi bài, Xóa bài, Thêm bình luận, Xóa bình luận.
|
||||
bạn cũng có thể cho phép hiển thị Icon của cấp độ điểm trước tên sử dụng bằng việc lụa chọn Icon cấp độ điểm.
|
||||
Để kích hoạt chức năng này, bạn phải kích hoạt Addon Hệ thống điểm.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Usted puede entregar puntos a las acciones de escribir/eliminar/agregar comentarios/eliminar comentarios.
|
||||
Usted también puede mostrar el ícono de punto delande del nombre del usuario seleccionando el nivel sobre cada puntos.
|
||||
Pero para activar esas funciones, Usted necesita activar addon relacionado a los puntos.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Вы можете назначать поинты за написание/удаление/добавление комментариев/удаление комментариев.
|
||||
Вы также можете отображать икнку поинтов напротив имени пользователя, установив уровени для поинтов.
|
||||
Но чтобы включить эти функции, Вам надо активировать аддоны, относящиеся к поинтам.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
可在發表/刪除評論時,付出相對應的點數。
|
||||
也能以點數設置等級,並在用戶名稱前顯示等級圖示。
|
||||
但是必須先啟用點數系統才能使用。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-07-26</date>
|
||||
<category>member</category>
|
||||
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NHN</name>
|
||||
<name xml:lang="vi">NHN</name>
|
||||
<name xml:lang="zh-CN">NHN</name>
|
||||
<name xml:lang="jp">NHN</name>
|
||||
<name xml:lang="en">NHN</name>
|
||||
<name xml:lang="es">NHN</name>
|
||||
<name xml:lang="ru">NHN</name>
|
||||
<name xml:lang="zh-TW">NHN</name>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/ko.lang.php
|
||||
* @author zero <zero@nzeo.com>
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief Default language pack of point module
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @archivo modules/point/lang/es.lang.php
|
||||
* @autor zero <zero@nzeo.com>
|
||||
* @autor NHN (developers@xpressengine.com)
|
||||
* @sumario Paqqete del idioma español del módulo de puntos
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/fr.lang.php
|
||||
* @author zero <zero@nzeo.com> Traduit par Pierre Duvent <PierreDuvent@gmail.com>
|
||||
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent <PierreDuvent@gmail.com>
|
||||
* @brief Paquet du langage en français pour le module de Point
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/jp.lang.php
|
||||
* @author zero <zero@nzeo.com> 翻訳:RisaPapa、ミニミ
|
||||
* @brief ポイント(point)モジュールの基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->point = 'ポイント';
|
||||
$lang->level = 'レベル';
|
||||
|
||||
$lang->about_point_module = 'ポイントモジュールでは、書き込み作成/コメント作成/アップロード/ダウンロードなどのユーザの活動に対してポイントの計算を行います。';
|
||||
$lang->about_act_config = '掲示板、ブログなどのモジュールごとに「書き込み作成・削除/コメント作成・削除」などのアクションがあります。掲示板/ブログ以外のモジュールにポイントシステムを連動させたい場合は、各機能のアクションの「act値」を追加します。連動は半角「,(コンマ)」で区切って追加します。';
|
||||
|
||||
$lang->max_level = '最高レベル';
|
||||
$lang->about_max_level = '最高レベルを指定することが出来ます。最高レベルは「1000」がマクシマムなので、レベルアイコンに注意が必要です。';
|
||||
|
||||
$lang->level_icon = 'レベルアイコン';
|
||||
$lang->about_level_icon = 'レベルアイコンは、「./modules/point/icons/レベル.gif」で指定されるため、最高レベルとアイコンセットが異なる場合があります。ご注意下さい。';
|
||||
|
||||
$lang->point_name = 'ポイント名';
|
||||
$lang->about_point_name = 'ポイントの名前、単位が指定出来ます。';
|
||||
|
||||
$lang->level_point = 'レベルポイント';
|
||||
$lang->about_level_point = '下の各レベルのポイントが増加したり、減少するとレベルが調整されます。';
|
||||
|
||||
$lang->disable_download = 'ダウンロード禁止';
|
||||
$lang->about_disable_download = 'チェックするとポイントがない場合、ダウンロードを禁止します(イメージファイル除外)。';
|
||||
$lang->disable_read_document = '閲覧禁止';
|
||||
$lang->about_disable_read_document = 'ポイントがない場合、閲覧を禁止します。';
|
||||
|
||||
$lang->level_point_calc = 'レベル別ポイント計算';
|
||||
$lang->expression = 'レベル変数<b>i</b>を使用してJavaスクリプト数式を入力して下さい(例: Math.pow(i, 2) * 90)。';
|
||||
$lang->cmd_exp_calc = '計算';
|
||||
$lang->cmd_exp_reset = '初期化';
|
||||
|
||||
$lang->cmd_point_recal = 'ポイントの初期化';
|
||||
$lang->about_cmd_point_recal = '書き込み/コメント/添付ファイル/会員登録のポイントのみ取り、全ての他のポイントを初期化します。<br />但し、会員登録ポイントは初期化後、該当会員の活動がスタートしたら付与されます。<br />データ移管などによるポイントを完全に初期化する必要がある場合など、利用は慎重に行なって下さい。';
|
||||
|
||||
$lang->point_link_group = 'グループ連動';
|
||||
$lang->point_group_reset_and_add = '設定されたグループの初期化後、新規グループに付与';
|
||||
$lang->point_group_add_only = '新規グループのみ付与';
|
||||
$lang->about_point_link_group = 'グループにレベルを指定すると、該当レベルになったらグループが変更されます。';
|
||||
|
||||
$lang->about_module_point = 'モジュール別にポイントを指定することが出来ますが、指定されていないモジュールでは、デフォルトポイントが使用されます。すべてのポイント数は、反対のアクションを行った際には原状復帰されます。';
|
||||
|
||||
$lang->point_signup = '加入';
|
||||
$lang->point_insert_document = '書き込み作成';
|
||||
$lang->point_delete_document = '書き込み削除';
|
||||
$lang->point_insert_comment = 'コメント作成';
|
||||
$lang->point_delete_comment = 'コメント削除';
|
||||
$lang->point_upload_file = 'アップロード';
|
||||
$lang->point_delete_file = 'ファイル削除';
|
||||
$lang->point_download_file = 'ダウンロード';
|
||||
$lang->point_read_document = '書き込み閲覧';
|
||||
$lang->point_voted = '推薦';
|
||||
$lang->point_blamed = '非推薦';
|
||||
|
||||
$lang->cmd_point_config = 'デフォルト設定';
|
||||
$lang->cmd_point_module_config = 'モジュール別設定';
|
||||
$lang->cmd_point_act_config = '機能別アクション設定';
|
||||
$lang->cmd_point_member_list = '会員ポイントリスト';
|
||||
|
||||
$lang->msg_cannot_download = 'ポイントが不足しているため、ダウンロード出来ません。';
|
||||
$lang->msg_disallow_by_point = "ポイントが不足しているため、閲覧が出来ません。(必要ポイント : %d、 保有ポイント : %d)";
|
||||
|
||||
$lang->point_recal_message = 'ただ今ポイントを適用しています。 (%d / %d)';
|
||||
$lang->point_recal_finished = 'ポイント再計算が完了しました。';
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/jp.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻訳:RisaPapa、ミニミ
|
||||
* @brief ポイント(point)モジュールの基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->point = 'ポイント';
|
||||
$lang->level = 'レベル';
|
||||
|
||||
$lang->about_point_module = 'ポイントモジュールでは、書き込み作成/コメント作成/アップロード/ダウンロードなどのユーザの活動に対してポイントの計算を行います。';
|
||||
$lang->about_act_config = '掲示板、ブログなどのモジュールごとに「書き込み作成・削除/コメント作成・削除」などのアクションがあります。掲示板/ブログ以外のモジュールにポイントシステムを連動させたい場合は、各機能のアクションの「act値」を追加します。連動は半角「,(コンマ)」で区切って追加します。';
|
||||
|
||||
$lang->max_level = '最高レベル';
|
||||
$lang->about_max_level = '最高レベルを指定することが出来ます。最高レベルは「1000」がマクシマムなので、レベルアイコンに注意が必要です。';
|
||||
|
||||
$lang->level_icon = 'レベルアイコン';
|
||||
$lang->about_level_icon = 'レベルアイコンは、「./modules/point/icons/レベル.gif」で指定されるため、最高レベルとアイコンセットが異なる場合があります。ご注意下さい。';
|
||||
|
||||
$lang->point_name = 'ポイント名';
|
||||
$lang->about_point_name = 'ポイントの名前、単位が指定出来ます。';
|
||||
|
||||
$lang->level_point = 'レベルポイント';
|
||||
$lang->about_level_point = '下の各レベルのポイントが増加したり、減少するとレベルが調整されます。';
|
||||
|
||||
$lang->disable_download = 'ダウンロード禁止';
|
||||
$lang->about_disable_download = 'チェックするとポイントがない場合、ダウンロードを禁止します(イメージファイル除外)。';
|
||||
$lang->disable_read_document = '閲覧禁止';
|
||||
$lang->about_disable_read_document = 'ポイントがない場合、閲覧を禁止します。';
|
||||
|
||||
$lang->level_point_calc = 'レベル別ポイント計算';
|
||||
$lang->expression = 'レベル変数<b>i</b>を使用してJavaスクリプト数式を入力して下さい(例: Math.pow(i, 2) * 90)。';
|
||||
$lang->cmd_exp_calc = '計算';
|
||||
$lang->cmd_exp_reset = '初期化';
|
||||
|
||||
$lang->cmd_point_recal = 'ポイントの初期化';
|
||||
$lang->about_cmd_point_recal = '書き込み/コメント/添付ファイル/会員登録のポイントのみ取り、全ての他のポイントを初期化します。<br />但し、会員登録ポイントは初期化後、該当会員の活動がスタートしたら付与されます。<br />データ移管などによるポイントを完全に初期化する必要がある場合など、利用は慎重に行なって下さい。';
|
||||
|
||||
$lang->point_link_group = 'グループ連動';
|
||||
$lang->point_group_reset_and_add = '設定されたグループの初期化後、新規グループに付与';
|
||||
$lang->point_group_add_only = '新規グループのみ付与';
|
||||
$lang->about_point_link_group = 'グループにレベルを指定すると、該当レベルになったらグループが変更されます。';
|
||||
|
||||
$lang->about_module_point = 'モジュール別にポイントを指定することが出来ますが、指定されていないモジュールでは、デフォルトポイントが使用されます。すべてのポイント数は、反対のアクションを行った際には原状復帰されます。';
|
||||
|
||||
$lang->point_signup = '加入';
|
||||
$lang->point_insert_document = '書き込み作成';
|
||||
$lang->point_delete_document = '書き込み削除';
|
||||
$lang->point_insert_comment = 'コメント作成';
|
||||
$lang->point_delete_comment = 'コメント削除';
|
||||
$lang->point_upload_file = 'アップロード';
|
||||
$lang->point_delete_file = 'ファイル削除';
|
||||
$lang->point_download_file = 'ダウンロード';
|
||||
$lang->point_read_document = '書き込み閲覧';
|
||||
$lang->point_voted = '推薦';
|
||||
$lang->point_blamed = '非推薦';
|
||||
|
||||
$lang->cmd_point_config = 'デフォルト設定';
|
||||
$lang->cmd_point_module_config = 'モジュール別設定';
|
||||
$lang->cmd_point_act_config = '機能別アクション設定';
|
||||
$lang->cmd_point_member_list = '会員ポイントリスト';
|
||||
|
||||
$lang->msg_cannot_download = 'ポイントが不足しているため、ダウンロード出来ません。';
|
||||
$lang->msg_disallow_by_point = "ポイントが不足しているため、閲覧が出来ません。(必要ポイント : %d、 保有ポイント : %d)";
|
||||
|
||||
$lang->point_recal_message = 'ただ今ポイントを適用しています。 (%d / %d)';
|
||||
$lang->point_recal_finished = 'ポイント再計算が完了しました。';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/ko.lang.php
|
||||
* @author zero <zero@nzeo.com>
|
||||
* @brief 포인트 (point) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->point = '포인트';
|
||||
$lang->level = '레벨';
|
||||
|
||||
$lang->about_point_module = '포인트 모듈은 글 작성/댓글작성/업로드/다운로드 등의 행동을 할 때 포인트를 부여할 수 있게 합니다.';
|
||||
$lang->about_act_config = '게시판, 블로그 등 각 모듈마다 글 작성/삭제/댓글작성/삭제 등의 action이 있습니다.<br />게시판/블로그 외에 다른 모듈에 포인트 기능 연동을 하고 싶을 때는 각 기능에 맞는 act값을 추가 하시면 됩니다.<br />연결은 ,(콤마)로 하시면 됩니다.';
|
||||
|
||||
$lang->max_level = '최고 레벨';
|
||||
$lang->about_max_level = '최고레벨을 지정할 수 있습니다. 레벨 아이콘을 염두에 두셔야 하고 최고 레벨은 1000이 한계입니다.';
|
||||
|
||||
$lang->level_icon = '레벨 아이콘';
|
||||
$lang->about_level_icon = '레벨 아이콘은 ./modules/point/icons/레벨.gif 로 지정되며 최고레벨과 아이콘셋이 다를 수 있으니 주의해주세요!';
|
||||
|
||||
$lang->point_name = '포인트 명칭';
|
||||
$lang->about_point_name = '포인트 이름이나 단위를 정할 수 있습니다.';
|
||||
|
||||
$lang->level_point = '레벨 포인트';
|
||||
$lang->about_level_point = '각 회원의 포인트가 아래 레벨별 포인트에 도달하거나 미달하게 되면 해당 회원의 레벨이 조절됩니다.';
|
||||
|
||||
$lang->disable_download = '다운로드 금지';
|
||||
$lang->about_disable_download = '포인트가 부족할 경우 다운로드를 금지 합니다. (이미지 파일, 동영상 파일등 직접 링크가 가능한 파일들은 예외입니다.)';
|
||||
$lang->disable_read_document = '글 열람 금지';
|
||||
$lang->about_disable_read_document = '포인트가 부족할 경우 글 열람을 금지 합니다';
|
||||
|
||||
$lang->level_point_calc = '레벨별 포인트 계산';
|
||||
$lang->expression = '레벨 변수 <b>i</b>를 사용하여 자바스크립트 수식을 입력하세요. 예: Math.pow(i, 2) * 90';
|
||||
$lang->cmd_exp_calc = '계산';
|
||||
$lang->cmd_exp_reset = '초기화';
|
||||
|
||||
$lang->cmd_point_recal = '포인트 초기화';
|
||||
$lang->about_cmd_point_recal = '게시글/댓글/첨부파일/회원가입 점수만 이용하여 모든 포인트 점수를 초기화 합니다.<br />회원 가입 점수는 초기화 후 해당 회원이 활동을 하면 부여되고 그 전에는 부여되지 않습니다.<br />데이터 이전 등을 하여 포인트를 완전히 초기화해야 할 경우에만 사용하세요.';
|
||||
|
||||
$lang->point_link_group = '그룹 연동';
|
||||
$lang->point_group_reset_and_add = '설정된 그룹 초기화 후 새 그룹 부여';
|
||||
$lang->point_group_add_only = '새 그룹만 부여';
|
||||
$lang->about_point_link_group = '그룹에 원하는 레벨을 지정하면, 회원의 포인트가 해당 레벨의 포인트에 도달할 때 그룹이 변경됩니다.';
|
||||
|
||||
$lang->about_module_point = '모듈별 포인트를 지정할 수 있으며 지정되지 않은 모듈은 기본 포인트를 이용합니다.<br />모든 점수는 반대 행동을 하였을 경우 원상복구 됩니다.';
|
||||
|
||||
$lang->point_signup = '가입';
|
||||
$lang->point_insert_document = '글 작성';
|
||||
$lang->point_delete_document = '글 삭제';
|
||||
$lang->point_insert_comment = '댓글 작성';
|
||||
$lang->point_delete_comment = '댓글 삭제';
|
||||
$lang->point_upload_file = '파일 업로드';
|
||||
$lang->point_delete_file = '파일 삭제';
|
||||
$lang->point_download_file = '파일 다운로드 (이미지 제외)';
|
||||
$lang->point_read_document = '게시글 조회';
|
||||
$lang->point_voted = '추천 받음';
|
||||
$lang->point_blamed = '비추천 받음';
|
||||
|
||||
$lang->cmd_point_config = '기본 설정';
|
||||
$lang->cmd_point_module_config = '모듈별 설정';
|
||||
$lang->cmd_point_act_config = '기능별 act 설정';
|
||||
$lang->cmd_point_member_list = '회원 포인트 목록';
|
||||
|
||||
$lang->msg_cannot_download = '포인트가 부족하여 다운로드를 하실 수 없습니다.';
|
||||
$lang->msg_disallow_by_point = "포인트가 부족하여 글을 읽으실 수 없습니다. (필요한 포인트 : %d, 현재 포인트 : %d)";
|
||||
|
||||
$lang->point_recal_message = '포인트 적용중입니다. (%d / %d)';
|
||||
$lang->point_recal_finished = '포인트 재계산이 완료되었습니다.';
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/ko.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 포인트 (point) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->point = '포인트';
|
||||
$lang->level = '레벨';
|
||||
|
||||
$lang->about_point_module = '포인트 모듈은 글 작성/댓글작성/업로드/다운로드 등의 행동을 할 때 포인트를 부여할 수 있게 합니다.';
|
||||
$lang->about_act_config = '게시판, 블로그 등 각 모듈마다 글 작성/삭제/댓글작성/삭제 등의 action이 있습니다.<br />게시판/블로그 외에 다른 모듈에 포인트 기능 연동을 하고 싶을 때는 각 기능에 맞는 act값을 추가 하시면 됩니다.<br />연결은 ,(콤마)로 하시면 됩니다.';
|
||||
|
||||
$lang->max_level = '최고 레벨';
|
||||
$lang->about_max_level = '최고레벨을 지정할 수 있습니다. 레벨 아이콘을 염두에 두셔야 하고 최고 레벨은 1000이 한계입니다.';
|
||||
|
||||
$lang->level_icon = '레벨 아이콘';
|
||||
$lang->about_level_icon = '레벨 아이콘은 ./modules/point/icons/레벨.gif 로 지정되며 최고레벨과 아이콘셋이 다를 수 있으니 주의해주세요!';
|
||||
|
||||
$lang->point_name = '포인트 명칭';
|
||||
$lang->about_point_name = '포인트 이름이나 단위를 정할 수 있습니다.';
|
||||
|
||||
$lang->level_point = '레벨 포인트';
|
||||
$lang->about_level_point = '각 회원의 포인트가 아래 레벨별 포인트에 도달하거나 미달하게 되면 해당 회원의 레벨이 조절됩니다.';
|
||||
|
||||
$lang->disable_download = '다운로드 금지';
|
||||
$lang->about_disable_download = '포인트가 부족할 경우 다운로드를 금지 합니다. (이미지 파일, 동영상 파일등 직접 링크가 가능한 파일들은 예외입니다.)';
|
||||
$lang->disable_read_document = '글 열람 금지';
|
||||
$lang->about_disable_read_document = '포인트가 부족할 경우 글 열람을 금지 합니다';
|
||||
|
||||
$lang->level_point_calc = '레벨별 포인트 계산';
|
||||
$lang->expression = '레벨 변수 <b>i</b>를 사용하여 자바스크립트 수식을 입력하세요. 예: Math.pow(i, 2) * 90';
|
||||
$lang->cmd_exp_calc = '계산';
|
||||
$lang->cmd_exp_reset = '초기화';
|
||||
|
||||
$lang->cmd_point_recal = '포인트 초기화';
|
||||
$lang->about_cmd_point_recal = '게시글/댓글/첨부파일/회원가입 점수만 이용하여 모든 포인트 점수를 초기화 합니다.<br />회원 가입 점수는 초기화 후 해당 회원이 활동을 하면 부여되고 그 전에는 부여되지 않습니다.<br />데이터 이전 등을 하여 포인트를 완전히 초기화해야 할 경우에만 사용하세요.';
|
||||
|
||||
$lang->point_link_group = '그룹 연동';
|
||||
$lang->point_group_reset_and_add = '설정된 그룹 초기화 후 새 그룹 부여';
|
||||
$lang->point_group_add_only = '새 그룹만 부여';
|
||||
$lang->about_point_link_group = '그룹에 원하는 레벨을 지정하면, 회원의 포인트가 해당 레벨의 포인트에 도달할 때 그룹이 변경됩니다.';
|
||||
|
||||
$lang->about_module_point = '모듈별 포인트를 지정할 수 있으며 지정되지 않은 모듈은 기본 포인트를 이용합니다.<br />모든 점수는 반대 행동을 하였을 경우 원상복구 됩니다.';
|
||||
|
||||
$lang->point_signup = '가입';
|
||||
$lang->point_insert_document = '글 작성';
|
||||
$lang->point_delete_document = '글 삭제';
|
||||
$lang->point_insert_comment = '댓글 작성';
|
||||
$lang->point_delete_comment = '댓글 삭제';
|
||||
$lang->point_upload_file = '파일 업로드';
|
||||
$lang->point_delete_file = '파일 삭제';
|
||||
$lang->point_download_file = '파일 다운로드 (이미지 제외)';
|
||||
$lang->point_read_document = '게시글 조회';
|
||||
$lang->point_voted = '추천 받음';
|
||||
$lang->point_blamed = '비추천 받음';
|
||||
|
||||
$lang->cmd_point_config = '기본 설정';
|
||||
$lang->cmd_point_module_config = '모듈별 설정';
|
||||
$lang->cmd_point_act_config = '기능별 act 설정';
|
||||
$lang->cmd_point_member_list = '회원 포인트 목록';
|
||||
|
||||
$lang->msg_cannot_download = '포인트가 부족하여 다운로드를 하실 수 없습니다.';
|
||||
$lang->msg_disallow_by_point = "포인트가 부족하여 글을 읽으실 수 없습니다. (필요한 포인트 : %d, 현재 포인트 : %d)";
|
||||
|
||||
$lang->point_recal_message = '포인트 적용중입니다. (%d / %d)';
|
||||
$lang->point_recal_finished = '포인트 재계산이 완료되었습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ru.lang.php
|
||||
* @author zero <zero@nzeo.com> | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░ * @File : common/lang/vi.lang.php ░░
|
||||
░░ * @Author : zero (zero@nzeo.com) ░░
|
||||
░░ * @Author : NHN (developers@xpressengine.com) ░░
|
||||
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
|
||||
░░ * @Website: http://vietxe.net ░░
|
||||
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/zh-CN.lang.php
|
||||
* @author zero <zero@nzeo.com>
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 积分 (point) 模块简体中文语言包
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/point/lang/zh-TW.lang.php
|
||||
* @author zero <zero@nzeo.com> 翻譯:royallin
|
||||
* @author NHN (developers@xpressengine.com) 翻譯:royallin
|
||||
* @brief 點數(point)模組正體中文語言
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,311 +1,311 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pointAdminController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class pointAdminController extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기본 설정 저장
|
||||
**/
|
||||
function procPointAdminInsertConfig() {
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
// 변수 정리
|
||||
$args = Context::getRequestVars();
|
||||
|
||||
// 포인트 이름 체크
|
||||
$config->point_name = $args->point_name;
|
||||
if(!$config->point_name) $config->point_name = 'point';
|
||||
|
||||
// 기본 포인트 지정
|
||||
$config->signup_point = (int)$args->signup_point;
|
||||
$config->login_point = (int)$args->login_point;
|
||||
$config->insert_document = (int)$args->insert_document;
|
||||
$config->read_document = (int)$args->read_document;
|
||||
$config->insert_comment = (int)$args->insert_comment;
|
||||
$config->upload_file = (int)$args->upload_file;
|
||||
$config->download_file = (int)$args->download_file;
|
||||
$config->voted = (int)$args->voted;
|
||||
$config->blamed = (int)$args->blamed;
|
||||
|
||||
// 최고 레벨
|
||||
$config->max_level = $args->max_level;
|
||||
if($config->max_level>1000) $config->max_level = 1000;
|
||||
if($config->max_level<1) $config->max_level = 1;
|
||||
|
||||
// 레벨 아이콘 설정
|
||||
$config->level_icon = $args->level_icon;
|
||||
|
||||
// 포인트 미달시 다운로드 금지 여부 체크
|
||||
if($args->disable_download == 'Y') $config->disable_download = 'Y';
|
||||
else $config->disable_download = 'N';
|
||||
|
||||
// 포인트 미달시 글 열람 금지 여부 체크
|
||||
if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y';
|
||||
else $config->disable_read_document = 'N';
|
||||
|
||||
// 레벨별 그룹 설정
|
||||
foreach($args as $key => $val) {
|
||||
if(substr($key, 0, strlen('point_group_')) != 'point_group_') continue;
|
||||
$group_srl = substr($key, strlen('point_group_'));
|
||||
$level = $val;
|
||||
if(!$level) unset($config->point_group[$group_srl]);
|
||||
else $config->point_group[$group_srl] = $level;
|
||||
}
|
||||
$config->group_reset = $args->group_reset;
|
||||
|
||||
// 레벨별 포인트 설정
|
||||
unset($config->level_step);
|
||||
for($i=1;$i<=$config->max_level;$i++) {
|
||||
$key = "level_step_".$i;
|
||||
$config->level_step[$i] = (int)$args->{$key};
|
||||
}
|
||||
|
||||
// 레벨별 포인트 계산 함수
|
||||
$config->expression = $args->expression;
|
||||
|
||||
// 저장
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertModuleConfig('point', $config);
|
||||
|
||||
$this->cacheActList();
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 설정 저장
|
||||
**/
|
||||
function procPointAdminInsertModuleConfig() {
|
||||
$args = Context::getRequestVars();
|
||||
|
||||
foreach($args as $key => $val) {
|
||||
preg_match("/^(insert_document|insert_comment|upload_file|download_file|read_document|voted|blamed)_([0-9]+)$/", $key, $matches);
|
||||
if(!$matches[1]) continue;
|
||||
$name = $matches[1];
|
||||
$module_srl = $matches[2];
|
||||
if(strlen($val)>0) $module_config[$module_srl][$name] = (int)$val;
|
||||
}
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
if(count($module_config)) {
|
||||
foreach($module_config as $module_srl => $config) {
|
||||
$oModuleController->insertModulePartConfig('point',$module_srl,$config);
|
||||
}
|
||||
}
|
||||
|
||||
$this->cacheActList();
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 개별 포인트 저장
|
||||
**/
|
||||
function procPointAdminInsertPointModuleConfig() {
|
||||
$module_srl = Context::get('target_module_srl');
|
||||
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 여러개의 모듈 일괄 설정일 경우
|
||||
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
|
||||
else $module_srl = array($module_srl);
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController = &getController('module');
|
||||
for($i=0;$i<count($module_srl);$i++) {
|
||||
$srl = trim($module_srl[$i]);
|
||||
if(!$srl) continue;
|
||||
unset($config);
|
||||
$config['insert_document'] = (int)Context::get('insert_document');
|
||||
$config['insert_comment'] = (int)Context::get('insert_comment');
|
||||
$config['upload_file'] = (int)Context::get('upload_file');
|
||||
$config['download_file'] = (int)Context::get('download_file');
|
||||
$config['read_document'] = (int)Context::get('read_document');
|
||||
$config['voted'] = (int)Context::get('voted');
|
||||
$config['blamed'] = (int)Context::get('blamed');
|
||||
$oModuleController->insertModulePartConfig('point', $srl, $config);
|
||||
}
|
||||
|
||||
$this->setError(-1);
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 포인트 변경
|
||||
**/
|
||||
function procPointAdminUpdatePoint() {
|
||||
$action = Context::get('action');
|
||||
$member_srl = Context::get('member_srl');
|
||||
$point = Context::get('point');
|
||||
|
||||
$oPointController = &getController('point');
|
||||
return $oPointController->setPoint($member_srl, (int)$point, $action);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 전체글/ 댓글/ 첨부파일과 가입정보를 바탕으로 포인트를 재계산함. 단 로그인 점수는 1번만 부여됨
|
||||
**/
|
||||
function procPointAdminReCal() {
|
||||
set_time_limit(0);
|
||||
|
||||
// 모듈별 포인트 정보를 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
$module_config = $oModuleModel->getModulePartConfigs('point');
|
||||
|
||||
// 회원의 포인트 저장을 위한 변수
|
||||
$member = array();
|
||||
|
||||
// 게시글 정보를 가져옴
|
||||
$output = executeQueryArray('point.getDocumentPoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['insert_document']) $insert_point = $module_config[$val->module_srl]['insert_document'];
|
||||
else $insert_point = $config->insert_document;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 댓글 정보를 가져옴
|
||||
$output = executeQueryArray('point.getCommentPoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['insert_comment']) $insert_point = $module_config[$val->module_srl]['insert_comment'];
|
||||
else $insert_point = $config->insert_comment;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 첨부파일 정보를 가져옴
|
||||
$output = executeQueryArray('point.getFilePoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['upload_file']) $insert_point = $module_config[$val->module_srl]['upload_file'];
|
||||
else $insert_point = $config->upload_file;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 모든 회원의 포인트를 0으로 세팅
|
||||
$output = executeQuery("point.initMemberPoint");
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 임시로 파일 저장
|
||||
$f = fopen("./files/cache/pointRecal.txt","w");
|
||||
foreach($member as $key => $val) {
|
||||
$val += (int)$config->signup_point;
|
||||
fwrite($f, $key.','.$val."\r\n");
|
||||
}
|
||||
fclose($f);
|
||||
|
||||
$this->add('total', count($member));
|
||||
$this->add('position', 0);
|
||||
$this->setMessage( sprintf(Context::getLang('point_recal_message'), 0, $this->get('total')) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 파일로 저장한 회원 포인트를 5000명 단위로 적용
|
||||
**/
|
||||
function procPointAdminApplyPoint() {
|
||||
$position = (int)Context::get('position');
|
||||
$total = (int)Context::get('total');
|
||||
|
||||
if(!file_exists('./files/cache/pointRecal.txt')) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$idx = 0;
|
||||
$f = fopen("./files/cache/pointRecal.txt","r");
|
||||
while(!feof($f)) {
|
||||
$str = trim(fgets($f, 1024));
|
||||
$idx ++;
|
||||
if($idx > $position) {
|
||||
list($member_srl, $point) = explode(',',$str);
|
||||
|
||||
$args = null;
|
||||
$args->member_srl = $member_srl;
|
||||
$args->point = $point;
|
||||
$output = executeQuery('point.insertPoint',$args);
|
||||
if($idx%5000==0) break;
|
||||
}
|
||||
}
|
||||
|
||||
if(feof($f)) {
|
||||
FileHandler::removeFile('./files/cache/pointRecal.txt');
|
||||
$idx = $total;
|
||||
|
||||
FileHandler::rename('./files/member_extra_info/point','./files/member_extra_info/point.old');
|
||||
|
||||
FileHandler::removeDir('./files/member_extra_info/point.old');
|
||||
}
|
||||
fclose($f);
|
||||
|
||||
|
||||
$this->add('total', $total);
|
||||
$this->add('position', $idx);
|
||||
$this->setMessage(sprintf(Context::getLang('point_recal_message'), $idx, $total));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 개별 모듈의 포인트 리셋
|
||||
**/
|
||||
function procPointAdminReset() {
|
||||
$module_srl = Context::get('module_srls');
|
||||
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 여러개의 모듈 일괄 설정일 경우
|
||||
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
|
||||
else $module_srl = array($module_srl);
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController = &getController('module');
|
||||
for($i=0;$i<count($module_srl);$i++) {
|
||||
$srl = trim($module_srl[$i]);
|
||||
if(!$srl) continue;
|
||||
unset($args);
|
||||
$args->module = 'point';
|
||||
$args->module_srl = $srl;
|
||||
executeQuery('module.deleteModulePartConfig', $args);
|
||||
}
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시파일 저장
|
||||
**/
|
||||
function cacheActList() {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pointAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class pointAdminController extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기본 설정 저장
|
||||
**/
|
||||
function procPointAdminInsertConfig() {
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
// 변수 정리
|
||||
$args = Context::getRequestVars();
|
||||
|
||||
// 포인트 이름 체크
|
||||
$config->point_name = $args->point_name;
|
||||
if(!$config->point_name) $config->point_name = 'point';
|
||||
|
||||
// 기본 포인트 지정
|
||||
$config->signup_point = (int)$args->signup_point;
|
||||
$config->login_point = (int)$args->login_point;
|
||||
$config->insert_document = (int)$args->insert_document;
|
||||
$config->read_document = (int)$args->read_document;
|
||||
$config->insert_comment = (int)$args->insert_comment;
|
||||
$config->upload_file = (int)$args->upload_file;
|
||||
$config->download_file = (int)$args->download_file;
|
||||
$config->voted = (int)$args->voted;
|
||||
$config->blamed = (int)$args->blamed;
|
||||
|
||||
// 최고 레벨
|
||||
$config->max_level = $args->max_level;
|
||||
if($config->max_level>1000) $config->max_level = 1000;
|
||||
if($config->max_level<1) $config->max_level = 1;
|
||||
|
||||
// 레벨 아이콘 설정
|
||||
$config->level_icon = $args->level_icon;
|
||||
|
||||
// 포인트 미달시 다운로드 금지 여부 체크
|
||||
if($args->disable_download == 'Y') $config->disable_download = 'Y';
|
||||
else $config->disable_download = 'N';
|
||||
|
||||
// 포인트 미달시 글 열람 금지 여부 체크
|
||||
if($args->disable_read_document == 'Y') $config->disable_read_document = 'Y';
|
||||
else $config->disable_read_document = 'N';
|
||||
|
||||
// 레벨별 그룹 설정
|
||||
foreach($args as $key => $val) {
|
||||
if(substr($key, 0, strlen('point_group_')) != 'point_group_') continue;
|
||||
$group_srl = substr($key, strlen('point_group_'));
|
||||
$level = $val;
|
||||
if(!$level) unset($config->point_group[$group_srl]);
|
||||
else $config->point_group[$group_srl] = $level;
|
||||
}
|
||||
$config->group_reset = $args->group_reset;
|
||||
|
||||
// 레벨별 포인트 설정
|
||||
unset($config->level_step);
|
||||
for($i=1;$i<=$config->max_level;$i++) {
|
||||
$key = "level_step_".$i;
|
||||
$config->level_step[$i] = (int)$args->{$key};
|
||||
}
|
||||
|
||||
// 레벨별 포인트 계산 함수
|
||||
$config->expression = $args->expression;
|
||||
|
||||
// 저장
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertModuleConfig('point', $config);
|
||||
|
||||
$this->cacheActList();
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 설정 저장
|
||||
**/
|
||||
function procPointAdminInsertModuleConfig() {
|
||||
$args = Context::getRequestVars();
|
||||
|
||||
foreach($args as $key => $val) {
|
||||
preg_match("/^(insert_document|insert_comment|upload_file|download_file|read_document|voted|blamed)_([0-9]+)$/", $key, $matches);
|
||||
if(!$matches[1]) continue;
|
||||
$name = $matches[1];
|
||||
$module_srl = $matches[2];
|
||||
if(strlen($val)>0) $module_config[$module_srl][$name] = (int)$val;
|
||||
}
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
if(count($module_config)) {
|
||||
foreach($module_config as $module_srl => $config) {
|
||||
$oModuleController->insertModulePartConfig('point',$module_srl,$config);
|
||||
}
|
||||
}
|
||||
|
||||
$this->cacheActList();
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 개별 포인트 저장
|
||||
**/
|
||||
function procPointAdminInsertPointModuleConfig() {
|
||||
$module_srl = Context::get('target_module_srl');
|
||||
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 여러개의 모듈 일괄 설정일 경우
|
||||
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
|
||||
else $module_srl = array($module_srl);
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController = &getController('module');
|
||||
for($i=0;$i<count($module_srl);$i++) {
|
||||
$srl = trim($module_srl[$i]);
|
||||
if(!$srl) continue;
|
||||
unset($config);
|
||||
$config['insert_document'] = (int)Context::get('insert_document');
|
||||
$config['insert_comment'] = (int)Context::get('insert_comment');
|
||||
$config['upload_file'] = (int)Context::get('upload_file');
|
||||
$config['download_file'] = (int)Context::get('download_file');
|
||||
$config['read_document'] = (int)Context::get('read_document');
|
||||
$config['voted'] = (int)Context::get('voted');
|
||||
$config['blamed'] = (int)Context::get('blamed');
|
||||
$oModuleController->insertModulePartConfig('point', $srl, $config);
|
||||
}
|
||||
|
||||
$this->setError(-1);
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 포인트 변경
|
||||
**/
|
||||
function procPointAdminUpdatePoint() {
|
||||
$action = Context::get('action');
|
||||
$member_srl = Context::get('member_srl');
|
||||
$point = Context::get('point');
|
||||
|
||||
$oPointController = &getController('point');
|
||||
return $oPointController->setPoint($member_srl, (int)$point, $action);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 전체글/ 댓글/ 첨부파일과 가입정보를 바탕으로 포인트를 재계산함. 단 로그인 점수는 1번만 부여됨
|
||||
**/
|
||||
function procPointAdminReCal() {
|
||||
set_time_limit(0);
|
||||
|
||||
// 모듈별 포인트 정보를 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
$module_config = $oModuleModel->getModulePartConfigs('point');
|
||||
|
||||
// 회원의 포인트 저장을 위한 변수
|
||||
$member = array();
|
||||
|
||||
// 게시글 정보를 가져옴
|
||||
$output = executeQueryArray('point.getDocumentPoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['insert_document']) $insert_point = $module_config[$val->module_srl]['insert_document'];
|
||||
else $insert_point = $config->insert_document;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 댓글 정보를 가져옴
|
||||
$output = executeQueryArray('point.getCommentPoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['insert_comment']) $insert_point = $module_config[$val->module_srl]['insert_comment'];
|
||||
else $insert_point = $config->insert_comment;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 첨부파일 정보를 가져옴
|
||||
$output = executeQueryArray('point.getFilePoint');
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($module_config[$val->module_srl]['upload_file']) $insert_point = $module_config[$val->module_srl]['upload_file'];
|
||||
else $insert_point = $config->upload_file;
|
||||
|
||||
if(!$val->member_srl) continue;
|
||||
$point = $insert_point * $val->count;
|
||||
$member[$val->member_srl] += $point;
|
||||
}
|
||||
}
|
||||
$output = null;
|
||||
|
||||
// 모든 회원의 포인트를 0으로 세팅
|
||||
$output = executeQuery("point.initMemberPoint");
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 임시로 파일 저장
|
||||
$f = fopen("./files/cache/pointRecal.txt","w");
|
||||
foreach($member as $key => $val) {
|
||||
$val += (int)$config->signup_point;
|
||||
fwrite($f, $key.','.$val."\r\n");
|
||||
}
|
||||
fclose($f);
|
||||
|
||||
$this->add('total', count($member));
|
||||
$this->add('position', 0);
|
||||
$this->setMessage( sprintf(Context::getLang('point_recal_message'), 0, $this->get('total')) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 파일로 저장한 회원 포인트를 5000명 단위로 적용
|
||||
**/
|
||||
function procPointAdminApplyPoint() {
|
||||
$position = (int)Context::get('position');
|
||||
$total = (int)Context::get('total');
|
||||
|
||||
if(!file_exists('./files/cache/pointRecal.txt')) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$idx = 0;
|
||||
$f = fopen("./files/cache/pointRecal.txt","r");
|
||||
while(!feof($f)) {
|
||||
$str = trim(fgets($f, 1024));
|
||||
$idx ++;
|
||||
if($idx > $position) {
|
||||
list($member_srl, $point) = explode(',',$str);
|
||||
|
||||
$args = null;
|
||||
$args->member_srl = $member_srl;
|
||||
$args->point = $point;
|
||||
$output = executeQuery('point.insertPoint',$args);
|
||||
if($idx%5000==0) break;
|
||||
}
|
||||
}
|
||||
|
||||
if(feof($f)) {
|
||||
FileHandler::removeFile('./files/cache/pointRecal.txt');
|
||||
$idx = $total;
|
||||
|
||||
FileHandler::rename('./files/member_extra_info/point','./files/member_extra_info/point.old');
|
||||
|
||||
FileHandler::removeDir('./files/member_extra_info/point.old');
|
||||
}
|
||||
fclose($f);
|
||||
|
||||
|
||||
$this->add('total', $total);
|
||||
$this->add('position', $idx);
|
||||
$this->setMessage(sprintf(Context::getLang('point_recal_message'), $idx, $total));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 개별 모듈의 포인트 리셋
|
||||
**/
|
||||
function procPointAdminReset() {
|
||||
$module_srl = Context::get('module_srls');
|
||||
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
// 여러개의 모듈 일괄 설정일 경우
|
||||
if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
|
||||
else $module_srl = array($module_srl);
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController = &getController('module');
|
||||
for($i=0;$i<count($module_srl);$i++) {
|
||||
$srl = trim($module_srl[$i]);
|
||||
if(!$srl) continue;
|
||||
unset($args);
|
||||
$args->module = 'point';
|
||||
$args->module_srl = $srl;
|
||||
executeQuery('module.deleteModulePartConfig', $args);
|
||||
}
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시파일 저장
|
||||
**/
|
||||
function cacheActList() {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,101 +1,101 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pointAdminView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point모듈의 admin view class
|
||||
**/
|
||||
|
||||
class pointAdminView extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
// 설정 변수 지정
|
||||
Context::set('config', $config);
|
||||
|
||||
// template path지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기본 설정
|
||||
**/
|
||||
function dispPointAdminConfig() {
|
||||
// 레벨 아이콘 목록 구함
|
||||
$level_icon_list = FileHandler::readDir("./modules/point/icons");
|
||||
Context::set('level_icon_list', $level_icon_list);
|
||||
|
||||
// 그룹 목록 가져오기
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups();
|
||||
$selected_group_list = array();
|
||||
if(count($group_list)) {
|
||||
foreach($group_list as $key => $val) {
|
||||
if($val->is_admin == 'Y' || $val->is_default == 'Y') continue;
|
||||
$selected_group_list[$key] = $val;
|
||||
}
|
||||
}
|
||||
Context::set('group_list', $selected_group_list);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 점수 지정
|
||||
**/
|
||||
function dispPointAdminModuleConfig() {
|
||||
// mid 목록 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$mid_list = $oModuleModel->getMidList();
|
||||
Context::set('mid_list', $mid_list);
|
||||
|
||||
Context::set('module_config', $oModuleModel->getModulePartConfigs('point'));
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('module_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기능별 act 설정
|
||||
**/
|
||||
function dispPointAdminActConfig() {
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('action_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 포인트순 목록 가져오기
|
||||
**/
|
||||
function dispPointAdminPointList() {
|
||||
$oPointModel = &getModel('point');
|
||||
|
||||
$args->list_count = 20;
|
||||
$args->page = Context::get('page');
|
||||
|
||||
$output = $oPointModel->getMemberList($args);
|
||||
|
||||
// 템플릿에 쓰기 위해서 context::set
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('member_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// group 목록 가져오기
|
||||
$this->group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $this->group_list);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('member_list');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pointAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point모듈의 admin view class
|
||||
**/
|
||||
|
||||
class pointAdminView extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
// 설정 변수 지정
|
||||
Context::set('config', $config);
|
||||
|
||||
// template path지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기본 설정
|
||||
**/
|
||||
function dispPointAdminConfig() {
|
||||
// 레벨 아이콘 목록 구함
|
||||
$level_icon_list = FileHandler::readDir("./modules/point/icons");
|
||||
Context::set('level_icon_list', $level_icon_list);
|
||||
|
||||
// 그룹 목록 가져오기
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups();
|
||||
$selected_group_list = array();
|
||||
if(count($group_list)) {
|
||||
foreach($group_list as $key => $val) {
|
||||
if($val->is_admin == 'Y' || $val->is_default == 'Y') continue;
|
||||
$selected_group_list[$key] = $val;
|
||||
}
|
||||
}
|
||||
Context::set('group_list', $selected_group_list);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈별 점수 지정
|
||||
**/
|
||||
function dispPointAdminModuleConfig() {
|
||||
// mid 목록 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
$mid_list = $oModuleModel->getMidList();
|
||||
Context::set('mid_list', $mid_list);
|
||||
|
||||
Context::set('module_config', $oModuleModel->getModulePartConfigs('point'));
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('module_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 기능별 act 설정
|
||||
**/
|
||||
function dispPointAdminActConfig() {
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('action_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 회원 포인트순 목록 가져오기
|
||||
**/
|
||||
function dispPointAdminPointList() {
|
||||
$oPointModel = &getModel('point');
|
||||
|
||||
$args->list_count = 20;
|
||||
$args->page = Context::get('page');
|
||||
|
||||
$output = $oPointModel->getMemberList($args);
|
||||
|
||||
// 템플릿에 쓰기 위해서 context::set
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('member_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
// 멤버모델 객체 생성
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// group 목록 가져오기
|
||||
$this->group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $this->group_list);
|
||||
|
||||
// 템플릿 지정
|
||||
$this->setTemplateFile('member_list');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,197 +1,197 @@
|
|||
<?php
|
||||
/**
|
||||
* @class point
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point모듈의 high class
|
||||
**/
|
||||
|
||||
class point extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 포인트 정보를 기록할 디렉토리 생성
|
||||
FileHandler::makeDir('./files/member_extra_info/point');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 최고레벨
|
||||
$config->max_level = 30;
|
||||
|
||||
// 레벨별 점수
|
||||
for($i=1;$i<=30;$i++) {
|
||||
$config->level_step[$i] = pow($i,2)*90;
|
||||
}
|
||||
|
||||
// 회원가입
|
||||
$config->signup_point = 10;
|
||||
|
||||
// 로그인 가입
|
||||
$config->login_point = 5;
|
||||
|
||||
// 포인트 호칭
|
||||
$config->point_name = 'point';
|
||||
|
||||
// 레벨 아이콘 디렉토리
|
||||
$config->level_icon = "default";
|
||||
|
||||
// 점수가 없을때 다운로드 금지 기능
|
||||
$config->disable_download = false;
|
||||
|
||||
/**
|
||||
* 모듈별 기본 점수 및 각 action 정의 (게시판,블로그외에 어떤 모듈이 생길지 모르니 act값을 명시한다
|
||||
**/
|
||||
|
||||
// 글작성
|
||||
$config->insert_document = 10;
|
||||
|
||||
$config->insert_document_act = 'procBoardInsertDocument';
|
||||
$config->delete_document_act = 'procBoardDeleteDocument';
|
||||
|
||||
// 댓글작성
|
||||
$config->insert_comment = 5;
|
||||
|
||||
$config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment';
|
||||
$config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment';
|
||||
|
||||
// 업로드
|
||||
$config->upload_file = 5;
|
||||
|
||||
$config->upload_file_act = 'procFileUpload';
|
||||
$config->delete_file_act = 'procFileDelete';
|
||||
|
||||
// 다운로드
|
||||
$config->download_file = -5;
|
||||
$config->download_file_act = 'procFileDownload';
|
||||
|
||||
// 조회
|
||||
$config->read_document = 0;
|
||||
|
||||
// 추천 / 비추천
|
||||
$config->voted = 0;
|
||||
$config->blamed = 0;
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController->insertModuleConfig('point', $config);
|
||||
|
||||
// 빠른 실행을 위해서 act list를 캐싱
|
||||
$oPointController = &getAdminController('point');
|
||||
$oPointController->cacheActList();
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
|
||||
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
|
||||
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
|
||||
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
|
||||
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
// point 모듈 정보 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true;
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true;
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
// point 모듈 정보 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after'))
|
||||
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after'))
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before'))
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after'))
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after'))
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after'))
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before'))
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after'))
|
||||
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after'))
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before'))
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// point action 파일 재정의
|
||||
$oPointAdminController = &getAdminController('point');
|
||||
$oPointAdminController->cacheActList();
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class point
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point모듈의 high class
|
||||
**/
|
||||
|
||||
class point extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 포인트 정보를 기록할 디렉토리 생성
|
||||
FileHandler::makeDir('./files/member_extra_info/point');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 최고레벨
|
||||
$config->max_level = 30;
|
||||
|
||||
// 레벨별 점수
|
||||
for($i=1;$i<=30;$i++) {
|
||||
$config->level_step[$i] = pow($i,2)*90;
|
||||
}
|
||||
|
||||
// 회원가입
|
||||
$config->signup_point = 10;
|
||||
|
||||
// 로그인 가입
|
||||
$config->login_point = 5;
|
||||
|
||||
// 포인트 호칭
|
||||
$config->point_name = 'point';
|
||||
|
||||
// 레벨 아이콘 디렉토리
|
||||
$config->level_icon = "default";
|
||||
|
||||
// 점수가 없을때 다운로드 금지 기능
|
||||
$config->disable_download = false;
|
||||
|
||||
/**
|
||||
* 모듈별 기본 점수 및 각 action 정의 (게시판,블로그외에 어떤 모듈이 생길지 모르니 act값을 명시한다
|
||||
**/
|
||||
|
||||
// 글작성
|
||||
$config->insert_document = 10;
|
||||
|
||||
$config->insert_document_act = 'procBoardInsertDocument';
|
||||
$config->delete_document_act = 'procBoardDeleteDocument';
|
||||
|
||||
// 댓글작성
|
||||
$config->insert_comment = 5;
|
||||
|
||||
$config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment';
|
||||
$config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment';
|
||||
|
||||
// 업로드
|
||||
$config->upload_file = 5;
|
||||
|
||||
$config->upload_file_act = 'procFileUpload';
|
||||
$config->delete_file_act = 'procFileDelete';
|
||||
|
||||
// 다운로드
|
||||
$config->download_file = -5;
|
||||
$config->download_file_act = 'procFileDownload';
|
||||
|
||||
// 조회
|
||||
$config->read_document = 0;
|
||||
|
||||
// 추천 / 비추천
|
||||
$config->voted = 0;
|
||||
$config->blamed = 0;
|
||||
|
||||
// 설정 저장
|
||||
$oModuleController->insertModuleConfig('point', $config);
|
||||
|
||||
// 빠른 실행을 위해서 act list를 캐싱
|
||||
$oPointController = &getAdminController('point');
|
||||
$oPointController->cacheActList();
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
|
||||
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
|
||||
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
|
||||
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
|
||||
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
// point 모듈 정보 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before')) return true;
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after')) return true;
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after')) return true;
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
// point 모듈 정보 가져옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 가입/글작성/댓글작성/파일업로드/다운로드에 대한 트리거 추가
|
||||
if(!$oModuleModel->getTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after'))
|
||||
$oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after'))
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before'))
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before');
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after'))
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after'))
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after'))
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before'))
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before');
|
||||
if(!$oModuleModel->getTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after'))
|
||||
$oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after');
|
||||
if(!$oModuleModel->getTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after'))
|
||||
$oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after');
|
||||
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after'))
|
||||
$oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after');
|
||||
|
||||
// 추천 / 비추천에 대한 트리거 추가 2008.05.13 haneul
|
||||
if(!$oModuleModel->getTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after');
|
||||
|
||||
// 임시저장글을 정상 저장시 포인트 지급하도록 트리거 추가 2009. 05. 19 zero
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before'))
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// point action 파일 재정의
|
||||
$oPointAdminController = &getAdminController('point');
|
||||
$oPointAdminController->cacheActList();
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,122 +1,122 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pointModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point 모듈의 model class
|
||||
**/
|
||||
|
||||
class pointModel extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트 정보가 있는지 체크
|
||||
**/
|
||||
function isExistsPoint($member_srl) {
|
||||
$member_srl = abs($member_srl);
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('point.getPoint', $args);
|
||||
if($output->data->member_srl == $member_srl) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트를 구해옴
|
||||
**/
|
||||
function getPoint($member_srl, $from_db = false) {
|
||||
$member_srl = abs($member_srl);
|
||||
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
|
||||
if(!is_dir($path)) FileHandler::makeDir($path);
|
||||
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
|
||||
|
||||
if(!$from_db && file_exists($cache_filename)) return trim(FileHandler::readFile($cache_filename));
|
||||
|
||||
// DB에서 가져옴
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('point.getPoint', $args);
|
||||
$point = (int)$output->data->point;
|
||||
|
||||
FileHandler::writeFile($cache_filename, $point);
|
||||
|
||||
return $point;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 레벨을 구함
|
||||
**/
|
||||
function getLevel($point, $level_step) {
|
||||
$level_count = count($level_step);
|
||||
for($level=0;$level<=$level_count;$level++) if($point < $level_step[$level]) break;
|
||||
$level --;
|
||||
return $level;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트 순 회원목록 가져오기
|
||||
**/
|
||||
function getMemberList($args = null) {
|
||||
|
||||
// 검색 옵션 정리
|
||||
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
|
||||
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
|
||||
$args->selected_group_srl = Context::get('selected_group_srl');
|
||||
|
||||
$search_target = trim(Context::get('search_target'));
|
||||
$search_keyword = trim(Context::get('search_keyword'));
|
||||
|
||||
if($search_target && $search_keyword) {
|
||||
switch($search_target) {
|
||||
case 'user_id' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_id = $search_keyword;
|
||||
break;
|
||||
case 'user_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_name = $search_keyword;
|
||||
break;
|
||||
case 'nick_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_nick_name = $search_keyword;
|
||||
break;
|
||||
case 'email_address' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_email_address = $search_keyword;
|
||||
break;
|
||||
case 'regdate' :
|
||||
$args->s_regdate = $search_keyword;
|
||||
break;
|
||||
case 'last_login' :
|
||||
$args->s_last_login = $search_keyword;
|
||||
break;
|
||||
case 'extra_vars' :
|
||||
$args->s_extra_vars = $search_keyword;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
|
||||
if($args->selected_group_srl) {
|
||||
$query_id = 'point.getMemberListWithinGroup';
|
||||
} else {
|
||||
$query_id = 'point.getMemberList';
|
||||
}
|
||||
|
||||
$output = executeQuery($query_id, $args);
|
||||
|
||||
if($output->total_count) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
$output->data[$key]->level = $this->getLevel($val->point, $config->level_step);
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pointModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point 모듈의 model class
|
||||
**/
|
||||
|
||||
class pointModel extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트 정보가 있는지 체크
|
||||
**/
|
||||
function isExistsPoint($member_srl) {
|
||||
$member_srl = abs($member_srl);
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('point.getPoint', $args);
|
||||
if($output->data->member_srl == $member_srl) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트를 구해옴
|
||||
**/
|
||||
function getPoint($member_srl, $from_db = false) {
|
||||
$member_srl = abs($member_srl);
|
||||
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
|
||||
if(!is_dir($path)) FileHandler::makeDir($path);
|
||||
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
|
||||
|
||||
if(!$from_db && file_exists($cache_filename)) return trim(FileHandler::readFile($cache_filename));
|
||||
|
||||
// DB에서 가져옴
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('point.getPoint', $args);
|
||||
$point = (int)$output->data->point;
|
||||
|
||||
FileHandler::writeFile($cache_filename, $point);
|
||||
|
||||
return $point;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 레벨을 구함
|
||||
**/
|
||||
function getLevel($point, $level_step) {
|
||||
$level_count = count($level_step);
|
||||
for($level=0;$level<=$level_count;$level++) if($point < $level_step[$level]) break;
|
||||
$level --;
|
||||
return $level;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트 순 회원목록 가져오기
|
||||
**/
|
||||
function getMemberList($args = null) {
|
||||
|
||||
// 검색 옵션 정리
|
||||
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
|
||||
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
|
||||
$args->selected_group_srl = Context::get('selected_group_srl');
|
||||
|
||||
$search_target = trim(Context::get('search_target'));
|
||||
$search_keyword = trim(Context::get('search_keyword'));
|
||||
|
||||
if($search_target && $search_keyword) {
|
||||
switch($search_target) {
|
||||
case 'user_id' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_id = $search_keyword;
|
||||
break;
|
||||
case 'user_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_user_name = $search_keyword;
|
||||
break;
|
||||
case 'nick_name' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_nick_name = $search_keyword;
|
||||
break;
|
||||
case 'email_address' :
|
||||
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
|
||||
$args->s_email_address = $search_keyword;
|
||||
break;
|
||||
case 'regdate' :
|
||||
$args->s_regdate = $search_keyword;
|
||||
break;
|
||||
case 'last_login' :
|
||||
$args->s_last_login = $search_keyword;
|
||||
break;
|
||||
case 'extra_vars' :
|
||||
$args->s_extra_vars = $search_keyword;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// selected_group_srl이 있으면 query id를 변경 (table join때문에)
|
||||
if($args->selected_group_srl) {
|
||||
$query_id = 'point.getMemberListWithinGroup';
|
||||
} else {
|
||||
$query_id = 'point.getMemberList';
|
||||
}
|
||||
|
||||
$output = executeQuery($query_id, $args);
|
||||
|
||||
if($output->total_count) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
$output->data[$key]->level = $this->getLevel($val->point, $config->level_step);
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,62 +1,62 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pointView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point module의 view class
|
||||
*
|
||||
* POINT 2.0형식으로 문서 출력
|
||||
*
|
||||
**/
|
||||
|
||||
class pointView extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 서비스형 모듈의 추가 설정을 위한 부분
|
||||
* point의 사용 형태에 대한 설정만 받음
|
||||
**/
|
||||
function triggerDispPointAdditionSetup(&$obj) {
|
||||
$current_module_srl = Context::get('module_srl');
|
||||
$current_module_srls = Context::get('module_srls');
|
||||
|
||||
if(!$current_module_srl && !$current_module_srls) {
|
||||
$current_module_info = Context::get('current_module_info');
|
||||
$current_module_srl = $current_module_info->module_srl;
|
||||
if(!$current_module_srl) return new Object();
|
||||
}
|
||||
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
if($current_module_srl) {
|
||||
$module_config = $oModuleModel->getModulePartConfig('point', $current_module_srl);
|
||||
if(!$module_config) {
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
$module_config['insert_document'] = $config->insert_document;
|
||||
$module_config['insert_comment'] = $config->insert_comment;
|
||||
$module_config['upload_file'] = $config->upload_file;
|
||||
$module_config['download_file'] = $config->download_file;
|
||||
$module_config['read_document'] = $config->read_document;
|
||||
$module_config['voted'] = $config->voted;
|
||||
$module_config['blamed'] = $config->blamed;
|
||||
}
|
||||
}
|
||||
|
||||
$module_config['module_srl'] = $current_module_srl;
|
||||
$module_config['point_name'] = $config->point_name;
|
||||
Context::set('module_config', $module_config);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
|
||||
$obj .= $tpl;
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pointView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point module의 view class
|
||||
*
|
||||
* POINT 2.0형식으로 문서 출력
|
||||
*
|
||||
**/
|
||||
|
||||
class pointView extends point {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 서비스형 모듈의 추가 설정을 위한 부분
|
||||
* point의 사용 형태에 대한 설정만 받음
|
||||
**/
|
||||
function triggerDispPointAdditionSetup(&$obj) {
|
||||
$current_module_srl = Context::get('module_srl');
|
||||
$current_module_srls = Context::get('module_srls');
|
||||
|
||||
if(!$current_module_srl && !$current_module_srls) {
|
||||
$current_module_info = Context::get('current_module_info');
|
||||
$current_module_srl = $current_module_info->module_srl;
|
||||
if(!$current_module_srl) return new Object();
|
||||
}
|
||||
|
||||
// 설정 정보 가져오기
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
if($current_module_srl) {
|
||||
$module_config = $oModuleModel->getModulePartConfig('point', $current_module_srl);
|
||||
if(!$module_config) {
|
||||
$config = $oModuleModel->getModuleConfig('point');
|
||||
$module_config['insert_document'] = $config->insert_document;
|
||||
$module_config['insert_comment'] = $config->insert_comment;
|
||||
$module_config['upload_file'] = $config->upload_file;
|
||||
$module_config['download_file'] = $config->download_file;
|
||||
$module_config['read_document'] = $config->read_document;
|
||||
$module_config['voted'] = $config->voted;
|
||||
$module_config['blamed'] = $config->blamed;
|
||||
}
|
||||
}
|
||||
|
||||
$module_config['module_srl'] = $current_module_srl;
|
||||
$module_config['point_name'] = $config->point_name;
|
||||
Context::set('module_config', $module_config);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
|
||||
$obj .= $tpl;
|
||||
|
||||
return new Object();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,70 +1,70 @@
|
|||
/**
|
||||
* @file modules/point/js/point_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief point 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
function exp_calc (form, reset) {
|
||||
var fo_obj = xGetElementById(form)
|
||||
var level = fo_obj.max_level.value
|
||||
var exp = fo_obj.expression
|
||||
var exp_default = "Math.pow(i, 2) * 90"
|
||||
|
||||
if(reset || !exp.value) exp.value = exp_default
|
||||
|
||||
for(i = 1; i <= level; i++) {
|
||||
point = eval("fo_obj.level_step_" + i)
|
||||
point.value = eval(exp.value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트를 전부 체크하여 재계산하는 action 호출
|
||||
**/
|
||||
function doPointRecal() {
|
||||
|
||||
var params = new Array();
|
||||
var response_tags = new Array('error','message','total', 'position');
|
||||
|
||||
exec_xml('point','procPointAdminReCal',params, completePointRecal, response_tags);
|
||||
}
|
||||
|
||||
function completePointRecal(ret_obj) {
|
||||
var total = ret_obj['total'];
|
||||
var message = ret_obj['message'];
|
||||
var position = ret_obj['position'];
|
||||
|
||||
if(position == total) {
|
||||
xInnerHtml('pointReCal', message);
|
||||
alert(message);
|
||||
location.reload();
|
||||
} else {
|
||||
xInnerHtml('pointReCal', message);
|
||||
|
||||
var params = new Array();
|
||||
params['position'] = position;
|
||||
params['total'] = total;
|
||||
var response_tags = new Array('error','message','total', 'position');
|
||||
|
||||
exec_xml('point','procPointAdminApplyPoint',params, completePointRecal, response_tags);
|
||||
}
|
||||
}
|
||||
|
||||
function updatePoint(member_srl, action)
|
||||
{
|
||||
var pointEl = jQuery("#point_"+member_srl);
|
||||
var e = jQuery("#update_member_srl").val(member_srl);
|
||||
e = jQuery("#update_action").val(action);
|
||||
e = jQuery("#update_point").val(pointEl.attr("value"));
|
||||
var hF = jQuery("#updateForm").get(0);
|
||||
procFilter(hF, update_point);
|
||||
}
|
||||
|
||||
|
||||
function doPointReset(module_srls) {
|
||||
var params = new Array();
|
||||
var response_tags = new Array('error','message');
|
||||
params['module_srls'] = module_srls;
|
||||
|
||||
exec_xml('point','procPointAdminReset',params,function(ret_obj) {alert(ret_obj['message']);}, response_tags);
|
||||
}
|
||||
/**
|
||||
* @file modules/point/js/point_admin.js
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief point 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
function exp_calc (form, reset) {
|
||||
var fo_obj = xGetElementById(form)
|
||||
var level = fo_obj.max_level.value
|
||||
var exp = fo_obj.expression
|
||||
var exp_default = "Math.pow(i, 2) * 90"
|
||||
|
||||
if(reset || !exp.value) exp.value = exp_default
|
||||
|
||||
for(i = 1; i <= level; i++) {
|
||||
point = eval("fo_obj.level_step_" + i)
|
||||
point.value = eval(exp.value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 포인트를 전부 체크하여 재계산하는 action 호출
|
||||
**/
|
||||
function doPointRecal() {
|
||||
|
||||
var params = new Array();
|
||||
var response_tags = new Array('error','message','total', 'position');
|
||||
|
||||
exec_xml('point','procPointAdminReCal',params, completePointRecal, response_tags);
|
||||
}
|
||||
|
||||
function completePointRecal(ret_obj) {
|
||||
var total = ret_obj['total'];
|
||||
var message = ret_obj['message'];
|
||||
var position = ret_obj['position'];
|
||||
|
||||
if(position == total) {
|
||||
xInnerHtml('pointReCal', message);
|
||||
alert(message);
|
||||
location.reload();
|
||||
} else {
|
||||
xInnerHtml('pointReCal', message);
|
||||
|
||||
var params = new Array();
|
||||
params['position'] = position;
|
||||
params['total'] = total;
|
||||
var response_tags = new Array('error','message','total', 'position');
|
||||
|
||||
exec_xml('point','procPointAdminApplyPoint',params, completePointRecal, response_tags);
|
||||
}
|
||||
}
|
||||
|
||||
function updatePoint(member_srl, action)
|
||||
{
|
||||
var pointEl = jQuery("#point_"+member_srl);
|
||||
var e = jQuery("#update_member_srl").val(member_srl);
|
||||
e = jQuery("#update_action").val(action);
|
||||
e = jQuery("#update_point").val(pointEl.attr("value"));
|
||||
var hF = jQuery("#updateForm").get(0);
|
||||
procFilter(hF, update_point);
|
||||
}
|
||||
|
||||
|
||||
function doPointReset(module_srls) {
|
||||
var params = new Array();
|
||||
var response_tags = new Array('error','message');
|
||||
params['module_srls'] = module_srls;
|
||||
|
||||
exec_xml('point','procPointAdminReset',params,function(ret_obj) {alert(ret_obj['message']);}, response_tags);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue