mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-24 05:39:58 +09:00
2007. 09. 19. 16:30 sandbox를 beta 0.1.5로 배포하기 위해서 trunk로 copy
git-svn-id: http://xe-core.googlecode.com/svn/trunk@2627 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
commit
507bca7816
147 changed files with 4111 additions and 2075 deletions
281
LICENSE
Normal file
281
LICENSE
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
|
@ -1,42 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">BlogAPI 애드온</title>
|
||||
<title xml:lang="jp">BlogAPI </title>
|
||||
<title xml:lang="zh-CN">BlogAPI</title>
|
||||
<title xml:lang="en">Addon for BlogAPI</title>
|
||||
<title xml:lang="es">Addon para BlogAPI</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
metaWeblog를 지원하는 blogApi애드온입니다.
|
||||
사용으로 설정하시면 각 모듈마다 RSD 태그를 노출합니다.
|
||||
api의 주소는 http://설치주소/모듈명/api 입니다.
|
||||
사용으로 하셔야 RSD태그 및 api가 동작을 합니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
MetaWeblogをサポートするBlogAPI アドオンです。「使用する」をクリックして設定すると各モジュールごとRSDのアドレスを表示します。API のアドレスは「http://インストールURL/モジュール名/api」です。 「使用する」に設定しておけば RSDのアドレスが表示され、 API が動作します。
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
支持metaWeblog的 blogApi插件。
|
||||
设置为"启用"时,会使每个模块都会显示RSD标签。
|
||||
api地址为http://安装地址/模块名/api。
|
||||
把状态设置为"使用"时,才会激活RSD标签及api。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This blogApi addon supports metaWeblog.
|
||||
Toggling this with use option lets RSD tag be exposed for each module.
|
||||
URL to the api is http://setup_path/module_name/api.
|
||||
Only selecting use option enables RSD tag and api to behave.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este blogApi addon soporta el metaWeblog.
|
||||
Si seleccionas la optión usar, cada módulo entregará la etiqueta RSD.
|
||||
La dirección de api es http://dirección de la instalación/nombre de módulo/api.
|
||||
Sólo si seleccionas la opción usar, funcionará la etiqueta RSD y api.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">BlogAPI 애드온</title>
|
||||
<title xml:lang="jp">BlogAPI </title>
|
||||
<title xml:lang="zh-CN">BlogAPI</title>
|
||||
<title xml:lang="en">Addon for BlogAPI</title>
|
||||
<title xml:lang="es">Addon para BlogAPI</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
metaWeblog를 지원하는 blogApi애드온입니다.
|
||||
사용으로 설정하시면 각 모듈마다 RSD 태그를 노출합니다.
|
||||
api의 주소는 http://설치주소/모듈명/api 입니다.
|
||||
사용으로 하셔야 RSD태그 및 api가 동작을 합니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
MetaWeblogをサポートするBlogAPI アドオンです。「使用する」をクリックして設定すると各モジュールごとRSDのアドレスを表示します。API のアドレスは「http://インストールURL/モジュール名/api」です。 「使用する」に設定しておけば RSDのアドレスが表示され、 API が動作します。
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
支持metaWeblog的 blogApi插件。
|
||||
设置为"启用"时,会使每个模块都会显示RSD标签。
|
||||
api地址为http://安装地址/模块名/api。
|
||||
把状态设置为"使用"时,才会激活RSD标签及api。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This blogApi addon supports metaWeblog.
|
||||
Toggling this with use option lets RSD tag be exposed for each module.
|
||||
URL to the api is http://setup_path/module_name/api.
|
||||
Only selecting use option enables RSD tag and api to behave.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este blogApi addon soporta el metaWeblog.
|
||||
Si seleccionas la optión usar, cada módulo entregará la etiqueta RSD.
|
||||
La dirección de api es http://dirección de la instalación/nombre de módulo/api.
|
||||
Sólo si seleccionas la opción usar, funcionará la etiqueta RSD y api.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">기본 카운터 애드온</title>
|
||||
<title xml:lang="jp">接続カウンター</title>
|
||||
<title xml:lang="zh-CN">网站访问统计</title>
|
||||
<title xml:lang="en">Addon for basic counter</title>
|
||||
<title xml:lang="es">Addon contador básico</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드XE의 기본 카운터 모듈을 이용하여 접속 정보를 기록합니다.
|
||||
이 애드온을 켜셔야 접속 정보 수집이 됩니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
セロボードXEの接続カウンターモジュールは、接続情報を記録します。このアドオンを「使用」に設定しておくと接続情報が記録されます。
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用ZeroboardXE的网站访问统计模块记录网站访问信息。
|
||||
把状态设置为"使用"时,才会记录网站访问信息.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon logs access information based on the basic counter module within Zeroboard XE.
|
||||
It is necessary for aggregation of access information to turn on this addon.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon contador básico de Zeroboard XE permite llevar la información de acceso a la página web de los visitantes.
|
||||
Es necesario activar este addon para agregar la información de acceso.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">기본 카운터 애드온</title>
|
||||
<title xml:lang="jp">接続カウンター</title>
|
||||
<title xml:lang="zh-CN">网站访问统计</title>
|
||||
<title xml:lang="en">Addon for basic counter</title>
|
||||
<title xml:lang="es">Addon contador básico</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드XE의 기본 카운터 모듈을 이용하여 접속 정보를 기록합니다.
|
||||
이 애드온을 켜셔야 접속 정보 수집이 됩니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
セロボードXEの接続カウンターモジュールは、接続情報を記録します。このアドオンを「使用」に設定しておくと接続情報が記録されます。
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用ZeroboardXE的网站访问统计模块记录网站访问信息。
|
||||
把状态设置为"使用"时,才会记录网站访问信息.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon logs access information based on the basic counter module within Zeroboard XE.
|
||||
It is necessary for aggregation of access information to turn on this addon.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon contador básico de Zeroboard XE permite llevar la información de acceso a la página web de los visitantes.
|
||||
Es necesario activar este addon para agregar la información de acceso.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
16
addons/google_analytics/conf/info.xml
Normal file
16
addons/google_analytics/conf/info.xml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">Google Analytics</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 9. 19">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<description xml:lang="ko">
|
||||
Google Analytics 코드를 사이트에 추가할 수 있습니다.
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="uacct">
|
||||
<title xml:lang="ko">uacct</title>
|
||||
<description xml:lang="ko">Google Analytics 코드의 _uacct 값을 입력해주세요.</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</addon>
|
||||
27
addons/google_analytics/google_analytics.addon.php
Normal file
27
addons/google_analytics/google_analytics.addon.php
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
if(!defined("__ZBXE__")) exit();
|
||||
|
||||
/**
|
||||
* @file google_analytics.addon.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief google analytics 코드를 사이트에 추가함
|
||||
**/
|
||||
|
||||
// 관리자 모듈이면 패스~
|
||||
if(Context::get('module')=='admin') return;
|
||||
|
||||
// 한번만 출력시키기 위해 전역변수에 호출되었음을 체크해 놓음 (called position과 상관없음)
|
||||
if($GLOBALS['_called_ga_']) return;
|
||||
$GLOBALS['_called_ga_'] = true;
|
||||
|
||||
$js_code = <<<EndOfCss
|
||||
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
_uacct = "{$addon_info->uacct}";
|
||||
urchinTracker();
|
||||
</script>
|
||||
EndOfCss;
|
||||
|
||||
Context::addHtmlFooter($js_code);
|
||||
?>
|
||||
|
|
@ -1,64 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">사용자 추가 정보 및 커뮤니케이션 기능 활성화</title>
|
||||
<title xml:lang="jp">会員情報・コミュニティ</title>
|
||||
<title xml:lang="zh-CN">用户扩展信息</title>
|
||||
<title xml:lang="en">Addon for enabling facilities for providing additional information about users and communicating</title>
|
||||
<title xml:lang="es">Addon para activar la función de la Información addcional del usuario y de la comunicación.</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
사용자의 정보중 이미지이름, 이미지마크, 서명등을 화면에 출력해주는 애드온입니다.
|
||||
이런 정보들을 사용하지 않을 경우를 대비하여 별도의 애드온으로 빼어서 실행시간을 줄여줍니다.
|
||||
이미지이름, 이미지마크, 서명등을 노출하고 싶다면 이 애드온을 활성화 시키세요.
|
||||
1. 출력되기 직전 &lt;div class="member_회원번호"&gt;....&lt;/div&gt; 로 정의가 된 부분을 찾아 회원번호를 구해서 이미지이름, 이미지마크가 있는지를 확인하여 있으면 내용을 변경해버립니다.
|
||||
2. 출력되기 직전 &lt;div class="document_번호"&gt;...&lt;/div&gt;로 정의된 곳을 찾아 글의 내용이라 판단, 하단에 서명을 추가합니다.
|
||||
3. 새로운 쪽지가 왔을 경우 팝업으로 띄움
|
||||
4. MemberModel::getMemberMenu 호출시 대상이 회원일 경우 쪽지 보내기 기능 추가합니다.
|
||||
5. MemberModel::getMemberMenu 호출시 친구 등록 메뉴를 추가합니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
会員情報のイメージ名、イメージマーク、署名などを画面に表示するアドオンです。このような情報を使用しない場合、アドオンを「使用」に設定すれば、実行時間を少なくします。イメージ名、イメージマーク、署名などを表示させたい時は、このアドオンを「使用」に設定して下さい。
|
||||
|
||||
1. 出力の直前 <div class="member_会員番号">....</div> に定義された部分を探し、会員番号をチェックしてイメージ名、イメージマークがあるかを確認します。あった場合は内容を変更します
|
||||
2. 出力の直前 <div class="document_番号">...</div>に定義された部分を探し、書込みの内容だと判断して、下段に署名を追加します
|
||||
3. 新しいメッセージが来た場合ポップアップで表示します
|
||||
4. MemberModel::getMemberMenu を呼出す時、相手が会員の場合はメッセージ送信の機能を追加します
|
||||
5. MemberModel::getMemberMenu を呼出す時、友達登録メニュを追加します
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
此插件将把用户信息中的昵称图片,用户图标,签名等信息显示到页面当中。
|
||||
因部分用户不使用此项功能或为了考虑页面载入速度,以插件形式提供此项功能。
|
||||
要想使用会员扩展信息请激活此插件。
|
||||
1. 显示之前先查找定义为 &lt;div class="member_会员编号"&gt;....&lt;/div&gt; 的部分获得会员编号后,再以会员编号确认有没有昵称图片/用户图标,有的话即可更新相关内容。
|
||||
2. 显示之前先查找定义为 &lt;div class="document_编号"&gt;...&lt;/div&gt;的部分判断此处为主题内容后,在此处下方添加个人签名。
|
||||
3. 收到新消息时,用弹出窗口显示。
|
||||
4. 呼出MemberModel::getMemberMenu时,如对方是会员,就添加[发送短消息]功能。
|
||||
5. 呼出MemberModel::getMemberMenu时,添加[加为好友]菜单。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Among other information about users, this addon displays image name, image mark, and signature.
|
||||
In case of you not use this information, this stands apart from basic information so runtime should be reduced.
|
||||
To expose image name, image mark, and signature, please turn on this addon.
|
||||
1. Just before displaying user information, this will figure out unique key of member from the definition of "&lt;div class="member_{unique key of member}"&gt;....&lt;/div&gt;" and replace image name and/or image mark if they exsist.
|
||||
2. Just before displaying, this is gonna locate the definition of "&lt;div class="document_{unique key of document}"&gt;...&lt;/div&gt;" and insert the signature below it.
|
||||
3. When arrived a new slip, this will popup it.
|
||||
4. This makes available to send a slip if the target is a member when MemberModel::getMemberMenu is called.
|
||||
5. This adds a menu for registering as a friend when MemberModel::getMemberMenu is called.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Addon que permite mostrar en la pantalla las informaciones del usuario, la imagen del nombre, Imagen de marca y la firma .
|
||||
En caso de no usar estas informaciones, esta forma de usar separadamente en addon permite reducir el tiempo de ejecución.
|
||||
Deberá activar este addon si desea mostrar informaciones adicionales.
|
||||
1. Justo antes de mostrar la información del usuario, este addon buscará la definición "<div class="member_Número del usuario">....</div>", si la encuentra, reemplazará la imagen del nombre y/o la imagen de marca.
|
||||
2. Justo antes de mostrar, este addon va a localizar la definición "<div class="document_Número de documento">...</div> e insertará la firma en la parte final del documento.
|
||||
3. Si ha llegado un nuevo mensaje, aprarecerá una ventana popup.
|
||||
4. Se activa la función "Enviar Mensajes" si la persona que envió la nota es usuario al comprobar en MemberModel::getMemberMenu.
|
||||
5. Agrega el menú "Ägregar Amigo" al llamar MemberModel::getMemberMenu.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">사용자 추가 정보 및 커뮤니케이션 기능 활성화</title>
|
||||
<title xml:lang="jp">会員情報・コミュニティ</title>
|
||||
<title xml:lang="zh-CN">用户扩展信息</title>
|
||||
<title xml:lang="en">Addon for enabling facilities for providing additional information about users and communicating</title>
|
||||
<title xml:lang="es">Addon para activar la función de la Información addcional del usuario y de la comunicación.</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">
|
||||
사용자의 정보중 이미지이름, 이미지마크, 서명등을 화면에 출력해주는 애드온입니다.
|
||||
이런 정보들을 사용하지 않을 경우를 대비하여 별도의 애드온으로 빼어서 실행시간을 줄여줍니다.
|
||||
이미지이름, 이미지마크, 서명등을 노출하고 싶다면 이 애드온을 활성화 시키세요.
|
||||
1. 출력되기 직전 &lt;div class="member_회원번호"&gt;....&lt;/div&gt; 로 정의가 된 부분을 찾아 회원번호를 구해서 이미지이름, 이미지마크가 있는지를 확인하여 있으면 내용을 변경해버립니다.
|
||||
2. 출력되기 직전 &lt;div class="document_번호"&gt;...&lt;/div&gt;로 정의된 곳을 찾아 글의 내용이라 판단, 하단에 서명을 추가합니다.
|
||||
3. 새로운 쪽지가 왔을 경우 팝업으로 띄움
|
||||
4. MemberModel::getMemberMenu 호출시 대상이 회원일 경우 쪽지 보내기 기능 추가합니다.
|
||||
5. MemberModel::getMemberMenu 호출시 친구 등록 메뉴를 추가합니다.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
会員情報のイメージ名、イメージマーク、署名などを画面に表示するアドオンです。このような情報を使用しない場合、アドオンを「使用」に設定すれば、実行時間を少なくします。イメージ名、イメージマーク、署名などを表示させたい時は、このアドオンを「使用」に設定して下さい。
|
||||
|
||||
1. 出力の直前 <div class="member_会員番号">....</div> に定義された部分を探し、会員番号をチェックしてイメージ名、イメージマークがあるかを確認します。あった場合は内容を変更します
|
||||
2. 出力の直前 <div class="document_番号">...</div>に定義された部分を探し、書込みの内容だと判断して、下段に署名を追加します
|
||||
3. 新しいメッセージが来た場合ポップアップで表示します
|
||||
4. MemberModel::getMemberMenu を呼出す時、相手が会員の場合はメッセージ送信の機能を追加します
|
||||
5. MemberModel::getMemberMenu を呼出す時、友達登録メニュを追加します
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
此插件将把用户信息中的昵称图片,用户图标,签名等信息显示到页面当中。
|
||||
因部分用户不使用此项功能或为了考虑页面载入速度,以插件形式提供此项功能。
|
||||
要想使用会员扩展信息请激活此插件。
|
||||
1. 显示之前先查找定义为 &lt;div class="member_会员编号"&gt;....&lt;/div&gt; 的部分获得会员编号后,再以会员编号确认有没有昵称图片/用户图标,有的话即可更新相关内容。
|
||||
2. 显示之前先查找定义为 &lt;div class="document_编号"&gt;...&lt;/div&gt;的部分判断此处为主题内容后,在此处下方添加个人签名。
|
||||
3. 收到新消息时,用弹出窗口显示。
|
||||
4. 呼出MemberModel::getMemberMenu时,如对方是会员,就添加[发送短消息]功能。
|
||||
5. 呼出MemberModel::getMemberMenu时,添加[加为好友]菜单。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Among other information about users, this addon displays image name, image mark, and signature.
|
||||
In case of you not use this information, this stands apart from basic information so runtime should be reduced.
|
||||
To expose image name, image mark, and signature, please turn on this addon.
|
||||
1. Just before displaying user information, this will figure out unique key of member from the definition of "&lt;div class="member_{unique key of member}"&gt;....&lt;/div&gt;" and replace image name and/or image mark if they exsist.
|
||||
2. Just before displaying, this is gonna locate the definition of "&lt;div class="document_{unique key of document}"&gt;...&lt;/div&gt;" and insert the signature below it.
|
||||
3. When arrived a new slip, this will popup it.
|
||||
4. This makes available to send a slip if the target is a member when MemberModel::getMemberMenu is called.
|
||||
5. This adds a menu for registering as a friend when MemberModel::getMemberMenu is called.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Addon que permite mostrar en la pantalla las informaciones del usuario, la imagen del nombre, Imagen de marca y la firma .
|
||||
En caso de no usar estas informaciones, esta forma de usar separadamente en addon permite reducir el tiempo de ejecución.
|
||||
Deberá activar este addon si desea mostrar informaciones adicionales.
|
||||
1. Justo antes de mostrar la información del usuario, este addon buscará la definición "<div class="member_Número del usuario">....</div>", si la encuentra, reemplazará la imagen del nombre y/o la imagen de marca.
|
||||
2. Justo antes de mostrar, este addon va a localizar la definición "<div class="document_Número de documento">...</div> e insertará la firma en la parte final del documento.
|
||||
3. Si ha llegado un nuevo mensaje, aprarecerá una ventana popup.
|
||||
4. Se activa la función "Enviar Mensajes" si la persona que envió la nota es usuario al comprobar en MemberModel::getMemberMenu.
|
||||
5. Agrega el menú "Ägregar Amigo" al llamar MemberModel::getMemberMenu.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -1,72 +1,72 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">OpenID delegation ID</title>
|
||||
<title xml:lang="zh-CN">OpenID</title>
|
||||
<title xml:lang="en">Addon for delegating domain name to OpenID</title>
|
||||
<title xml:lang="es">Delegación ID para OpenID</title>
|
||||
<title xml:lang="jp">OpenID</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
본인의 도메인을 사용하여 오픈아이디로 활용할 수 있도록 합니다.
|
||||
꼭 설정을 통해서 openid provider관련 값을 입력후 사용해주세요.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可以把本人的域名当分散式身份验证系统(OpenID)来使用。
|
||||
必须在设置中输入openid provider相关值后再使用。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon enables you to use your own domian name as an OpenID.
|
||||
Just be sure to set the values related with openid provider before using.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Utlizando su propio dominio puede usar como OpenID.
|
||||
Debe utilizar luego de ingresar los valores relacionado con openid provider a través de la configuracion.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
保有するドメインをオープンIDとして活用することができます。必ず設定で、OpenIDのプロバイダー関連の情報を入力してから使用してください。
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="server">
|
||||
<title xml:lang="ko">server</title>
|
||||
<title xml:lang="zh-CN">server</title>
|
||||
<title xml:lang="en">server</title>
|
||||
<title xml:lang="es">Servidor</title>
|
||||
<title xml:lang="jp">server</title>
|
||||
<description xml:lang="ko">openid.server 값을 입력해 주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 openid.server 值。</description>
|
||||
<description xml:lang="en">Please input your openid.server value.</description>
|
||||
<description xml:lang="es">Ingrese el valor del openid.server.</description>
|
||||
<description xml:lang="jp">openid.server の値を入力してください。</description>
|
||||
</var>
|
||||
<var name="delegate">
|
||||
<title xml:lang="ko">delegate</title>
|
||||
<title xml:lang="en">delegate</title>
|
||||
<title xml:lang="zh-CN">delegate</title>
|
||||
<title xml:lang="es">delegado</title>
|
||||
<title xml:lang="jp">delegate</title>
|
||||
<description xml:lang="ko">openid.delegate값을 입력해주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 openid.delegate 值。</description>
|
||||
<description xml:lang="en">Please input your openid.delegate value.</description>
|
||||
<description xml:lang="en">Ingresar el valor del openid.delegate</description>
|
||||
<description xml:lang="jp">openid.delegate の値を入力してください。</description>
|
||||
</var>
|
||||
<var name="xrds">
|
||||
<title xml:lang="ko">xrds</title>
|
||||
<title xml:lang="zh-CN">xrds</title>
|
||||
<title xml:lang="en">xrds</title>
|
||||
<title xml:lang="es">xrds</title>
|
||||
<title xml:lang="jp">xrds</title>
|
||||
<description xml:lang="ko">X-XRDS-Location값을 입력해주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 X-XRDS-Location 值。</description>
|
||||
<description xml:lang="en">Please input your X-XRDS-Location value.</description>
|
||||
<description xml:lang="es">Ingresar el valor de X-XRDS-Location</description>
|
||||
<description xml:lang="jp">X-XRDS-Location の値を入力してください。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">OpenID delegation ID</title>
|
||||
<title xml:lang="zh-CN">OpenID</title>
|
||||
<title xml:lang="en">Addon for delegating domain name to OpenID</title>
|
||||
<title xml:lang="es">Delegación ID para OpenID</title>
|
||||
<title xml:lang="jp">OpenID</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
본인의 도메인을 사용하여 오픈아이디로 활용할 수 있도록 합니다.
|
||||
꼭 설정을 통해서 openid provider관련 값을 입력후 사용해주세요.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可以把本人的域名当分散式身份验证系统(OpenID)来使用。
|
||||
必须在设置中输入openid provider相关值后再使用。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon enables you to use your own domian name as an OpenID.
|
||||
Just be sure to set the values related with openid provider before using.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Utlizando su propio dominio puede usar como OpenID.
|
||||
Debe utilizar luego de ingresar los valores relacionado con openid provider a través de la configuracion.
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
保有するドメインをオープンIDとして活用することができます。必ず設定で、OpenIDのプロバイダー関連の情報を入力してから使用してください。
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="server">
|
||||
<title xml:lang="ko">server</title>
|
||||
<title xml:lang="zh-CN">server</title>
|
||||
<title xml:lang="en">server</title>
|
||||
<title xml:lang="es">Servidor</title>
|
||||
<title xml:lang="jp">server</title>
|
||||
<description xml:lang="ko">openid.server 값을 입력해 주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 openid.server 值。</description>
|
||||
<description xml:lang="en">Please input your openid.server value.</description>
|
||||
<description xml:lang="es">Ingrese el valor del openid.server.</description>
|
||||
<description xml:lang="jp">openid.server の値を入力してください。</description>
|
||||
</var>
|
||||
<var name="delegate">
|
||||
<title xml:lang="ko">delegate</title>
|
||||
<title xml:lang="en">delegate</title>
|
||||
<title xml:lang="zh-CN">delegate</title>
|
||||
<title xml:lang="es">delegado</title>
|
||||
<title xml:lang="jp">delegate</title>
|
||||
<description xml:lang="ko">openid.delegate값을 입력해주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 openid.delegate 值。</description>
|
||||
<description xml:lang="en">Please input your openid.delegate value.</description>
|
||||
<description xml:lang="en">Ingresar el valor del openid.delegate</description>
|
||||
<description xml:lang="jp">openid.delegate の値を入力してください。</description>
|
||||
</var>
|
||||
<var name="xrds">
|
||||
<title xml:lang="ko">xrds</title>
|
||||
<title xml:lang="zh-CN">xrds</title>
|
||||
<title xml:lang="en">xrds</title>
|
||||
<title xml:lang="es">xrds</title>
|
||||
<title xml:lang="jp">xrds</title>
|
||||
<description xml:lang="ko">X-XRDS-Location값을 입력해주세요.</description>
|
||||
<description xml:lang="zh-CN">请输入 X-XRDS-Location 值。</description>
|
||||
<description xml:lang="en">Please input your X-XRDS-Location value.</description>
|
||||
<description xml:lang="es">Ingresar el valor de X-XRDS-Location</description>
|
||||
<description xml:lang="jp">X-XRDS-Location の値を入力してください。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">포인트 활성화 애드온</title>
|
||||
<title xml:lang="zh-CN">积分插件</title>
|
||||
<title xml:lang="jp">ポイントシステム</title>
|
||||
<title xml:lang="en">Addon for activating point</title>
|
||||
<title xml:lang="es">Addon para activar los puntos</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 26">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
포인트시스템 모듈에 설정된 내용을 바탕으로 글작성/삭제/댓글작성/삭제/파일업로드/삭제/다운로드등의 행동에 대해서 포인트를 기록합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
以积分系统模块中设置的内容为基础,对发表/删除新帖,发表/删除评论,上传/下载/删除/文件等动作记录为积分。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ポイントシステムモジュールで設定された内容を基に、書き込み作成・削除/コメント作成・削除/ファイルアップロード・削除/ダウンロードなどのユーザの活動に対してポイントを記録します。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon records point on writing/deleting/adding comments/deleting comments/uploading/downloading following to point system module.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon registra los puntos de acuerdo a la acción de escribir/borrar/agregar comentarios/borrar comentarios/subir_archivo/bajar_archivo,etc., siguiendo el módulo de sistema de puntos.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">포인트 활성화 애드온</title>
|
||||
<title xml:lang="zh-CN">积分插件</title>
|
||||
<title xml:lang="jp">ポイントシステム</title>
|
||||
<title xml:lang="en">Addon for activating point</title>
|
||||
<title xml:lang="es">Addon para activar los puntos</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 26">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
포인트시스템 모듈에 설정된 내용을 바탕으로 글작성/삭제/댓글작성/삭제/파일업로드/삭제/다운로드등의 행동에 대해서 포인트를 기록합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
以积分系统模块中设置的内容为基础,对发表/删除新帖,发表/删除评论,上传/下载/删除/文件等动作记录为积分。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ポイントシステムモジュールで設定された内容を基に、書き込み作成・削除/コメント作成・削除/ファイルアップロード・削除/ダウンロードなどのユーザの活動に対してポイントを記録します。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon records point on writing/deleting/adding comments/deleting comments/uploading/downloading following to point system module.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon registra los puntos de acuerdo a la acción de escribir/borrar/agregar comentarios/borrar comentarios/subir_archivo/bajar_archivo,etc., siguiendo el módulo de sistema de puntos.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">포인트 레벨 아이콘 표시 애드온</title>
|
||||
<title xml:lang="zh-CN">积分级别图标</title>
|
||||
<title xml:lang="jp">ポイントレベルアイコン</title>
|
||||
<title xml:lang="en">Addon for displaying level icon</title>
|
||||
<title xml:lang="es">Addon para mostar el nivel del ícono</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 26">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
포인트 시스템을 사용중일 경우 사용자 이름 앞에 레벨 아이콘을 표시하도록 합니다.
|
||||
레벨 아이콘은 모듈 > 포인트시스템에서 선택 가능합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
使用积分系统时,可以在用户名前显示级别图标。
|
||||
级别图标可以在模块 > 积分系统中进行选择。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ポイントシステムを使用している場合、ユーザ名の前にレベルアイコンを表示させます。レベルアイコンは、「モジュール>ポイントシステム」で選択できます。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon displays level icon in front of user name when point system is using.
|
||||
You can choose level icon on Module > Point System.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon muestra el nivel del ícono delante del nombre del usuario cuando es usado el sistema de puntos.
|
||||
Tu puedes elegir los icono de cada nivel en el módulo > Sistema de Puntos.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">포인트 레벨 아이콘 표시 애드온</title>
|
||||
<title xml:lang="zh-CN">积分级别图标</title>
|
||||
<title xml:lang="jp">ポイントレベルアイコン</title>
|
||||
<title xml:lang="en">Addon for displaying level icon</title>
|
||||
<title xml:lang="es">Addon para mostar el nivel del ícono</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 26">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
포인트 시스템을 사용중일 경우 사용자 이름 앞에 레벨 아이콘을 표시하도록 합니다.
|
||||
레벨 아이콘은 모듈 > 포인트시스템에서 선택 가능합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
使用积分系统时,可以在用户名前显示级别图标。
|
||||
级别图标可以在模块 > 积分系统中进行选择。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ポイントシステムを使用している場合、ユーザ名の前にレベルアイコンを表示させます。レベルアイコンは、「モジュール>ポイントシステム」で選択できます。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon displays level icon in front of user name when point system is using.
|
||||
You can choose level icon on Module > Point System.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon muestra el nivel del ícono delante del nombre del usuario cuando es usado el sistema de puntos.
|
||||
Tu puedes elegir los icono de cada nivel en el módulo > Sistema de Puntos.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">스팸필터 애드온</title>
|
||||
<title xml:lang="zh-CN">垃圾过滤</title>
|
||||
<title xml:lang="en">Addon for filtering spam</title>
|
||||
<title xml:lang="es">Addon para filtrar los Spam</title>
|
||||
<title xml:lang="jp">スパムフィルター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
SpamFilter 모듈을 이용하여 글/코멘트/트랙백 등록 이전에 스팸 필터링 및 도배 방지를 합니다.
|
||||
자세한 설정은 " 스팸필터 모듈" 에서 해주세요.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用垃圾过滤模块在发表主题/评论/引用之前进行垃圾过滤。
|
||||
请在" 垃圾过滤模块"中详细设置。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon filters spam and prevents users from cluttering before saving entries, comments, or trackbacks to database by setting SpamFilter module.
|
||||
You can set up more details on "Spam Filter module".
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon filtra y previene de los documentos/ commentarios/ trackback no deseado antes de ser agregados.
|
||||
Para la configuración más detallada, debe hacerse en el " Módulo de Filtro de Spam".
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
SpamFilterモジュールを利用して書き込み・コメント・トラックバックが登録される前にフィルタリングを行います。更に連続書き込みやロボットによる自動書き込みなどを防ぐことができます。詳細な設定は " スパムフィルターモジュール " で行ってください。
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">스팸필터 애드온</title>
|
||||
<title xml:lang="zh-CN">垃圾过滤</title>
|
||||
<title xml:lang="en">Addon for filtering spam</title>
|
||||
<title xml:lang="es">Addon para filtrar los Spam</title>
|
||||
<title xml:lang="jp">スパムフィルター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
SpamFilter 모듈을 이용하여 글/코멘트/트랙백 등록 이전에 스팸 필터링 및 도배 방지를 합니다.
|
||||
자세한 설정은 " 스팸필터 모듈" 에서 해주세요.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用垃圾过滤模块在发表主题/评论/引用之前进行垃圾过滤。
|
||||
请在" 垃圾过滤模块"中详细设置。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This addon filters spam and prevents users from cluttering before saving entries, comments, or trackbacks to database by setting SpamFilter module.
|
||||
You can set up more details on "Spam Filter module".
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este addon filtra y previene de los documentos/ commentarios/ trackback no deseado antes de ser agregados.
|
||||
Para la configuración más detallada, debe hacerse en el " Módulo de Filtro de Spam".
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
SpamFilterモジュールを利用して書き込み・コメント・トラックバックが登録される前にフィルタリングを行います。更に連続書き込みやロボットによる自動書き込みなどを防ぐことができます。詳細な設定は " スパムフィルターモジュール " で行ってください。
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -336,13 +336,14 @@
|
|||
$flag = true;
|
||||
foreach($obj as $key=>$val) {
|
||||
if(!$val) continue;
|
||||
if($val && !iconv($charset,'UTF-8',$val)) $flag = false;
|
||||
if($val && iconv($charset,$charset,$val)!=$val) $flag = false;
|
||||
}
|
||||
if($flag == true) {
|
||||
foreach($obj as $key => $val) $obj->{$key} = iconv($charset,'UTF-8',$val);
|
||||
return $obj;
|
||||
}
|
||||
}
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -868,7 +869,7 @@
|
|||
function _transEditorComponent($matches) {
|
||||
// IE에서는 태그의 특성중에서 " 를 빼어 버리는 경우가 있기에 정규표현식으로 추가해줌
|
||||
$buff = $matches[0];
|
||||
$buff = preg_replace_callback('/([^=^"^ ]*)=([^ ]*)/i', array($this, _fixQuotation), $buff);
|
||||
$buff = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', array($this, _fixQuotation), $buff);
|
||||
$buff = str_replace("&","&",$buff);
|
||||
|
||||
// 위젯에서 생성된 코드 (img, div태그내에 editor_widget코드 존재)의 parameter를 추출
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@
|
|||
$url_info = parse_url($url);
|
||||
|
||||
if(!$url_info['port']) $url_info['port'] = 80;
|
||||
if(!$url_info['path']) $url_info['path'] = '/';
|
||||
|
||||
$fp = @fsockopen($url_info['host'], $url_info['port']);
|
||||
if(!$fp) return;
|
||||
|
|
@ -149,7 +150,7 @@
|
|||
$url_info['path'] = $path;
|
||||
}
|
||||
|
||||
$header = sprintf("GET %s HTTP/2.0\r\nHost: %s\r\nReferer: %s://%s\r\nRequestUrl: %s\r\nConnection: Close\r\n\r\n", $url_info['path'], $url_info['host'], $url_info['scheme'], $url_info['host'], Context::getRequestUri());
|
||||
$header = sprintf("GET %s HTTP/1.0\r\nHost: %s\r\nReferer: %s://%s\r\nRequestUrl: %s\r\nConnection: Close\r\n\r\n", $url_info['path'], $url_info['host'], $url_info['scheme'], $url_info['host'], Context::getRequestUri());
|
||||
|
||||
@fwrite($fp, $header);
|
||||
|
||||
|
|
@ -164,6 +165,7 @@
|
|||
}
|
||||
@fclose($ft);
|
||||
@fclose($fp);
|
||||
@chmod($target_filename, 0644);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -271,6 +273,7 @@
|
|||
@imagewbmp($thumb, $target_file, 100);
|
||||
break;
|
||||
}
|
||||
@chmod($target_file, 0644);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
var $act = NULL; ///< action
|
||||
var $mid = NULL; ///< 모듈의 객체명
|
||||
var $document_srl = NULL; ///< 문서 번호
|
||||
var $module_srl = NULL; ///< 모듈의 번호
|
||||
|
||||
var $module_info = NULL; ///< 모듈의 정보
|
||||
|
||||
|
|
@ -31,7 +32,7 @@
|
|||
* 인자를 넘겨주지 않으면 현 페이지 요청받은 Request Arguments를 이용하여
|
||||
* 변수를 세팅한다.
|
||||
**/
|
||||
function ModuleHandler($module = '', $act = '', $mid = '', $document_srl = '') {
|
||||
function ModuleHandler($module = '', $act = '', $mid = '', $document_srl = '', $module_srl = '') {
|
||||
// 설치가 안되어 있다면 install module을 지정
|
||||
if(!Context::isInstalled()) {
|
||||
$this->module = 'install';
|
||||
|
|
@ -52,6 +53,9 @@
|
|||
if(!$document_srl) $this->document_srl = (int)Context::get('document_srl');
|
||||
else $this->document_srl = (int)$document_srl;
|
||||
|
||||
if(!$module_srl) $this->module_srl = (int)Context::get('module_srl');
|
||||
else $this->module_srl = (int)$module_srl;
|
||||
|
||||
// 기본 변수들의 검사 (XSS방지를 위한 기초적 검사)
|
||||
if($this->module && !eregi("^([a-z0-9\_\-]+)$",$this->module)) die(Context::getLang("msg_invalid_request"));
|
||||
if($this->mid && !eregi("^([a-z0-9\_\-]+)$",$this->mid)) die(Context::getLang("msg_invalid_request"));
|
||||
|
|
@ -70,12 +74,22 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
|
||||
// document_srl이 있으면 document_srl로 모듈과 모듈 정보를 구함
|
||||
if($this->document_srl && !$this->mid) $module_info = $oModuleModel->getModuleInfoByDocumentSrl($this->document_srl);
|
||||
if($this->module && $module_info->module != $this->module) unset($module_info);
|
||||
if($this->document_srl && !$this->mid && !$this->module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByDocumentSrl($this->document_srl);
|
||||
if($this->module && $module_info->module != $this->module) unset($module_info);
|
||||
}
|
||||
|
||||
// 아직 모듈을 못 찾았고 $mid값이 있으면 $mid로 모듈을 구함
|
||||
if(!$module_info && $this->mid) $module_info = $oModuleModel->getModuleInfoByMid($this->mid);
|
||||
if($this->module && $module_info->module != $this->module) unset($module_info);
|
||||
if(!$module_info && $this->mid) {
|
||||
$module_info = $oModuleModel->getModuleInfoByMid($this->mid);
|
||||
if($this->module && $module_info->module != $this->module) unset($module_info);
|
||||
}
|
||||
|
||||
// 모듈을 여전히(;;) 못 찾고 $module_srl이 있으면 해당 모듈을 구함
|
||||
if(!$module_info && $this->module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($this->module_srl);
|
||||
if($this->module && $module_info->module != $this->module) unset($module_info);
|
||||
}
|
||||
|
||||
// 역시 모듈을 못 찾았고 $module이 없다면 기본 모듈을 찾아봄
|
||||
if(!$module_info && !$this->module) $module_info = $oModuleModel->getModuleInfoByMid();
|
||||
|
|
|
|||
|
|
@ -92,15 +92,7 @@
|
|||
$grant->is_admin = false;
|
||||
}
|
||||
|
||||
// act값에 admin이 들어 있는데 관리자가 아닌 경우 오류 표시
|
||||
if(substr_count($this->act, 'Admin')) {
|
||||
if(!$is_logged) {
|
||||
$this->setAct("dispMemberLoginForm");
|
||||
} elseif(!$grant->is_admin) {
|
||||
return $this->stop('msg_not_permitted_act');
|
||||
}
|
||||
}
|
||||
|
||||
// module.xml 에 있는 권한 정보를 정리
|
||||
if($module_info->grants) {
|
||||
foreach($module_info->grants as $key => $val) {
|
||||
if(!$xml_info->grant->{$key}) {
|
||||
|
|
@ -160,6 +152,21 @@
|
|||
}
|
||||
}
|
||||
|
||||
// 현재 action값에 따른 최고 관리 권한 부여
|
||||
if($this->act && $xml_info->permission) {
|
||||
$permission_target = $xml_info->permission->{$this->act};
|
||||
if($permission_target && $grant->{$permission_target}) {
|
||||
foreach($grant as $key => $val) $grant->{$key} = true;
|
||||
}
|
||||
}
|
||||
|
||||
// act값에 admin이 들어 있는데 관리자가 아닌 경우 오류 표시
|
||||
if(substr_count($this->act, 'Admin')) {
|
||||
// 로그인 되어 있지 않다면 무조건 금지
|
||||
if(!$is_logged) $this->setAct("dispMemberLoginForm");
|
||||
elseif(!$grant->is_admin) $this->stop('msg_not_permitted_act');
|
||||
}
|
||||
|
||||
// 권한변수 설정
|
||||
$this->grant = $grant;
|
||||
Context::set('grant', $grant);
|
||||
|
|
|
|||
|
|
@ -477,7 +477,16 @@ function chkMemberMenu(evt) {
|
|||
if(obj && obj.className && obj.className.search("member_")!=-1) break;
|
||||
obj = obj.parentNode;
|
||||
}
|
||||
if(!obj || !obj.className || obj.className.search("member_")==-1) return;
|
||||
if(!obj || !obj.className || obj.className.search("member_")==-1) {
|
||||
// IE6의 경우 닫았던 select박스를 모두 표시
|
||||
if(xIE6) {
|
||||
var list = xGetElementsByTagName("SELECT");
|
||||
for (var i=0; i<list.length; i++) {
|
||||
list[i].style.visibility = list[i].getAttribute("old_visibility");
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if(obj.className.indexOf('member_-1')>=0) return;
|
||||
|
||||
|
|
@ -541,6 +550,16 @@ function displayMemberMenu(ret_obj, response_tags, params) {
|
|||
}
|
||||
|
||||
if(html) {
|
||||
// IE6의 경우 select박스를 모두 숨겨버림
|
||||
if(xIE6) {
|
||||
var list = xGetElementsByTagName("SELECT");
|
||||
for (var i=0; i<list.length; i++) {
|
||||
list[i].setAttribute("old_visibility", list[i].style.visibility);
|
||||
list[i].style.visibility = 'hidden';
|
||||
}
|
||||
}
|
||||
|
||||
// 레이어 출력
|
||||
xInnerHtml('membermenuarea', "<div class=\"box\">"+html+"</div>");
|
||||
xWidth(area, xWidth(area));
|
||||
xLeft(area, params["page_x"]);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = 'Cancel';
|
||||
$lang->cmd_back = 'Go Back';
|
||||
$lang->cmd_vote = 'Vote';
|
||||
$lang->cmd_copy = 'Copy';
|
||||
$lang->cmd_move = 'Move';
|
||||
$lang->cmd_move_up = 'Up';
|
||||
$lang->cmd_move_down = 'Down';
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = 'Cancelar';
|
||||
$lang->cmd_back = 'Atrás';
|
||||
$lang->cmd_vote = 'Recomendar';
|
||||
$lang->cmd_copy = 'Copia';
|
||||
$lang->cmd_move = 'Mover';
|
||||
$lang->cmd_move_up = 'Arriba';
|
||||
$lang->cmd_move_down = 'Abajo';
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = 'Decommander';
|
||||
$lang->cmd_back = 'Retour';
|
||||
$lang->cmd_vote = 'Voter';
|
||||
$lang->cmd_copy = 'Copie';
|
||||
$lang->cmd_move = 'Deplacer';
|
||||
$lang->cmd_move_up = 'Relever';
|
||||
$lang->cmd_move_down = 'Abaisser';
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = 'キャンセル';
|
||||
$lang->cmd_back = '戻る';
|
||||
$lang->cmd_vote = '推薦';
|
||||
$lang->cmd_copy = 'コピー';
|
||||
$lang->cmd_move = '移動';
|
||||
$lang->cmd_move_up = '上へ';
|
||||
$lang->cmd_move_down = '下へ';
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = '취소';
|
||||
$lang->cmd_back = '돌아가기';
|
||||
$lang->cmd_vote = '추천';
|
||||
$lang->cmd_copy = '복사';
|
||||
$lang->cmd_move = '이동';
|
||||
$lang->cmd_move_up = '위로';
|
||||
$lang->cmd_move_down = '아래로';
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
$lang->cmd_cancel = '取消';
|
||||
$lang->cmd_back = '返回';
|
||||
$lang->cmd_vote = '推荐';
|
||||
$lang->cmd_copy = '副本';
|
||||
$lang->cmd_move = '查看';
|
||||
$lang->cmd_move_up = '向上';
|
||||
$lang->cmd_move_down = '向下';
|
||||
|
|
@ -120,7 +121,7 @@
|
|||
$lang->regdate = '登录日期';
|
||||
$lang->last_update = '最后更新';
|
||||
$lang->signup_date = '注册日期';
|
||||
$lang->last_login = '最近登陆';
|
||||
$lang->last_login = '最近登录';
|
||||
$lang->first_page = '第一页';
|
||||
$lang->last_page = '最后一页';
|
||||
$lang->search_target = '搜索目标';
|
||||
|
|
|
|||
|
|
@ -1,23 +1,31 @@
|
|||
<?php
|
||||
$year = sprintf("%04d",$_REQUEST['year']);
|
||||
$month = sprintf("%02d",$_REQUEST['month']);
|
||||
####################
|
||||
## 연도 범위 설정 ##
|
||||
// 최대
|
||||
$max_year = 2900;//년 (우주가 사라지는 날 까지)
|
||||
// 최소
|
||||
$min_year = 1900;//년 (0년 부터)
|
||||
####################
|
||||
|
||||
$year = $_REQUEST['year'];
|
||||
$month = $_REQUEST['month'];
|
||||
|
||||
$method = $_REQUEST['method'];
|
||||
$fo_id = $_REQUEST['fo_id'];
|
||||
$callback_func = $_REQUEST['callback_func'];
|
||||
|
||||
$day_str = $_REQUEST['day_str'];
|
||||
$day_str = $_REQUEST['day_str']; // 날짜 (ex. 20080101)
|
||||
if($day_str && strlen($day_str)) {
|
||||
$year = substr($day_str,0,4);
|
||||
$month = substr($day_str,4,2);
|
||||
$year = substr($day_str, 0, 4);
|
||||
$month = substr($day_str, 4, 2);
|
||||
}
|
||||
|
||||
if(!(int)$year) $year = date("Y");
|
||||
if(!(int)$month) $month = date("m");
|
||||
if($year < $min_year || $year > $max_year) $year = date("Y");
|
||||
if(!(int)$month || $month < 1 || $month > 12) $month = date("n");
|
||||
|
||||
switch($method) {
|
||||
case 'prev_year' :
|
||||
$year = date("Y", mktime(0,0,0,1,1,$year)-60*60*24);
|
||||
$year --;
|
||||
break;
|
||||
case 'prev_month' :
|
||||
$month --;
|
||||
|
|
@ -34,16 +42,75 @@
|
|||
}
|
||||
break;
|
||||
case 'next_year' :
|
||||
$year = date("Y", mktime(0,0,0,12,31,$year)+60*60*24);
|
||||
$year ++;
|
||||
break;
|
||||
}
|
||||
|
||||
$start_week = date("w", mktime(0,0,0,$month,1,$year));
|
||||
$month_day = date("t", mktime(0,0,0,$month,1,$year));
|
||||
$before_month_month_day = date("t", mktime(0,0,0,$month,1,$year)-60*60*24);
|
||||
// 긴 이름
|
||||
$monthLongName = array(1 => "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
|
||||
|
||||
// 짧은 이름
|
||||
$monthShortName = array(1 => "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
|
||||
|
||||
// 요일 이름
|
||||
$dayName = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
|
||||
|
||||
/*
|
||||
* @brief 윤년 검사
|
||||
*/
|
||||
function isLeapYear($year) {
|
||||
if ($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* @brief 날짜 수 계산
|
||||
*/
|
||||
function convertDatetoDay($year, $month, $day = 0) {
|
||||
$numOfLeapYear = 0; // 윤년의 수
|
||||
|
||||
// 전년도까지의 윤년의 수를 구한다.
|
||||
for($i = 0; $i < $year; $i++) {
|
||||
if(isLeapYear($i)) $numOfLeapYear++;
|
||||
}
|
||||
|
||||
// 전년도까지의 일 수를 구한다.
|
||||
$toLastYearDaySum = ($year-1) * 365 + $numOfLeapYear;
|
||||
|
||||
// 올해의 현재 월까지의 일수 계산
|
||||
$thisYearDaySum = 0;
|
||||
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
|
||||
$endOfMonth = array(1 => 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
||||
|
||||
for($i = 1; $i < $month; $i++) {
|
||||
$thisYearDaySum += $endOfMonth[$i];
|
||||
}
|
||||
|
||||
// 윤년이고, 2월이 포함되어 있으면 1일을 증가시킨다.
|
||||
if ($month > 2 && isLeapYear($year)) $thisYearDaySum++;
|
||||
|
||||
if(isLeapYear($year)) $endOfMonth[2] = 29;
|
||||
|
||||
if($day) {
|
||||
$thisYearDaySum += $day;
|
||||
return $toLastYearDaySum + $thisYearDaySum - 1;
|
||||
} else {
|
||||
return $endOfMonth[$month];
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @brief 요일 구하기
|
||||
*/
|
||||
function getDayOfWeek($year, $month, $day) {
|
||||
// 0~6의 값을 반환한다. 결과가 0이면 일요일이다.
|
||||
return convertDatetoDay($year, $month, $day) % 7;
|
||||
}
|
||||
|
||||
$start_week = getDayOfWeek($year, $month, 1);
|
||||
$month_day = convertDatetoDay($year, $month);
|
||||
$before_month_month_day = convertDatetoDay( $month == 1 ? $year - 1 : $year, $month == 1 ? 12 : $month - 1);
|
||||
|
||||
$next_year = date("m", mktime(0,0,0,12,31, $year)+60*60*24);
|
||||
$next_month = date("m", mktime(0,0,0,$month,$month_day, $year)+60*60*24);
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html lang="ko" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
|
@ -67,8 +134,8 @@
|
|||
return;
|
||||
}
|
||||
|
||||
var date_obj = opener.xGetElementById("date_<?=$fo_id?>");
|
||||
var str_obj = opener.xGetElementById("str_<?=$fo_id?>");
|
||||
var date_obj = opener.xGetElementById("date_<?php echo $fo_id?>");
|
||||
var str_obj = opener.xGetElementById("str_<?php echo $fo_id?>");
|
||||
|
||||
if(date_obj) date_obj.value = date_val;
|
||||
|
||||
|
|
@ -82,99 +149,112 @@
|
|||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="popup_content" >
|
||||
<div id="popHeadder">
|
||||
<h1>Calendar</h1>
|
||||
</div>
|
||||
|
||||
<form action="./calendar.php" method="get">
|
||||
<input type="hidden" name="fo_id" value="<?=$fo_id?>"/>
|
||||
<input type="hidden" name="callback_func" value="<?=$callback_func?>"/>
|
||||
<input type="hidden" name="fo_id" value="<?php echo $fo_id?>"/>
|
||||
<input type="hidden" name="callback_func" value="<?php echo $callback_func?>"/>
|
||||
|
||||
<div id="popBody">
|
||||
|
||||
<div class="calendar">
|
||||
<div class="yymm">
|
||||
<div class="yy">
|
||||
<a href="./calendar.php?fo_id=<?=$fo_id?>&year=<?=$year?>&month=<?=$month?>&method=prev_year&callback_func=<?=$callback_func?>" class="left"><img src="./images/buttonLeft2.gif" alt="prev" width="11" height="11" /></a><?=$year?><a href="./calendar.php?fo_id=<?=$fo_id?>&year=<?=$year?>&month=<?=$month?>&method=next_year&callback_func=<?=$callback_func?>" class="right"><img src="./images/buttonRight2.gif" alt="next" width="11" height="11" /></a>
|
||||
<a href="./calendar.php?fo_id=<?php echo $fo_id?>&year=<?php echo $year?>&month=<?php echo $month?>&method=prev_year&callback_func=<?php echo $callback_func?>" class="left"><img src="./images/buttonLeft2.gif" alt="<?php echo $year - 1?>" width="11" height="11" /></a><?php echo $year?><a href="./calendar.php?fo_id=<?php echo $fo_id?>&year=<?php echo $year?>&month=<?php echo $month?>&method=next_year&callback_func=<?php echo $callback_func?>" class="right"><img src="./images/buttonRight2.gif" alt="<?php echo $year + 1?>" width="11" height="11" /></a>
|
||||
</div>
|
||||
<div class="mm">
|
||||
<p><?=date("M", mktime(0,0,0,$month,1,$year))?></p>
|
||||
<a href="./calendar.php?fo_id=<?=$fo_id?>&year=<?=$year?>&month=<?=$month?>&method=prev_month&callback_func=<?=$callback_func?>" class="left"><img src="./images/buttonLeft2.gif" alt="prev" width="11" height="11" /></a><span><?=$month?></span><a href="./calendar.php?fo_id=<?=$fo_id?>&year=<?=$year?>&month=<?=$month?>&method=next_month&callback_func=<?=$callback_func?>" class="right"><img src="./images/buttonRight2.gif" alt="next" width="11" height="11" /></a>
|
||||
<p><?php echo $monthLongName[$month]?></p>
|
||||
<a href="./calendar.php?fo_id=<?php echo $fo_id?>&year=<?php echo $year?>&month=<?php echo $month?>&method=prev_month&callback_func=<?php echo $callback_func?>" class="left"><img src="./images/buttonLeft2.gif" alt="prev" width="11" height="11" /></a><span><?php echo $month?></span><a href="./calendar.php?fo_id=<?php echo $fo_id?>&year=<?php echo $year?>&month=<?php echo $month?>&method=next_month&callback_func=<?php echo $callback_func?>" class="right"><img src="./images/buttonRight2.gif" alt="next" width="11" height="11" /></a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="go">
|
||||
<input type="text" name="year" class="inputTypeY" value="<?=$year?>" />
|
||||
<input type="text" name="month" class="inputTypeM" value="<?=$month?>" />
|
||||
<input type="image" src="./images/buttonGo.gif" alt="Go" />
|
||||
<select name="year" class="selectTypeY" onchange="submit()">
|
||||
<? for($i = $max_year; $i >= $min_year; $i--):?>
|
||||
<option value="<?php echo $i?>" <?php echo $year == $i? "selected":""?> class="<?php echo $i%10?($i%2?"select_color1":"select_color2"):"select_color10"?>"><?php echo $i?></option>
|
||||
<?endfor?>
|
||||
</select>
|
||||
<select name="month" class="selectTypeM" onchange="submit()">
|
||||
<? for($i = 1; $i <= 12; $i++):?>
|
||||
<option value="<?php echo $i?>" <?php echo $month == $i? "selected":""?> class="<?php echo $i%2?"select_color1":"select_color2"?>"><?php echo sprintf("%02d",$i)?></option>
|
||||
<?endfor?>
|
||||
</select>
|
||||
</div>
|
||||
<br /><br />
|
||||
<center><a href="./calendar.php" class="button"><span>Go Today</span></a></center>
|
||||
</div>
|
||||
|
||||
<table cellspacing="0" class="dd">
|
||||
|
||||
<tr>
|
||||
<?for($y = 0; $y < 7; $y++) {?>
|
||||
<td class="<?php echo $y==0?"sun":($y==6?"sat":"")?>"><?php echo $dayName[$y]?></td>
|
||||
<?}?>
|
||||
</tr>
|
||||
<?php
|
||||
for($i=0;$i<6;$i++) {
|
||||
//1주~6주
|
||||
for($i = 0; $i < 6; $i++) {
|
||||
?>
|
||||
<tr class="<?if($i==0){?>first<?}elseif($i==5){?>last<?}?>">
|
||||
<tr class="<?if($i == 0){?>first<?}elseif($i == 5){?>last<?}?>">
|
||||
<?php
|
||||
for($j=0;$j<7;$j++) {
|
||||
//요일
|
||||
for($j = 0; $j < 7; $j++) {
|
||||
$m = $month;
|
||||
$y = $year;
|
||||
|
||||
$cell_no = $i*7 + $j;
|
||||
$cell_no = $i * 7 + $j;
|
||||
|
||||
if($cell_no < $start_week) {
|
||||
$day = $before_month_month_day + $cell_no - $start_week + 1;
|
||||
$m = $month - 1;
|
||||
if($m<1) {
|
||||
if($m < 1) {
|
||||
$m = 12;
|
||||
$y = $year - 1;
|
||||
}
|
||||
} else {
|
||||
|
||||
$day = $cell_no - $start_week +1;
|
||||
$day = $cell_no - $start_week + 1;
|
||||
$m = $month;
|
||||
|
||||
if($day > $month_day) {
|
||||
$day = $day - $month_day;
|
||||
$m = $month + 1;
|
||||
if($m>12) {
|
||||
if($m >12 ) {
|
||||
$m = 1;
|
||||
$y = $year-1;
|
||||
$y = $year - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($j==0) $class_name = "sun";
|
||||
if($j == 0) $class_name = "sun";
|
||||
elseif($j == 6) $class_name = "sat";
|
||||
else $class_name= "";
|
||||
|
||||
$date = date("Y. m. d", mktime(0,0,0,$m, $day, $y));
|
||||
$date_str = date("Ymd", mktime(0,0,0,$m, $day, $y));
|
||||
$date = $y.". ".sprintf("%02d", $m).". ".sprintf("%02d", $day);
|
||||
$date_str = $y.sprintf("%02d", $m).sprintf("%02d", $day);
|
||||
|
||||
?>
|
||||
<td class="<?=$class_name?>">
|
||||
<?if($m==$month){?>
|
||||
<?if(date("Ymd")==$date_str){?><strong><?}?>
|
||||
<?if($day){?><a href="#" onclick="selectDate('<?=$date?>','<?=$date_str?>','<?=$callback_func?>');return false;"><?=$day?></a><?}else{?> <?}?>
|
||||
<td class="<?php echo $class_name?>" <?if($day){?> onclick="selectDate('<?php echo $date?>','<?php echo $date_str?>','<?php echo $callback_func?>')"<?}?>>
|
||||
<?if($m == $month){?><?if(date("Ymd")==$date_str){?><strong><?}?>
|
||||
<?if($day){?><?php echo $day?><?}else{?> <?}?>
|
||||
<?if(date("Ymd")==$date_str){?></strong><?}?>
|
||||
<?}else{?>
|
||||
<span class="disable"><?if($day){?><a href="#" onclick="selectDate('<?=$date?>','<?=$date_str?>','<?=$callback_func?>');return false;"><?=$day?></a><?}else{?> <?}?></span>
|
||||
<span class="disable"><?if($day){?><?php echo $day?><?}else{?> <?}?></span>
|
||||
<?}?>
|
||||
</td>
|
||||
<?
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
<?
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div id="popFooter" class="tCenter">
|
||||
<a href="#" onclick="window.close();" class="button"><span>close</span></a>
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
<!--@end--><!--@if($layout->author)--><meta name="layout_maker" content="{$layout_info->author->name} ({$layout_info->author->homepage})" />
|
||||
<!--@end--><meta http-equiv="imagetoolbar" content="no" />
|
||||
<title>{Context::getBrowserTitle()}</title>
|
||||
<script type="text/javascript" src="./common/js/x.js"></script>
|
||||
<script type="text/javascript" src="./common/js/common.js"></script>
|
||||
<script type="text/javascript" src="./common/js/xml_handler.js"></script>
|
||||
<script type="text/javascript" src="./common/js/xml_js_filter.js"></script>
|
||||
<!--@foreach(Context::getJsFile() as $key => $js_file)--><script type="text/javascript" src="{$js_file}"></script>
|
||||
<script type="text/javascript" src="./common/js/x.js?rnd={time()}"></script>
|
||||
<script type="text/javascript" src="./common/js/common.js?rnd={time()}"></script>
|
||||
<script type="text/javascript" src="./common/js/xml_handler.js?rnd={time()}"></script>
|
||||
<script type="text/javascript" src="./common/js/xml_js_filter.js?rnd={time()}"></script>
|
||||
<!--@foreach(Context::getJsFile() as $key => $js_file)--><script type="text/javascript" src="{$js_file}?rnd={time()}"></script>
|
||||
<!--@end--><!--@if($rss_url)--><link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{$rss_url}" />
|
||||
<!--@end--><link rel="stylesheet" href="./common/css/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="./common/css/button.css" type="text/css" />
|
||||
<!--@foreach(Context::getCssFile() as $key => $css_file)--><link rel="stylesheet" href="{$css_file}" type="text/css" />
|
||||
<!--@end--><!--@if($module=='admin' || strpos($act,'Admin')>0)--><link rel="stylesheet" href="./modules/admin/tpl/css/admin.css" type="text/css" />
|
||||
<!--@end--><link rel="stylesheet" href="./common/css/default.css?rnd={time()}" type="text/css" />
|
||||
<link rel="stylesheet" href="./common/css/button.css?rnd={time()}" type="text/css" />
|
||||
<!--@foreach(Context::getCssFile() as $key => $css_file)--><link rel="stylesheet" href="{$css_file}?rnd={time()}" type="text/css" />
|
||||
<!--@end--><!--@if($module=='admin' || strpos($act,'Admin')>0)--><link rel="stylesheet" href="./modules/admin/tpl/css/admin.css?rnd={time()}" type="text/css" />
|
||||
<!--@end--><script type="text/javascript">//<![CDATA[
|
||||
var current_url = "{$current_url}";
|
||||
var request_uri = "{$request_uri}";
|
||||
|
|
|
|||
|
|
@ -2,32 +2,37 @@
|
|||
|
||||
body { margin:0; padding:0; }
|
||||
|
||||
#popup_content { width:370px; overflow:hidden;}
|
||||
#popHeadder { width:370px; }
|
||||
#popBody { width:350px; }
|
||||
#popFooter { width:370px; }
|
||||
#popup_content { width:500px; overflow:hidden;}
|
||||
#popHeadder { width:500px; }
|
||||
#popBody { width:480px; }
|
||||
#popFooter { width:500px; }
|
||||
|
||||
#popBody .calendar { width:350px; border:1px solid #c1c0bd; border-left:none; border-right:none; background:#f5f5f5; overflow:hidden; position:relative;}
|
||||
#popBody .calendar { width:480px; border:1px solid #c1c0bd; border-left:none; border-right:none; background:#f5f5f5; overflow:hidden; position:relative;}
|
||||
#popBody .calendar .yymm { width:143px; float:left;}
|
||||
#popBody .calendar .yymm .yy { padding:9px 0 6px 0; text-align:center; border-bottom:1px solid #ededed; margin:0 15px; font:bold 1.2em Tahoma; color:#444444;}
|
||||
#popBody .calendar .yymm .yy { padding:9px 0 6px 0; text-align:center; border-bottom:1px solid #ededed; margin:0 15px; font:bold 1.5em Tahoma; color:#444444;}
|
||||
#popBody .calendar .yymm .mm { margin:0 15px; border-top:1px solid #ffffff; border-bottom:1px solid #ededed; padding:10px 0 7px 0; text-align:center;}
|
||||
#popBody .calendar .yymm .mm p { color:#969696; font:1.6em "Times New Roman";}
|
||||
#popBody .calendar .yymm .mm span { font:4em "Times New Roman"; color:#158692; vertical-align:middle;}
|
||||
#popBody .calendar .yymm .go { padding:7px 0 0 0; margin:0 15px; text-align:center; border-top:1px solid #ffffff;}
|
||||
#popBody .calendar .yymm .go { padding:7px 0 0 0; margin:0px 15px; text-align:center; border-top:1px solid #ffffff; display:inline;}
|
||||
#popBody .calendar .yymm .go * { vertical-align:middle;}
|
||||
#popBody .calendar .yymm .go .selectTypeY { width:60px;}
|
||||
#popBody .calendar .yymm .go .selectTypeM { width:45px;}
|
||||
#popBody .calendar .yymm .go .inputTypeY { border:1px solid #c9c9c9; text-align:center; font:.9em Tahoma; color:#282828; width:31px; height:16px;}
|
||||
#popBody .calendar .yymm .go .inputTypeM { border:1px solid #c9c9c9; text-align:center; font:.9em Tahoma; color:#282828; width:20px; height:16px;}
|
||||
#popBody .calendar .yymm .left { vertical-align:middle; margin-right:14px;}
|
||||
#popBody .calendar .yymm .right { vertical-align:middle; margin-left:14px;}
|
||||
#popBody .calendar .yymm .left img,
|
||||
#popBody .calendar .yymm .right img { vertical-align:middle; position:relative; top:2px;}
|
||||
#popBody .calendar .dd { float:left; width:207px; background:#ffffff; border-left:10px solid #ffffff;}
|
||||
#popBody .calendar .dd td { border-bottom:1px solid #ededed; height:32px; text-align:center; color:#636363; font:.9em Tahoma;}
|
||||
#popBody .calendar .dd td a { color:#636363; font:.9em Tahoma;}
|
||||
#popBody .calendar .dd { float:left; width:337px; background:#ffffff; border-left:10px solid #ffffff;}
|
||||
#popBody .calendar .dd td { border-bottom:1px solid #ededed; height:40px; text-align:center; color:#636363; font:1em Tahoma; cursor:pointer; width:14%;}
|
||||
#popBody .calendar .dd td:hover { background:#eeeeee;}
|
||||
#popBody .calendar .dd td strong { text-decoration:underline;}
|
||||
#popBody .calendar .dd td strong a { text-decoration:underline;}
|
||||
#popBody .calendar .dd td.sun { color:#c95b53;}
|
||||
#popBody .calendar .dd td.sun a { color:#c95b53;}
|
||||
#popBody .calendar .dd td.sat { color:#5378C9;}
|
||||
#popBody .calendar .dd .first { height:35px;}
|
||||
#popBody .calendar .dd .last td { height:35px; border-bottom:none;}
|
||||
#popBody .calendar .dd td .disable a { color:#CCCCCC; }
|
||||
#popBody .calendar .dd td .disable { color:#CCCCCC; }
|
||||
|
||||
#popBody .calendar .select_color1 {background:#ffffff;color:#000000;}
|
||||
#popBody .calendar .select_color2 {background:#eeeeee;color:#000000;}
|
||||
#popBody .calendar .select_color10 {background:#ffff00;color:#000000;}
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
<?php
|
||||
@error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
/**
|
||||
* @file config/config.inc.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
|
|
@ -12,7 +14,7 @@
|
|||
* 이 내용은 제로보드XE의 버전을 관리자 페이지에 표시하기 위한 용도이며
|
||||
* config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함
|
||||
**/
|
||||
define('__ZBXE_VERSION__', '0.1.4');
|
||||
define('__ZBXE_VERSION__', '0.1.5');
|
||||
|
||||
/**
|
||||
* @brief 디버깅 메세지 출력
|
||||
|
|
@ -83,8 +85,16 @@
|
|||
|
||||
/**
|
||||
* @brief 세션 설정
|
||||
* 세션의 파기 시간을 5시간으로 하고 세션 저장 경로를 files/session 으로 변경
|
||||
**/
|
||||
@session_cache_limiter('no-cache, must-revalidate');
|
||||
@ini_set("session.gc_maxlifetime", "18000");
|
||||
@session_start();
|
||||
if(!ini_get('session.auto_start')) {
|
||||
session_cache_limiter('no-cache, must-revalidate');
|
||||
ini_set("session.gc_maxlifetime", "18000");
|
||||
if(!is_dir("./files/sessions")) {
|
||||
FileHandler::makeDir("./files/sessions");
|
||||
@chmod("./files/sessions", 0777);
|
||||
}
|
||||
if(is_dir("./files/sessions")) session_save_path(realpath('.')."/files/sessions/");
|
||||
session_start();
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,137 +1,137 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout version="0.1">
|
||||
<title xml:lang="ko">ZBXE 공식 사이트 레이아웃</title>
|
||||
<title xml:lang="jp">ZBXEオフィシャルレイアウト</title>
|
||||
<title xml:lang="en">ZBXE Official website layout</title>
|
||||
<title xml:lang="es">Diseño oficial de la página web de ZBXE</title>
|
||||
<title xml:lang="zh-CN">ZBXE 官方网站布局</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 8. 1">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드XE 공식 사이트 레이아웃입니다.
|
||||
디자인 : 이소라
|
||||
퍼블리싱 : 정찬명
|
||||
레이아웃 제작 : zero
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ゼロボードXEのオフィシャルサイトのレイアウトです。
|
||||
デザイン:イソラ
|
||||
パブリシング:ジョンチャンミョン
|
||||
レイアウト作成:Zero
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This layout is the Zeroboard XE Official website layout.
|
||||
Designer : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
Layout producer : zero
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este diseño is el diseño oficial de la página web de Zerobard XE.
|
||||
Deseñador : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
Productor del diseño : zero
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
ZBXE 官方网站布局。
|
||||
设计 : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
布局 : zero
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="colorset" type="select">
|
||||
<title xml:lang="ko">컬러셋</title>
|
||||
<title xml:lang="jp">カラーセット</title>
|
||||
<title xml:lang="zh-CN">颜色</title>
|
||||
<title xml:lang="en">Colorset</title>
|
||||
<title xml:lang="es">Set de colores</title>
|
||||
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
|
||||
<description xml:lang="jp">希望する色を選択してください。</description>
|
||||
<description xml:lang="zh-CN">请选择颜色。</description>
|
||||
<description xml:lang="en">Please select a colorset you want.</description>
|
||||
<description xml:lang="es">Seleccione set de colores que desea.</description>
|
||||
<options name="default">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="jp">デフォルト</title>
|
||||
<title xml:lang="en">Basic</title>
|
||||
<title xml:lang="es">Básico</title>
|
||||
<title xml:lang="zh-CN">默认</title>
|
||||
<value>default</value>
|
||||
</options>
|
||||
<options name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="es">Negro</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<value>black</value>
|
||||
</options>
|
||||
<options name="white">
|
||||
<title xml:lang="ko">하얀색</title>
|
||||
<title xml:lang="jp">白</title>
|
||||
<title xml:lang="en">white</title>
|
||||
<title xml:lang="es">Blanco</title>
|
||||
<title xml:lang="zh-CN">白色</title>
|
||||
<value>white</value>
|
||||
</options>
|
||||
</var>
|
||||
<var name="logo_image" type="image">
|
||||
<title xml:lang="ko">로고이미지</title>
|
||||
<title xml:lang="jp">ロゴのイメージ</title>
|
||||
<title xml:lang="zh-CN">LOGO图片</title>
|
||||
<title xml:lang="en">Logo image</title>
|
||||
<title xml:lang="es">Imagen del logotipo</title>
|
||||
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요. (세로길이가 23px인 투명이미지가 가장 어울립니다)</description>
|
||||
<description xml:lang="jp">レイアウトの上端に表示されるロゴイメージを入力してください。 (縦幅が23pxである透明イメージが最も合います。)</description>
|
||||
<description xml:lang="zh-CN">请输入显示在布局顶部的LOGO图片。(高度为23px的透明图片为适。)</description>
|
||||
<description xml:lang="en">Please input a logo image which will be displayed on the top of layout. (Transparent image with height of 23px is recommended.)</description>
|
||||
<description xml:lang="es">Ingresar una imagen para logotipo. ( Se recomienda una imagen de fondo transparente con una altura de 23px.</description>
|
||||
</var>
|
||||
<var name="index_url" type="text">
|
||||
<title xml:lang="ko">홈 페이지 URL</title>
|
||||
<title xml:lang="jp">ホームページ URL</title>
|
||||
<title xml:lang="zh-CN">网站 URL</title>
|
||||
<title xml:lang="en">Homepage URL</title>
|
||||
<title xml:lang="es">URL de la página web</title>
|
||||
<description xml:lang="ko">로고를 클릭시에 이동할 홈 페이지 URL을 입력해 주세요.</description>
|
||||
<description xml:lang="jp">ロゴをクリックした時に移動するホームページのURLを入力してください。</description>
|
||||
<description xml:lang="zh-CN">点击网站LOGO时要移动的页面URL。</description>
|
||||
<description xml:lang="en">Please input the URL to redirect when user clicks the logo</description>
|
||||
<description xml:lang="es">Ingresar el URL de la página web para redireccionar al pulsar el logotipo</description>
|
||||
</var>
|
||||
<var name="background_image" type="image">
|
||||
<title xml:lang="ko">배경 이미지</title>
|
||||
<title xml:lang="jp">背景イメージ</title>
|
||||
<title xml:lang="zh-CN">背景图片</title>
|
||||
<title xml:lang="en">Background Image</title>
|
||||
<title xml:lang="es">Imagen de fondo</title>
|
||||
<description xml:lang="ko">배경 이미지를 사용하시려면 등록해주세요.</description>
|
||||
<description xml:lang="jp">背景イメージを使う場合は、登録してください。</description>
|
||||
<description xml:lang="zh-CN">要想使用背景图片请在这里上传。</description>
|
||||
<description xml:lang="en">Please input if you want to use background image.</description>
|
||||
<description xml:lang="es">Ingresar imagen de fondo si desea usar.</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
<menus>
|
||||
<menu name="main_menu" default="true">
|
||||
<title xml:lang="ko">상단 메뉴</title>
|
||||
<title xml:lang="jp">上端メニュー</title>
|
||||
<title xml:lang="zh-CN">主菜单</title>
|
||||
<title xml:lang="en">Top menu</title>
|
||||
<title xml:lang="es">Menú Principal</title>
|
||||
<maxdepth>3</maxdepth>
|
||||
</menu>
|
||||
<menu name="bottom_menu">
|
||||
<title xml:lang="ko">하단 메뉴 </title>
|
||||
<title xml:lang="jp">下段メニュー</title>
|
||||
<title xml:lang="zh-CN">底部菜单</title>
|
||||
<title xml:lang="en">Bottom menu</title>
|
||||
<title xml:lang="es">Menú Inferior </title>
|
||||
<maxdepth>1</maxdepth>
|
||||
</menu>
|
||||
</menus>
|
||||
</layout>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout version="0.1">
|
||||
<title xml:lang="ko">ZBXE 공식 사이트 레이아웃</title>
|
||||
<title xml:lang="jp">ZBXEオフィシャルレイアウト</title>
|
||||
<title xml:lang="en">ZBXE Official website layout</title>
|
||||
<title xml:lang="es">Diseño oficial de la página web de ZBXE</title>
|
||||
<title xml:lang="zh-CN">ZBXE 官方网站布局</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 8. 1">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드XE 공식 사이트 레이아웃입니다.
|
||||
디자인 : 이소라
|
||||
퍼블리싱 : 정찬명
|
||||
레이아웃 제작 : zero
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ゼロボードXEのオフィシャルサイトのレイアウトです。
|
||||
デザイン:イソラ
|
||||
パブリシング:ジョンチャンミョン
|
||||
レイアウト作成:Zero
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This layout is the Zeroboard XE Official website layout.
|
||||
Designer : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
Layout producer : zero
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este diseño is el diseño oficial de la página web de Zerobard XE.
|
||||
Deseñador : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
Productor del diseño : zero
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
ZBXE 官方网站布局。
|
||||
设计 : So-Ra Lee
|
||||
HTML/CSS : Chan-Myung Jeong
|
||||
布局 : zero
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var name="colorset" type="select">
|
||||
<title xml:lang="ko">컬러셋</title>
|
||||
<title xml:lang="jp">カラーセット</title>
|
||||
<title xml:lang="zh-CN">颜色</title>
|
||||
<title xml:lang="en">Colorset</title>
|
||||
<title xml:lang="es">Set de colores</title>
|
||||
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
|
||||
<description xml:lang="jp">希望する色を選択してください。</description>
|
||||
<description xml:lang="zh-CN">请选择颜色。</description>
|
||||
<description xml:lang="en">Please select a colorset you want.</description>
|
||||
<description xml:lang="es">Seleccione set de colores que desea.</description>
|
||||
<options name="default">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="jp">デフォルト</title>
|
||||
<title xml:lang="en">Basic</title>
|
||||
<title xml:lang="es">Básico</title>
|
||||
<title xml:lang="zh-CN">默认</title>
|
||||
<value>default</value>
|
||||
</options>
|
||||
<options name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="es">Negro</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<value>black</value>
|
||||
</options>
|
||||
<options name="white">
|
||||
<title xml:lang="ko">하얀색</title>
|
||||
<title xml:lang="jp">白</title>
|
||||
<title xml:lang="en">white</title>
|
||||
<title xml:lang="es">Blanco</title>
|
||||
<title xml:lang="zh-CN">白色</title>
|
||||
<value>white</value>
|
||||
</options>
|
||||
</var>
|
||||
<var name="logo_image" type="image">
|
||||
<title xml:lang="ko">로고이미지</title>
|
||||
<title xml:lang="jp">ロゴのイメージ</title>
|
||||
<title xml:lang="zh-CN">LOGO图片</title>
|
||||
<title xml:lang="en">Logo image</title>
|
||||
<title xml:lang="es">Imagen del logotipo</title>
|
||||
<description xml:lang="ko">레이아웃의 상단에 표시될 로고이미지를 입력하세요. (세로길이가 23px인 투명이미지가 가장 어울립니다)</description>
|
||||
<description xml:lang="jp">レイアウトの上端に表示されるロゴイメージを入力してください。 (縦幅が23pxである透明イメージが最も合います。)</description>
|
||||
<description xml:lang="zh-CN">请输入显示在布局顶部的LOGO图片。(高度为23px的透明图片为适。)</description>
|
||||
<description xml:lang="en">Please input a logo image which will be displayed on the top of layout. (Transparent image with height of 23px is recommended.)</description>
|
||||
<description xml:lang="es">Ingresar una imagen para logotipo. ( Se recomienda una imagen de fondo transparente con una altura de 23px.</description>
|
||||
</var>
|
||||
<var name="index_url" type="text">
|
||||
<title xml:lang="ko">홈 페이지 URL</title>
|
||||
<title xml:lang="jp">ホームページ URL</title>
|
||||
<title xml:lang="zh-CN">网站 URL</title>
|
||||
<title xml:lang="en">Homepage URL</title>
|
||||
<title xml:lang="es">URL de la página web</title>
|
||||
<description xml:lang="ko">로고를 클릭시에 이동할 홈 페이지 URL을 입력해 주세요.</description>
|
||||
<description xml:lang="jp">ロゴをクリックした時に移動するホームページのURLを入力してください。</description>
|
||||
<description xml:lang="zh-CN">点击网站LOGO时要移动的页面URL。</description>
|
||||
<description xml:lang="en">Please input the URL to redirect when user clicks the logo</description>
|
||||
<description xml:lang="es">Ingresar el URL de la página web para redireccionar al pulsar el logotipo</description>
|
||||
</var>
|
||||
<var name="background_image" type="image">
|
||||
<title xml:lang="ko">배경 이미지</title>
|
||||
<title xml:lang="jp">背景イメージ</title>
|
||||
<title xml:lang="zh-CN">背景图片</title>
|
||||
<title xml:lang="en">Background Image</title>
|
||||
<title xml:lang="es">Imagen de fondo</title>
|
||||
<description xml:lang="ko">배경 이미지를 사용하시려면 등록해주세요.</description>
|
||||
<description xml:lang="jp">背景イメージを使う場合は、登録してください。</description>
|
||||
<description xml:lang="zh-CN">要想使用背景图片请在这里上传。</description>
|
||||
<description xml:lang="en">Please input if you want to use background image.</description>
|
||||
<description xml:lang="es">Ingresar imagen de fondo si desea usar.</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
<menus>
|
||||
<menu name="main_menu" default="true">
|
||||
<title xml:lang="ko">상단 메뉴</title>
|
||||
<title xml:lang="jp">上端メニュー</title>
|
||||
<title xml:lang="zh-CN">主菜单</title>
|
||||
<title xml:lang="en">Top menu</title>
|
||||
<title xml:lang="es">Menú Principal</title>
|
||||
<maxdepth>3</maxdepth>
|
||||
</menu>
|
||||
<menu name="bottom_menu">
|
||||
<title xml:lang="ko">하단 메뉴 </title>
|
||||
<title xml:lang="jp">下段メニュー</title>
|
||||
<title xml:lang="zh-CN">底部菜单</title>
|
||||
<title xml:lang="en">Bottom menu</title>
|
||||
<title xml:lang="es">Menú Inferior </title>
|
||||
<maxdepth>1</maxdepth>
|
||||
</menu>
|
||||
</menus>
|
||||
</layout>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">애드온</title>
|
||||
<title xml:lang="en">Addon</title>
|
||||
<title xml:lang="es">Addon</title>
|
||||
<title xml:lang="zh-CN">插件</title>
|
||||
<title xml:lang="jp">アドオン</title>
|
||||
<title xml:lang="fr">Additions</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="fr">Zero</name>
|
||||
<description xml:lang="ko">애드온을 등록하거나 사용/미사용을 설정하는 애드온 관리 모듈입니다.</description>
|
||||
<description xml:lang="en">This module is for maintaining addons which can toggle use and disuse states.</description>
|
||||
<description xml:lang="es">Este Módulo es para agregar Addons, como también el manejo de ellos.</description>
|
||||
<description xml:lang="zh-CN">登录插件或设置启用/禁用插件的管理模块。</description>
|
||||
<description xml:lang="jp">アドオンの「登録、使用、未使用」などを設定するための管理モジュールです。</description>
|
||||
<description xml:lang="fr">Ce module est pour les Additions de maintien qui peuvent basculer des états d'utilisation et de désuétude. </description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">애드온</title>
|
||||
<title xml:lang="en">Addon</title>
|
||||
<title xml:lang="es">Addon</title>
|
||||
<title xml:lang="zh-CN">插件</title>
|
||||
<title xml:lang="jp">アドオン</title>
|
||||
<title xml:lang="fr">Additions</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="fr">Zero</name>
|
||||
<description xml:lang="ko">애드온을 등록하거나 사용/미사용을 설정하는 애드온 관리 모듈입니다.</description>
|
||||
<description xml:lang="en">This module is for maintaining addons which can toggle use and disuse states.</description>
|
||||
<description xml:lang="es">Este Módulo es para agregar Addons, como también el manejo de ellos.</description>
|
||||
<description xml:lang="zh-CN">登录插件或设置启用/禁用插件的管理模块。</description>
|
||||
<description xml:lang="jp">アドオンの「登録、使用、未使用」などを設定するための管理モジュールです。</description>
|
||||
<description xml:lang="fr">Ce module est pour les Additions de maintien qui peuvent basculer des états d'utilisation et de désuétude. </description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
$oAdminController->insertShortCut('blog');
|
||||
$oAdminController->insertShortCut('board');
|
||||
$oAdminController->insertShortCut('page');
|
||||
$oAdminController->insertShortCut('opage');
|
||||
$oAdminController->insertShortCut('menu');
|
||||
$oAdminController->insertShortCut('layout');
|
||||
$oAdminController->insertShortCut('addon');
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">관리자 모듈</title>
|
||||
<title xml:lang="en">Administrator Module</title>
|
||||
<title xml:lang="es">Módulo del administrador</title>
|
||||
<title xml:lang="zh-CN">管理员模块</title>
|
||||
<title xml:lang="jp">管理者用モジュール</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">각 모듈들의 기능을 나열하고 관리자용 레이아웃을 적용하여 관리 기능을 사용할 수 있도록 하는 모듈입니다.</description>
|
||||
<description xml:lang="en">This module shows a list of features of each module, and enables you to use a quite few of managers by applying layout for administrator.</description>
|
||||
<description xml:lang="es">Este módulo muestra una lista de características de cada módulo, en donde puede activar la función de la administracion aplicando el diseño del administrador.</description>
|
||||
<description xml:lang="zh-CN">列出各模块的功能并使用管理员布局,可以让其使用管理功能的模块。</description>
|
||||
<description xml:lang="jp">各モジュールの機能を羅列し、管理者用のレイアウトを適用させ、管理機能が使用できるようにするモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">관리자 모듈</title>
|
||||
<title xml:lang="en">Administrator Module</title>
|
||||
<title xml:lang="es">Módulo del administrador</title>
|
||||
<title xml:lang="zh-CN">管理员模块</title>
|
||||
<title xml:lang="jp">管理者用モジュール</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">각 모듈들의 기능을 나열하고 관리자용 레이아웃을 적용하여 관리 기능을 사용할 수 있도록 하는 모듈입니다.</description>
|
||||
<description xml:lang="en">This module shows a list of features of each module, and enables you to use a quite few of managers by applying layout for administrator.</description>
|
||||
<description xml:lang="es">Este módulo muestra una lista de características de cada módulo, en donde puede activar la función de la administracion aplicando el diseño del administrador.</description>
|
||||
<description xml:lang="zh-CN">列出各模块的功能并使用管理员布局,可以让其使用管理功能的模块。</description>
|
||||
<description xml:lang="jp">各モジュールの機能を羅列し、管理者用のレイアウトを適用させ、管理機能が使用できるようにするモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,40 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">블로그</title>
|
||||
<title xml:lang="jp">ブログ</title>
|
||||
<title xml:lang="en">Blog</title>
|
||||
<title xml:lang="es">Blog</title>
|
||||
<title xml:lang="zh-CN">博客</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">
|
||||
블로그의 기능을 담당하는 모듈.
|
||||
게시판과 비슷하지만 보여지는 view가 다르고 블로그에 적합한 method가 추가되었음.
|
||||
레이아웃과 기본 메뉴를 직접 담당
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ブログの機能を担当するモジュール
|
||||
掲示板と似ているが、内容の表示が異なり、ブログに適切なメソッドが追加されている。
|
||||
レイアウトと基本メニューを直接担当します。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This module contains the blog functions.
|
||||
It's similar to the bbs module, but it has diffent views and more suitable methods for blog has been included.
|
||||
This module manages layout and basic menu itself.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este módulo contiene funciones de blog.
|
||||
Esto es similar al módulo de tablero, sin embargo la vista que se muestra es diferente e incluye metodos apropiados para blog.
|
||||
El diseño y el menú básico es manejado por si mismo.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
是负责博客功能的模块。
|
||||
虽然类似版面,但其显示模式不同,且还添加了适合博客的method。
|
||||
内置布局和基本的菜单。
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">블로그</title>
|
||||
<title xml:lang="jp">ブログ</title>
|
||||
<title xml:lang="en">Blog</title>
|
||||
<title xml:lang="es">Blog</title>
|
||||
<title xml:lang="zh-CN">博客</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">
|
||||
블로그의 기능을 담당하는 모듈.
|
||||
게시판과 비슷하지만 보여지는 view가 다르고 블로그에 적합한 method가 추가되었음.
|
||||
레이아웃과 기본 메뉴를 직접 담당
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ブログの機能を担当するモジュール
|
||||
掲示板と似ているが、内容の表示が異なり、ブログに適切なメソッドが追加されている。
|
||||
レイアウトと基本メニューを直接担当します。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This module contains the blog functions.
|
||||
It's similar to the bbs module, but it has diffent views and more suitable methods for blog has been included.
|
||||
This module manages layout and basic menu itself.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este módulo contiene funciones de blog.
|
||||
Esto es similar al módulo de tablero, sin embargo la vista que se muestra es diferente e incluye metodos apropiados para blog.
|
||||
El diseño y el menú básico es manejado por si mismo.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
是负责博客功能的模块。
|
||||
虽然类似版面,但其显示模式不同,且还添加了适合博客的method。
|
||||
内置布局和基本的菜单。
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,41 @@
|
|||
<title xml:lang="jp">管理</title>
|
||||
</grant>
|
||||
</grants>
|
||||
<permissions>
|
||||
<permission action="dispBlogContent" target="manager" />
|
||||
<permission action="dispBlogWrite" target="manager" />
|
||||
<permission action="dispBlogDelete" target="manager" />
|
||||
<permission action="dispBlogReplyComment" target="manager" />
|
||||
<permission action="dispBlogModifyComment" target="manager" />
|
||||
<permission action="dispBlogDeleteComment" target="manager" />
|
||||
<permission action="dispBlogDeleteTrackback" target="manager" />
|
||||
<permission action="dispBlogMessage" target="manager" />
|
||||
|
||||
<permission action="procBlogInsertDocument" target="manager" />
|
||||
<permission action="procBlogDeleteDocument" target="manager" />
|
||||
<permission action="procBlogInsertComment" target="manager" />
|
||||
<permission action="procBlogDeleteComment" target="manager" />
|
||||
<permission action="procBlogDeleteTrackback" target="manager" />
|
||||
<permission action="procBlogVerificationPassword" target="manager" />
|
||||
<permission action="procBlogDeleteFile" target="manager" />
|
||||
<permission action="procBlogUploadFile" target="manager" />
|
||||
<permission action="procBlogDownloadFile" target="manager" />
|
||||
|
||||
<permission action="getBlogAdminCategoryTplInfo" target="manager" />
|
||||
|
||||
<permission action="dispBlogAdminContent" target="manager" />
|
||||
<permission action="dispBlogAdminBlogInfo" target="manager" />
|
||||
<permission action="dispBlogAdminInsertBlog" target="manager" />
|
||||
<permission action="dispBlogAdminCategoryInfo" target="manager" />
|
||||
<permission action="dispBlogAdminSkinInfo" target="manager" />
|
||||
|
||||
<permission action="procBlogAdminUpdateSkinInfo" target="manager" />
|
||||
<permission action="procBlogAdminInsertBlog" target="manager" />
|
||||
<permission action="procBlogAdminInsertCategory" target="manager" />
|
||||
<permission action="procBlogAdminDeleteCategory" target="manager" />
|
||||
<permission action="procBlogAdminMakeXmlFile" target="manager" />
|
||||
<permission action="procBlogAdminMoveCategory" target="manager" />
|
||||
</permissions>
|
||||
<actions>
|
||||
<action name="dispBlogContent" type="view" index="true" />
|
||||
<action name="dispBlogWrite" type="view" />
|
||||
|
|
|
|||
|
|
@ -236,7 +236,6 @@ Jeong, Chan Myeong 070601~070630
|
|||
.blogEditor .userNameAndPw .homePage { width:6em;}
|
||||
.blogEditor .userNameAndPw .checkSecret { position:absolute; right:2em; top:.7em;}
|
||||
.blogEditor .commentForm { width:100%; padding-bottom:.5em;}
|
||||
.blogEditor .commentForm textarea { width:632px; margin:.3em; height:100px;}
|
||||
|
||||
/* blogWrite */
|
||||
.blogWrite { width:100%; position:relative;}
|
||||
|
|
|
|||
|
|
@ -250,8 +250,6 @@ ul.replyZone .replyIndent { background:url(../images/common/iconReplyArrow.gif)
|
|||
.blogEditor .userNameAndPw .checkSecret { position:absolute; right:2em; top:.7em;}
|
||||
.blogEditor .buttonReply { position:relative; float:left; left:50%; margin:.5em 0 0 -2em; _padding-bottom:1em;}
|
||||
.blogEditor .commentForm { width:100%; padding-bottom:.5em;}
|
||||
.blogEditor .commentForm textarea { width:632px; margin:.3em; height:100px;}
|
||||
|
||||
|
||||
/* blogWrite */
|
||||
.blogWrite { width:100%; position:relative;}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
<!-- 카테고리의 위/아래, 삭제와 관련된 form -->
|
||||
<form id="fo_move_category" action="./" method="get">
|
||||
<input type="hidden" name="module_srl" />
|
||||
<input type="hidden" name="source_category_srl" />
|
||||
<input type="hidden" name="target_category_srl" />
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,17 @@
|
|||
|
||||
<!-- 목록 -->
|
||||
<table cellspacing="0" class="tableType1">
|
||||
<col width="40" />
|
||||
<col width="130" />
|
||||
<col />
|
||||
<col />
|
||||
<col width="40" />
|
||||
<col width="80" />
|
||||
<col width="100" />
|
||||
<col width="80" />
|
||||
<col width="40" />
|
||||
<col width="40" />
|
||||
<col width="40" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
|
|
@ -16,7 +27,7 @@
|
|||
<form action="./" method="get" onsubmit="return doChangeCategory(this);">
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="act" value="{$act}" />
|
||||
<select name="module_category_srl">
|
||||
<select name="module_category_srl" class="w80">
|
||||
<option value="">{$lang->module_category}</option>
|
||||
<!--@foreach($module_category as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
|
|
@ -34,6 +45,7 @@
|
|||
<th scope="col">{$lang->admin_id}</th>
|
||||
<th scope="col">{$lang->regdate}</th>
|
||||
<th scope="col">{$lang->cmd_view}</th>
|
||||
<th scope="col">{$lang->cmd_copy}</th>
|
||||
<th scope="col">{$lang->cmd_delete}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -50,14 +62,15 @@
|
|||
{$module_category[$val->module_category_srl]->title}
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td><a href="{getUrl('act','dispBlogAdminBlogInfo','module_srl',$val->module_srl)}" class="blue">{$val->mid}</a></td>
|
||||
<td>{htmlspecialchars($val->browser_title)}</td>
|
||||
<td><div class="tLeft"> <a href="{getUrl('act','dispBlogAdminBlogInfo','module_srl',$val->module_srl)}" class="blue">{$val->mid}</a></div></td>
|
||||
<td><div class="tLeft nowrap">{htmlspecialchars($val->browser_title)}</div></td>
|
||||
<td class="tahoma">{$val->is_default}</td>
|
||||
<td class="tahoma">{$val->skin}</td>
|
||||
<td class="tahoma">{$val->admin_id}</td>
|
||||
<td class="tahoma">{$val->admin_id} </td>
|
||||
<td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td class="blue"><a href="./?mid={$val->mid}" target="_blank">{$lang->cmd_view}</a></td>
|
||||
<td class="red"><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispBlogAdminDeleteBlog','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a><!--@end--></td>
|
||||
<td class="blue"><a href="{getUrl('','mid',$val->mid)}" onclick="window.open(this.href);return false;">{$lang->cmd_view}</a></td>
|
||||
<td class="blue"><a href="./?module=module&act=dispModuleAdminCopyModule&module_srl={$val->module_srl}" onclick="popopen(this.href);return false;">{$lang->cmd_copy}</a></td>
|
||||
<td class="red"><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispBlogAdminDeleteBlog','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a><!--@else--> <!--@end--></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ function doInsertCategory(parent_srl) {
|
|||
function doGetCategoryInfo(category_id, obj) {
|
||||
// category, category_id, node_srl을 추출
|
||||
var fo_obj = xGetElementById("fo_category");
|
||||
var module_srl = fo_obj.module_srl.value;
|
||||
var node_srl = 0;
|
||||
var parent_srl = 0;
|
||||
|
||||
|
|
@ -147,6 +148,7 @@ function doGetCategoryInfo(category_id, obj) {
|
|||
var params = new Array();
|
||||
params["category_srl"] = node_srl;
|
||||
params["parent_srl"] = parent_srl;
|
||||
params["module_srl"] = module_srl;
|
||||
|
||||
// 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다.
|
||||
var response_tags = new Array('error','message','tpl');
|
||||
|
|
@ -217,9 +219,12 @@ function completeInsertCategory(ret_obj) {
|
|||
function doMoveTree(category_id, source_category_srl, target_category_srl) {
|
||||
source_category_srl = source_category_srl.replace(/menu_category_/,'');
|
||||
target_category_srl = target_category_srl.replace(/menu_category_/,'');
|
||||
var p_fo_obj = xGetElementById("fo_category");
|
||||
|
||||
var fo_obj = xGetElementById("fo_move_category");
|
||||
fo_obj.source_category_srl.value = source_category_srl;
|
||||
fo_obj.target_category_srl.value = target_category_srl;
|
||||
fo_obj.module_srl.value = p_fo_obj.module_srl.value;
|
||||
|
||||
// 이동 취소를 선택하였을 경우 다시 그림;;
|
||||
if(!procFilter(fo_obj, move_category)) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@
|
|||
// board 라는 이름의 모듈이 있는지 확인
|
||||
$module_info = $oModuleModel->getModuleInfoByMid($args->board_name);
|
||||
if($module_info->module_srl) $args->module_srl = $module_info->module_srl;
|
||||
else $args->module_srl = 0;
|
||||
|
||||
// 게시판 controller 생성
|
||||
$oBoardController = &getAdminController('board');
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">게시판</title>
|
||||
<title xml:lang="zh-CN">版面</title>
|
||||
<title xml:lang="en">Board</title>
|
||||
<title xml:lang="es">Tablero</title>
|
||||
<title xml:lang="jp">掲示板</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">게시판의 기능을 담당하는 모듈. 게시판의 생성/추가 관리등의 관리자 기능도 포함합니다.</description>
|
||||
<description xml:lang="zh-CN">给用户提供相应版面功能,将包含版面的生成/添加及版面管理等管理员功能。</description>
|
||||
<description xml:lang="en">Module of the board''s function. Also includes administrator functions such as creating/managing boards.</description>
|
||||
<description xml:lang="es">Módulo para la función del tablero. Incluye funciones de administración como crear/ agregar o el manejo de los tableros.</description>
|
||||
<description xml:lang="jp">掲示板の機能を担うモジュールです。掲示板の生成・追加・管理などの管理者機能も含まれています。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">게시판</title>
|
||||
<title xml:lang="zh-CN">版面</title>
|
||||
<title xml:lang="en">Board</title>
|
||||
<title xml:lang="es">Tablero</title>
|
||||
<title xml:lang="jp">掲示板</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">게시판의 기능을 담당하는 모듈. 게시판의 생성/추가 관리등의 관리자 기능도 포함합니다.</description>
|
||||
<description xml:lang="zh-CN">给用户提供相应版面功能,将包含版面的生成/添加及版面管理等管理员功能。</description>
|
||||
<description xml:lang="en">Module of the board''s function. Also includes administrator functions such as creating/managing boards.</description>
|
||||
<description xml:lang="es">Módulo para la función del tablero. Incluye funciones de administración como crear/ agregar o el manejo de los tableros.</description>
|
||||
<description xml:lang="jp">掲示板の機能を担うモジュールです。掲示板の生成・追加・管理などの管理者機能も含まれています。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -44,6 +44,37 @@
|
|||
<title xml:lang="en">manager</title>
|
||||
</grant>
|
||||
</grants>
|
||||
<permissions>
|
||||
<permission action="dispBoardContent" target="manager" />
|
||||
<permission action="dispBoardWrite" target="manager" />
|
||||
<permission action="dispBoardDelete" target="manager" />
|
||||
<permission action="dispBoardReplyComment" target="manager" />
|
||||
<permission action="dispBoardModifyComment" target="manager" />
|
||||
<permission action="dispBoardDeleteComment" target="manager" />
|
||||
<permission action="dispBoardDeleteTrackback" target="manager" />
|
||||
<permission action="dispBoardMessage" target="manager" />
|
||||
|
||||
<permission action="procBoardInsertDocument" target="manager" />
|
||||
<permission action="procBoardDeleteDocument" target="manager" />
|
||||
<permission action="procBoardInsertComment" target="manager" />
|
||||
<permission action="procBoardDeleteComment" target="manager" />
|
||||
<permission action="procBoardDeleteTrackback" target="manager" />
|
||||
<permission action="procBoardDeleteFile" target="manager" />
|
||||
<permission action="procBoardUploadFile" target="manager" />
|
||||
<permission action="procBoardDownloadFile" target="manager" />
|
||||
|
||||
<permission action="dispBoardAdminInsertBoard" target="manager" />
|
||||
<permission action="dispBoardAdminBoardInfo" target="manager" />
|
||||
<permission action="dispBoardAdminSkinInfo" target="manager" />
|
||||
<permission action="dispBoardAdminCategoryInfo" target="manager" />
|
||||
<permission action="dispBoardAdminManageDocument" target="manager" />
|
||||
|
||||
<permission action="procBoardAdminInsertBoard" target="manager" />
|
||||
<permission action="procBoardAdminUpdateSkinInfo" target="manager" />
|
||||
<permission action="procBoardAdminInsertCategory" target="manager" />
|
||||
<permission action="procBoardAdminUpdateCategory" target="manager" />
|
||||
<permission action="procBoardAdminManageCheckedDocument" target="manager" />
|
||||
</permissions>
|
||||
<actions>
|
||||
<action name="dispBoardContent" type="view" index="true" />
|
||||
<action name="dispBoardWrite" type="view" />
|
||||
|
|
|
|||
|
|
@ -79,9 +79,9 @@ Jeong, Chan Myeong 070601~070630
|
|||
|
||||
.boardList.thumbnail { margin-top:-1px; border-bottom:none;}
|
||||
.boardList.thumbnail td { border-top:none; border-bottom:1px solid #eff0ed; padding:1.5em 0 0 1.5em; overflow:hidden;}
|
||||
.boardList.thumbnail div.cell { float:left; width:167px; overflow:hidden; margin:0 1.5em 0 0; padding-bottom:1.5em;}
|
||||
.boardList.thumbnail div.cell { float:left; width:167px; height:220px; overflow:hidden; margin:0 1.5em 0 0; padding-bottom:1.5em;}
|
||||
.boardList.thumbnail div.cell img.thumb { padding:2px; border:1px solid #e0e1db; display:block; margin-bottom:1em;}
|
||||
.boardList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px;}
|
||||
.boardList.thumbnail div.title { color:#444444; margin-bottom:.2em; padding-left:3px; overflow:hidden; white-space:nowrap;}
|
||||
.boardList.thumbnail div.title a { color:#444444; text-decoration:none;}
|
||||
.boardList.thumbnail div.nameAndDate { font-size:.9em; color:#999999; margin-bottom:.2em; padding-left:3px;}
|
||||
.boardList.thumbnail div.nameAndDate a { color:#999999;}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,17 @@
|
|||
|
||||
<!-- 목록 -->
|
||||
<table cellspacing="0" class="tableType1">
|
||||
<col width="40" />
|
||||
<col width="130" />
|
||||
<col />
|
||||
<col />
|
||||
<col width="40" />
|
||||
<col width="80" />
|
||||
<col width="100" />
|
||||
<col width="80" />
|
||||
<col width="40" />
|
||||
<col width="40" />
|
||||
<col width="40" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
|
|
@ -16,7 +27,7 @@
|
|||
<form action="./" method="get" onsubmit="return doChangeCategory(this);">
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="act" value="{$act}" />
|
||||
<select name="module_category_srl">
|
||||
<select name="module_category_srl" class="w80">
|
||||
<option value="">{$lang->module_category}</option>
|
||||
<!--@foreach($module_category as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
|
|
@ -34,6 +45,7 @@
|
|||
<th scope="col">{$lang->admin_id}</th>
|
||||
<th scope="col">{$lang->regdate}</th>
|
||||
<th scope="col">{$lang->cmd_view}</th>
|
||||
<th scope="col">{$lang->cmd_copy}</th>
|
||||
<th scope="col">{$lang->cmd_delete}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -48,13 +60,14 @@
|
|||
{$module_category[$val->module_category_srl]->title}
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td><div class="tLeft"><a href="{getUrl('act','dispBoardAdminBoardInfo','module_srl',$val->module_srl)}" class="blue">{$val->mid}</a></div></td>
|
||||
<td><div class="tLeft nowrap"> <a href="{getUrl('act','dispBoardAdminBoardInfo','module_srl',$val->module_srl)}" class="blue">{$val->mid}</a></div></td>
|
||||
<td><div class="tLeft">{htmlspecialchars($val->browser_title)}</div></td>
|
||||
<td class="tahoma">{$val->is_default}</td>
|
||||
<td class="tahoma">{$val->skin}</td>
|
||||
<td class="tahoma">{$val->admin_id}</td>
|
||||
<td class="tahoma">{$val->admin_id} </td>
|
||||
<td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td class="blue"><a href="{getUrl('','mid',$val->mid)}" onclick="window.open(this.href); return false;">{$lang->cmd_view}</a></td>
|
||||
<td class="blue"><a href="./?module=module&act=dispModuleAdminCopyModule&module_srl={$val->module_srl}" onclick="popopen(this.href);return false;">{$lang->cmd_copy}</a></td>
|
||||
<td class="red"><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispBoardAdminDeleteBoard','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a><!--@end--></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">기본 카운터</title>
|
||||
<title xml:lang="zh-CN">访问统计</title>
|
||||
<title xml:lang="en">Basic Counter</title>
|
||||
<title xml:lang="es">Contador Básico</title>
|
||||
<title xml:lang="jp">接続カウンター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">기본 접속 통계 프로그램입니다.</description>
|
||||
<description xml:lang="zh-CN">默认访问统计程序。</description>
|
||||
<description xml:lang="en">Basic connection statistics program.</description>
|
||||
<description xml:lang="es">Programa básico para la estadística de la conección.</description>
|
||||
<description xml:lang="jp">接続統計のプログラムです。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">기본 카운터</title>
|
||||
<title xml:lang="zh-CN">访问统计</title>
|
||||
<title xml:lang="en">Basic Counter</title>
|
||||
<title xml:lang="es">Contador Básico</title>
|
||||
<title xml:lang="jp">接続カウンター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">기본 접속 통계 프로그램입니다.</description>
|
||||
<description xml:lang="zh-CN">默认访问统计程序。</description>
|
||||
<description xml:lang="en">Basic connection statistics program.</description>
|
||||
<description xml:lang="es">Programa básico para la estadística de la conección.</description>
|
||||
<description xml:lang="jp">接続統計のプログラムです。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">문서</title>
|
||||
<title xml:lang="en">Document</title>
|
||||
<title xml:lang="es">Documento</title>
|
||||
<title xml:lang="zh-CN">主题</title>
|
||||
<title xml:lang="jp">コンテンツ</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">게시판, 블로그등의 모듈에서 사용되는 문서를 관리하는 모듈입니다. </description>
|
||||
<description xml:lang="en">Module for managing documents used in board, blog, etc.</description>
|
||||
<description xml:lang="es">Módulo para manejar los documentos en blog y en los tableros.</description>
|
||||
<description xml:lang="zh-CN">管理版面,博客等处主题的模块。 </description>
|
||||
<description xml:lang="jp">掲示板、ブログなどのモジュルで使用されるドキュメント(書き込み)を管理するモジュルです。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">문서</title>
|
||||
<title xml:lang="en">Document</title>
|
||||
<title xml:lang="es">Documento</title>
|
||||
<title xml:lang="zh-CN">主题</title>
|
||||
<title xml:lang="jp">コンテンツ</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">게시판, 블로그등의 모듈에서 사용되는 문서를 관리하는 모듈입니다. </description>
|
||||
<description xml:lang="en">Module for managing documents used in board, blog, etc.</description>
|
||||
<description xml:lang="es">Módulo para manejar los documentos en blog y en los tableros.</description>
|
||||
<description xml:lang="zh-CN">管理版面,博客等处主题的模块。 </description>
|
||||
<description xml:lang="jp">掲示板、ブログなどのモジュルで使用されるドキュメント(書き込み)を管理するモジュルです。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
* @brief 특정 게시물들의 소속 모듈 변경 (게시글 이동시에 사용)
|
||||
**/
|
||||
function moveDocumentModule($document_srl_list, $module_srl, $source_module_srl) {
|
||||
if(!count($document_srl_list)) return;
|
||||
|
||||
$args->document_srls = implode(',',$document_srl_list);
|
||||
$args->module_srl = $module_srl;
|
||||
|
||||
|
|
|
|||
|
|
@ -299,17 +299,18 @@
|
|||
FileHandler::writeFile($thumbnail_file, '', 'w');
|
||||
|
||||
// 첨부파일이 있는지 확인하고 있으면 썸네일 만듬
|
||||
$file_list = FileHandler::readDir($document_path);
|
||||
$oFile = &getModel('file');
|
||||
$file_list = $oFile->getFiles($this->document_srl);
|
||||
if(count($file_list)) {
|
||||
foreach($file_list as $key => $val) {
|
||||
if(eregi("^thumbnail_([0-9]+)\.(jpg|gif)$",$val)) continue;
|
||||
if(!eregi("\.(jpg|gif|png|jpeg)$", $val)) continue;
|
||||
foreach($file_list as $file) {
|
||||
if($file->direct_download!='Y') continue;
|
||||
if(!eregi("(jpg|png|jpeg|gif)$",$file->source_filename)) continue;
|
||||
|
||||
$filename = sprintf("%s%s",$document_path,$val);
|
||||
if(file_exists($filename)) {
|
||||
FileHandler::createImageFile($filename, $thumbnail_file, $width, $width, 'jpg');
|
||||
if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file;
|
||||
}
|
||||
$filename = $file->uploaded_filename;
|
||||
if(!file_exists($filename)) continue;
|
||||
|
||||
FileHandler::createImageFile($filename, $thumbnail_file, $width, $width, 'jpg');
|
||||
if(file_exists($thumbnail_file)) return Context::getRequestUri().$thumbnail_file;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
* @brief 文章(document)模块语言包
|
||||
**/
|
||||
|
||||
$lang->cmd_toggle_checked_document = '선택항목 반전';
|
||||
$lang->cmd_delete_checked_document = '删除所选项目';
|
||||
$lang->cmd_toggle_checked_document = '反选';
|
||||
$lang->cmd_delete_checked_document = '删除所选';
|
||||
|
||||
$lang->msg_cart_is_null = '请选择要删除的文章。';
|
||||
$lang->msg_category_not_moved = '不能移动!';
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">위지윅 에디터 </title>
|
||||
<title xml:lang="en">WYSIWYG Editor </title>
|
||||
<title xml:lang="es">Editor WYSIWYG </title>
|
||||
<title xml:lang="zh-CN">网页编辑器</title>
|
||||
<title xml:lang="jp">エディター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">위지윅 에디터를 출력하거나 에디터 컴포넌트들을 관리/중계하는 모듈입니다.</description>
|
||||
<description xml:lang="en">Module for displaying WYSIWYG editor and managing/relaying editor components.</description>
|
||||
<description xml:lang="es">Módulo para mostrar en la pantalla el editor de WYSIWYG y para el manejo/relato de los componentes del editor.</description>
|
||||
<description xml:lang="zh-CN">显示网页编辑器或管理/传递编辑器组件的模块。</description>
|
||||
<description xml:lang="jp">ウィジウィグエディター を出力したり、エディターのコンポネントを管理中継するモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">위지윅 에디터 </title>
|
||||
<title xml:lang="en">WYSIWYG Editor </title>
|
||||
<title xml:lang="es">Editor WYSIWYG </title>
|
||||
<title xml:lang="zh-CN">网页编辑器</title>
|
||||
<title xml:lang="jp">エディター</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">위지윅 에디터를 출력하거나 에디터 컴포넌트들을 관리/중계하는 모듈입니다.</description>
|
||||
<description xml:lang="en">Module for displaying WYSIWYG editor and managing/relaying editor components.</description>
|
||||
<description xml:lang="es">Módulo para mostrar en la pantalla el editor de WYSIWYG y para el manejo/relato de los componentes del editor.</description>
|
||||
<description xml:lang="zh-CN">显示网页编辑器或管理/传递编辑器组件的模块。</description>
|
||||
<description xml:lang="jp">ウィジウィグエディター を出力したり、エディターのコンポネントを管理中継するモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -61,13 +61,10 @@
|
|||
/**
|
||||
* 자동백업 기능 체크 (글 수정일 경우는 사용하지 않음)
|
||||
**/
|
||||
if(!$upload_target_srl && $enable_autosave) {
|
||||
if($enable_autosave) {
|
||||
// 자동 저장된 데이터를 추출
|
||||
$saved_doc = $this->getSavedDoc();
|
||||
|
||||
// 자동저장된 데이터에 실제하는 문서 번호가 있다면 해당 문서 번호를 세팅
|
||||
if($saved_doc->document_srl) $upload_target_srl = $saved_doc->upload_target_srl;
|
||||
|
||||
// 자동 저장 데이터를 context setting
|
||||
Context::set('saved_doc', $saved_doc);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@
|
|||
|
||||
<!-- 에디터 출력 -->
|
||||
<div class="editor_iframe_box"><iframe id="editor_iframe_{$editor_sequence}" frameborder="0" width="100%" height="{$editor_height}" style="background-color:transparent;"></iframe></div>
|
||||
<textarea id="editor_textarea_{$editor_sequence}" class="editor_iframe_textarea" style="display:none; height:{$editor_height}"></textarea>
|
||||
<textarea id="editor_textarea_{$editor_sequence}" class="editor_iframe_textarea" style="display:none; height:{$editor_height}" rows="10" cols="10"></textarea>
|
||||
|
||||
<!-- 에디터 크기 조절 bar -->
|
||||
<div class="textAreaDragIndicator"><div class="textAreaDragIndicatorBar" id="editor_drag_bar_{$editor_sequence}"></div></div>
|
||||
|
|
|
|||
|
|
@ -572,11 +572,14 @@ function editorEventCheck(evt) {
|
|||
case 'Outdent' :
|
||||
case 'InsertOrderedList' :
|
||||
case 'InsertUnorderedList' :
|
||||
case 'SaveAs' :
|
||||
case 'Copy' :
|
||||
case 'Cut' :
|
||||
case 'Paste' :
|
||||
case 'SaveAs' :
|
||||
case 'Print' :
|
||||
case 'Copy' :
|
||||
case 'Cut' :
|
||||
case 'Paste' :
|
||||
case 'RemoveFormat' :
|
||||
case 'Subscript' :
|
||||
case 'Superscript' :
|
||||
editorDo(component_name, '', editor_sequence);
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">첨부파일</title>
|
||||
<title xml:lang="zh-CN">上传附件</title>
|
||||
<title xml:lang="en">Attachment</title>
|
||||
<title xml:lang="es">Adjuntar archivos</title>
|
||||
<title xml:lang="jp">添付ファイル</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">첨부 파일 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">管理附件的模块。</description>
|
||||
<description xml:lang="en">Module for managing attachments.</description>
|
||||
<description xml:lang="es">Módulo para manejar los archivos adjuntos.</description>
|
||||
<description xml:lang="jp">添付ファイルを管理するモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">첨부파일</title>
|
||||
<title xml:lang="zh-CN">上传附件</title>
|
||||
<title xml:lang="en">Attachment</title>
|
||||
<title xml:lang="es">Adjuntar archivos</title>
|
||||
<title xml:lang="jp">添付ファイル</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">첨부 파일 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">管理附件的模块。</description>
|
||||
<description xml:lang="en">Module for managing attachments.</description>
|
||||
<description xml:lang="es">Módulo para manejar los archivos adjuntos.</description>
|
||||
<description xml:lang="jp">添付ファイルを管理するモジュールです。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">방명록</title>
|
||||
<title xml:lang="jp">ゲストブック</title>
|
||||
<title xml:lang="en">Guest Book</title>
|
||||
<title xml:lang="es">Tablero de visitas</title>
|
||||
<title xml:lang="zh-CN">留言本</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 19">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">모듈 제작을 위해 sample로 제작된 모듈입니다.</description>
|
||||
<description xml:lang="jp">モジュール作成のためのサンプルで作成されたモジュールです。</description>
|
||||
<description xml:lang="en">This is a sample module for creating modules.</description>
|
||||
<description xml:lang="es">Este is un módulo de muestra para crear módulos.</description>
|
||||
<description xml:lang="zh-CN">留言本sample模块。</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">방명록</title>
|
||||
<title xml:lang="jp">ゲストブック</title>
|
||||
<title xml:lang="en">Guest Book</title>
|
||||
<title xml:lang="es">Tablero de visitas</title>
|
||||
<title xml:lang="zh-CN">留言本</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 19">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<description xml:lang="ko">모듈 제작을 위해 sample로 제작된 모듈입니다.</description>
|
||||
<description xml:lang="jp">モジュール作成のためのサンプルで作成されたモジュールです。</description>
|
||||
<description xml:lang="en">This is a sample module for creating modules.</description>
|
||||
<description xml:lang="es">Este is un módulo de muestra para crear módulos.</description>
|
||||
<description xml:lang="zh-CN">留言本sample模块。</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@
|
|||
if(!$source_comment) return $this->dispGuestbookMessage('msg_invalid_request');
|
||||
|
||||
// 필요한 정보들 세팅
|
||||
Context::set('document_srl',$document_srl);
|
||||
Context::set('document_srl',$source_comment->document_srl);
|
||||
Context::set('parent_srl',$parent_srl);
|
||||
Context::set('comment_srl',NULL);
|
||||
Context::set('source_comment',$source_comment);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<parameter>
|
||||
<param name="mid" target="mid" />
|
||||
<param name="document_srl" target="document_srl" />
|
||||
<param name="comment_srl" target="comment_srl" />
|
||||
<param name="parent_srl" target="parent_srl" />
|
||||
<param name="nick_name" target="nick_name" />
|
||||
<param name="password" target="password" />
|
||||
|
|
|
|||
|
|
@ -9,11 +9,10 @@ function completeDocumentInserted(ret_obj) {
|
|||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
var mid = ret_obj['mid'];
|
||||
var document_srl = ret_obj['document_srl'];
|
||||
|
||||
alert(message);
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('page','').setQuery('comment_srl','');
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
|
|
@ -24,9 +23,7 @@ function completeDeleteDocument(ret_obj) {
|
|||
var mid = ret_obj['mid'];
|
||||
var page = ret_obj['page'];
|
||||
|
||||
var url = "./?mid="+mid;
|
||||
if(page) url += "&page="+page;
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('comment_srl','');
|
||||
alert(message);
|
||||
|
||||
location.href = url;
|
||||
|
|
@ -48,9 +45,7 @@ function completeInsertComment(ret_obj) {
|
|||
var document_srl = ret_obj['document_srl'];
|
||||
var comment_srl = ret_obj['comment_srl'];
|
||||
|
||||
var url = "./?mid="+mid+"&document_srl="+document_srl;
|
||||
//if(comment_srl) url += "#comment_"+comment_srl;
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('comment_srl','');
|
||||
alert(message);
|
||||
|
||||
location.href = url;
|
||||
|
|
@ -64,9 +59,7 @@ function completeDeleteComment(ret_obj) {
|
|||
var document_srl = ret_obj['document_srl'];
|
||||
var page = ret_obj['page'];
|
||||
|
||||
var url = "./?mid="+mid+'&document_srl='+document_srl;
|
||||
if(page) url += "&page="+page;
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('comment_srl','');
|
||||
alert(message);
|
||||
|
||||
location.href = url;
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">제로보드 데이터 이전</title>
|
||||
<title xml:lang="en">Zeroboard data transferation</title>
|
||||
<title xml:lang="zh-CN">数据导入</title>
|
||||
<title xml:lang="jp">ZBデータ移転</title>
|
||||
<title xml:lang="es">Transferencia de los datos de ZeroBoard</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<description xml:lang="ko">XML파일을 이용하여 회원정보 또는 게시판등의 데이터를 입력합니다. </description>
|
||||
<description xml:lang="en">Inputting member information or board's data using XML file.</description>
|
||||
<description xml:lang="zh-CN">利用XML文件导入会员信息或版面数据。</description>
|
||||
<description xml:lang="jp">XMLファイルを用いて会員情報または掲示板などの情報を入力します。</description>
|
||||
<description xml:lang="es">Ingresa la información del usuario o los datos del tablero utilizando el archivo XML.</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">제로보드 데이터 이전</title>
|
||||
<title xml:lang="en">Zeroboard data transferation</title>
|
||||
<title xml:lang="zh-CN">数据导入</title>
|
||||
<title xml:lang="jp">ZBデータ移転</title>
|
||||
<title xml:lang="es">Transferencia de los datos de ZeroBoard</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<description xml:lang="ko">XML파일을 이용하여 회원정보 또는 게시판등의 데이터를 입력합니다. </description>
|
||||
<description xml:lang="en">Inputting member information or board's data using XML file.</description>
|
||||
<description xml:lang="zh-CN">利用XML文件导入会员信息或版面数据。</description>
|
||||
<description xml:lang="jp">XMLファイルを用いて会員情報または掲示板などの情報を入力します。</description>
|
||||
<description xml:lang="es">Ingresa la información del usuario o los datos del tablero utilizando el archivo XML.</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">설치관리</title>
|
||||
<title xml:lang="en">Manage installation</title>
|
||||
<title xml:lang="zh-CN">安装管理</title>
|
||||
<title xml:lang="jp">インストール管理</title>
|
||||
<title xml:lang="es">Manajo de la Instalación</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<description xml:lang="ko">설치 관리 모듈</description>
|
||||
<description xml:lang="en">Module for managing installation</description>
|
||||
<description xml:lang="zh-CN">安装管理模块。</description>
|
||||
<description xml:lang="jp">インストール管理モジュール</description>
|
||||
<description xml:lang="es">Módulo para el manejo de la instalación</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">설치관리</title>
|
||||
<title xml:lang="en">Manage installation</title>
|
||||
<title xml:lang="zh-CN">安装管理</title>
|
||||
<title xml:lang="jp">インストール管理</title>
|
||||
<title xml:lang="es">Manajo de la Instalación</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<description xml:lang="ko">설치 관리 모듈</description>
|
||||
<description xml:lang="en">Module for managing installation</description>
|
||||
<description xml:lang="zh-CN">安装管理模块。</description>
|
||||
<description xml:lang="jp">インストール管理モジュール</description>
|
||||
<description xml:lang="es">Módulo para el manejo de la instalación</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">통합검색</title>
|
||||
<title xml:lang="zh-CN">搜索</title>
|
||||
<title xml:lang="jp">統合検索</title>
|
||||
<title xml:lang="en">Integration Search</title>
|
||||
<title xml:lang="es">Búsqueda Integrada</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 24">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
선택한 모듈들을 대상으로 통합검색을 지원합니다.
|
||||
선택된 모듈의 글중 비밀글만 검색을 하지 않고 나머지는 모두 검색을 하기에 공개되지 않은 모듈은 대상에 포함하지 않도록 하셔야 합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
把被选模块作为搜索对象进行搜索。
|
||||
被选模块当中只有密帖不会被搜索,因此请注意选择您不想搜索的模块。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
選択されたモジュールを対象に統合検索を行う機能をサポートします。選択されたモジュールのコンテンツ(書き込み)の中で、非公開コンテンツのみ検索から除外されますので、未公開のモジュールは対象にしないようにしてください。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
It supports integration search for chosen modules.
|
||||
All articles except secret articles will be searched, so you need to be careful not to include secret module to target .
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Soporta la búsqueda integrada de los módulos elegidos.
|
||||
Todo los documentos excepto los secretos serán buscados, y es necesario tener cuidado de no incluir módulo secreto como objetivo.
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">통합검색</title>
|
||||
<title xml:lang="zh-CN">搜索</title>
|
||||
<title xml:lang="jp">統合検索</title>
|
||||
<title xml:lang="en">Integration Search</title>
|
||||
<title xml:lang="es">Búsqueda Integrada</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 24">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">
|
||||
선택한 모듈들을 대상으로 통합검색을 지원합니다.
|
||||
선택된 모듈의 글중 비밀글만 검색을 하지 않고 나머지는 모두 검색을 하기에 공개되지 않은 모듈은 대상에 포함하지 않도록 하셔야 합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
把被选模块作为搜索对象进行搜索。
|
||||
被选模块当中只有密帖不会被搜索,因此请注意选择您不想搜索的模块。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
選択されたモジュールを対象に統合検索を行う機能をサポートします。選択されたモジュールのコンテンツ(書き込み)の中で、非公開コンテンツのみ検索から除外されますので、未公開のモジュールは対象にしないようにしてください。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
It supports integration search for chosen modules.
|
||||
All articles except secret articles will be searched, so you need to be careful not to include secret module to target .
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Soporta la búsqueda integrada de los módulos elegidos.
|
||||
Todo los documentos excepto los secretos serán buscados, y es necesario tener cuidado de no incluir módulo secreto como objetivo.
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,35 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">한국 우편번호</title>
|
||||
<title xml:lang="en">Korean Zip Code</title>
|
||||
<title xml:lang="es">Código postal de Corea</title>
|
||||
<title xml:lang="zh-CN">韩国邮编 </title>
|
||||
<title xml:lang="jp">韓国郵便番号</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드에서 운영하는 우편번호서버를 이용하여 우편번호 검색을 합니다.
|
||||
우편번호 검색 서버는 설정을 통해 변경하실 수 있습니다.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Searching the zip code via zip code server operated by zeroboard.
|
||||
You can change the zip code server by setting.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Busca el código postal a través del servidor operado por Zeroboard.
|
||||
Usted puede cambiar la configuración del servidor de código postal.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用zeroboard运营的邮编服务器搜索邮编。
|
||||
通过设置可以修改邮编搜索服务器。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ゼロボードで運用している郵便番号サーバを利用して韓国の郵便番号を検索します。
|
||||
郵便番号検索サーバは設定によって変更することができます。
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">한국 우편번호</title>
|
||||
<title xml:lang="en">Korean Zip Code</title>
|
||||
<title xml:lang="es">Código postal de Corea</title>
|
||||
<title xml:lang="zh-CN">韩国邮编 </title>
|
||||
<title xml:lang="jp">韓国郵便番号</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<description xml:lang="ko">
|
||||
제로보드에서 운영하는 우편번호서버를 이용하여 우편번호 검색을 합니다.
|
||||
우편번호 검색 서버는 설정을 통해 변경하실 수 있습니다.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Searching the zip code via zip code server operated by zeroboard.
|
||||
You can change the zip code server by setting.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Busca el código postal a través del servidor operado por Zeroboard.
|
||||
Usted puede cambiar la configuración del servidor de código postal.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
利用zeroboard运营的邮编服务器搜索邮编。
|
||||
通过设置可以修改邮编搜索服务器。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ゼロボードで運用している郵便番号サーバを利用して韓国の郵便番号を検索します。
|
||||
郵便番号検索サーバは設定によって変更することができます。
|
||||
</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">레이아웃</title>
|
||||
<title xml:lang="zh-CN">布局</title>
|
||||
<title xml:lang="jp">レイアウト</title>
|
||||
<title xml:lang="en">Layout</title>
|
||||
<title xml:lang="es">Diseño</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">레이아웃을 생성/관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成/管理布局的模块。</description>
|
||||
<description xml:lang="jp">レイアウトを生成・管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managing.</description>
|
||||
<description xml:lang="es">Este módulo es para crear y manejar el diseño.</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">레이아웃</title>
|
||||
<title xml:lang="zh-CN">布局</title>
|
||||
<title xml:lang="jp">レイアウト</title>
|
||||
<title xml:lang="en">Layout</title>
|
||||
<title xml:lang="es">Diseño</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">레이아웃을 생성/관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成/管理布局的模块。</description>
|
||||
<description xml:lang="jp">レイアウトを生成・管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managing.</description>
|
||||
<description xml:lang="es">Este módulo es para crear y manejar el diseño.</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">회원</title>
|
||||
<title xml:lang="zh-CN">会员</title>
|
||||
<title xml:lang="jp">会員</title>
|
||||
<title xml:lang="en">Member</title>
|
||||
<title xml:lang="es">Usuario</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">회원 관리 및 회원 관련 설정등을 하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">对会员进行管理及相关设置的模块。</description>
|
||||
<description xml:lang="jp">会員管理及び会員関連設定などを行うためのモジュールです。</description>
|
||||
<description xml:lang="en">This module is for managing or configuring members.</description>
|
||||
<description xml:lang="en">Este módulo es para el manejo y la configuración de los usuarios.</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">회원</title>
|
||||
<title xml:lang="zh-CN">会员</title>
|
||||
<title xml:lang="jp">会員</title>
|
||||
<title xml:lang="en">Member</title>
|
||||
<title xml:lang="es">Usuario</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">회원 관리 및 회원 관련 설정등을 하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">对会员进行管理及相关设置的模块。</description>
|
||||
<description xml:lang="jp">会員管理及び会員関連設定などを行うためのモジュールです。</description>
|
||||
<description xml:lang="en">This module is for managing or configuring members.</description>
|
||||
<description xml:lang="en">Este módulo es para el manejo y la configuración de los usuarios.</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
<action name="dispMemberModifyPassword" type="view" standalone="true" />
|
||||
<action name="dispMemberLoginForm" type="view" standalone="true" />
|
||||
<action name="dispMemberLogout" type="view" standalone="true" />
|
||||
<action name="dispMemberLeave" type="view" standalone="true" />
|
||||
<action name="dispMemberOpenIDLeave" type="view" standalone="true" />
|
||||
<action name="dispMemberOwnDocument" type="view" standalone="true" />
|
||||
<action name="dispMemberScrappedDocument" type="view" standalone="true" />
|
||||
|
||||
|
|
@ -40,6 +42,7 @@
|
|||
<action name="procMemberModifyInfo" type="controller" standalone="true" />
|
||||
<action name="procMemberModifyPassword" type="controller" standalone="true" />
|
||||
<action name="procMemberLeave" type="controller" standalone="true" />
|
||||
<action name="procMemberOpenIDLeave" type="controller" standalone="true" />
|
||||
<action name="procMemberInsertImageName" type="controller" standalone="true" />
|
||||
<action name="procMemberInsertImageMark" type="controller" standalone="true" />
|
||||
<action name="procMemberDeleteImageName" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@
|
|||
$lang->about_member_default = 'It will be set as default group on join';
|
||||
|
||||
$lang->about_openid = 'When you join as OpenID, basic info like ID or email address will be saved on this site, but password and certification management will be done on current OpenID offering service';
|
||||
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
|
||||
|
||||
$lang->about_member = "This is a module for creating/modifing/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@
|
|||
$lang->about_member_default = 'Al registrar se configura como grupo predefinido';
|
||||
|
||||
$lang->about_openid = 'Cuando tu registra como OpenID, la información básica como ID o la dirección del email sera guardado en este sitio, pero la contraseña y la resolución de la certificación se hará en el servicio ofrecido por openID';
|
||||
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
|
||||
|
||||
$lang->about_member = "Esto es un módulo para crear/modificar/eliminar usuarios y manejar grupos o el formato del registro.\n Usted puede manejar usuarios creando nuevos grupos, y obtener información adicional manejando el formato del registro";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@
|
|||
$lang->about_member_default = '会員加入時に基本グループとして設定されます。';
|
||||
|
||||
$lang->about_openid = 'OpenIDで加入する際、IDとメールなどの基本情報は、このサイトに保存されますが、パスワードと認証のための処理用の情報は該当するOpenID提供サービス側で行われます。';
|
||||
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
|
||||
|
||||
$lang->about_member = "会員の作成・修正・削除することができ、グループの管理、加入フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、加入フォーム管理では基本情報の他、フォームの入力情報を追加することができます。";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@
|
|||
$lang->about_member_default = '회원가입시 기본 그룹으로 설정됩니다';
|
||||
|
||||
$lang->about_openid = '오픈아이디로 가입시 아이디와 메일등의 기본 정보는 이 사이트에 저장이 되지만 비밀번호와 인증을 위한 처리는 해당 오픈아이디 제공서비스에서 이루어집니다.';
|
||||
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
|
||||
|
||||
$lang->about_member = "회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입폼 관리등을 할 수 있는 회원 관리 모듈입니다.\n기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입폼관리를 통한 기본 정보외의 추가 정보를 요구받을 수도 있습니다.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@
|
|||
$lang->about_member_default = '将成为注册会员时的默认用户组。';
|
||||
|
||||
$lang->about_openid = '用OpenID注册时该网站只保存用户名和 邮件等基本信息,密码和认证处理是在提供OpenID服务的站点中得到解决。';
|
||||
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
|
||||
|
||||
$lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。";
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberLeave');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
|
||||
|
|
@ -125,6 +126,10 @@
|
|||
$act = $oModuleModel->getActionForward('dispMemberScrappedDocument');
|
||||
if(!$act) return true;
|
||||
|
||||
// dispMemberOpenIDLeave act의 여부 체크 (2007. 9. 19 추가)
|
||||
$act = $oModuleModel->getActionForward('dispMemberOpenIDLeave');
|
||||
if(!$act) return true;
|
||||
|
||||
// member 디렉토리 체크 (2007. 8. 11 추가)
|
||||
if(!is_dir("./files/member_extra_info")) return true;
|
||||
|
||||
|
|
@ -139,6 +144,7 @@
|
|||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
|
||||
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
|
||||
|
||||
// member 디렉토리 체크
|
||||
FileHandler::makeDir('./files/member_extra_info/image_name');
|
||||
|
|
|
|||
|
|
@ -121,12 +121,7 @@
|
|||
* @brief 로그아웃
|
||||
**/
|
||||
function procMemberLogout() {
|
||||
$_SESSION['is_logged'] = false;
|
||||
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
|
||||
$_SESSION['logged_info'] = NULL;
|
||||
$_SESSION['member_srl'] = NULL;
|
||||
$_SESSION['group_srls'] = array();
|
||||
$_SESSION['is_admin'] = NULL;
|
||||
$this->destroySessionInfo();
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -726,12 +721,38 @@
|
|||
$output = $this->deleteMember($member_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$_SESSION['is_logged'] = false;
|
||||
$_SESSION['logged_info'] = null;
|
||||
// 모든 세션 정보 파기
|
||||
$this->destroySessionInfo();
|
||||
|
||||
// 성공 메세지 리턴
|
||||
$this->setMessage('success_leaved');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 오픈아이디 탈퇴
|
||||
**/
|
||||
function procMemberOpenIDLeave() {
|
||||
// 비로그인 상태이면 에러
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
||||
// 현재 ip와 세션 아이피 비교
|
||||
if($_SESSION['ipaddress']!=$_SERVER['REMOTE_ADDR']) return $this->stop('msg_not_permitted');
|
||||
|
||||
// 로그인한 유저의 정보를 가져옴
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$output = $this->deleteMember($member_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 모든 세션 정보 파기
|
||||
$this->destroySessionInfo();
|
||||
|
||||
// 성공 메세지 리턴
|
||||
$this->setMessage('success_leaved');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 이미지 이름을 추가
|
||||
**/
|
||||
|
|
@ -960,6 +981,10 @@
|
|||
function setSessionInfo($member_info) {
|
||||
if(!$member_info->member_srl) return;
|
||||
|
||||
// 오픈아이디인지 체크
|
||||
if(eregi("^([0-9a-z]+)$", $member_info->user_id)) $member_info->is_openid = false;
|
||||
else $member_info->is_openid = true;
|
||||
|
||||
// 로그인 처리
|
||||
$_SESSION['is_logged'] = true;
|
||||
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
|
||||
|
|
@ -1312,5 +1337,15 @@
|
|||
|
||||
return sprintf("%08lx%08lx", $nr, $nr2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모든 세션 정보 파기
|
||||
**/
|
||||
function destroySessionInfo() {
|
||||
if(!$_SESSION || !is_array($_SESSION)) return;
|
||||
foreach($_SESSION as $key => $val) {
|
||||
$_SESSION[$key] = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -231,6 +231,27 @@
|
|||
$this->setTemplateFile('leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 오픈 아이디 탈퇴 화면
|
||||
**/
|
||||
function dispMemberOpenIDLeave() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
if($member_info->member_srl == $logged_info->member_srl) Context::set('my_menu', $this->my_menu);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('openid_leave_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그아웃 출력
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -99,8 +99,12 @@
|
|||
<div class="tCenter">
|
||||
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
|
||||
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_info}</span></a>
|
||||
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
|
||||
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@if($logged_info->is_openid)-->
|
||||
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
|
||||
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
<filter name="openid_leave_member" module="member" act="procMemberOpenIDLeave" confirm_msg_code="confirm_leave">
|
||||
<form />
|
||||
<parameter />
|
||||
<response callback_func="completeLeave">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -99,8 +99,12 @@
|
|||
<div class="tCenter">
|
||||
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
|
||||
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_info}</span></a>
|
||||
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
|
||||
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@if($logged_info->is_openid)-->
|
||||
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
|
||||
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
</div>
|
||||
|
|
|
|||
28
modules/member/skins/default/openid_leave_form.html
Normal file
28
modules/member/skins/default/openid_leave_form.html
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{@ $member_title = $lang->msg_leave_member}
|
||||
<!--#include("./common_header.html")-->
|
||||
|
||||
<!--%import("filter/openid_leave_member.xml")-->
|
||||
|
||||
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, openid_leave_member)">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
|
||||
<table cellspacing="0" class="memberInfoTable gap1" title="$lang->msg_leave_member}">
|
||||
<col width="140" />
|
||||
<col />
|
||||
<tr class="first-child">
|
||||
<th scope="row">{$lang->user_id}</th>
|
||||
<td>
|
||||
{$member_info->user_id}
|
||||
<p>{$lang->about_openid_leave}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="help tCenter">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
|
||||
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
</div>
|
||||
</form>
|
||||
<!--#include("./common_footer.html")-->
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">메뉴</title>
|
||||
<title xml:lang="zh-CN">菜单</title>
|
||||
<title xml:lang="jp">メニュー</title>
|
||||
<title xml:lang="en">Menu</title>
|
||||
<title xml:lang="es">Menú</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">레이아웃, 모듈을 연결하는 메뉴를 생성/관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">此模块将生成并管理连接布局,模块的菜单。</description>
|
||||
<description xml:lang="jp">レイアウト、モジュールを連動させるメニューを作成・管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering menues that linking layouts or modules.</description>
|
||||
<description xml:lang="es">Este módulo es para crear/manejar los menús que que son conectados con los diseños o módulos.</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">메뉴</title>
|
||||
<title xml:lang="zh-CN">菜单</title>
|
||||
<title xml:lang="jp">メニュー</title>
|
||||
<title xml:lang="en">Menu</title>
|
||||
<title xml:lang="es">Menú</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">레이아웃, 모듈을 연결하는 메뉴를 생성/관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">此模块将生成并管理连接布局,模块的菜单。</description>
|
||||
<description xml:lang="jp">レイアウト、モジュールを連動させるメニューを作成・管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering menues that linking layouts or modules.</description>
|
||||
<description xml:lang="es">Este módulo es para crear/manejar los menús que que son conectados con los diseños o módulos.</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -48,4 +48,4 @@
|
|||
$lang->about_menu_group_srls = '如选择用户组,只有所属组用户才能看到此菜单。 —(xml文件中不能隐藏)';
|
||||
|
||||
$lang->about_menu = "菜单模块可以通过菜单管理器整理已生成的模块并同布局相连接来轻松建设一个完整的网站。\n菜单模块虽然具有连接模块和布局并通过布局来显示多种形态菜单的信息,但它不具备管理网站的功能。";
|
||||
?>
|
||||
?>
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">오류 표시</title>
|
||||
<title xml:lang="jp">エラー表示</title>
|
||||
<title xml:lang="zh-CN">错误信息</title>
|
||||
<title xml:lang="en">Display Errors</title>
|
||||
<title xml:lang="es">Mostrar el error</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">오류 및 각종 시스템 메세지 관리 모듈</description>
|
||||
<description xml:lang="jp">エラー及びシステムメッセージ管理モジュール</description>
|
||||
<description xml:lang="zh-CN">管理错误信息及各种系统信息的模块。</description>
|
||||
<description xml:lang="en">This module managers erros and system messages</description>
|
||||
<description xml:lang="es">Este módulo es para manejar los errores y mensajes del sistema</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">오류 표시</title>
|
||||
<title xml:lang="jp">エラー表示</title>
|
||||
<title xml:lang="zh-CN">错误信息</title>
|
||||
<title xml:lang="en">Display Errors</title>
|
||||
<title xml:lang="es">Mostrar el error</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<description xml:lang="ko">오류 및 각종 시스템 메세지 관리 모듈</description>
|
||||
<description xml:lang="jp">エラー及びシステムメッセージ管理モジュール</description>
|
||||
<description xml:lang="zh-CN">管理错误信息及各种系统信息的模块。</description>
|
||||
<description xml:lang="en">This module managers erros and system messages</description>
|
||||
<description xml:lang="es">Este módulo es para manejar los errores y mensajes del sistema</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">모듈</title>
|
||||
<title xml:lang="zh-CN">模块</title>
|
||||
<title xml:lang="jp">モジュール</title>
|
||||
<title xml:lang="en">Module</title>
|
||||
<title xml:lang="es">Módulo</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">모듈 생성 및 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成及管理模块的模块。</description>
|
||||
<description xml:lang="jp">モジュールの生成、管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering the other modules.</description>
|
||||
<description xml:lang="es">Este módulo is para crear y manejar los otros módulos.</description>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">모듈</title>
|
||||
<title xml:lang="zh-CN">模块</title>
|
||||
<title xml:lang="jp">モジュール</title>
|
||||
<title xml:lang="en">Module</title>
|
||||
<title xml:lang="es">Módulo</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">모듈 생성 및 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成及管理模块的模块。</description>
|
||||
<description xml:lang="jp">モジュールの生成、管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering the other modules.</description>
|
||||
<description xml:lang="es">Este módulo is para crear y manejar los otros módulos.</description>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@
|
|||
|
||||
<action name="dispModuleSkinInfo" type="view" standalone="true" />
|
||||
|
||||
<action name="dispModuleAdminCopyModule" type="view" standalone="true" />
|
||||
<action name="procModuleAdminInsertCategory" type="controller" standalone="true" />
|
||||
<action name="procModuleAdminUpdateCategory" type="controller" standalone="true" />
|
||||
<action name="procModuleAdminCopyModule" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
'H' => 'Open summary',
|
||||
'N' => 'Not open',
|
||||
);
|
||||
$lang->module_copy = "Copy module";
|
||||
|
||||
$lang->cmd_add_shortcut = "Add Shortcut";
|
||||
$lang->cmd_install = "Install";
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
'H' => 'Abrir el sumario',
|
||||
'N' => 'No abrir',
|
||||
);
|
||||
$lang->module_copy = "Copy Module";
|
||||
|
||||
$lang->cmd_add_shortcut = "añadir acceso directo";
|
||||
$lang->cmd_install = "Instalar";
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
'H' => '要約配信',
|
||||
'N' => '配信しない',
|
||||
);
|
||||
$lang->module_copy = "Copy module";
|
||||
|
||||
$lang->cmd_add_shortcut = "ショットカット追加";
|
||||
$lang->cmd_install = "インストール";
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
'H' => '요약 공개',
|
||||
'N' => '공개하지 않음',
|
||||
);
|
||||
$lang->module_copy = "모듈 복사";
|
||||
|
||||
$lang->cmd_add_shortcut = "바로가기 추가";
|
||||
$lang->cmd_install = "설치";
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
'H' => '公开摘要',
|
||||
'N' => '不公开',
|
||||
);
|
||||
$lang->module_copy = "Copy Module";
|
||||
|
||||
$lang->cmd_add_shortcut = "添加到快捷菜单";
|
||||
$lang->cmd_install = "安装";
|
||||
|
|
|
|||
|
|
@ -62,5 +62,50 @@
|
|||
return executeQuery('module.deleteModuleCategory', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사
|
||||
**/
|
||||
function procModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈의 정보를 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return;
|
||||
|
||||
// 새로 생성하려는 모듈들의 이름/브라우저 제목을 구함
|
||||
$clones = array();
|
||||
$args = Context::getAll();
|
||||
for($i=1;$i<=10;$i++) {
|
||||
$mid = $args->{"mid_".$i};
|
||||
$browser_title = $args->{"browser_title_".$i};
|
||||
if(!$mid) continue;
|
||||
if($mid && !$browser_title) $browser_title = $mid;
|
||||
$clones[$mid] = $browser_title;
|
||||
}
|
||||
if(!count($clones)) return;
|
||||
|
||||
// 원 모듈의 정보를 직접 구해옴
|
||||
$obj->module_srl = $module_srl;
|
||||
$output = executeQuery("module.getMidInfo", $obj);
|
||||
$module_info = $output->data;
|
||||
unset($module_info->module_srl);
|
||||
unset($module_info->regdate);
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
// 모듈 복사
|
||||
foreach($clones as $mid => $browser_title) {
|
||||
$clone_args = null;
|
||||
$clone_args = clone($module_info);
|
||||
$clone_args->module_srl = getNextSequence();
|
||||
$clone_args->mid = $mid;
|
||||
$clone_args->browser_title = $browser_title;
|
||||
$clone_args->is_default = 'N';
|
||||
$output = executeQuery('module.insertModule', $clone_args);
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -78,5 +78,24 @@
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사 기능
|
||||
**/
|
||||
function dispModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈을 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 해당 모듈의 정보를 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('copy_module');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@
|
|||
* @brief 모듈 입력
|
||||
**/
|
||||
function insertModule($args) {
|
||||
if(!$args->module_srl) $args->module_srl = 0;
|
||||
|
||||
// begin transaction
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
|
|
|||
|
|
@ -301,6 +301,7 @@
|
|||
if(!count($xml_obj->module)) return; ///< xml 내용중에 module 태그가 없다면 오류;;
|
||||
|
||||
$grants = $xml_obj->module->grants->grant; ///< 권한 정보 (없는 경우도 있음)
|
||||
$permissions = $xml_obj->module->permissions->permission; ///< 권한 대행 (없는 경우도 있음)
|
||||
$actions = $xml_obj->module->actions->action; ///< action list (필수)
|
||||
|
||||
$default_index = $admin_index = '';
|
||||
|
|
@ -323,6 +324,21 @@
|
|||
}
|
||||
}
|
||||
|
||||
// 권한 허용 정리
|
||||
if($permissions) {
|
||||
if(is_array($permissions)) $permission_list = $permissions;
|
||||
else $permission_list[] = $permissions;
|
||||
|
||||
foreach($permission_list as $permission) {
|
||||
$action = $permission->attrs->action;
|
||||
$target = $permission->attrs->target;
|
||||
|
||||
$info->permission->{$action} = $target;
|
||||
|
||||
$buff .= sprintf('$info->permission->%s = \'%s\';', $action, $target);
|
||||
}
|
||||
}
|
||||
|
||||
// actions 정리
|
||||
if($actions) {
|
||||
if(is_array($actions)) $action_list = $actions;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<column name="layout_srl" var="layout_srl" />
|
||||
<column name="description" var="description" />
|
||||
<column name="content" var="content" />
|
||||
<column name="grants" var="grants" />
|
||||
<column name="module" var="module" notnull="notnull" maxlength="80"/>
|
||||
<column name="is_default" var="is_default" default="N" notnull="notnull" />
|
||||
<column name="menu_srl" var="menu_srl" filter="number" />
|
||||
|
|
|
|||
87
modules/module/tpl/copy_module.html
Normal file
87
modules/module/tpl/copy_module.html
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
<!--%import("js/module_admin.js")-->
|
||||
<!--%import("filter/copy_module.xml")-->
|
||||
|
||||
<div id="popHeadder">
|
||||
<h1>{$lang->module_copy}</h1>
|
||||
</div>
|
||||
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, copy_module)" >
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
|
||||
<div id="popBody">
|
||||
|
||||
<table cellspacing="0" class="tableType5">
|
||||
<col width="140" />
|
||||
<col />
|
||||
<tr>
|
||||
<th scope="row">{$lang->module}</th>
|
||||
<td>{$module_info->module}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->mid}</th>
|
||||
<td>{$module_info->mid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->browser_title}</th>
|
||||
<td>{$module_info->browser_title}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<table cellspacing="0" class="tableType3 gap1">
|
||||
<col width="50%" />
|
||||
<col width="50%" />
|
||||
<tr>
|
||||
<th scope="col">{$lang->mid}</th>
|
||||
<th scope="col">{$lang->browser_title}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_1" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_1" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_2" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_2" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_3" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_3" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_4" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_4" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_5" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_5" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_6" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_6" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_7" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_7" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_8" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_8" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_9" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_9" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="mid_10" class="inputTypeText w200" /></td>
|
||||
<td><input type="text" name="browser_title_10" class="inputTypeText w200" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="popFooter" class="tCenter gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
<span class="button"><input type="button" value="{$lang->cmd_close}" onclick="window.close(); return false;"/></span>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
9
modules/module/tpl/filter/copy_module.xml
Normal file
9
modules/module/tpl/filter/copy_module.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<filter name="copy_module" module="module" act="procModuleAdminCopyModule">
|
||||
<form>
|
||||
<node target="module_srl" required="true" />
|
||||
</form>
|
||||
<response callback_func="completeCopyModule">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -50,3 +50,9 @@ function doUpdateModule(module) {
|
|||
params['module_name'] = module;
|
||||
exec_xml('install','procInstallAdminUpdate',params, completeInstallModule);
|
||||
}
|
||||
|
||||
/* 모듈 복사후 */
|
||||
function completeCopyModule() {
|
||||
if(typeof(opener)!='undefined') opener.location.href = opener.location.href;
|
||||
window.close();
|
||||
}
|
||||
|
|
|
|||
20
modules/opage/conf/info.xml
Normal file
20
modules/opage/conf/info.xml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module version="0.1">
|
||||
<title xml:lang="ko">외부 페이지</title>
|
||||
<title xml:lang="zh-CN">外页面</title>
|
||||
<title xml:lang="jp">外でページ</title>
|
||||
<title xml:lang="en">Outside Page</title>
|
||||
<title xml:lang="es">Afuera Página</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 9. 17">
|
||||
<name xml:lang="ko">제로</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>
|
||||
<description xml:lang="ko">외부페이지를 제로보드XE내부로 삽입시키는 모듈</description>
|
||||
<description xml:lang="zh-CN">외부페이지를 제로보드XE내부로 삽입시키는 모듈</description>
|
||||
<description xml:lang="jp">외부페이지를 제로보드XE내부로 삽입시키는 모듈</description>
|
||||
<description xml:lang="en">외부페이지를 제로보드XE내부로 삽입시키는 모듈</description>
|
||||
<description xml:lang="es">외부페이지를 제로보드XE내부로 삽입시키는 모듈</description>
|
||||
</author>
|
||||
</module>
|
||||
25
modules/opage/conf/module.xml
Normal file
25
modules/opage/conf/module.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<module>
|
||||
<grants>
|
||||
<grant name="view" default="guest">
|
||||
<title xml:lang="ko">열람</title>
|
||||
<title xml:lang="zh-CN">浏览</title>
|
||||
<title xml:lang="jp">閲覧</title>
|
||||
<title xml:lang="en">view</title>
|
||||
</grant>
|
||||
</grants>
|
||||
<actions>
|
||||
<action name="dispOpageIndex" type="view" index="true" />
|
||||
<action name="dispOpageAdminContent" type="view" admin_index="true" standalone="true" />
|
||||
<action name="dispOpageAdminModuleConfig" type="view" standalone="true" />
|
||||
<action name="dispOpageAdminInfo" type="view" standalone="true" />
|
||||
<action name="dispOpageAdminInsert" type="view" standalone="true" />
|
||||
<action name="dispOpageAdminDelete" type="view" standalone="true" />
|
||||
<action name="dispOpageAdminContentModify" type="view" standalone="true" />
|
||||
|
||||
<action name="procOpageAdminRemoveWidgetCache" type="controller" standalone="true" />
|
||||
<action name="procOpageAdminInsert" type="controller" standalone="true" />
|
||||
<action name="procOpageAdminDelete" type="controller" standalone="true" />
|
||||
<action name="procOpageAdminInsertConfig" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
15
modules/opage/lang/ko.lang.php
Normal file
15
modules/opage/lang/ko.lang.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ko.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 외부 페이지(opage) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->opage = "외부 페이지";
|
||||
$lang->opage_path = "외부 문서 위치";
|
||||
$lang->opage_caching_interval = "캐싱 시간 설정";
|
||||
|
||||
$lang->about_opage = "제로보드XE가 아닌 외부 html 또는 php파일을 제로보드XE에서 사용할 수 있도록 하는 모듈입니다.<br />절대경로, 상대경로를 이용할 수 있으며 http:// 로 시작할 경우 서버 외부의 페이지도 표시할 수 있습니다";
|
||||
$lang->about_opage_path= "외부문서의 위치를 입력해주세요.<br />/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.<br />http://url/sample.php 와 같이 사용하면 결과를 받아다가 출력을 하게 됩니다.<br />현재 제로보드XE가 설치된 절대경로는 다음과 같습니다.<br />";
|
||||
$lang->about_opage_caching_interval = "단위는 분이며 정해진 시간동안은 임시 저장한 데이터를 출력하도록 합니다.<br />다른 서버의 정보를 출력하거나 데이터 출력시 많은 자원이 필요하면 원하시는 분 단위로 캐싱하시는 것을 추천해드립니다.<br />0 으로 하시면 캐싱을 하지 않습니다";
|
||||
?>
|
||||
108
modules/opage/opage.admin.controller.php
Normal file
108
modules/opage/opage.admin.controller.php
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<?php
|
||||
/**
|
||||
* @class opageAdminController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief opage 모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class opageAdminController extends opage {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 추가
|
||||
**/
|
||||
function procOpageAdminInsert() {
|
||||
// module 모듈의 controller 객체 생성
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 기본 모듈 정보로 등록된 변수 구함
|
||||
$module_args = Context::gets('module_srl','module_category_srl','browser_title','is_default','layout_srl');
|
||||
$module_args->module = 'opage';
|
||||
$module_args->mid = Context::get('opage_name');
|
||||
if($module_args->is_default!='Y') $module_args->is_default = 'N';
|
||||
|
||||
// 외부 문서 위치, 캐싱 시간은 extra_vars에 저장
|
||||
$config_args = Context::gets('path','caching_interval');
|
||||
$module_args->extra_vars = serialize($config_args);
|
||||
|
||||
// module_srl이 넘어오면 원 모듈이 있는지 확인
|
||||
if($module_args->module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_args->module_srl);
|
||||
}
|
||||
|
||||
// is_default=='Y' 이면 기본 모듈을 제거
|
||||
if($module_args->is_default=='Y') $oModuleController->clearDefaultModule();
|
||||
|
||||
// module_srl의 값에 따라 insert/update
|
||||
if($module_info->module_srl != $module_args->module_srl) {
|
||||
$output = $oModuleController->insertModule($module_args);
|
||||
$msg_code = 'success_registed';
|
||||
$module_info->module_srl = $output->get('module_srl');
|
||||
} else {
|
||||
$output = $oModuleController->updateModule($module_args);
|
||||
$msg_code = 'success_updated';
|
||||
}
|
||||
|
||||
// 등록 실패시 에러 반환
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
/**
|
||||
* 권한 저장
|
||||
**/
|
||||
// 현 모듈의 권한 목록을 가져옴
|
||||
$grant_list = $this->xml_info->grant;
|
||||
|
||||
if(count($grant_list)) {
|
||||
foreach($grant_list as $key => $val) {
|
||||
$group_srls = Context::get($key);
|
||||
if($group_srls) $arr_grant[$key] = explode('|@|',$group_srls);
|
||||
}
|
||||
$grants = serialize($arr_grant);
|
||||
}
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->updateModuleGrant($module_info->module_srl, $grants);
|
||||
|
||||
// 캐시 파일 삭제
|
||||
$cache_file = sprintf("./files/cache/opage/%d.cache", $module_info->module_srl);
|
||||
if(file_exists($cache_file)) @unlink($cache_file);
|
||||
|
||||
// 등록 성공후 return될 메세지 정리
|
||||
$this->add("module_srl", $module_args->module_srl);
|
||||
$this->add("opage", Context::get('opage'));
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 삭제
|
||||
**/
|
||||
function procOpageAdminDelete() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 원본을 구해온다
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->deleteModule($module_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('module','opage');
|
||||
$this->add('opage',Context::get('opage'));
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 기본 정보의 추가
|
||||
**/
|
||||
function procOpageAdminInsertConfig() {
|
||||
// 기본 정보를 받음
|
||||
$args = Context::gets('test');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
153
modules/opage/opage.admin.view.php
Normal file
153
modules/opage/opage.admin.view.php
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
<?php
|
||||
/**
|
||||
* @class opageAdminView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief opage 모듈의 admin view 클래스
|
||||
**/
|
||||
|
||||
class opageAdminView extends opage {
|
||||
|
||||
var $module_srl = 0;
|
||||
var $list_count = 20;
|
||||
var $page_count = 10;
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// module model 객체 생성
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
|
||||
// 템플릿 경로 구함 (opage의 경우 tpl에 관리자용 템플릿 모아놓음)
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 관리 목록 보여줌
|
||||
**/
|
||||
function dispOpageAdminContent() {
|
||||
$args->sort_index = "module_srl";
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 40;
|
||||
$args->page_count = 10;
|
||||
$args->s_module_category_srl = Context::get('module_category_srl');
|
||||
$output = executeQuery('opage.getOpageList', $args);
|
||||
|
||||
// 템플릿에 쓰기 위해서 context::set
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('opage_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 선택된 외부페이지의 정보 출력
|
||||
**/
|
||||
function dispOpageAdminInfo() {
|
||||
// GET parameter에서 module_srl을 가져옴
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// module model 객체 생성
|
||||
if($module_srl) {
|
||||
$oOpageModel = &getModel('opage');
|
||||
$module_info = $oOpageModel->getOpage($module_srl);
|
||||
if(!$module_info) {
|
||||
unset($module_info);
|
||||
unset($module_srl);
|
||||
} else {
|
||||
Context::set('module_info',$module_info);
|
||||
}
|
||||
|
||||
// module_srl 값이 없다면 그냥 index 외부페이지를 보여줌
|
||||
} else {
|
||||
return $this->dispOpageAdminContent();
|
||||
}
|
||||
|
||||
// 레이아웃이 정해져 있다면 레이아웃 정보를 추가해줌(layout_title, layout)
|
||||
if($module_info->layout_srl) {
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($module_info->layout_srl);
|
||||
$module_info->layout = $layout_info->layout;
|
||||
$module_info->layout_title = $layout_info->layout_title;
|
||||
}
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutMode = &getModel('layout');
|
||||
$layout_list = $oLayoutMode->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('opage_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 추가 폼 출력
|
||||
**/
|
||||
function dispOpageAdminInsert() {
|
||||
// 권한 그룹의 목록을 가져온다
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups();
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// module.xml에서 권한 관련 목록을 구해옴
|
||||
$grant_list = $this->xml_info->grant;
|
||||
Context::set('grant_list', $grant_list);
|
||||
|
||||
// GET parameter에서 module_srl을 가져옴
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// module_srl이 있으면 해당 모듈의 정보를 구해서 세팅
|
||||
if($module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($module_info->module_srl == $module_srl) Context::set('module_info',$module_info);
|
||||
else {
|
||||
unset($module_info);
|
||||
unset($module_srl);
|
||||
}
|
||||
}
|
||||
|
||||
// module_srl이 없으면 sequence값으로 미리 구해 놓음
|
||||
if(!$module_srl) $module_srl = getNextSequence();
|
||||
Context::set('module_srl',$module_srl);
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutMode = &getModel('layout');
|
||||
$layout_list = $oLayoutMode->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('opage_insert');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 외부페이지 삭제 화면 출력
|
||||
**/
|
||||
function dispOpageAdminDelete() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return $this->dispContent();
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info',$module_info);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('opage_delete');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
70
modules/opage/opage.class.php
Normal file
70
modules/opage/opage.class.php
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
/**
|
||||
* @class opage
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief opage 모듈의 high class
|
||||
**/
|
||||
|
||||
class opage extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageIndex');
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminContent');
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminInsert');
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminDelete');
|
||||
|
||||
// opage 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/opage');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 외부페이지 모듈을 업그레이드로 설치하였을 경우 필요한 action 값의 여부 체크 (2007. 09. 17)
|
||||
if(!$oModuleModel->getActionForward('dispOpageIndex')) return true;
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminContent')) return true;
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminInsert')) return true;
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminDelete')) return true;
|
||||
|
||||
// cache 디렉토리가 없으면 바로 디렉토리 생성
|
||||
if(!is_dir('./files/cache/opage')) FileHandler::makeDir('./files/cache/opage');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 외부페이지 모듈을 업그레이드로 설치하였을 경우 필요한 action 값 등록
|
||||
if(!$oModuleModel->getActionForward('dispOpageIndex'))
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageIndex');
|
||||
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminContent'))
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminContent');
|
||||
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminInsert'))
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminInsert');
|
||||
|
||||
if(!$oModuleModel->getActionForward('dispOpageAdminDelete'))
|
||||
$oModuleController->insertActionForward('opage', 'view', 'dispOpageAdminDelete');
|
||||
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
119
modules/opage/opage.controller.php
Normal file
119
modules/opage/opage.controller.php
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
<?php
|
||||
/**
|
||||
* @class documentController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief document 모듈의 controller 클래스
|
||||
**/
|
||||
|
||||
class opageController extends opage {
|
||||
|
||||
var $target_path = '';
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() { }
|
||||
|
||||
/**
|
||||
* @brief 타이틀 추출
|
||||
**/
|
||||
function getTitle($content) {
|
||||
preg_match('!<title([^>]*)>(.*?)<\/title>!is', $content, $buff);
|
||||
return trim($buff[2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief header script 추출
|
||||
**/
|
||||
function getHeadScript($content) {
|
||||
// title 태그 제거
|
||||
$content = preg_replace('!<title([^>]*)>(.*?)<\/title>!is','', $content);
|
||||
|
||||
// meta 태그 제거
|
||||
$content = preg_replace('!<(\/){0,1}meta([^>]*)>!is','', $content);
|
||||
|
||||
// <link, <style, <script 등의 정보를 추출
|
||||
preg_match_all('!<link([^>]*)>!is', $content, $link_buff);
|
||||
for($i=0;$i<count($link_buff[0]);$i++) {
|
||||
$tmp_str = trim($link_buff[0][$i]);
|
||||
if(!$tmp_str) continue;
|
||||
$header_script .= $tmp_str."\n";
|
||||
}
|
||||
|
||||
preg_match_all('!<(style|script)(.*?)<\/(style|script)>!is', $content, $script_buff);
|
||||
for($i=0;$i<count($script_buff[0]);$i++) {
|
||||
$tmp_str = trim($script_buff[0][$i]);
|
||||
if(!$tmp_str) continue;
|
||||
$header_script .= $tmp_str."\n";
|
||||
}
|
||||
|
||||
return $header_script;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief body의 내용을 추출
|
||||
**/
|
||||
function getBodyScript($content) {
|
||||
// 내용 추출
|
||||
preg_match('!<body([^>]*)>(.*?)<\/body>!is', $content, $body_buff);
|
||||
$body_script = $body_buff[2];
|
||||
|
||||
// link, style, script등 제거
|
||||
$body_script = preg_replace('!<link([^>]*)>!is', '', $body_script);
|
||||
$body_script = preg_replace('!<(style|script)(.*?)<\/(style|script)>!is', '', $body_script);
|
||||
return $body_script;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 내용에 포함된 src, href의 값을 변경
|
||||
**/
|
||||
function replaceSrc($content, $path) {
|
||||
if(substr($path,-1)!='/') $path.='/';
|
||||
$this->target_path = $path;
|
||||
|
||||
// element의 속성중 value에 " 로 안 묶여 있는 것을 검사하여 묶어줌
|
||||
$content = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', array($this, '_fixQuotation'), $content);
|
||||
|
||||
// img, input, a, link등의 href, src값 변경
|
||||
$content = preg_replace_callback('!(script|link|a|img|input)([^>]*)(href|src)=[\'"](.*?)[\'"]!is', array($this, '_replaceSrc'), $content);
|
||||
|
||||
// background:url의 값 변경
|
||||
$content = preg_replace_callback('!url\((.*?)\)!is', array($this, '_replaceBackgroundUrl'), $content);
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
function _replaceSrc($matches) {
|
||||
$href = $matches[4];
|
||||
if(eregi("^http", $href) || $href == '#' || eregi("javascript:",$href)) return $matches[0];
|
||||
|
||||
if(substr($href,0,1)=='/') $href = substr($href,1);
|
||||
$href = $this->target_path.$href;
|
||||
|
||||
$buff = sprintf('%s%s%s="%s"', $matches[1], $matches[2], $matches[3], $href);
|
||||
return $buff;
|
||||
}
|
||||
|
||||
function _replaceBackgroundUrl($matches) {
|
||||
$href = $matches[1];
|
||||
if(eregi("^http",$href) || $href == '#' || eregi("javascript:",$href)) return $matches[0];
|
||||
|
||||
if(substr($href,0,1)=='/') $href = substr($href,1);
|
||||
$href = $this->target_path.$href;
|
||||
|
||||
$buff = sprintf('url(%s)', $href);
|
||||
return $buff;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 태그의 속성에 " 를 추가
|
||||
**/
|
||||
function _fixQuotation($matches) {
|
||||
$key = $matches[1];
|
||||
$val = $matches[2];
|
||||
if(substr($val,0,1)!='"') $val = '"'.$val.'"';
|
||||
return sprintf('%s=%s', $key, $val);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
33
modules/opage/opage.model.php
Normal file
33
modules/opage/opage.model.php
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* @class opageModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief opage 모듈의 model 클래스
|
||||
**/
|
||||
|
||||
class opageModel extends opage {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() { }
|
||||
|
||||
/**
|
||||
* @brief 특정 외부 페이지의 정보를 return
|
||||
* 외부 페이지의 경우 기본 모듈의 정보와 설정정보를 함께 다루기 때문에 별도의 model method를 이용하게 한다
|
||||
**/
|
||||
function getOpage($module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($module_info->module_srl != $module_srl) return;
|
||||
|
||||
$extra_vars = unserialize($module_info->extra_vars);
|
||||
if($extra_vars) {
|
||||
foreach($extra_vars as $key => $val) $module_info->{$key} = $val;
|
||||
unset($module_info->extra_vars);
|
||||
}
|
||||
return $module_info;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue