Compare commits
206 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
259d6d80e4 | ||
|
|
36fdb4d33d | ||
|
|
32a63f3124 | ||
|
|
8e65ce57aa | ||
|
|
68da22bc28 | ||
|
|
ad82abde08 | ||
|
|
bd78cc73cd | ||
|
|
6bbd7cff42 | ||
|
|
c2e839defb | ||
|
|
09dad56bcf | ||
|
|
aae9917f9f | ||
|
|
70a77ca298 | ||
|
|
0f7ae90fb6 | ||
|
|
58ced7a6e7 | ||
|
|
ee38238199 | ||
|
|
6c54de1662 | ||
|
|
6130bcab38 | ||
|
|
7d42187fb1 | ||
|
|
18c27f17d8 | ||
|
|
533701b201 | ||
|
|
7b0864411b | ||
|
|
3ab6e550c4 | ||
|
|
dc032effb8 | ||
|
|
e594d23f79 | ||
|
|
277784bd11 | ||
|
|
65c5406ae8 | ||
|
|
1c6e503d2e | ||
|
|
9d0a483ab3 | ||
|
|
4640b00d3d | ||
|
|
7a1cf0e9ee | ||
|
|
c71695dfcb | ||
|
|
93376e16a5 | ||
|
|
7d2a124bbc | ||
|
|
651514aa54 | ||
|
|
aac0e22962 | ||
|
|
cd4dd32e0d | ||
|
|
22b51dfb66 | ||
|
|
9d8089b287 | ||
|
|
a2ffc65d1d | ||
|
|
36903cb9c8 | ||
|
|
58aa86123a | ||
|
|
407f8df8a4 | ||
|
|
61685ce96a | ||
|
|
0b4eafdd9e | ||
|
|
f948811044 | ||
|
|
8854bb4a4b | ||
|
|
316cbfb59b | ||
|
|
741df3475e | ||
|
|
fb84ff92ae | ||
|
|
025421ff94 | ||
|
|
d5b91d4c01 | ||
|
|
075a12dbca | ||
|
|
0c90a1c613 | ||
|
|
326d9013b2 | ||
|
|
370f96aa99 | ||
|
|
1f55dd564c | ||
|
|
1aeed1e4ec | ||
|
|
74b5f6f87c | ||
|
|
12b792bb38 | ||
|
|
c4026c9066 | ||
|
|
eb5f1f8156 | ||
|
|
8234c97a82 | ||
|
|
2b100c2792 | ||
|
|
3645336aeb | ||
|
|
1ea5e2bfd7 | ||
|
|
7ddb84c514 | ||
|
|
ec54bb99c4 | ||
|
|
1c4a73efa7 | ||
|
|
8327c46551 | ||
|
|
b8f9b6a83f | ||
|
|
cea6d2b155 | ||
|
|
4f83baee6f | ||
|
|
a72b7b788f | ||
|
|
011163669f | ||
|
|
591d6af124 | ||
|
|
a68b9b1904 | ||
|
|
009b90f9cb | ||
|
|
d84dda8fe1 | ||
|
|
e81bb0f967 | ||
|
|
0f53f6de07 | ||
|
|
e5182d667b | ||
|
|
f203232c60 | ||
|
|
e5206ff46d | ||
|
|
e0210130d7 | ||
|
|
9907b61aa9 | ||
|
|
778de7ca84 | ||
|
|
d8558bafb0 | ||
|
|
72c882b691 | ||
|
|
5ae08f7604 | ||
|
|
d7cfebbd31 | ||
|
|
2acdafd27b | ||
|
|
29ac558758 | ||
|
|
0d6b235b87 | ||
|
|
be189babd4 | ||
|
|
7fe2d484ab | ||
|
|
84bbe65ed7 | ||
|
|
9f835088da | ||
|
|
aea49ee61a | ||
|
|
d7dc9cfb04 | ||
|
|
62ca3c2478 | ||
|
|
7eca7c6b58 | ||
|
|
2f0831eec4 | ||
|
|
f97fad470a | ||
|
|
3e841584fa | ||
|
|
361fc247f7 | ||
|
|
972e10d82c | ||
|
|
858e643a4b | ||
|
|
86eb3e7526 | ||
|
|
a7bb3b3226 | ||
|
|
908db8fa6c | ||
|
|
cf3784b780 | ||
|
|
01755ad5b5 | ||
|
|
0f54212e90 | ||
|
|
df17f6f59f | ||
|
|
07c527e855 | ||
|
|
724505062c | ||
|
|
6b86ea9094 | ||
|
|
c34c6efe57 | ||
|
|
ab6db7e57d | ||
|
|
2c0838b2c3 | ||
|
|
435e8b7e5f | ||
|
|
f2aad0b6a2 | ||
|
|
bd0659b36f | ||
|
|
53953d4476 | ||
|
|
1ecf1372e9 | ||
|
|
83ac08a9d2 | ||
|
|
0e263e7f34 | ||
|
|
8e4cb28569 | ||
|
|
4917e8ca3c | ||
|
|
9e542e181d | ||
|
|
d92d1fb476 | ||
|
|
adaad84a1b | ||
|
|
2e95c0f6ee | ||
|
|
1dd041d67d | ||
|
|
b198ef8930 | ||
|
|
732098f461 | ||
|
|
7e6ada25d7 | ||
|
|
8ea4242591 | ||
|
|
9850484fa3 | ||
|
|
394a3677c1 | ||
|
|
551ebc31f2 | ||
|
|
4209c3e1f7 | ||
|
|
9fa1778225 | ||
|
|
5e8cdd6ba3 | ||
|
|
80abc153ea | ||
|
|
0cf220a31c | ||
|
|
4ca2d7c297 | ||
|
|
5928289ebc | ||
|
|
d9e56d730a | ||
|
|
baf7909964 | ||
|
|
344bfc9690 | ||
|
|
dfd6a77147 | ||
|
|
c0e0191945 | ||
|
|
92e1a4ca8c | ||
|
|
47e1228028 | ||
|
|
5339a8854d | ||
|
|
6e51f8fe3d | ||
|
|
6375e4b5a4 | ||
|
|
02127a28ac | ||
|
|
05122ddeec | ||
|
|
5e2413eefe | ||
|
|
1cc86d4276 | ||
|
|
96391cf873 | ||
|
|
a3eebf916f | ||
|
|
b91473f842 | ||
|
|
83c64b941c | ||
|
|
17ceff91c5 | ||
|
|
40b37e082b | ||
|
|
685223cd0f | ||
|
|
2077f0b717 | ||
|
|
56a46ab094 | ||
|
|
295ad31ba5 | ||
|
|
4cb5081b53 | ||
|
|
e83b9edd2d | ||
|
|
9ae3012689 | ||
|
|
24410b2ba8 | ||
|
|
204af4c8be | ||
|
|
507caa128f | ||
|
|
1da08d37d2 | ||
|
|
b8aa3660c3 | ||
|
|
222d5912bb | ||
|
|
8ee238ec65 | ||
|
|
7169a25422 | ||
|
|
46a55c202e | ||
|
|
3cbc7c502b | ||
|
|
32be3764b8 | ||
|
|
1350543537 | ||
|
|
378643a072 | ||
|
|
320c44b087 | ||
|
|
162e604feb | ||
|
|
b1e9c8101d | ||
|
|
c29957e316 | ||
|
|
acdb07bc38 | ||
|
|
c2157b502d | ||
|
|
7c5462a828 | ||
|
|
5f3e116e46 | ||
|
|
4e6567c20a | ||
|
|
639ee3539b | ||
|
|
d7e581532b | ||
|
|
88b076439c | ||
|
|
0691c3cee9 | ||
|
|
9929d469dd | ||
|
|
428d3b7950 | ||
|
|
ca25262e38 | ||
|
|
6059562beb | ||
|
|
149469230f |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/.idea/*
|
||||
13
README.md
Normal file
13
README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
#Board3 Portal 2.0.0
|
||||
|
||||
Board Portal 2.0.0 is a second generation portal for phpBB 3.0.x. It adds a portal with several blocks to your forum.
|
||||
You can change the settings, move the blocks, add new blocks and more in the ACP.
|
||||
|
||||
##How to use
|
||||
|
||||
You can download the current development version of Board3 Portal 2.0.0 here or download the current release at [www.board3.de](http://www.board3.de/ "Board3 • Portal").
|
||||
Board3 Portal can be installed via AutoMOD or manually by following the instructions in install.xml (open it with your browser).
|
||||
|
||||
##Support
|
||||
|
||||
Support for Board3 Portal can be found at [www.board3.de](http://www.board3.de/ "Board3 • Portal") or on [www.phpbb.com](http://www.phpbb.com/community/viewtopic.php?f=70&t=2131824/ "phpBB • Board3 Portal").
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id$ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>120</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
@@ -107,4 +106,4 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
<diy-instructions lang="en">See general install.xml file</diy-instructions>
|
||||
<diy-instructions lang="de">Siehe install.xml</diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
|
||||
This file is released under the GNU GPL version 2. See license.txt.
|
||||
$Id$ -->
|
||||
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
|
||||
<!DOCTYPE xsl:stylesheet[
|
||||
<!ENTITY nbsp " ">
|
||||
]>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
|
||||
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
|
||||
<xsl:variable name="version">
|
||||
@@ -23,7 +23,7 @@
|
||||
/* phpBB 3.0 Admin Style Sheet
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
Original author: subBlue ( http://www.subblue.com/ )
|
||||
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
|
||||
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
*/
|
||||
|
||||
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
|
||||
// The following line from http://www.ryancooper.com/resources/keycode.asp
|
||||
document.onkeydown = mod_do_keypress;
|
||||
|
||||
var host = "http://www.phpbb.com/mods/modx/i18n/";
|
||||
var host = "https://www.phpbb.com/mods/modx/i18n/";
|
||||
|
||||
var enStrings = "dir=ltr\n" +
|
||||
"h1=Installation instructions for\n" +
|
||||
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"a-e=Email:\n" +
|
||||
"a-n=Name:\n" +
|
||||
"a-h=WWW:\n" +
|
||||
"a-git=Github:\n" +
|
||||
"a-c=Contributions:\n" +
|
||||
"a-c-f=From\n" +
|
||||
"a-c-t=to\n" +
|
||||
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
|
||||
"icf=Included files\n" +
|
||||
"icfn=No files have been included with this MOD.\n" +
|
||||
"dcl=Disclaimer\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
|
||||
"isp=and English support\n" +
|
||||
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ant=Author notes:\n" +
|
||||
"lic=License\n" +
|
||||
"lict=This MOD has been licensed under the following license:\n" +
|
||||
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
|
||||
"regex=This find contains an advanced feature known as regular expressions.\n" +
|
||||
"mhe-v=- Version\n" +
|
||||
"mh=MOD history\n" +
|
||||
"addtl-modx=Additional MODX files\n" +
|
||||
"imn=This MOD has no additional MODX files.\n" +
|
||||
"addtl-modx=Additional file(s)\n" +
|
||||
"imn=This MOD has no additional file(s).\n" +
|
||||
"link-c=Contrib\n" +
|
||||
"link-d=Dependency\n" +
|
||||
"link-l=Language\n" +
|
||||
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"installer-h2=PHP install file\n" +
|
||||
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
|
||||
"installer-exp2=To run it point your browser to, for example,\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"del-heads=Delete files\n" +
|
||||
"del-head=Delete file\n" +
|
||||
"del-file=Delete\n" +
|
||||
@@ -741,14 +742,14 @@ var arrClasCnt = [
|
||||
['cde-' , codes_ll ],
|
||||
['edt-' , edits_ll ],
|
||||
['fnd' , finds_ll ],
|
||||
['fnd' , removes_ll ],
|
||||
['rem' , removes_ll ],
|
||||
['regex', regex_ll ],
|
||||
['rplw' , replacewiths_ll ],
|
||||
['aft' , addafters_ll ],
|
||||
['bef' , addbefores_ll ],
|
||||
['inc' , increments_ll ],
|
||||
['ifnd' , ifinds_ll ],
|
||||
['ifnd' , iremoves_ll ],
|
||||
['irem' , iremoves_ll ],
|
||||
['regex', iregex_ll ],
|
||||
['irplw', ireplacewiths_ll ],
|
||||
['iaft' , iaddafters_ll ],
|
||||
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
|
||||
applyLanguage(enStrings.split("\n"));
|
||||
}
|
||||
xslLanguage(langCode);
|
||||
|
||||
show_title(langCode);
|
||||
}
|
||||
|
||||
function load_languages()
|
||||
@@ -808,6 +811,71 @@ function load_language()
|
||||
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
|
||||
}
|
||||
|
||||
/**
|
||||
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
|
||||
*/
|
||||
if (typeof document.getElementsByClassName != 'function')
|
||||
{
|
||||
document.getElementsByClassName = function()
|
||||
{
|
||||
var elms = document.getElementsByTagName('*');
|
||||
var ei = new Array();
|
||||
for (i = 0; i < elms.length; i++)
|
||||
{
|
||||
if (elms[i].getAttribute('class'))
|
||||
{
|
||||
ecl = elms[i].getAttribute('class').split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (elms[i].className)
|
||||
{
|
||||
ecl = elms[i].className.split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ei;
|
||||
}
|
||||
}
|
||||
|
||||
function show_title(langCode)
|
||||
{
|
||||
var sel_title = document.getElementById('title-' + langCode);
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// A title in English is required.
|
||||
sel_title = document.getElementById('title-en')
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// No title in English or the selected language.
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var hide_title = document.getElementsByClassName('hide-title');
|
||||
|
||||
for (var i = 0; i < hide_title.length; i++)
|
||||
{
|
||||
hide_title[i].style.display='none';
|
||||
}
|
||||
|
||||
sel_title.style.display='inline';
|
||||
document.title = "phpBB MOD » " + sel_title.innerHTML;
|
||||
}
|
||||
|
||||
/*****************
|
||||
* AJAX Functions *
|
||||
*****************/
|
||||
@@ -1425,7 +1493,7 @@ function change_dbms($form)
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$exists = 0;
|
||||
$tags = document.getElementsByTagName('dbms');
|
||||
@@ -1440,7 +1508,7 @@ function change_dbms($form)
|
||||
{
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1472,7 +1540,7 @@ function sql_display($value)
|
||||
// show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1520,7 +1588,7 @@ function sql_dropdown()
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$options = [];
|
||||
$ie_options = [];
|
||||
@@ -1530,7 +1598,7 @@ function sql_dropdown()
|
||||
// Show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
|
||||
<div id="debug"></div>
|
||||
<div id="wrap">
|
||||
<div id="page-header">
|
||||
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span> <xsl:value-of select="$version" /></h1>
|
||||
<h1>
|
||||
<span id="lang-h1">Installation instructions for</span>
|
||||
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
|
||||
<xsl:for-each select="mod:header/mod:title">
|
||||
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
|
||||
</xsl:for-each>
|
||||
<span id="lang-V">version</span> <xsl:value-of select="$version" />
|
||||
</h1>
|
||||
<form method="post" action="" id="lang-selector" style="display: none;">
|
||||
<fieldset class="nobg">
|
||||
<label for="language"><span id="lang-slg">Select language:</span></label> <select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
|
||||
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="give-header">
|
||||
<fieldset>
|
||||
<legend id="lang-atm">About this MOD</legend>
|
||||
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
|
||||
</xsl:if>
|
||||
</dd>
|
||||
</xsl:if>
|
||||
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
|
||||
<xsl:if test="contains(mod:github, 'https://github.com/')">
|
||||
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
|
||||
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
|
||||
<xsl:for-each select="../mod:action-group">
|
||||
<xsl:call-template name="give-files-included"></xsl:call-template>
|
||||
</xsl:for-each>
|
||||
<h3 id="lang-addtl-modx">Additional MODX files</h3>
|
||||
<h3 id="lang-addtl-modx">Additional file(s)</h3>
|
||||
<xsl:if test="count(mod:link-group/mod:link) = 0">
|
||||
<p id="lang-imn">This MOD has no additional MODX files.</p>
|
||||
<p id="lang-imn">This MOD has no additional file(s).</p>
|
||||
</xsl:if>
|
||||
|
||||
<ul class="link-group" id="link-group">
|
||||
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
|
||||
<div class="mod-about">
|
||||
<span class="corners-top"><span></span></span>
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
|
||||
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text> <span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
|
||||
<xsl:for-each select="./mod:mod-version">
|
||||
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
|
||||
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
|
||||
<xsl:with-param name="string-in" select="string($authorurl)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:otherwise>
|
||||
|
||||
</xsl:choose>
|
||||
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
|
||||
<option value="mssql">MSSQL</option>
|
||||
<option value="oracle">Oracle</option>
|
||||
<option value="postgres">Postgres</option>
|
||||
<option value="sqllite">SQLLite</option>
|
||||
<option value="sqlite">SQLite</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
|
||||
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>120</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
@@ -170,4 +169,4 @@ Refresh your Styles:
|
||||
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
|
||||
]]></diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id$ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
<title lang="en">board3 Portal - German Language Update for 2.0.0b1</title>
|
||||
<title lang="de">board3 Portal - Deutsche Sprache Aktualisiering für 2.0.0b1</title>
|
||||
<title lang="en">board3 Portal - German Language Update for 2.0.2</title>
|
||||
<title lang="de">board3 Portal - Deutsche Sprache Aktualisiering für 2.0.2</title>
|
||||
|
||||
<description lang="en">Adds a portal to your forum.
|
||||
It has several boxes wich can be turned on an off in the ACP and certain settings.
|
||||
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>120</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
@@ -103,15 +102,7 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
<copy>
|
||||
<file from="root/language/de/mods/*.*" to="language/de/mods/*.*" />
|
||||
</copy>
|
||||
<delete>
|
||||
<file name="language/de/mods/additional_blocks.php" />
|
||||
<file name="language/de/mods/info_acp_additional_blocks.php" />
|
||||
<file name="language/de/mods/install_portal.php" />
|
||||
<file name="language/de/mods/lang_portal.php" />
|
||||
<file name="language/de/mods/lang_portal_acp.php" />
|
||||
</delete>
|
||||
|
||||
<diy-instructions lang="en">See general install.xml file</diy-instructions>
|
||||
<diy-instructions lang="de">Siehe install.xml</diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
|
||||
This file is released under the GNU GPL version 2. See license.txt.
|
||||
$Id$ -->
|
||||
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
|
||||
<!DOCTYPE xsl:stylesheet[
|
||||
<!ENTITY nbsp " ">
|
||||
]>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
|
||||
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
|
||||
<xsl:variable name="version">
|
||||
@@ -23,7 +23,7 @@
|
||||
/* phpBB 3.0 Admin Style Sheet
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
Original author: subBlue ( http://www.subblue.com/ )
|
||||
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
|
||||
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
*/
|
||||
|
||||
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
|
||||
// The following line from http://www.ryancooper.com/resources/keycode.asp
|
||||
document.onkeydown = mod_do_keypress;
|
||||
|
||||
var host = "http://www.phpbb.com/mods/modx/i18n/";
|
||||
var host = "https://www.phpbb.com/mods/modx/i18n/";
|
||||
|
||||
var enStrings = "dir=ltr\n" +
|
||||
"h1=Installation instructions for\n" +
|
||||
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"a-e=Email:\n" +
|
||||
"a-n=Name:\n" +
|
||||
"a-h=WWW:\n" +
|
||||
"a-git=Github:\n" +
|
||||
"a-c=Contributions:\n" +
|
||||
"a-c-f=From\n" +
|
||||
"a-c-t=to\n" +
|
||||
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
|
||||
"icf=Included files\n" +
|
||||
"icfn=No files have been included with this MOD.\n" +
|
||||
"dcl=Disclaimer\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
|
||||
"isp=and English support\n" +
|
||||
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ant=Author notes:\n" +
|
||||
"lic=License\n" +
|
||||
"lict=This MOD has been licensed under the following license:\n" +
|
||||
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
|
||||
"regex=This find contains an advanced feature known as regular expressions.\n" +
|
||||
"mhe-v=- Version\n" +
|
||||
"mh=MOD history\n" +
|
||||
"addtl-modx=Additional MODX files\n" +
|
||||
"imn=This MOD has no additional MODX files.\n" +
|
||||
"addtl-modx=Additional file(s)\n" +
|
||||
"imn=This MOD has no additional file(s).\n" +
|
||||
"link-c=Contrib\n" +
|
||||
"link-d=Dependency\n" +
|
||||
"link-l=Language\n" +
|
||||
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"installer-h2=PHP install file\n" +
|
||||
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
|
||||
"installer-exp2=To run it point your browser to, for example,\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"del-heads=Delete files\n" +
|
||||
"del-head=Delete file\n" +
|
||||
"del-file=Delete\n" +
|
||||
@@ -741,14 +742,14 @@ var arrClasCnt = [
|
||||
['cde-' , codes_ll ],
|
||||
['edt-' , edits_ll ],
|
||||
['fnd' , finds_ll ],
|
||||
['fnd' , removes_ll ],
|
||||
['rem' , removes_ll ],
|
||||
['regex', regex_ll ],
|
||||
['rplw' , replacewiths_ll ],
|
||||
['aft' , addafters_ll ],
|
||||
['bef' , addbefores_ll ],
|
||||
['inc' , increments_ll ],
|
||||
['ifnd' , ifinds_ll ],
|
||||
['ifnd' , iremoves_ll ],
|
||||
['irem' , iremoves_ll ],
|
||||
['regex', iregex_ll ],
|
||||
['irplw', ireplacewiths_ll ],
|
||||
['iaft' , iaddafters_ll ],
|
||||
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
|
||||
applyLanguage(enStrings.split("\n"));
|
||||
}
|
||||
xslLanguage(langCode);
|
||||
|
||||
show_title(langCode);
|
||||
}
|
||||
|
||||
function load_languages()
|
||||
@@ -808,6 +811,71 @@ function load_language()
|
||||
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
|
||||
}
|
||||
|
||||
/**
|
||||
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
|
||||
*/
|
||||
if (typeof document.getElementsByClassName != 'function')
|
||||
{
|
||||
document.getElementsByClassName = function()
|
||||
{
|
||||
var elms = document.getElementsByTagName('*');
|
||||
var ei = new Array();
|
||||
for (i = 0; i < elms.length; i++)
|
||||
{
|
||||
if (elms[i].getAttribute('class'))
|
||||
{
|
||||
ecl = elms[i].getAttribute('class').split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (elms[i].className)
|
||||
{
|
||||
ecl = elms[i].className.split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ei;
|
||||
}
|
||||
}
|
||||
|
||||
function show_title(langCode)
|
||||
{
|
||||
var sel_title = document.getElementById('title-' + langCode);
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// A title in English is required.
|
||||
sel_title = document.getElementById('title-en')
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// No title in English or the selected language.
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var hide_title = document.getElementsByClassName('hide-title');
|
||||
|
||||
for (var i = 0; i < hide_title.length; i++)
|
||||
{
|
||||
hide_title[i].style.display='none';
|
||||
}
|
||||
|
||||
sel_title.style.display='inline';
|
||||
document.title = "phpBB MOD » " + sel_title.innerHTML;
|
||||
}
|
||||
|
||||
/*****************
|
||||
* AJAX Functions *
|
||||
*****************/
|
||||
@@ -1425,7 +1493,7 @@ function change_dbms($form)
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$exists = 0;
|
||||
$tags = document.getElementsByTagName('dbms');
|
||||
@@ -1440,7 +1508,7 @@ function change_dbms($form)
|
||||
{
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1472,7 +1540,7 @@ function sql_display($value)
|
||||
// show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1520,7 +1588,7 @@ function sql_dropdown()
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$options = [];
|
||||
$ie_options = [];
|
||||
@@ -1530,7 +1598,7 @@ function sql_dropdown()
|
||||
// Show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
|
||||
<div id="debug"></div>
|
||||
<div id="wrap">
|
||||
<div id="page-header">
|
||||
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span> <xsl:value-of select="$version" /></h1>
|
||||
<h1>
|
||||
<span id="lang-h1">Installation instructions for</span>
|
||||
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
|
||||
<xsl:for-each select="mod:header/mod:title">
|
||||
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
|
||||
</xsl:for-each>
|
||||
<span id="lang-V">version</span> <xsl:value-of select="$version" />
|
||||
</h1>
|
||||
<form method="post" action="" id="lang-selector" style="display: none;">
|
||||
<fieldset class="nobg">
|
||||
<label for="language"><span id="lang-slg">Select language:</span></label> <select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
|
||||
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="give-header">
|
||||
<fieldset>
|
||||
<legend id="lang-atm">About this MOD</legend>
|
||||
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
|
||||
</xsl:if>
|
||||
</dd>
|
||||
</xsl:if>
|
||||
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
|
||||
<xsl:if test="contains(mod:github, 'https://github.com/')">
|
||||
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
|
||||
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
|
||||
<xsl:for-each select="../mod:action-group">
|
||||
<xsl:call-template name="give-files-included"></xsl:call-template>
|
||||
</xsl:for-each>
|
||||
<h3 id="lang-addtl-modx">Additional MODX files</h3>
|
||||
<h3 id="lang-addtl-modx">Additional file(s)</h3>
|
||||
<xsl:if test="count(mod:link-group/mod:link) = 0">
|
||||
<p id="lang-imn">This MOD has no additional MODX files.</p>
|
||||
<p id="lang-imn">This MOD has no additional file(s).</p>
|
||||
</xsl:if>
|
||||
|
||||
<ul class="link-group" id="link-group">
|
||||
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
|
||||
<div class="mod-about">
|
||||
<span class="corners-top"><span></span></span>
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
|
||||
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text> <span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
|
||||
<xsl:for-each select="./mod:mod-version">
|
||||
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
|
||||
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
|
||||
<xsl:with-param name="string-in" select="string($authorurl)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:otherwise>
|
||||
|
||||
</xsl:choose>
|
||||
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
|
||||
<option value="mssql">MSSQL</option>
|
||||
<option value="oracle">Oracle</option>
|
||||
<option value="postgres">Postgres</option>
|
||||
<option value="sqllite">SQLLite</option>
|
||||
<option value="sqlite">SQLite</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
|
||||
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
</xsl:stylesheet>
|
||||
@@ -1,13 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
<title lang="en">board3 Portal - Update subsilver2 style for 2.0.0b1</title>
|
||||
<title lang="de">board3 Portal - Aktualisiere das subsilver2 style für 2.0.0b1</title>
|
||||
<title lang="en">board3 Portal - Update subsilver2 style for 2.0.2</title>
|
||||
<title lang="de">board3 Portal - Aktualisiere das subsilver2 style für 2.0.2</title>
|
||||
|
||||
<description lang="en">Adds a portal to your forum.
|
||||
It has several boxes wich can be turned on an off in the ACP and certain settings.
|
||||
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>120</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
@@ -101,21 +100,8 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</header>
|
||||
<action-group>
|
||||
<copy>
|
||||
<file from="root/styles/subsilver2/template/portal/*.*" to="styles/subsilver2/template/portal/*.*" />
|
||||
<file from="root/styles/subsilver2/theme/images/portal/*.*" to="styles/subsilver2/theme/images/portal/*.*" />
|
||||
<file from="root/styles/subsilver2/template/portal/modules/*.*" to="styles/subsilver2/template/portal/modules/*.*" />
|
||||
</copy>
|
||||
<delete>
|
||||
<file name="styles/subsilver2/template/portal/portal_center.html" />
|
||||
<file name="styles/subsilver2/template/portal/portal_left.html" />
|
||||
<file name="styles/subsilver2/template/portal/portal_right.html" />
|
||||
<file name="styles/subsilver2/template/portal/block/*.*" />
|
||||
<file name="styles/subsilver2/theme/images/portal/mini_cal_icon_left_arrow.png" />
|
||||
<file name="styles/subsilver2/theme/images/portal/mini_cal_icon_right_arrow.png" />
|
||||
<file name="styles/subsilver2/theme/images/portal/portal_login.png" />
|
||||
<file name="styles/subsilver2/theme/images/portal/portal_minical.png" />
|
||||
<file name="styles/subsilver2/theme/images/portal/portal_random.png" />
|
||||
<file name="styles/subsilver2/theme/images/portal/portal_stats.png" />
|
||||
</delete>
|
||||
<diy-instructions lang="de"><![CDATA[
|
||||
Aktualisiere deine Styles:
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
|
||||
@@ -133,4 +119,4 @@ Refresh your Styles:
|
||||
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
|
||||
]]></diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
|
||||
This file is released under the GNU GPL version 2. See license.txt.
|
||||
$Id$ -->
|
||||
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
|
||||
<!DOCTYPE xsl:stylesheet[
|
||||
<!ENTITY nbsp " ">
|
||||
]>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
|
||||
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
|
||||
<xsl:variable name="version">
|
||||
@@ -23,7 +23,7 @@
|
||||
/* phpBB 3.0 Admin Style Sheet
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
Original author: subBlue ( http://www.subblue.com/ )
|
||||
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
|
||||
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
*/
|
||||
|
||||
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
|
||||
// The following line from http://www.ryancooper.com/resources/keycode.asp
|
||||
document.onkeydown = mod_do_keypress;
|
||||
|
||||
var host = "http://www.phpbb.com/mods/modx/i18n/";
|
||||
var host = "https://www.phpbb.com/mods/modx/i18n/";
|
||||
|
||||
var enStrings = "dir=ltr\n" +
|
||||
"h1=Installation instructions for\n" +
|
||||
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"a-e=Email:\n" +
|
||||
"a-n=Name:\n" +
|
||||
"a-h=WWW:\n" +
|
||||
"a-git=Github:\n" +
|
||||
"a-c=Contributions:\n" +
|
||||
"a-c-f=From\n" +
|
||||
"a-c-t=to\n" +
|
||||
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
|
||||
"icf=Included files\n" +
|
||||
"icfn=No files have been included with this MOD.\n" +
|
||||
"dcl=Disclaimer\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
|
||||
"isp=and English support\n" +
|
||||
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ant=Author notes:\n" +
|
||||
"lic=License\n" +
|
||||
"lict=This MOD has been licensed under the following license:\n" +
|
||||
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
|
||||
"regex=This find contains an advanced feature known as regular expressions.\n" +
|
||||
"mhe-v=- Version\n" +
|
||||
"mh=MOD history\n" +
|
||||
"addtl-modx=Additional MODX files\n" +
|
||||
"imn=This MOD has no additional MODX files.\n" +
|
||||
"addtl-modx=Additional file(s)\n" +
|
||||
"imn=This MOD has no additional file(s).\n" +
|
||||
"link-c=Contrib\n" +
|
||||
"link-d=Dependency\n" +
|
||||
"link-l=Language\n" +
|
||||
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"installer-h2=PHP install file\n" +
|
||||
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
|
||||
"installer-exp2=To run it point your browser to, for example,\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"del-heads=Delete files\n" +
|
||||
"del-head=Delete file\n" +
|
||||
"del-file=Delete\n" +
|
||||
@@ -741,14 +742,14 @@ var arrClasCnt = [
|
||||
['cde-' , codes_ll ],
|
||||
['edt-' , edits_ll ],
|
||||
['fnd' , finds_ll ],
|
||||
['fnd' , removes_ll ],
|
||||
['rem' , removes_ll ],
|
||||
['regex', regex_ll ],
|
||||
['rplw' , replacewiths_ll ],
|
||||
['aft' , addafters_ll ],
|
||||
['bef' , addbefores_ll ],
|
||||
['inc' , increments_ll ],
|
||||
['ifnd' , ifinds_ll ],
|
||||
['ifnd' , iremoves_ll ],
|
||||
['irem' , iremoves_ll ],
|
||||
['regex', iregex_ll ],
|
||||
['irplw', ireplacewiths_ll ],
|
||||
['iaft' , iaddafters_ll ],
|
||||
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
|
||||
applyLanguage(enStrings.split("\n"));
|
||||
}
|
||||
xslLanguage(langCode);
|
||||
|
||||
show_title(langCode);
|
||||
}
|
||||
|
||||
function load_languages()
|
||||
@@ -808,6 +811,71 @@ function load_language()
|
||||
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
|
||||
}
|
||||
|
||||
/**
|
||||
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
|
||||
*/
|
||||
if (typeof document.getElementsByClassName != 'function')
|
||||
{
|
||||
document.getElementsByClassName = function()
|
||||
{
|
||||
var elms = document.getElementsByTagName('*');
|
||||
var ei = new Array();
|
||||
for (i = 0; i < elms.length; i++)
|
||||
{
|
||||
if (elms[i].getAttribute('class'))
|
||||
{
|
||||
ecl = elms[i].getAttribute('class').split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (elms[i].className)
|
||||
{
|
||||
ecl = elms[i].className.split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ei;
|
||||
}
|
||||
}
|
||||
|
||||
function show_title(langCode)
|
||||
{
|
||||
var sel_title = document.getElementById('title-' + langCode);
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// A title in English is required.
|
||||
sel_title = document.getElementById('title-en')
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// No title in English or the selected language.
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var hide_title = document.getElementsByClassName('hide-title');
|
||||
|
||||
for (var i = 0; i < hide_title.length; i++)
|
||||
{
|
||||
hide_title[i].style.display='none';
|
||||
}
|
||||
|
||||
sel_title.style.display='inline';
|
||||
document.title = "phpBB MOD » " + sel_title.innerHTML;
|
||||
}
|
||||
|
||||
/*****************
|
||||
* AJAX Functions *
|
||||
*****************/
|
||||
@@ -1425,7 +1493,7 @@ function change_dbms($form)
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$exists = 0;
|
||||
$tags = document.getElementsByTagName('dbms');
|
||||
@@ -1440,7 +1508,7 @@ function change_dbms($form)
|
||||
{
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1472,7 +1540,7 @@ function sql_display($value)
|
||||
// show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1520,7 +1588,7 @@ function sql_dropdown()
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$options = [];
|
||||
$ie_options = [];
|
||||
@@ -1530,7 +1598,7 @@ function sql_dropdown()
|
||||
// Show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
|
||||
<div id="debug"></div>
|
||||
<div id="wrap">
|
||||
<div id="page-header">
|
||||
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span> <xsl:value-of select="$version" /></h1>
|
||||
<h1>
|
||||
<span id="lang-h1">Installation instructions for</span>
|
||||
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
|
||||
<xsl:for-each select="mod:header/mod:title">
|
||||
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
|
||||
</xsl:for-each>
|
||||
<span id="lang-V">version</span> <xsl:value-of select="$version" />
|
||||
</h1>
|
||||
<form method="post" action="" id="lang-selector" style="display: none;">
|
||||
<fieldset class="nobg">
|
||||
<label for="language"><span id="lang-slg">Select language:</span></label> <select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
|
||||
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="give-header">
|
||||
<fieldset>
|
||||
<legend id="lang-atm">About this MOD</legend>
|
||||
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
|
||||
</xsl:if>
|
||||
</dd>
|
||||
</xsl:if>
|
||||
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
|
||||
<xsl:if test="contains(mod:github, 'https://github.com/')">
|
||||
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
|
||||
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
|
||||
<xsl:for-each select="../mod:action-group">
|
||||
<xsl:call-template name="give-files-included"></xsl:call-template>
|
||||
</xsl:for-each>
|
||||
<h3 id="lang-addtl-modx">Additional MODX files</h3>
|
||||
<h3 id="lang-addtl-modx">Additional file(s)</h3>
|
||||
<xsl:if test="count(mod:link-group/mod:link) = 0">
|
||||
<p id="lang-imn">This MOD has no additional MODX files.</p>
|
||||
<p id="lang-imn">This MOD has no additional file(s).</p>
|
||||
</xsl:if>
|
||||
|
||||
<ul class="link-group" id="link-group">
|
||||
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
|
||||
<div class="mod-about">
|
||||
<span class="corners-top"><span></span></span>
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
|
||||
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text> <span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
|
||||
<xsl:for-each select="./mod:mod-version">
|
||||
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
|
||||
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
|
||||
<xsl:with-param name="string-in" select="string($authorurl)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:otherwise>
|
||||
|
||||
</xsl:choose>
|
||||
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
|
||||
<option value="mssql">MSSQL</option>
|
||||
<option value="oracle">Oracle</option>
|
||||
<option value="postgres">Postgres</option>
|
||||
<option value="sqllite">SQLLite</option>
|
||||
<option value="sqlite">SQLite</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
|
||||
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
</xsl:stylesheet>
|
||||
@@ -1,13 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
<title lang="en">board3 Portal 2.0.0b1 - Convert from Board3 Portal 1.0.6</title>
|
||||
<title lang="de">board3 Portal 2.0.0b1 - Konvertiere von Board3 Portal 1.0.6</title>
|
||||
<title lang="en">board3 Portal 2.0.2 - Update from Board3 Portal 2.0.1</title>
|
||||
<title lang="de">board3 Portal 2.0.2 - Update von Board3 Portal 2.0.1</title>
|
||||
|
||||
<description lang="en">Adds a portal to your forum.
|
||||
It has several boxes wich can be turned on an off in the ACP and certain settings.
|
||||
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,104 +85,41 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>120</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
<link type="parent" lang="de" href="../../install.xml">Installations-Anleitung</link>
|
||||
<link type="parent" lang="en" href="../../install.xml">Manual</link>
|
||||
<link type="template" lang="en" href="contrib/subsilver2.xml">Update subsilver2 to Board3 Portal 2.0.0a2</link>
|
||||
<link type="template" lang="de" href="contrib/subsilver2.xml">Aktualisiere subsilver2 für Board3 Portal 2.0.0a2</link>
|
||||
<link type="language" lang="en" href="contrib/de.xml">Update German language to Board3 Portal 2.0.0a2</link>
|
||||
<link type="language" lang="de" href="contrib/de.xml">Aktualisiere deutsche Sprachdateien für Board3 Portal 2.0.0a2</link>
|
||||
<link type="template" lang="en" href="contrib/subsilver2.xml">Update subsilver2 to Board3 Portal 2.0.2</link>
|
||||
<link type="template" lang="de" href="contrib/subsilver2.xml">Aktualisiere subsilver2 für Board3 Portal 2.0.2</link>
|
||||
<link type="language" lang="en" href="contrib/de.xml">Update German language to Board3 Portal 2.0.2</link>
|
||||
<link type="language" lang="de" href="contrib/de.xml">Aktualisiere deutsche Sprachdateien für Board3 Portal 2.0.2</link>
|
||||
</link-group>
|
||||
</header>
|
||||
<action-group>
|
||||
<copy>
|
||||
<file from="root/portal.php" to="portal.php" />
|
||||
<file from="root/adm/images/*.*" to="adm/images/*.*" />
|
||||
<file from="root/adm/mods/board3_portal_check_version.php" to="adm/mods/board3_portal_check_version.php" />
|
||||
<file from="root/adm/style/*.*" to="adm/style/*.*" />
|
||||
<file from="root/includes/acp/*.*" to="includes/acp/*.*" />
|
||||
<file from="root/adm/style/portal/acp_portal.js" to="adm/style/portal/acp_portal.js" />
|
||||
<file from="root/adm/style/portal/acp_portal_custom.html" to="adm/style/portal/acp_portal_custom.html" />
|
||||
<file from="root/adm/style/portal/acp_portal_welcome.html" to="adm/style/portal/acp_portal_welcome.html" />
|
||||
<file from="root/includes/acp/acp_portal.php" to="includes/acp/acp_portal.php" />
|
||||
<file from="root/install/index.php" to="install/index.php" />
|
||||
<file from="root/language/en/mods/*.*" to="language/en/mods/*.*" />
|
||||
<file from="root/portal/*.*" to="portal/*.*" />
|
||||
<file from="root/styles/prosilver/template/portal/*.*" to="styles/prosilver/template/portal/*.*" />
|
||||
<file from="root/portal/includes/functions.php" to="portal/includes/functions.php" />
|
||||
<file from="root/portal/includes/functions_upload.php" to="portal/includes/functions_upload.php" />
|
||||
<file from="root/portal/modules/*.*" to="portal/modules/*.*" />
|
||||
<file from="root/styles/prosilver/template/portal/modules/*.*" to="styles/prosilver/template/portal/modules/*.*" />
|
||||
<file from="root/styles/prosilver/theme/portal.css" to="styles/prosilver/theme/portal.css" />
|
||||
<file from="root/styles/prosilver/theme/images/portal/*.*" to="styles/prosilver/theme/images/portal/*.*" />
|
||||
<file from="root/umil/*.*" to="umil/*.*" />
|
||||
<file from="root/portal.php" to="portal.php" />
|
||||
</copy>
|
||||
<delete>
|
||||
<file name="adm/style/acp_portal.html" />
|
||||
<file name="language/en/mods/additional_blocks.php" />
|
||||
<file name="language/en/mods/info_acp_additional_blocks.php" />
|
||||
<file name="language/en/mods/install_portal.php" />
|
||||
<file name="language/en/mods/lang_portal.php" />
|
||||
<file name="language/en/mods/lang_portal_acp.php" />
|
||||
<file name="portal/block/*.*" />
|
||||
<file name="styles/prosilver/template/portal/portal_center.html" />
|
||||
<file name="styles/prosilver/template/portal/portal_left.html" />
|
||||
<file name="styles/prosilver/template/portal/portal_right.html" />
|
||||
<file name="styles/prosilver/template/portal/block/*.*" />
|
||||
<file name="styles/prosilver/theme/images/portal/mini_cal_icon_left_arrow.png" />
|
||||
<file name="styles/prosilver/theme/images/portal/mini_cal_icon_right_arrow.png" />
|
||||
<file name="styles/prosilver/theme/images/portal/portal_login.png" />
|
||||
<file name="styles/prosilver/theme/images/portal/portal_minical.png" />
|
||||
<file name="styles/prosilver/theme/images/portal/portal_random.png" />
|
||||
<file name="styles/prosilver/theme/images/portal/portal_stats.png" />
|
||||
</delete>
|
||||
<open src="viewonline.php">
|
||||
<edit>
|
||||
<find><![CDATA[ $user->add_lang('mods/lang_portal');]]></find>
|
||||
<action type="replace-with"><![CDATA[ $user->add_lang('mods/portal');]]></action>
|
||||
</edit>
|
||||
</open>
|
||||
<open src="includes/constants.php">
|
||||
<edit>
|
||||
<remove><![CDATA[define('PORTAL_CONFIG_TABLE', $table_prefix . 'portal_config');]]></remove>
|
||||
</edit>
|
||||
</open>
|
||||
<open src="includes/functions.php">
|
||||
<edit>
|
||||
<find><![CDATA[ $user->add_lang(array('mods/lang_portal', 'mods/additional_blocks'));
|
||||
if (!function_exists('obtain_portal_config'))
|
||||
{
|
||||
include($phpbb_root_path . 'portal/includes/functions.' . $phpEx);
|
||||
}
|
||||
if(sql_table_exists(PORTAL_CONFIG_TABLE) == true)
|
||||
{
|
||||
$portal_config = obtain_portal_config();
|
||||
}]]></find>
|
||||
<action type="replace-with"><![CDATA[ $user->add_lang('mods/portal');]]></action>
|
||||
</edit>
|
||||
<edit>
|
||||
<find><![CDATA[ 'U_PORTAL' => (isset($portal_config['portal_enable']) && $portal_config['portal_enable'] == true) ? append_sid("{$phpbb_root_path}portal.$phpEx") : '',]]></find>
|
||||
<action type="replace-with"><![CDATA[ 'U_PORTAL' => (isset($config['board3_enable']) && $config['board3_enable'] && $auth->acl_get('u_view_portal')) ? append_sid("{$phpbb_root_path}portal.$phpEx") : '',]]></action>
|
||||
</edit>
|
||||
</open>
|
||||
<php-installer>install/index.php</php-installer>
|
||||
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus
|
||||
|
||||
Aktualisiere deine Styles:
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Themes" > jedes > "Aktualisieren"
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Grafiksammlungen" > jedes > "Aktualisieren"
|
||||
|
||||
Leere den Cache im "Administrations-Bereich" (ACP) > "Allgemein" > "Den Cache leeren"
|
||||
]]></diy-instructions>
|
||||
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer
|
||||
|
||||
Refresh your Styles:
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Templates" > each > "refresh"
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Themes" > each > "refresh"
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Imagesets" > each > "refresh"
|
||||
|
||||
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
|
||||
]]></diy-instructions>
|
||||
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus.]]></diy-instructions>
|
||||
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer.]]></diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
231
install.xml
231
install.xml
@@ -1,13 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
|
||||
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
|
||||
<!-- $Id$ -->
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<header>
|
||||
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
|
||||
|
||||
<title lang="en">board3 Portal 2.0.0 - Beta 1</title>
|
||||
<title lang="de">board3 Portal 2.0.0 - Beta 1</title>
|
||||
<title lang="en">board3 Portal</title>
|
||||
<title lang="de">board3 Portal</title>
|
||||
|
||||
<description lang="en">Adds a portal with several blocks to your forum.
|
||||
You can change the settings, move the blocks, add new blocks and more in the ACP.
|
||||
@@ -27,15 +26,15 @@ Enthaltenen Sprachdateien:
|
||||
Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.board3.de/viewforum.php?f=13
|
||||
</description>
|
||||
|
||||
<author-notes lang="en">I hope you get everything working. Further developement, new boxes for the portal or questions are welcome at www.board3.de
|
||||
<author-notes lang="en">This MOD requires PHP5. I hope you get everything working. Further developement, new boxes for the portal or questions are welcome at www.board3.de
|
||||
</author-notes>
|
||||
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
<author-notes lang="de">Dieser MOD benötigt PHP5. Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
|
||||
</author-notes>
|
||||
|
||||
<github>https://github.com/board3/Board3-Portal</github>
|
||||
<author-group>
|
||||
<author>
|
||||
<realname>Marc Alexander</realname>
|
||||
<username>marc1706</username>
|
||||
<username>Marc</username>
|
||||
<email>admin@m-a-styles.de</email>
|
||||
<homepage>http://www.m-a-styles.de</homepage>
|
||||
<contributions-group>
|
||||
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
|
||||
</author>
|
||||
</author-group>
|
||||
|
||||
<mod-version>2.0.0b1</mod-version>
|
||||
<mod-version>2.0.2</mod-version>
|
||||
|
||||
<installation>
|
||||
<level>easy</level>
|
||||
<time>600</time>
|
||||
<target-version>3.0.8</target-version>
|
||||
<target-version>3.0.12</target-version>
|
||||
</installation>
|
||||
|
||||
<link-group>
|
||||
@@ -101,10 +100,193 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
|
||||
<link type="language" lang="de" href="contrib/de.xml">Anleitung für das deutsche Sprachpaket</link>
|
||||
<link type="template" lang="en" href="contrib/subsilver2.xml">Manual for subsilver2</link>
|
||||
<link type="template" lang="de" href="contrib/subsilver2.xml">Anleitung für subsilver2</link>
|
||||
<link type="contrib" lang="en" href="contrib/update_106_to_200b1/update.xml">Manual for Updating B3P 1.0.6 to 2.0.0b1</link>
|
||||
<link type="contrib" lang="de" href="contrib/update_106_to_200b1/update.xml">Anleitung für das Aktualisieren von B3P 1.0.6 zu 2.0.0b1</link>
|
||||
<link type="contrib" lang="en" href="contrib/update_201_to_202/update.xml">Manual for Updating B3P 2.0.1 to 2.0.2</link>
|
||||
<link type="contrib" lang="de" href="contrib/update_201_to_202/update.xml">Anleitung für das Aktualisieren von B3P 2.0.1 zu 2.0.2</link>
|
||||
</link-group>
|
||||
<history>
|
||||
<entry>
|
||||
<date>2013-10-27</date>
|
||||
<rev-version>2.0.2</rev-version>
|
||||
<changelog lang="en">
|
||||
<change>[ticket/216] Add function for obtaining user's groups</change>
|
||||
<change>[ticket/217] Handle incorrect values in the news URL</change>
|
||||
<change>[cleanup/acp] Make acp_portal module more readable</change>
|
||||
<change>[cleanup/tabs] Remove unnecessary tabbing in portal files</change>
|
||||
<change>[cleanup/whitespace] Get rid of unnecessary whitespace</change>
|
||||
<change>Display correct day of the week with negative UTC offset</change>
|
||||
<change>[ticket/120] Move birthday block HTML to template files</change>
|
||||
<change>[ticket/224] Add possibility to append username to donation</change>
|
||||
<change>[ŧicket/223] Set correct permissions to uploaded files (644)</change>
|
||||
<change>[feature/clean-up] Remove duplicated code from portal modules</change>
|
||||
<change>[gh/113] Update UMIL to 1.0.5</change>
|
||||
<change>Slight changes to design of portal</change>
|
||||
</changelog>
|
||||
<changelog lang="de">
|
||||
<change>[ticket/216] Füge Funktion zur Erlangung der Gruppen eines Benutzers hinzu</change>
|
||||
<change>[ticket/217] Behandele falsche Parameter in der News URL</change>
|
||||
<change>[cleanup/acp] Mache acp_portal lesbarer</change>
|
||||
<change>[cleanup/tabs] Entferne sinnlose Tabs in Portal Dateien</change>
|
||||
<change>[cleanup/whitespace] Entferne unnötige Leerzeichen</change>
|
||||
<change>Zeige korrekten Tag der Woche bei negativem UTC Abstand an</change>
|
||||
<change>[ticket/120] Verschiebe HTML des Geburtstags-Blocks in Template Dateien</change>
|
||||
<change>[ticket/224] Füge Möglichkeit des Anhängens des Benutzernamens an Spende ein</change>
|
||||
<change>[ŧicket/223] Setze richtige Berechtigungen für hochgeladene Dateien (644)</change>
|
||||
<change>[feature/clean-up] Entferne doppelten Code von Portal Modulen</change>
|
||||
<change>[gh/113] Aktualisiere UMIL zu 1.0.5</change>
|
||||
<change>Kleine Änderungen im Design des Portals</change>
|
||||
</changelog>
|
||||
</entry>
|
||||
<entry>
|
||||
<date>2012-10-13</date>
|
||||
<rev-version>2.0.1</rev-version>
|
||||
<changelog lang="en">
|
||||
<change>Redirect to portal.php when detecting incorrect announcement parameter</change>
|
||||
<change>Add rel="nofollow" to calendar navigation</change>
|
||||
<change>Fixed incorrect handling of months by strtotime</change>
|
||||
<change>Fix previous commit for calendar</change>
|
||||
<change>Fix incorrect config_name in portal_recent.php</change>
|
||||
<change>Fix error if server-side topic marking is disabled</change>
|
||||
<change>Fix incorrect space between blocks in IE9</change>
|
||||
<change>[ticket/203] Future all day events are always displayed as current</change>
|
||||
<change>[ticket/207] Debug warning in ACP when using PHP 5.4</change>
|
||||
<change>[ticket/206] Missing link to MCP in subsilver2</change>
|
||||
<change>Fix PHP notice when unable to rename</change>
|
||||
<change>Fix incorrect space above calendar in IE9</change>
|
||||
<change>Properly handle mutated vowels in links</change>
|
||||
<change>Enable stylechanger for guests again</change>
|
||||
<change>Add missing language var for logs after removing a link</change>
|
||||
<change>Remove converter for Board3 Portal 1.0.6</change>
|
||||
<change>Fix: Infinite loop caused by smiley code with "["</change>
|
||||
<change>Fix: Only variables can be passed by ref in strict mode</change>
|
||||
<change>Display events that start in the next 24 Hours as "Current"</change>
|
||||
<change>Remove unnecessary variables from format_birthday() & clean-up</change>
|
||||
<change>Save module settings even if module image can't be found</change>
|
||||
<change>Add missing error messages to links & main menu modules</change>
|
||||
<change>Remove update instructions for old releases</change>
|
||||
<change>Remove update for beta version</change>
|
||||
<change>Add missing language variable "NO_FILE_B3P"</change>
|
||||
</changelog>
|
||||
<changelog lang="de">
|
||||
<change>Leite bei falschen Parametern für Ankündigungen an die portal.php weiter</change>
|
||||
<change>Füge rel="nofollow" zur Kalender Navigation hinzu</change>
|
||||
<change>Korrigiere fehlerhafte Behandlung von Monaten mit strtotime</change>
|
||||
<change>Korrigiere vohergehende Änderung für den Kalender</change>
|
||||
<change>Korrigiere falschen config_name in portal_recent.php</change>
|
||||
<change>Korrigiere Fehler falls serverseitiges Markieren von Themen deaktiviert ist</change>
|
||||
<change>Korrigiere falschen Abstand zwischen Blöcken in IE9</change>
|
||||
<change>[ticket/203] Future all day events are always displayed as current</change>
|
||||
<change>[ticket/207] PHP 5.4.0 Unterstützung / Support</change>
|
||||
<change>[ticket/206] Kein Link zum Moderations-Bereich im user_menu_side.html bei subsilver2</change>
|
||||
<change>Korrigiere PHP notice falls nicht umbenannt werden kann</change>
|
||||
<change>Korrigiere falschen Abstand über dem Kalender in IE9</change>
|
||||
<change>Gehe korrekt mit Umlauten in Links um</change>
|
||||
<change>Aktiviere Stylechanger wieder für Gäste</change>
|
||||
<change>Füge fehlende Sprachvariablen für Logs nach dem Entfernen von Links hinzu</change>
|
||||
<change>Entferne Konverter für Board3 Portal 1.0.6</change>
|
||||
<change>Korrigiere Endlosschleife durch Smiley Code mit "["</change>
|
||||
<change>Korrigiere: Only variables can be passed by ref in strict mode</change>
|
||||
<change>Zeige Veranstaltungen die in den nächsten 24 Stunden beginnen als aktuell an</change>
|
||||
<change>Entferne unnötige Variablen von format_birthday() & räume etwas auf</change>
|
||||
<change>Sichere Modul Einstellungen auch wenn die Modul Bilder nicht gefunden werden können</change>
|
||||
<change>Füge fehlende Fehlermeldungen zu Links & Menü Modulen hinzu</change>
|
||||
<change>Entferne Update Anleitungen für ältere Veröffentlichungen</change>
|
||||
<change>Entferne Update Anleitung für Beta Version</change>
|
||||
<change>Füge fehlende Sprachvariable "NO_FILE_B3P" hinzu</change>
|
||||
</changelog>
|
||||
</entry>
|
||||
<entry>
|
||||
<date>2012-04-06</date>
|
||||
<rev-version>2.0.0</rev-version>
|
||||
<changelog lang="en">
|
||||
<change>Replaced German language vars with English ones</change>
|
||||
<change>Fixed 2 small errors in calendar language file</change>
|
||||
<change>Fixed incorrect links to convert instruction</change>
|
||||
<change>Added note to author notes that PHP5 is required</change>
|
||||
<change>Fixed incorrect handling of utf8 characters in custom blocks</change>
|
||||
<change>Fixed missing height and width in module images of custom blocks</change>
|
||||
<change>Modified module title to "Attachments" as suggested by wang555</change>
|
||||
<change>Fixed incorrect timezone handling of events</change>
|
||||
<change>Removed number in latest bots title</change>
|
||||
<change>Centered clock in prosilver</change>
|
||||
<change>Added br-tag in forumlist.html to prevent issues in custom styles</change>
|
||||
<change>Fixed small cosmetic errors in prosilver</change>
|
||||
<change>Added correct padding between headerbar and portal body</change>
|
||||
<change>Hide module image settings in center, top & bottom column</change>
|
||||
<change>Added missing permission check for calendar events</change>
|
||||
<change>Fixed incorrect position of event desc in future events (prosilver)</change>
|
||||
<change>Modified style of calendar in subsilver2</change>
|
||||
<change>Fixed: Jumpbox doesn't care if it is enabled in the ACP</change>
|
||||
<change>Added a few rtl fixes</change>
|
||||
<change>Fixed: Unread topics do not get displayed</change>
|
||||
<change>Add possibility to define a different class for callback functions</change>
|
||||
<change>Moved trim_message tool to includes folder</change>
|
||||
<change>Added missing lang entries for removed events</change>
|
||||
<change>Fixed incorrect ordering of users in leaders module</change>
|
||||
<change>Added htmlspecialchars_decode for message before trimming</change>
|
||||
<change>Allow duplicate inclusion of module if it's in a different column type</change>
|
||||
<change>Fixed incorrect arrow directions when using rtl language (ACP)</change>
|
||||
<change>Disabled poll module for the side columns</change>
|
||||
<change>Merged small whois online block into whois online module</change>
|
||||
<change>Fixed missing module_status in board3_basic_install()</change>
|
||||
<change>Add missing update instructions for 2.0.0b1</change>
|
||||
<change>Fix size of input boxes</change>
|
||||
<change>Add missing class references</change>
|
||||
<change>Fixed "unknown column" issue when installing</change>
|
||||
<change>Fixing incorrect size of module box for oneliners</change>
|
||||
<change>Get rid of magic numbers in portal.php</change>
|
||||
<change>Make sure we don't try to copy folders</change>
|
||||
<change>[Fix] Don't let Bots use styleswitcher </change>
|
||||
<change>Added missing language vars and removed useless ones</change>
|
||||
<change>Purge caches via install file</change>
|
||||
<change>Fixed exceeding of max execution time when using trim message tool</change>
|
||||
<change>Moved duplicate javascript to acp_portal.js</change>
|
||||
<change>Hide modules that can't be added</change>
|
||||
</changelog>
|
||||
<changelog lang="de">
|
||||
<change>Deutsche Sprachvariablen mit englischen ersetzt</change>
|
||||
<change>2 kleine Fehler in Kalender Sprachdatei korrigiert</change>
|
||||
<change>Falsche Links zu Konvertierungsanleitung korrigiert</change>
|
||||
<change>PHP5 Anforderung zu Author notes hinzugefügt</change>
|
||||
<change>Inkorrekte Behandlung von utf8 Zeichen in Eigenen Blöcken korrigiert</change>
|
||||
<change>Fehlende Höhe- und Breiteangaben für Modul Bilder von Eigenen Blöcken korrigiert</change>
|
||||
<change>Inkorrekte Behandlung von Zeitzonen bei Veranstaltungen korrigiert</change>
|
||||
<change>Anzahl im Titel des Letzte Bots Modul entfernt</change>
|
||||
<change>Uhr in prosilver zentriert</change>
|
||||
<change>br-tag zu forumlist.html hinzugefügt um Probleme in anderen Styles zu verhindern</change>
|
||||
<change>Kleine kosmetische Fehler in prosilver korrigiert</change>
|
||||
<change>Abstand zwischen header und portal_body korrigiert</change>
|
||||
<change>Verstecke Modul Bild Einstelungen in der Mitte, Oben & Unten</change>
|
||||
<change>Fehlende Überprüfung von Veranstaltungs-Berechtigungen hinzugefügt</change>
|
||||
<change>Position der Veranstaltungs-Beschreibung in prosilver angepasst</change>
|
||||
<change>Styles des Kalenders in subsilver2 geändert</change>
|
||||
<change>Jumpbox lässt sich jetzt deaktivieren</change>
|
||||
<change>Korrekturen für RTL Sprachen</change>
|
||||
<change>Ungelesene Beiträge Icons werden angezeigt</change>
|
||||
<change>Möglichkeit eine andere Klasse für die callback Funktion zu definieren hinzugefügt</change>
|
||||
<change>trim_message Tool in den includes Ordner verschoben</change>
|
||||
<change>Fehlende Sprachvariablen für gelöschte Veranstaltungen hinzugefügt</change>
|
||||
<change>Falsche Sortierung von Benutzernamen in Team Block korrigiert</change>
|
||||
<change>Anwendung von htmlspecialchars_decode() auf Nachricht vor dem Kürzen hinzugefügt</change>
|
||||
<change>Doppelte Einbindung von Modulen erlaubt, falls sie in einem anderen Spaltentyp hinzugefügt werden</change>
|
||||
<change>Falsche Pfeilrichtungen bei RTL Sprachen korrigiert (Admin-Bereich)</change>
|
||||
<change>Umfrage Modul in den seitlichen Spalten deaktiviert</change>
|
||||
<change>Kleinen "Wer ist online?" Block in das "Wer ist online?" Modul eingefügt</change>
|
||||
<change>Fehlender module_stats in board3_basic_install() korrigiert</change>
|
||||
<change>Fehlende Update-Anleitung für 2.0.0b1 hinzugefügt</change>
|
||||
<change>Größe der Input-Boxen korrigiert</change>
|
||||
<change>Fehlende Globalisierung von Klassen und includes hinzugefügt</change>
|
||||
<change>"unknown column" Fehler beim Installieren korrigiert</change>
|
||||
<change>Falsche Größe der Modul Box bei Einzeilern korrigiert</change>
|
||||
<change>"Magic Numbers" in portal.php entfernt</change>
|
||||
<change>Stelle sicher, dass wir nicht versuchen Ordner zu kopieren</change>
|
||||
<change>Lasse Bots nicht den Styleswicher benutzen</change>
|
||||
<change>Fehlende Sprachvariablen hinzugefügt und Unnötige entfernt</change>
|
||||
<change>Leere Caches mit dem Install-Skript</change>
|
||||
<change>Überschreiten der maximalen Ausführungszeit im trim message Tool korrigiert</change>
|
||||
<change>Doppeltes Javascript in acp_portal.js verschoben</change>
|
||||
<change>Verstecke Module die nicht hinzugefügt werden können</change>
|
||||
</changelog>
|
||||
</entry>
|
||||
<entry>
|
||||
<date>2011-06-08</date>
|
||||
<rev-version>2.0.0b1</rev-version>
|
||||
@@ -184,6 +366,7 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
|
||||
<file from="root/adm/mods/board3_portal_check_version.php" to="adm/mods/board3_portal_check_version.php" />
|
||||
<file from="root/adm/style/*.*" to="adm/style/*.*" />
|
||||
<file from="root/includes/acp/*.*" to="includes/acp/*.*" />
|
||||
<file from="root/includes/trim_message/*.*" to="includes/trim_message/*.*" />
|
||||
<file from="root/install/index.php" to="install/index.php" />
|
||||
<file from="root/language/en/mods/*.*" to="language/en/mods/*.*" />
|
||||
<file from="root/portal/*.*" to="portal/*.*" />
|
||||
@@ -228,7 +411,7 @@ Deny from All
|
||||
<open src="includes/session.php">
|
||||
<edit>
|
||||
<find><![CDATA[ if (!empty($_GET['style']) && $auth->acl_get('a_styles') && !defined('ADMIN_START'))]]></find>
|
||||
<action type="replace-with"><![CDATA[ if (!empty($_GET['style']) && !defined('ADMIN_START'))]]></action>
|
||||
<action type="replace-with"><![CDATA[ if (!empty($_GET['style']) && !defined('ADMIN_START') && !$this->data['is_bot'])]]></action>
|
||||
</edit>
|
||||
</open>
|
||||
<open src="styles/prosilver/template/overall_header.html">
|
||||
@@ -269,23 +452,11 @@ Deny from All
|
||||
</edit>
|
||||
</open>
|
||||
<php-installer>install/index.php</php-installer>
|
||||
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus
|
||||
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus.
|
||||
|
||||
Aktualisiere deine Styles:
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Themes" > jedes > "Aktualisieren"
|
||||
"Administrations-Bereich" (ACP) > "Styles" > "Grafiksammlungen" > jedes > "Aktualisieren"
|
||||
Lösche anschließend das Installationsverzeichnis.]]></diy-instructions>
|
||||
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer.
|
||||
|
||||
Leere den Cache im "Administrations-Bereich" (ACP) > "Allgemein" > "Den Cache leeren"
|
||||
]]></diy-instructions>
|
||||
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer
|
||||
|
||||
Refresh your Styles:
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Templates" > each > "refresh"
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Themes" > each > "refresh"
|
||||
"Administration Control Panel" (ACP) > "Styles" > "Imagesets" > each > "refresh"
|
||||
|
||||
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
|
||||
]]></diy-instructions>
|
||||
Remove the install-folder afterwards.]]></diy-instructions>
|
||||
</action-group>
|
||||
</mod>
|
||||
</mod>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
|
||||
This file is released under the GNU GPL version 2. See license.txt.
|
||||
$Id$ -->
|
||||
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
|
||||
<!DOCTYPE xsl:stylesheet[
|
||||
<!ENTITY nbsp " ">
|
||||
]>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
|
||||
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
|
||||
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
|
||||
<xsl:variable name="version">
|
||||
@@ -23,7 +23,7 @@
|
||||
/* phpBB 3.0 Admin Style Sheet
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
Original author: subBlue ( http://www.subblue.com/ )
|
||||
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
|
||||
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
*/
|
||||
|
||||
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
|
||||
// The following line from http://www.ryancooper.com/resources/keycode.asp
|
||||
document.onkeydown = mod_do_keypress;
|
||||
|
||||
var host = "http://www.phpbb.com/mods/modx/i18n/";
|
||||
var host = "https://www.phpbb.com/mods/modx/i18n/";
|
||||
|
||||
var enStrings = "dir=ltr\n" +
|
||||
"h1=Installation instructions for\n" +
|
||||
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"a-e=Email:\n" +
|
||||
"a-n=Name:\n" +
|
||||
"a-h=WWW:\n" +
|
||||
"a-git=Github:\n" +
|
||||
"a-c=Contributions:\n" +
|
||||
"a-c-f=From\n" +
|
||||
"a-c-t=to\n" +
|
||||
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
|
||||
"icf=Included files\n" +
|
||||
"icfn=No files have been included with this MOD.\n" +
|
||||
"dcl=Disclaimer\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
|
||||
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
|
||||
"isp=and English support\n" +
|
||||
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
|
||||
"ant=Author notes:\n" +
|
||||
"lic=License\n" +
|
||||
"lict=This MOD has been licensed under the following license:\n" +
|
||||
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
|
||||
"regex=This find contains an advanced feature known as regular expressions.\n" +
|
||||
"mhe-v=- Version\n" +
|
||||
"mh=MOD history\n" +
|
||||
"addtl-modx=Additional MODX files\n" +
|
||||
"imn=This MOD has no additional MODX files.\n" +
|
||||
"addtl-modx=Additional file(s)\n" +
|
||||
"imn=This MOD has no additional file(s).\n" +
|
||||
"link-c=Contrib\n" +
|
||||
"link-d=Dependency\n" +
|
||||
"link-l=Language\n" +
|
||||
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
|
||||
"installer-h2=PHP install file\n" +
|
||||
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
|
||||
"installer-exp2=To run it point your browser to, for example,\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
|
||||
"del-heads=Delete files\n" +
|
||||
"del-head=Delete file\n" +
|
||||
"del-file=Delete\n" +
|
||||
@@ -741,14 +742,14 @@ var arrClasCnt = [
|
||||
['cde-' , codes_ll ],
|
||||
['edt-' , edits_ll ],
|
||||
['fnd' , finds_ll ],
|
||||
['fnd' , removes_ll ],
|
||||
['rem' , removes_ll ],
|
||||
['regex', regex_ll ],
|
||||
['rplw' , replacewiths_ll ],
|
||||
['aft' , addafters_ll ],
|
||||
['bef' , addbefores_ll ],
|
||||
['inc' , increments_ll ],
|
||||
['ifnd' , ifinds_ll ],
|
||||
['ifnd' , iremoves_ll ],
|
||||
['irem' , iremoves_ll ],
|
||||
['regex', iregex_ll ],
|
||||
['irplw', ireplacewiths_ll ],
|
||||
['iaft' , iaddafters_ll ],
|
||||
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
|
||||
applyLanguage(enStrings.split("\n"));
|
||||
}
|
||||
xslLanguage(langCode);
|
||||
|
||||
show_title(langCode);
|
||||
}
|
||||
|
||||
function load_languages()
|
||||
@@ -808,6 +811,71 @@ function load_language()
|
||||
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
|
||||
}
|
||||
|
||||
/**
|
||||
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
|
||||
*/
|
||||
if (typeof document.getElementsByClassName != 'function')
|
||||
{
|
||||
document.getElementsByClassName = function()
|
||||
{
|
||||
var elms = document.getElementsByTagName('*');
|
||||
var ei = new Array();
|
||||
for (i = 0; i < elms.length; i++)
|
||||
{
|
||||
if (elms[i].getAttribute('class'))
|
||||
{
|
||||
ecl = elms[i].getAttribute('class').split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (elms[i].className)
|
||||
{
|
||||
ecl = elms[i].className.split(' ');
|
||||
for (j = 0; j < ecl.length; j++)
|
||||
{
|
||||
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
|
||||
{
|
||||
ei.push(elms[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ei;
|
||||
}
|
||||
}
|
||||
|
||||
function show_title(langCode)
|
||||
{
|
||||
var sel_title = document.getElementById('title-' + langCode);
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// A title in English is required.
|
||||
sel_title = document.getElementById('title-en')
|
||||
|
||||
if (sel_title == null)
|
||||
{
|
||||
// No title in English or the selected language.
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var hide_title = document.getElementsByClassName('hide-title');
|
||||
|
||||
for (var i = 0; i < hide_title.length; i++)
|
||||
{
|
||||
hide_title[i].style.display='none';
|
||||
}
|
||||
|
||||
sel_title.style.display='inline';
|
||||
document.title = "phpBB MOD » " + sel_title.innerHTML;
|
||||
}
|
||||
|
||||
/*****************
|
||||
* AJAX Functions *
|
||||
*****************/
|
||||
@@ -1425,7 +1493,7 @@ function change_dbms($form)
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$exists = 0;
|
||||
$tags = document.getElementsByTagName('dbms');
|
||||
@@ -1440,7 +1508,7 @@ function change_dbms($form)
|
||||
{
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1472,7 +1540,7 @@ function sql_display($value)
|
||||
// show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1520,7 +1588,7 @@ function sql_dropdown()
|
||||
'mssql',
|
||||
'oracle',
|
||||
'postgres',
|
||||
'sqllite'
|
||||
'sqlite'
|
||||
];
|
||||
$options = [];
|
||||
$ie_options = [];
|
||||
@@ -1530,7 +1598,7 @@ function sql_dropdown()
|
||||
// Show the dbms of type we have selected, hide all others except for non dbms specific
|
||||
for ($i = 0; $i < $tags.length; $i++)
|
||||
{
|
||||
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
|
||||
if (!($dbms = $tags[$i].attributes['type'].value))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
|
||||
<div id="debug"></div>
|
||||
<div id="wrap">
|
||||
<div id="page-header">
|
||||
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span> <xsl:value-of select="$version" /></h1>
|
||||
<h1>
|
||||
<span id="lang-h1">Installation instructions for</span>
|
||||
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
|
||||
<xsl:for-each select="mod:header/mod:title">
|
||||
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
|
||||
</xsl:for-each>
|
||||
<span id="lang-V">version</span> <xsl:value-of select="$version" />
|
||||
</h1>
|
||||
<form method="post" action="" id="lang-selector" style="display: none;">
|
||||
<fieldset class="nobg">
|
||||
<label for="language"><span id="lang-slg">Select language:</span></label> <select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
|
||||
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="give-header">
|
||||
<fieldset>
|
||||
<legend id="lang-atm">About this MOD</legend>
|
||||
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
|
||||
</xsl:if>
|
||||
</dd>
|
||||
</xsl:if>
|
||||
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
|
||||
<xsl:if test="contains(mod:github, 'https://github.com/')">
|
||||
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
|
||||
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
|
||||
<xsl:for-each select="../mod:action-group">
|
||||
<xsl:call-template name="give-files-included"></xsl:call-template>
|
||||
</xsl:for-each>
|
||||
<h3 id="lang-addtl-modx">Additional MODX files</h3>
|
||||
<h3 id="lang-addtl-modx">Additional file(s)</h3>
|
||||
<xsl:if test="count(mod:link-group/mod:link) = 0">
|
||||
<p id="lang-imn">This MOD has no additional MODX files.</p>
|
||||
<p id="lang-imn">This MOD has no additional file(s).</p>
|
||||
</xsl:if>
|
||||
|
||||
<ul class="link-group" id="link-group">
|
||||
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
|
||||
<div class="mod-about">
|
||||
<span class="corners-top"><span></span></span>
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
|
||||
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
|
||||
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text> <span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
|
||||
<xsl:for-each select="./mod:mod-version">
|
||||
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
|
||||
<div class="mod-about-padding">
|
||||
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
|
||||
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
|
||||
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
</div>
|
||||
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
|
||||
<xsl:with-param name="string-in" select="string($authorurl)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
|
||||
</xsl:otherwise>
|
||||
|
||||
</xsl:choose>
|
||||
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
|
||||
<option value="mssql">MSSQL</option>
|
||||
<option value="oracle">Oracle</option>
|
||||
<option value="postgres">Postgres</option>
|
||||
<option value="sqllite">SQLLite</option>
|
||||
<option value="sqlite">SQLite</option>
|
||||
</select>
|
||||
</fieldset>
|
||||
</form>
|
||||
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
|
||||
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
</xsl:stylesheet>
|
||||
|
||||
434
root/adm/style/portal/acp_portal.js
Normal file
434
root/adm/style/portal/acp_portal.js
Normal file
@@ -0,0 +1,434 @@
|
||||
/**
|
||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||
* Includes unixsafe colour palette selector by SHS`
|
||||
* stripped parts that are useless for the portal
|
||||
*/
|
||||
|
||||
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
||||
var show_panel = 'options-panel';
|
||||
|
||||
/**
|
||||
* Shows the help messages in the helpline window
|
||||
*/
|
||||
function helpline(help)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix a bug involving the TextRange object. From
|
||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
||||
*/
|
||||
function initInsertions()
|
||||
{
|
||||
var doc;
|
||||
|
||||
if (document.forms[form_name])
|
||||
{
|
||||
doc = document;
|
||||
}
|
||||
else
|
||||
{
|
||||
doc = opener.document;
|
||||
}
|
||||
|
||||
var textarea = doc.getElementById(text_name);
|
||||
|
||||
if (is_ie && typeof(baseHeight) != 'number')
|
||||
{
|
||||
textarea.focus();
|
||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* bbstyle
|
||||
*/
|
||||
function bbstyle(bbnumber)
|
||||
{
|
||||
if (bbnumber != -1)
|
||||
{
|
||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
insert_text('[*]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply bbcodes
|
||||
*/
|
||||
function bbfontstyle(bbopen, bbclose)
|
||||
{
|
||||
theSelection = false;
|
||||
|
||||
var textarea = document.getElementById(text_name);
|
||||
|
||||
textarea.focus();
|
||||
|
||||
if ((clientVer >= 4) && is_ie && is_win)
|
||||
{
|
||||
// Get text selection
|
||||
theSelection = document.selection.createRange().text;
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
// Add tags around selection
|
||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
||||
{
|
||||
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
|
||||
//The new position for the cursor after adding the bbcode
|
||||
var caret_pos = getCaretPosition(textarea).start;
|
||||
var new_pos = caret_pos + bbopen.length;
|
||||
|
||||
// Open tag
|
||||
insert_text(bbopen + bbclose);
|
||||
|
||||
// Center the cursor when we don't have a selection
|
||||
// Gecko and proper browsers
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
textarea.selectionStart = new_pos;
|
||||
textarea.selectionEnd = new_pos;
|
||||
}
|
||||
// IE
|
||||
else if (document.selection)
|
||||
{
|
||||
var range = textarea.createTextRange();
|
||||
range.move("character", new_pos);
|
||||
range.select();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
textarea.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert text at position
|
||||
*/
|
||||
function insert_text(text, spaces, popup)
|
||||
{
|
||||
var textarea;
|
||||
|
||||
if (!popup)
|
||||
{
|
||||
textarea = document.getElementById(text_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea = opener.document.getElementById(text_name);
|
||||
}
|
||||
if (spaces)
|
||||
{
|
||||
text = ' ' + text + ' ';
|
||||
}
|
||||
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
var sel_start = textarea.selectionStart;
|
||||
var sel_end = textarea.selectionEnd;
|
||||
|
||||
mozWrap(textarea, text, '')
|
||||
textarea.selectionStart = sel_start + text.length;
|
||||
textarea.selectionEnd = sel_end + text.length;
|
||||
}
|
||||
else if (textarea.createTextRange && textarea.caretPos)
|
||||
{
|
||||
if (baseHeight != textarea.caretPos.boundingHeight)
|
||||
{
|
||||
textarea.focus();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
var caret_pos = textarea.caretPos;
|
||||
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea.value = textarea.value + text;
|
||||
}
|
||||
if (!popup)
|
||||
{
|
||||
textarea.focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add inline attachment at position
|
||||
*/
|
||||
function attach_inline(index, filename)
|
||||
{
|
||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add quote text to message
|
||||
*/
|
||||
function addquote(post_id, username)
|
||||
{
|
||||
var message_name = 'message_' + post_id;
|
||||
var theSelection = '';
|
||||
var divarea = false;
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
divarea = document.all[message_name];
|
||||
}
|
||||
else
|
||||
{
|
||||
divarea = document.getElementById(message_name);
|
||||
}
|
||||
|
||||
// Get text selection - not only the post content :(
|
||||
if (window.getSelection)
|
||||
{
|
||||
theSelection = window.getSelection().toString();
|
||||
}
|
||||
else if (document.getSelection)
|
||||
{
|
||||
theSelection = document.getSelection();
|
||||
}
|
||||
else if (document.selection)
|
||||
{
|
||||
theSelection = document.selection.createRange().text;
|
||||
}
|
||||
|
||||
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
|
||||
{
|
||||
if (divarea.innerHTML)
|
||||
{
|
||||
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<br\/>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<\;/ig, '<');
|
||||
theSelection = theSelection.replace(/>\;/ig, '>');
|
||||
theSelection = theSelection.replace(/&\;/ig, '&');
|
||||
theSelection = theSelection.replace(/ \;/ig, ' ');
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
theSelection = divarea.innerText;
|
||||
}
|
||||
else if (divarea.textContent)
|
||||
{
|
||||
theSelection = divarea.textContent;
|
||||
}
|
||||
else if (divarea.firstChild.nodeValue)
|
||||
{
|
||||
theSelection = divarea.firstChild.nodeValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
if (bbcodeEnabled)
|
||||
{
|
||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
||||
}
|
||||
else
|
||||
{
|
||||
var lines = split_lines(theSelection);
|
||||
for (i = 0; i < lines.length; i++)
|
||||
{
|
||||
insert_text('> ' + lines[i] + '\n')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function split_lines(text)
|
||||
{
|
||||
var lines = text.split('\n');
|
||||
var splitLines = new Array();
|
||||
var j = 0;
|
||||
for(i = 0; i < lines.length; i++)
|
||||
{
|
||||
if (lines[i].length <= 80)
|
||||
{
|
||||
splitLines[j] = lines[i];
|
||||
j++;
|
||||
}
|
||||
else
|
||||
{
|
||||
var line = lines[i];
|
||||
do
|
||||
{
|
||||
var splitAt = line.indexOf(' ', 80);
|
||||
|
||||
if (splitAt == -1)
|
||||
{
|
||||
splitLines[j] = line;
|
||||
j++
|
||||
}
|
||||
else
|
||||
{
|
||||
splitLines[j] = line.substring(0, splitAt);
|
||||
line = line.substring(splitAt);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
while(splitAt != -1)
|
||||
}
|
||||
}
|
||||
return splitLines;
|
||||
}
|
||||
/**
|
||||
* From http://www.massless.org/mozedit/
|
||||
*/
|
||||
function mozWrap(txtarea, open, close)
|
||||
{
|
||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
|
||||
var selStart = txtarea.selectionStart;
|
||||
var selEnd = txtarea.selectionEnd;
|
||||
var scrollTop = txtarea.scrollTop;
|
||||
|
||||
if (selEnd == 1 || selEnd == 2)
|
||||
{
|
||||
selEnd = selLength;
|
||||
}
|
||||
|
||||
var s1 = (txtarea.value).substring(0,selStart);
|
||||
var s2 = (txtarea.value).substring(selStart, selEnd)
|
||||
var s3 = (txtarea.value).substring(selEnd, selLength);
|
||||
|
||||
txtarea.value = s1 + open + s2 + close + s3;
|
||||
txtarea.selectionStart = selStart + open.length;
|
||||
txtarea.selectionEnd = selEnd + open.length;
|
||||
txtarea.focus();
|
||||
txtarea.scrollTop = scrollTop;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert at Caret position. Code from
|
||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
||||
*/
|
||||
function storeCaret(textEl)
|
||||
{
|
||||
if (textEl.createTextRange)
|
||||
{
|
||||
textEl.caretPos = document.selection.createRange().duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Color pallette
|
||||
*/
|
||||
function colorPalette(dir, width, height)
|
||||
{
|
||||
var r = 0, g = 0, b = 0;
|
||||
var numberList = new Array(6);
|
||||
var color = '';
|
||||
|
||||
numberList[0] = '00';
|
||||
numberList[1] = '40';
|
||||
numberList[2] = '80';
|
||||
numberList[3] = 'BF';
|
||||
numberList[4] = 'FF';
|
||||
|
||||
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
|
||||
|
||||
for (r = 0; r < 5; r++)
|
||||
{
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (g = 0; g < 5; g++)
|
||||
{
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (b = 0; b < 5; b++)
|
||||
{
|
||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
||||
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
||||
document.writeln('</td>');
|
||||
}
|
||||
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
document.writeln('</table>');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Caret Position object
|
||||
*/
|
||||
function caretPosition()
|
||||
{
|
||||
var start = null;
|
||||
var end = null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the caret position in an textarea
|
||||
*/
|
||||
function getCaretPosition(txtarea)
|
||||
{
|
||||
var caretPos = new caretPosition();
|
||||
|
||||
// simple Gecko/Opera way
|
||||
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
||||
{
|
||||
caretPos.start = txtarea.selectionStart;
|
||||
caretPos.end = txtarea.selectionEnd;
|
||||
}
|
||||
// dirty and slow IE way
|
||||
else if(document.selection)
|
||||
{
|
||||
|
||||
// get current selection
|
||||
var range = document.selection.createRange();
|
||||
|
||||
// a new selection of the whole textarea
|
||||
var range_all = document.body.createTextRange();
|
||||
range_all.moveToElementText(txtarea);
|
||||
|
||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
||||
var sel_start;
|
||||
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
|
||||
{
|
||||
range_all.moveStart('character', 1);
|
||||
}
|
||||
|
||||
txtarea.sel_start = sel_start;
|
||||
|
||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
||||
caretPos.start = txtarea.sel_start;
|
||||
caretPos.end = txtarea.sel_start;
|
||||
}
|
||||
|
||||
return caretPos;
|
||||
}
|
||||
@@ -102,6 +102,7 @@
|
||||
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -117,6 +118,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -63,6 +64,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
|
||||
@@ -1,5 +1,61 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
/**
|
||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||
* Includes unixsafe colour palette selector by SHS`
|
||||
*/
|
||||
|
||||
// Startup variables
|
||||
var imageTag = false;
|
||||
var theSelection = false;
|
||||
|
||||
var bbcodeEnabled = true;
|
||||
// Check for Browser & Platform for PC & IE specific bits
|
||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||
|
||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||
var baseHeight;
|
||||
|
||||
var form_name = 'acp_portal_welcome';
|
||||
var text_name = 'custom_code';
|
||||
var load_draft = false;
|
||||
var upload = false;
|
||||
|
||||
// Define the bbCode tags
|
||||
var bbcode = new Array();
|
||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||
var imageTag = false;
|
||||
|
||||
// Helpline messages
|
||||
var help_line = {
|
||||
b: '{LA_BBCODE_B_HELP}',
|
||||
i: '{LA_BBCODE_I_HELP}',
|
||||
u: '{LA_BBCODE_U_HELP}',
|
||||
q: '{LA_BBCODE_Q_HELP}',
|
||||
c: '{LA_BBCODE_C_HELP}',
|
||||
l: '{LA_BBCODE_L_HELP}',
|
||||
o: '{LA_BBCODE_O_HELP}',
|
||||
p: '{LA_BBCODE_P_HELP}',
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
a: '{LA_BBCODE_A_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
e: '{LA_BBCODE_E_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
<a name="maincontent"></a>
|
||||
|
||||
<h1>{L_TITLE}</h1>
|
||||
@@ -20,6 +76,7 @@
|
||||
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -35,6 +92,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
@@ -74,488 +132,6 @@
|
||||
<legend>{L_PORTAL_CUSTOM}</legend>
|
||||
<dl id="bbcode-buttons"<!-- IF not CUSTOM_USE_BBCODE --> style="display: none;"<!-- ENDIF -->>
|
||||
<dd>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
/**
|
||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||
* Includes unixsafe colour palette selector by SHS`
|
||||
*/
|
||||
|
||||
// Startup variables
|
||||
var imageTag = false;
|
||||
var theSelection = false;
|
||||
|
||||
var bbcodeEnabled = true;
|
||||
// Check for Browser & Platform for PC & IE specific bits
|
||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||
|
||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||
var baseHeight;
|
||||
|
||||
var form_name = 'acp_portal_welcome';
|
||||
var text_name = 'custom_code';
|
||||
var load_draft = false;
|
||||
var upload = false;
|
||||
|
||||
// Define the bbCode tags
|
||||
var bbcode = new Array();
|
||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||
var imageTag = false;
|
||||
|
||||
// Helpline messages
|
||||
var help_line = {
|
||||
b: '{LA_BBCODE_B_HELP}',
|
||||
i: '{LA_BBCODE_I_HELP}',
|
||||
u: '{LA_BBCODE_U_HELP}',
|
||||
q: '{LA_BBCODE_Q_HELP}',
|
||||
c: '{LA_BBCODE_C_HELP}',
|
||||
l: '{LA_BBCODE_L_HELP}',
|
||||
o: '{LA_BBCODE_O_HELP}',
|
||||
p: '{LA_BBCODE_P_HELP}',
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
a: '{LA_BBCODE_A_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
e: '{LA_BBCODE_E_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
||||
var show_panel = 'options-panel';
|
||||
|
||||
/**
|
||||
* Shows the help messages in the helpline window
|
||||
*/
|
||||
function helpline(help)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix a bug involving the TextRange object. From
|
||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
||||
*/
|
||||
function initInsertions()
|
||||
{
|
||||
var doc;
|
||||
|
||||
if (document.forms[form_name])
|
||||
{
|
||||
doc = document;
|
||||
}
|
||||
else
|
||||
{
|
||||
doc = opener.document;
|
||||
}
|
||||
|
||||
var textarea = doc.getElementById(text_name);
|
||||
|
||||
if (is_ie && typeof(baseHeight) != 'number')
|
||||
{
|
||||
textarea.focus();
|
||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* bbstyle
|
||||
*/
|
||||
function bbstyle(bbnumber)
|
||||
{
|
||||
if (bbnumber != -1)
|
||||
{
|
||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
insert_text('[*]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply bbcodes
|
||||
*/
|
||||
function bbfontstyle(bbopen, bbclose)
|
||||
{
|
||||
theSelection = false;
|
||||
|
||||
var textarea = document.getElementById(text_name);
|
||||
|
||||
textarea.focus();
|
||||
|
||||
if ((clientVer >= 4) && is_ie && is_win)
|
||||
{
|
||||
// Get text selection
|
||||
theSelection = document.selection.createRange().text;
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
// Add tags around selection
|
||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
||||
{
|
||||
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
|
||||
//The new position for the cursor after adding the bbcode
|
||||
var caret_pos = getCaretPosition(textarea).start;
|
||||
var new_pos = caret_pos + bbopen.length;
|
||||
|
||||
// Open tag
|
||||
insert_text(bbopen + bbclose);
|
||||
|
||||
// Center the cursor when we don't have a selection
|
||||
// Gecko and proper browsers
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
textarea.selectionStart = new_pos;
|
||||
textarea.selectionEnd = new_pos;
|
||||
}
|
||||
// IE
|
||||
else if (document.selection)
|
||||
{
|
||||
var range = textarea.createTextRange();
|
||||
range.move("character", new_pos);
|
||||
range.select();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
textarea.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert text at position
|
||||
*/
|
||||
function insert_text(text, spaces, popup)
|
||||
{
|
||||
var textarea;
|
||||
|
||||
if (!popup)
|
||||
{
|
||||
textarea = document.getElementById(text_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea = opener.document.getElementById(text_name);
|
||||
}
|
||||
if (spaces)
|
||||
{
|
||||
text = ' ' + text + ' ';
|
||||
}
|
||||
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
var sel_start = textarea.selectionStart;
|
||||
var sel_end = textarea.selectionEnd;
|
||||
|
||||
mozWrap(textarea, text, '')
|
||||
textarea.selectionStart = sel_start + text.length;
|
||||
textarea.selectionEnd = sel_end + text.length;
|
||||
}
|
||||
else if (textarea.createTextRange && textarea.caretPos)
|
||||
{
|
||||
if (baseHeight != textarea.caretPos.boundingHeight)
|
||||
{
|
||||
textarea.focus();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
var caret_pos = textarea.caretPos;
|
||||
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea.value = textarea.value + text;
|
||||
}
|
||||
if (!popup)
|
||||
{
|
||||
textarea.focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add inline attachment at position
|
||||
*/
|
||||
function attach_inline(index, filename)
|
||||
{
|
||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add quote text to message
|
||||
*/
|
||||
function addquote(post_id, username)
|
||||
{
|
||||
var message_name = 'message_' + post_id;
|
||||
var theSelection = '';
|
||||
var divarea = false;
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
divarea = document.all[message_name];
|
||||
}
|
||||
else
|
||||
{
|
||||
divarea = document.getElementById(message_name);
|
||||
}
|
||||
|
||||
// Get text selection - not only the post content :(
|
||||
if (window.getSelection)
|
||||
{
|
||||
theSelection = window.getSelection().toString();
|
||||
}
|
||||
else if (document.getSelection)
|
||||
{
|
||||
theSelection = document.getSelection();
|
||||
}
|
||||
else if (document.selection)
|
||||
{
|
||||
theSelection = document.selection.createRange().text;
|
||||
}
|
||||
|
||||
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
|
||||
{
|
||||
if (divarea.innerHTML)
|
||||
{
|
||||
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<br\/>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<\;/ig, '<');
|
||||
theSelection = theSelection.replace(/>\;/ig, '>');
|
||||
theSelection = theSelection.replace(/&\;/ig, '&');
|
||||
theSelection = theSelection.replace(/ \;/ig, ' ');
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
theSelection = divarea.innerText;
|
||||
}
|
||||
else if (divarea.textContent)
|
||||
{
|
||||
theSelection = divarea.textContent;
|
||||
}
|
||||
else if (divarea.firstChild.nodeValue)
|
||||
{
|
||||
theSelection = divarea.firstChild.nodeValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
if (bbcodeEnabled)
|
||||
{
|
||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
||||
}
|
||||
else
|
||||
{
|
||||
var lines = split_lines(theSelection);
|
||||
for (i = 0; i < lines.length; i++)
|
||||
{
|
||||
insert_text('> ' + lines[i] + '\n')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function split_lines(text)
|
||||
{
|
||||
var lines = text.split('\n');
|
||||
var splitLines = new Array();
|
||||
var j = 0;
|
||||
for(i = 0; i < lines.length; i++)
|
||||
{
|
||||
if (lines[i].length <= 80)
|
||||
{
|
||||
splitLines[j] = lines[i];
|
||||
j++;
|
||||
}
|
||||
else
|
||||
{
|
||||
var line = lines[i];
|
||||
do
|
||||
{
|
||||
var splitAt = line.indexOf(' ', 80);
|
||||
|
||||
if (splitAt == -1)
|
||||
{
|
||||
splitLines[j] = line;
|
||||
j++
|
||||
}
|
||||
else
|
||||
{
|
||||
splitLines[j] = line.substring(0, splitAt);
|
||||
line = line.substring(splitAt);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
while(splitAt != -1)
|
||||
}
|
||||
}
|
||||
return splitLines;
|
||||
}
|
||||
/**
|
||||
* From http://www.massless.org/mozedit/
|
||||
*/
|
||||
function mozWrap(txtarea, open, close)
|
||||
{
|
||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
|
||||
var selStart = txtarea.selectionStart;
|
||||
var selEnd = txtarea.selectionEnd;
|
||||
var scrollTop = txtarea.scrollTop;
|
||||
|
||||
if (selEnd == 1 || selEnd == 2)
|
||||
{
|
||||
selEnd = selLength;
|
||||
}
|
||||
|
||||
var s1 = (txtarea.value).substring(0,selStart);
|
||||
var s2 = (txtarea.value).substring(selStart, selEnd)
|
||||
var s3 = (txtarea.value).substring(selEnd, selLength);
|
||||
|
||||
txtarea.value = s1 + open + s2 + close + s3;
|
||||
txtarea.selectionStart = selStart + open.length;
|
||||
txtarea.selectionEnd = selEnd + open.length;
|
||||
txtarea.focus();
|
||||
txtarea.scrollTop = scrollTop;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert at Caret position. Code from
|
||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
||||
*/
|
||||
function storeCaret(textEl)
|
||||
{
|
||||
if (textEl.createTextRange)
|
||||
{
|
||||
textEl.caretPos = document.selection.createRange().duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Color pallette
|
||||
*/
|
||||
function colorPalette(dir, width, height)
|
||||
{
|
||||
var r = 0, g = 0, b = 0;
|
||||
var numberList = new Array(6);
|
||||
var color = '';
|
||||
|
||||
numberList[0] = '00';
|
||||
numberList[1] = '40';
|
||||
numberList[2] = '80';
|
||||
numberList[3] = 'BF';
|
||||
numberList[4] = 'FF';
|
||||
|
||||
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
|
||||
|
||||
for (r = 0; r < 5; r++)
|
||||
{
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (g = 0; g < 5; g++)
|
||||
{
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (b = 0; b < 5; b++)
|
||||
{
|
||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
||||
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
||||
document.writeln('</td>');
|
||||
}
|
||||
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
document.writeln('</table>');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Caret Position object
|
||||
*/
|
||||
function caretPosition()
|
||||
{
|
||||
var start = null;
|
||||
var end = null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the caret position in an textarea
|
||||
*/
|
||||
function getCaretPosition(txtarea)
|
||||
{
|
||||
var caretPos = new caretPosition();
|
||||
|
||||
// simple Gecko/Opera way
|
||||
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
||||
{
|
||||
caretPos.start = txtarea.selectionStart;
|
||||
caretPos.end = txtarea.selectionEnd;
|
||||
}
|
||||
// dirty and slow IE way
|
||||
else if(document.selection)
|
||||
{
|
||||
|
||||
// get current selection
|
||||
var range = document.selection.createRange();
|
||||
|
||||
// a new selection of the whole textarea
|
||||
var range_all = document.body.createTextRange();
|
||||
range_all.moveToElementText(txtarea);
|
||||
|
||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
||||
var sel_start;
|
||||
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
|
||||
{
|
||||
range_all.moveStart('character', 1);
|
||||
}
|
||||
|
||||
txtarea.sel_start = sel_start;
|
||||
|
||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
||||
caretPos.start = txtarea.sel_start;
|
||||
caretPos.end = txtarea.sel_start;
|
||||
}
|
||||
|
||||
return caretPos;
|
||||
}
|
||||
// ]]>
|
||||
</script>
|
||||
<div id="colour_palette" style="display: none;">
|
||||
<dl style="clear: left;">
|
||||
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
||||
@@ -575,7 +151,7 @@
|
||||
{
|
||||
dE('colour_palette', 1);
|
||||
}
|
||||
|
||||
|
||||
if (e.style.display == 'block')
|
||||
{
|
||||
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -86,6 +87,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -93,6 +94,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
|
||||
@@ -68,9 +68,9 @@
|
||||
{modules_left.MODULE_IMAGE} {modules_left.MODULE_NAME}<br />
|
||||
<br />
|
||||
<!-- IF modules_left.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{modules_left.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->
|
||||
<!-- IF modules_left.U_MOVE_RIGHT --><a href="{modules_left.U_MOVE_RIGHT}">{ICON_MOVE_RIGHT}</a><!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->
|
||||
<!-- IF modules_left.U_MOVE_RIGHT --><a href="{modules_left.U_MOVE_RIGHT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT}<!-- ELSE -->{ICON_MOVE_RIGHT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF --><!-- ENDIF -->
|
||||
<a href="{modules_left.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_left.U_DELETE}">{ICON_DELETE}</a><br />
|
||||
{ICON_MOVE_LEFT_DISABLED}
|
||||
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->
|
||||
<!-- IF modules_left.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{modules_left.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
|
||||
</td>
|
||||
</tr>
|
||||
@@ -122,9 +122,9 @@
|
||||
{modules_right.MODULE_IMAGE} {modules_right.MODULE_NAME}<br />
|
||||
<br />
|
||||
<!-- IF modules_right.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{modules_right.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->
|
||||
{ICON_MOVE_RIGHT_DISABLED}
|
||||
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->
|
||||
<a href="{modules_right.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_right.U_DELETE}">{ICON_DELETE}</a><br />
|
||||
<!-- IF modules_right.U_MOVE_LEFT --><a href="{modules_right.U_MOVE_LEFT}">{ICON_MOVE_LEFT}</a><!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->
|
||||
<!-- IF modules_right.U_MOVE_LEFT --><a href="{modules_right.U_MOVE_LEFT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT}<!-- ELSE -->{ICON_MOVE_LEFT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF --><!-- ENDIF -->
|
||||
<!-- IF modules_right.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{modules_right.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,5 +1,61 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
/**
|
||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||
* Includes unixsafe colour palette selector by SHS`
|
||||
*/
|
||||
|
||||
// Startup variables
|
||||
var imageTag = false;
|
||||
var theSelection = false;
|
||||
|
||||
var bbcodeEnabled = true;
|
||||
// Check for Browser & Platform for PC & IE specific bits
|
||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||
|
||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||
var baseHeight;
|
||||
|
||||
var form_name = 'acp_portal_welcome';
|
||||
var text_name = 'welcome_message';
|
||||
var load_draft = false;
|
||||
var upload = false;
|
||||
|
||||
// Define the bbCode tags
|
||||
var bbcode = new Array();
|
||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||
var imageTag = false;
|
||||
|
||||
// Helpline messages
|
||||
var help_line = {
|
||||
b: '{LA_BBCODE_B_HELP}',
|
||||
i: '{LA_BBCODE_I_HELP}',
|
||||
u: '{LA_BBCODE_U_HELP}',
|
||||
q: '{LA_BBCODE_Q_HELP}',
|
||||
c: '{LA_BBCODE_C_HELP}',
|
||||
l: '{LA_BBCODE_L_HELP}',
|
||||
o: '{LA_BBCODE_O_HELP}',
|
||||
p: '{LA_BBCODE_P_HELP}',
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
a: '{LA_BBCODE_A_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
e: '{LA_BBCODE_E_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
<a name="maincontent"></a>
|
||||
|
||||
<h1>{L_TITLE}</h1>
|
||||
@@ -20,6 +76,7 @@
|
||||
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
|
||||
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
|
||||
</dl>
|
||||
<!-- IF MODULE_SHOW_IMAGE -->
|
||||
<dl>
|
||||
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
|
||||
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
|
||||
@@ -35,6 +92,7 @@
|
||||
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
|
||||
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
|
||||
@@ -74,488 +132,6 @@
|
||||
<legend>{L_PORTAL_WELCOME}</legend>
|
||||
<dl>
|
||||
<dd>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
/**
|
||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||
* Includes unixsafe colour palette selector by SHS`
|
||||
*/
|
||||
|
||||
// Startup variables
|
||||
var imageTag = false;
|
||||
var theSelection = false;
|
||||
|
||||
var bbcodeEnabled = true;
|
||||
// Check for Browser & Platform for PC & IE specific bits
|
||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||
|
||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||
var baseHeight;
|
||||
|
||||
var form_name = 'acp_portal_welcome';
|
||||
var text_name = 'welcome_message';
|
||||
var load_draft = false;
|
||||
var upload = false;
|
||||
|
||||
// Define the bbCode tags
|
||||
var bbcode = new Array();
|
||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||
var imageTag = false;
|
||||
|
||||
// Helpline messages
|
||||
var help_line = {
|
||||
b: '{LA_BBCODE_B_HELP}',
|
||||
i: '{LA_BBCODE_I_HELP}',
|
||||
u: '{LA_BBCODE_U_HELP}',
|
||||
q: '{LA_BBCODE_Q_HELP}',
|
||||
c: '{LA_BBCODE_C_HELP}',
|
||||
l: '{LA_BBCODE_L_HELP}',
|
||||
o: '{LA_BBCODE_O_HELP}',
|
||||
p: '{LA_BBCODE_P_HELP}',
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
a: '{LA_BBCODE_A_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
e: '{LA_BBCODE_E_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
||||
var show_panel = 'options-panel';
|
||||
|
||||
/**
|
||||
* Shows the help messages in the helpline window
|
||||
*/
|
||||
function helpline(help)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fix a bug involving the TextRange object. From
|
||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
||||
*/
|
||||
function initInsertions()
|
||||
{
|
||||
var doc;
|
||||
|
||||
if (document.forms[form_name])
|
||||
{
|
||||
doc = document;
|
||||
}
|
||||
else
|
||||
{
|
||||
doc = opener.document;
|
||||
}
|
||||
|
||||
var textarea = doc.getElementById(text_name);
|
||||
|
||||
if (is_ie && typeof(baseHeight) != 'number')
|
||||
{
|
||||
textarea.focus();
|
||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* bbstyle
|
||||
*/
|
||||
function bbstyle(bbnumber)
|
||||
{
|
||||
if (bbnumber != -1)
|
||||
{
|
||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
insert_text('[*]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply bbcodes
|
||||
*/
|
||||
function bbfontstyle(bbopen, bbclose)
|
||||
{
|
||||
theSelection = false;
|
||||
|
||||
var textarea = document.getElementById(text_name);
|
||||
|
||||
textarea.focus();
|
||||
|
||||
if ((clientVer >= 4) && is_ie && is_win)
|
||||
{
|
||||
// Get text selection
|
||||
theSelection = document.selection.createRange().text;
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
// Add tags around selection
|
||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
||||
{
|
||||
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
||||
document.getElementById(text_name).focus();
|
||||
theSelection = '';
|
||||
return;
|
||||
}
|
||||
|
||||
//The new position for the cursor after adding the bbcode
|
||||
var caret_pos = getCaretPosition(textarea).start;
|
||||
var new_pos = caret_pos + bbopen.length;
|
||||
|
||||
// Open tag
|
||||
insert_text(bbopen + bbclose);
|
||||
|
||||
// Center the cursor when we don't have a selection
|
||||
// Gecko and proper browsers
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
textarea.selectionStart = new_pos;
|
||||
textarea.selectionEnd = new_pos;
|
||||
}
|
||||
// IE
|
||||
else if (document.selection)
|
||||
{
|
||||
var range = textarea.createTextRange();
|
||||
range.move("character", new_pos);
|
||||
range.select();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
textarea.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert text at position
|
||||
*/
|
||||
function insert_text(text, spaces, popup)
|
||||
{
|
||||
var textarea;
|
||||
|
||||
if (!popup)
|
||||
{
|
||||
textarea = document.getElementById(text_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea = opener.document.getElementById(text_name);
|
||||
}
|
||||
if (spaces)
|
||||
{
|
||||
text = ' ' + text + ' ';
|
||||
}
|
||||
|
||||
if (!isNaN(textarea.selectionStart))
|
||||
{
|
||||
var sel_start = textarea.selectionStart;
|
||||
var sel_end = textarea.selectionEnd;
|
||||
|
||||
mozWrap(textarea, text, '')
|
||||
textarea.selectionStart = sel_start + text.length;
|
||||
textarea.selectionEnd = sel_end + text.length;
|
||||
}
|
||||
else if (textarea.createTextRange && textarea.caretPos)
|
||||
{
|
||||
if (baseHeight != textarea.caretPos.boundingHeight)
|
||||
{
|
||||
textarea.focus();
|
||||
storeCaret(textarea);
|
||||
}
|
||||
|
||||
var caret_pos = textarea.caretPos;
|
||||
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
|
||||
}
|
||||
else
|
||||
{
|
||||
textarea.value = textarea.value + text;
|
||||
}
|
||||
if (!popup)
|
||||
{
|
||||
textarea.focus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add inline attachment at position
|
||||
*/
|
||||
function attach_inline(index, filename)
|
||||
{
|
||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
||||
document.getElementById(text_name).focus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add quote text to message
|
||||
*/
|
||||
function addquote(post_id, username)
|
||||
{
|
||||
var message_name = 'message_' + post_id;
|
||||
var theSelection = '';
|
||||
var divarea = false;
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
divarea = document.all[message_name];
|
||||
}
|
||||
else
|
||||
{
|
||||
divarea = document.getElementById(message_name);
|
||||
}
|
||||
|
||||
// Get text selection - not only the post content :(
|
||||
if (window.getSelection)
|
||||
{
|
||||
theSelection = window.getSelection().toString();
|
||||
}
|
||||
else if (document.getSelection)
|
||||
{
|
||||
theSelection = document.getSelection();
|
||||
}
|
||||
else if (document.selection)
|
||||
{
|
||||
theSelection = document.selection.createRange().text;
|
||||
}
|
||||
|
||||
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
|
||||
{
|
||||
if (divarea.innerHTML)
|
||||
{
|
||||
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<br\/>/ig, '\n');
|
||||
theSelection = theSelection.replace(/<\;/ig, '<');
|
||||
theSelection = theSelection.replace(/>\;/ig, '>');
|
||||
theSelection = theSelection.replace(/&\;/ig, '&');
|
||||
theSelection = theSelection.replace(/ \;/ig, ' ');
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
theSelection = divarea.innerText;
|
||||
}
|
||||
else if (divarea.textContent)
|
||||
{
|
||||
theSelection = divarea.textContent;
|
||||
}
|
||||
else if (divarea.firstChild.nodeValue)
|
||||
{
|
||||
theSelection = divarea.firstChild.nodeValue;
|
||||
}
|
||||
}
|
||||
|
||||
if (theSelection)
|
||||
{
|
||||
if (bbcodeEnabled)
|
||||
{
|
||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
||||
}
|
||||
else
|
||||
{
|
||||
var lines = split_lines(theSelection);
|
||||
for (i = 0; i < lines.length; i++)
|
||||
{
|
||||
insert_text('> ' + lines[i] + '\n')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function split_lines(text)
|
||||
{
|
||||
var lines = text.split('\n');
|
||||
var splitLines = new Array();
|
||||
var j = 0;
|
||||
for(i = 0; i < lines.length; i++)
|
||||
{
|
||||
if (lines[i].length <= 80)
|
||||
{
|
||||
splitLines[j] = lines[i];
|
||||
j++;
|
||||
}
|
||||
else
|
||||
{
|
||||
var line = lines[i];
|
||||
do
|
||||
{
|
||||
var splitAt = line.indexOf(' ', 80);
|
||||
|
||||
if (splitAt == -1)
|
||||
{
|
||||
splitLines[j] = line;
|
||||
j++
|
||||
}
|
||||
else
|
||||
{
|
||||
splitLines[j] = line.substring(0, splitAt);
|
||||
line = line.substring(splitAt);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
while(splitAt != -1)
|
||||
}
|
||||
}
|
||||
return splitLines;
|
||||
}
|
||||
/**
|
||||
* From http://www.massless.org/mozedit/
|
||||
*/
|
||||
function mozWrap(txtarea, open, close)
|
||||
{
|
||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
|
||||
var selStart = txtarea.selectionStart;
|
||||
var selEnd = txtarea.selectionEnd;
|
||||
var scrollTop = txtarea.scrollTop;
|
||||
|
||||
if (selEnd == 1 || selEnd == 2)
|
||||
{
|
||||
selEnd = selLength;
|
||||
}
|
||||
|
||||
var s1 = (txtarea.value).substring(0,selStart);
|
||||
var s2 = (txtarea.value).substring(selStart, selEnd)
|
||||
var s3 = (txtarea.value).substring(selEnd, selLength);
|
||||
|
||||
txtarea.value = s1 + open + s2 + close + s3;
|
||||
txtarea.selectionStart = selStart + open.length;
|
||||
txtarea.selectionEnd = selEnd + open.length;
|
||||
txtarea.focus();
|
||||
txtarea.scrollTop = scrollTop;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert at Caret position. Code from
|
||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
||||
*/
|
||||
function storeCaret(textEl)
|
||||
{
|
||||
if (textEl.createTextRange)
|
||||
{
|
||||
textEl.caretPos = document.selection.createRange().duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Color pallette
|
||||
*/
|
||||
function colorPalette(dir, width, height)
|
||||
{
|
||||
var r = 0, g = 0, b = 0;
|
||||
var numberList = new Array(6);
|
||||
var color = '';
|
||||
|
||||
numberList[0] = '00';
|
||||
numberList[1] = '40';
|
||||
numberList[2] = '80';
|
||||
numberList[3] = 'BF';
|
||||
numberList[4] = 'FF';
|
||||
|
||||
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
|
||||
|
||||
for (r = 0; r < 5; r++)
|
||||
{
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (g = 0; g < 5; g++)
|
||||
{
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('<tr>');
|
||||
}
|
||||
|
||||
for (b = 0; b < 5; b++)
|
||||
{
|
||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
||||
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
||||
document.writeln('</td>');
|
||||
}
|
||||
|
||||
if (dir == 'v')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
|
||||
if (dir == 'h')
|
||||
{
|
||||
document.writeln('</tr>');
|
||||
}
|
||||
}
|
||||
document.writeln('</table>');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Caret Position object
|
||||
*/
|
||||
function caretPosition()
|
||||
{
|
||||
var start = null;
|
||||
var end = null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the caret position in an textarea
|
||||
*/
|
||||
function getCaretPosition(txtarea)
|
||||
{
|
||||
var caretPos = new caretPosition();
|
||||
|
||||
// simple Gecko/Opera way
|
||||
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
||||
{
|
||||
caretPos.start = txtarea.selectionStart;
|
||||
caretPos.end = txtarea.selectionEnd;
|
||||
}
|
||||
// dirty and slow IE way
|
||||
else if(document.selection)
|
||||
{
|
||||
|
||||
// get current selection
|
||||
var range = document.selection.createRange();
|
||||
|
||||
// a new selection of the whole textarea
|
||||
var range_all = document.body.createTextRange();
|
||||
range_all.moveToElementText(txtarea);
|
||||
|
||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
||||
var sel_start;
|
||||
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
|
||||
{
|
||||
range_all.moveStart('character', 1);
|
||||
}
|
||||
|
||||
txtarea.sel_start = sel_start;
|
||||
|
||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
||||
caretPos.start = txtarea.sel_start;
|
||||
caretPos.end = txtarea.sel_start;
|
||||
}
|
||||
|
||||
return caretPos;
|
||||
}
|
||||
// ]]>
|
||||
</script>
|
||||
<div id="colour_palette" style="display: none;">
|
||||
<dl style="clear: left;">
|
||||
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
||||
@@ -575,7 +151,7 @@
|
||||
{
|
||||
dE('colour_palette', 1);
|
||||
}
|
||||
|
||||
|
||||
if (e.style.display == 'block')
|
||||
{
|
||||
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,7 +22,7 @@ class acp_portal_info
|
||||
return array(
|
||||
'filename' => 'acp_portal',
|
||||
'title' => 'ACP_PORTAL',
|
||||
'version' => '2.0.0-a1',
|
||||
'version' => '2.0.0b2',
|
||||
'modes' => array(
|
||||
'config' => array('title' => 'ACP_PORTAL_GENERAL_INFO', 'auth' => 'acl_a_manage_portal', 'cat' => array('ACP_PORTAL')),
|
||||
'modules' => array('title' => 'ACP_PORTAL_MODULES', 'auth' => 'acl_a_manage_portal', 'cat' => array('ACP_PORTAL')),
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* @package trim_message
|
||||
* @copyright 2011
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
* @version 1.0
|
||||
* @version 1.1
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -24,6 +24,14 @@ if (!defined('IN_PHPBB'))
|
||||
*/
|
||||
class phpbb_trim_message_bbcodes
|
||||
{
|
||||
/**
|
||||
* Some BBCodes, such as img and flash should not be split up in their middle.
|
||||
* So I added a sensitive BBCode array which protects BBCodes from being split.
|
||||
* You can also need to add your custom bbcodes in here.
|
||||
*/
|
||||
private $sensitive_bbcodes = array('url', 'flash', 'flash=', 'attachment', 'attachment=', 'img', 'email', 'email=');
|
||||
private $is_sensitive = false;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*/
|
||||
@@ -112,9 +120,23 @@ class phpbb_trim_message_bbcodes
|
||||
}
|
||||
}
|
||||
}
|
||||
// Or the user just used a normal [ in his post.
|
||||
else
|
||||
{
|
||||
$this->cur_content_length++;
|
||||
$content_length = $this->get_content_length($exploded_parts[0]);
|
||||
$max_content_allowed = ($this->max_content_length - $this->cur_content_length);
|
||||
if (($content_length >= $max_content_allowed) && !$this->trim_position)
|
||||
{
|
||||
$allowed_content_position = $this->get_content_position($exploded_parts[0], $max_content_allowed);
|
||||
$this->trim_position = $this->cur_position + $allowed_content_position;
|
||||
}
|
||||
$this->cur_content_length += $content_length;
|
||||
$this->cur_position += utf8_strlen($exploded_parts[0]);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Two element is hte normal case:
|
||||
* Two element is the normal case:
|
||||
* String: [bbcode:uid]foobar
|
||||
* Keys: ^^^^^^ = 0 ^^^^^^ = 1
|
||||
* String: [/bbcode:uid]foobar
|
||||
@@ -122,17 +144,43 @@ class phpbb_trim_message_bbcodes
|
||||
*/
|
||||
elseif ($num_parts == 2)
|
||||
{
|
||||
// We matched it something ;)
|
||||
if ($exploded_parts[0][0] != '/')
|
||||
/**
|
||||
* We found an opening bracket in the quoted username which is not a bbcode
|
||||
* String: [quote="odd[name":uid]quote-text
|
||||
* Keys: ^^^^^ = 0 ^^^^^^^^^^ = 1
|
||||
*/
|
||||
if ($allow_close_quote && (utf8_substr($exploded_parts[0], -6) == '"'))
|
||||
{
|
||||
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
|
||||
|
||||
$content_length = $this->get_content_length($exploded_parts[1]);
|
||||
$max_content_allowed = ($this->max_content_length - $this->cur_content_length);
|
||||
if (($content_length >= $max_content_allowed) && !$this->trim_position)
|
||||
{
|
||||
$allowed_content_position = $this->get_content_position($exploded_parts[1], $max_content_allowed);
|
||||
$this->trim_position = $this->cur_position + $allowed_content_position;
|
||||
}
|
||||
$this->cur_content_length += $content_length;
|
||||
$this->cur_position += utf8_strlen($exploded_parts[1]);
|
||||
$allow_close_quote = false;
|
||||
}
|
||||
// We matched something ;)
|
||||
else if ($exploded_parts[0][0] != '/')
|
||||
{
|
||||
// Open BBCode-tag
|
||||
$bbcode_tag = $this->filter_bbcode_tag($exploded_parts[0]);
|
||||
$bbcode_tag_extended = $this->filter_bbcode_tag($exploded_parts[0], false, false);
|
||||
if (in_array($bbcode_tag_extended, $this->sensitive_bbcodes))
|
||||
{
|
||||
$this->is_sensitive = true;
|
||||
}
|
||||
|
||||
|
||||
$this->open_bbcode($bbcode_tag, $this->cur_position);
|
||||
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
|
||||
$this->bbcode_action($bbcode_tag, 'open_end', $this->cur_position);
|
||||
|
||||
if (!$allow_close_quote)
|
||||
if (!$allow_close_quote && !$this->is_sensitive)
|
||||
{
|
||||
// If we allow a closing quote, we are in the username.
|
||||
// We do not count that as content-length.
|
||||
@@ -156,6 +204,7 @@ class phpbb_trim_message_bbcodes
|
||||
{
|
||||
$bbcode_tag_extended = '';
|
||||
}
|
||||
$this->is_sensitive = false;
|
||||
|
||||
$this->bbcode_action($bbcode_tag, 'close_start', $this->cur_position);
|
||||
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
|
||||
@@ -313,10 +362,21 @@ class phpbb_trim_message_bbcodes
|
||||
static public function get_content_length($content)
|
||||
{
|
||||
$content_length = utf8_strlen($content);
|
||||
$last_html_opening = $last_html_closing = $last_smiley = false;
|
||||
$last_smiley = false;
|
||||
$last_html_opening = $last_html_closing = 0;
|
||||
while (($last_html_opening = utf8_strpos($content, '<', $last_html_closing)) !== false)
|
||||
{
|
||||
$last_html_closing = utf8_strpos($content, '>', $last_html_opening);
|
||||
/**
|
||||
* Abort while loop if there are no more ">" or we'll end up in an
|
||||
* endless loop. The abort needs to be done here or the following
|
||||
* code will produce incorrect data.
|
||||
*/
|
||||
if (!$last_html_closing)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (($smiley_code = utf8_substr($content, $last_html_opening + 7, ($last_html_closing - $last_html_opening - 11))) != '--')
|
||||
{
|
||||
if ($last_smiley == $smiley_code)
|
||||
@@ -364,6 +424,15 @@ class phpbb_trim_message_bbcodes
|
||||
{
|
||||
// foreach markup we find in the string, we enlarge our text-size.
|
||||
$last_html_closing = utf8_strpos($content, '>', $last_html_opening);
|
||||
/**
|
||||
* Abort while loop if there are no more ">" or the following code
|
||||
* will produce incorrect data and additionally produce a PHP Notice.
|
||||
*/
|
||||
if (!$last_html_closing)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
$content_length += ($last_html_closing - $last_html_opening) + 1;
|
||||
|
||||
$smiley_code = utf8_substr($content, $last_html_opening + 7, ($last_html_closing - $last_html_opening - 11));
|
||||
@@ -395,7 +464,7 @@ class phpbb_trim_message_bbcodes
|
||||
*
|
||||
* @return string plain bbcode-tag
|
||||
*/
|
||||
static public function filter_bbcode_tag($bbcode_tag, $strip_information = true)
|
||||
static public function filter_bbcode_tag($bbcode_tag, $strip_information = true, $strip_equal = true)
|
||||
{
|
||||
if ($bbcode_tag[0] == '/')
|
||||
{
|
||||
@@ -412,9 +481,9 @@ class phpbb_trim_message_bbcodes
|
||||
return 'list';
|
||||
}
|
||||
|
||||
if ($strip_information && (($equals = utf8_strpos($bbcode_tag, '=')) !== false))
|
||||
if (($strip_information || !$strip_equal) && (($equals = utf8_strpos($bbcode_tag, '=')) !== false))
|
||||
{
|
||||
$bbcode_tag = utf8_substr($bbcode_tag, 0, $equals);
|
||||
$bbcode_tag = utf8_substr($bbcode_tag, 0, (!$strip_equal) ? $equals + 1 : $equals);
|
||||
}
|
||||
|
||||
return $bbcode_tag;
|
||||
@@ -24,35 +24,17 @@ if (!file_exists($phpbb_root_path . 'umil/umil_auto.' . $phpEx))
|
||||
{
|
||||
trigger_error('Please download the latest UMIL (Unified MOD Install Library) from: <a href="http://www.phpbb.com/mods/umil/">phpBB.com/mods/umil</a>', E_USER_ERROR);
|
||||
}
|
||||
|
||||
if (!function_exists('board3_basic_install'))
|
||||
{
|
||||
include($phpbb_root_path . 'portal/includes/functions.' . $phpEx);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if we need to convert from Board3 Portal 1.0.6
|
||||
*/
|
||||
global $config;
|
||||
|
||||
if (!defined('PORTAL_CONFIG_TABLE'))
|
||||
{
|
||||
include($phpbb_root_path . 'portal/includes/constants.' . $phpEx);
|
||||
}
|
||||
|
||||
if (sql_table_exists(PORTAL_CONFIG_TABLE) && !isset($config['board3_portal_version']))
|
||||
{
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
/**
|
||||
* We only allow conversions from Board3 Portal 1.0.6
|
||||
*/
|
||||
if (isset($portal_config['portal_version']) && $portal_config['portal_version'] == '1.0.6')
|
||||
{
|
||||
set_config('board3_portal_version', '1.0.6');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// The name of the mod to be displayed during installation.
|
||||
$mod_name = 'Board3 Portal';
|
||||
|
||||
@@ -84,174 +66,7 @@ $language_file = 'mods/info_acp_portal';
|
||||
* The version numbering must otherwise be compatible with the version_compare function - http://php.net/manual/en/function.version-compare.php
|
||||
*/
|
||||
$versions = array(
|
||||
'1.0.6' => array(
|
||||
'permission_add' => array(
|
||||
array('a_portal_manage', 1),
|
||||
),
|
||||
|
||||
'permission_set' => array(
|
||||
array('ADMINISTRATORS', 'a_manage_portal', 'group'),
|
||||
),
|
||||
|
||||
'table_add' => array(
|
||||
array(PORTAL_CONFIG_TABLE, array(
|
||||
'COLUMNS' => array(
|
||||
'config_name' => array('VCHAR:255', ''),
|
||||
'config_value'=> array('MTEXT', ''),
|
||||
),
|
||||
|
||||
'PRIMARY_KEY' => 'config_name',
|
||||
)),
|
||||
|
||||
),
|
||||
|
||||
'module_add' => array(
|
||||
array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PORTAL_INFO'),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_GENERAL_INFO',
|
||||
'module_mode' => 'config',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_NEWS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_ANNOUNCEMENTS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_WELCOME_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_RECENT_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_WORDGRAPH_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_PAYPAL_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_ATTACHMENTS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_MEMBERS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_POLLS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_BOTS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_POSTER_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_MINICALENDAR_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_CUSTOMBLOCK_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_LINKS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_FRIENDS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
array('acp', 'ACP_PORTAL_INFO', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_BIRTHDAYS_INFO',
|
||||
'module_mode' => 'modules',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
'2.0.0-a1' => array(
|
||||
'permission_remove' => array(
|
||||
'a_portal_manage',
|
||||
),
|
||||
|
||||
'permission_add' => array(
|
||||
array('u_view_portal', 1),
|
||||
array('a_manage_portal', 1),
|
||||
@@ -278,10 +93,19 @@ $versions = array(
|
||||
'module_image_width' => array('INT:3', 0),
|
||||
'module_image_height' => array('INT:3', 0),
|
||||
'module_group_ids' => array('VCHAR', ''),
|
||||
'module_status' => array('TINT:1', 1),
|
||||
),
|
||||
|
||||
'PRIMARY_KEY' => 'module_id',
|
||||
)),
|
||||
array(PORTAL_CONFIG_TABLE, array(
|
||||
'COLUMNS' => array(
|
||||
'config_name' => array('VCHAR:255', ''),
|
||||
'config_value'=> array('MTEXT', ''),
|
||||
),
|
||||
|
||||
'PRIMARY_KEY' => 'config_name',
|
||||
)),
|
||||
),
|
||||
|
||||
'config_add' => array(
|
||||
@@ -296,38 +120,18 @@ $versions = array(
|
||||
array('board3_display_jumpbox', 1, 0),
|
||||
),
|
||||
|
||||
'module_remove' => array(
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_GENERAL_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_NEWS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_ANNOUNCEMENTS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_WELCOME_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_RECENT_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_WORDGRAPH_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_PAYPAL_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_ATTACHMENTS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_MEMBERS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_POLLS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_BOTS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_POSTER_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_MINICALENDAR_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_CUSTOMBLOCK_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_LINKS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_FRIENDS_INFO'),
|
||||
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_BIRTHDAYS_INFO'),
|
||||
),
|
||||
|
||||
'module_add' => array(
|
||||
array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PORTAL'),
|
||||
|
||||
array('acp', 'ACP_PORTAL', array(
|
||||
|
||||
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_GENERAL_INFO',
|
||||
'module_mode' => 'config',
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
array('acp', 'ACP_PORTAL', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_MODULES',
|
||||
@@ -335,7 +139,7 @@ $versions = array(
|
||||
'module_auth' => 'acl_a_manage_portal',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
array('acp', 'ACP_PORTAL', array(
|
||||
'module_basename' => 'portal',
|
||||
'module_langname' => 'ACP_PORTAL_UPLOAD',
|
||||
@@ -347,14 +151,61 @@ $versions = array(
|
||||
'custom' => array('board3_basic_install'),
|
||||
|
||||
),
|
||||
|
||||
'2.0.0a2' => array(
|
||||
'table_column_add' => array(
|
||||
array(PORTAL_MODULES_TABLE, 'module_status', array('TINT:1', 1)),
|
||||
|
||||
'2.0.0b1' => array(
|
||||
// no changes
|
||||
),
|
||||
|
||||
'2.0.0' => array(
|
||||
// no changes
|
||||
),
|
||||
|
||||
'2.0.1' => array(
|
||||
// no changes
|
||||
),
|
||||
'2.0.2' => array(
|
||||
'custom' => array('update_donation_modules'),
|
||||
'cache_purge' => array(
|
||||
'imageset',
|
||||
'template',
|
||||
'theme',
|
||||
'',
|
||||
),
|
||||
),
|
||||
'2.0.0b1' => array(),
|
||||
);
|
||||
|
||||
// Include the UMIL Auto file, it handles the rest
|
||||
include($phpbb_root_path . 'umil/umil_auto.' . $phpEx);
|
||||
|
||||
/**
|
||||
* Add missing config setting to existing donation modules
|
||||
*
|
||||
* @param string $mode UMIL mode
|
||||
* @param string $version Version
|
||||
*/
|
||||
function update_donation_modules($mode = 'install', $version = '')
|
||||
{
|
||||
global $user;
|
||||
|
||||
$new_configs = '';
|
||||
if ($mode === 'update')
|
||||
{
|
||||
global $db;
|
||||
|
||||
$sql = 'SELECT *
|
||||
FROM ' . PORTAL_MODULES_TABLE . "
|
||||
WHERE module_classname = 'donation'";
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
set_config('board3_pay_custom_' . $row['module_id'], true);
|
||||
if (!empty($new_configs))
|
||||
{
|
||||
$new_configs .= ', ';
|
||||
}
|
||||
$new_configs .= 'board3_pay_custom_' . $row['module_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
return $user->lang('CONFIG_ADD', $new_configs);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ $lang = array_merge($lang, array(
|
||||
// Portal Module
|
||||
'ACP_PORTAL_MODULES' => 'Portal Module',
|
||||
'ACP_PORTAL_MODULES_EXP' => 'Du kannst deine Portal Module hier verwalten. Falls du alle Module deaktivierst, dann deaktiviere bitte auch das Portal.',
|
||||
|
||||
|
||||
'MODULE_POS_TOP' => 'Oben',
|
||||
'MODULE_POS_LEFT' => 'Linke Spalte',
|
||||
'MODULE_POS_RIGHT' => 'Rechte Spalte',
|
||||
@@ -53,15 +53,17 @@ $lang = array_merge($lang, array(
|
||||
'MOVE_LEFT' => 'Nach links',
|
||||
'B3P_FILE_NOT_FOUND' => 'Die angegebene Datei konnte nicht gefunden werden',
|
||||
'UNABLE_TO_MOVE' => 'Es ist nicht möglich den Block in die gewählte Spalte zu verschieben.',
|
||||
'UNABLE_TO_MOVE_ROW' => 'Es ist nicht möglich den Block in die gewählte Reihe zu verschieben.',
|
||||
'DELETE_MODULE_CONFIRM' => 'Bist du sicher, dass du das Modul "%1$s" löschen möchtest?',
|
||||
'MODULE_RESET_SUCCESS' => 'Modul Einstellungen erfolgreich zurückgesetzt.',
|
||||
'MODULE_RESET_CONFIRM' => 'Bist du sicher, dass du die Einstellungen des Moduls "%1$s" zurücksetzen willst?',
|
||||
|
||||
'MODULE_NOT_EXISTS' => 'Das gewählte Modul existiert nicht.',
|
||||
|
||||
'MODULE_OPTIONS' => 'Modul Optionen',
|
||||
'MODULE_NAME' => 'Modul Name',
|
||||
'MODULE_NAME_EXP' => 'Gebe den Namen ein der für das Modul in der Modul Konfiguration angezeigt werden soll.',
|
||||
'MODULE_IMAGE' => 'Modul Bild',
|
||||
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich in allen styles/*yourstyle*/theme/images/portal/ Ordnern befinden.',
|
||||
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich in allen styles/{Dein Style}/theme/images/portal/ Ordnern befinden.',
|
||||
'MODULE_PERMISSIONS' => 'Modul Berechtigungen',
|
||||
'MODULE_PERMISSIONS_EXP' => 'Wähle die Gruppen aus, die berechtigt sein sollen, das Modul zu sehen. Sollen alle Benutzer das Modul sehen können, wähle nichts aus.<br />An- / abwählen mehrerer Gruppen indem man <samp>Strg</samp> gedrückt hält und klickt.',
|
||||
'MODULE_IMAGE_WIDTH' => 'Modul Bild Breite',
|
||||
@@ -72,7 +74,8 @@ $lang = array_merge($lang, array(
|
||||
'MODULE_RESET_EXP' => 'Dies wird alle Einstellungen des Moduls auf die Standardeinstellungen zurücksetzen!',
|
||||
'MODULE_STATUS' => 'Aktiviere Modul',
|
||||
'MODULE_ADD_ONCE' => 'Diese Modul kann nur ein Mal hinzugefügt werden.',
|
||||
|
||||
'MODULE_IMAGE_ERROR' => 'Während dem Prüfen des Modul Bildes sind ein oder mehrere Fehler aufgetreten:',
|
||||
|
||||
// general
|
||||
'ACP_PORTAL' => 'Portal',
|
||||
'ACP_PORTAL_GENERAL_INFO' => 'Allgemeine Einstellungen',
|
||||
@@ -86,8 +89,6 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_RIGHT_COLUMN' => 'Rechte Spalte aktivieren',
|
||||
'PORTAL_RIGHT_COLUMN_EXP' => 'Die Rechte Spalte auf dem Portal anzeigen',
|
||||
'PORTAL_VERSION_CHECK' => 'Versioncheck auf Portal',
|
||||
'PORTAL_FORUM_INDEX' => 'Foren Index (Foren Liste)',
|
||||
'PORTAL_FORUM_INDEX_EXP' => 'Diesen Block auf dem Portal anzeigen.',
|
||||
'ACP_PORTAL_COLUMN_WIDTH_SETTINGS' => 'Breiteneinstellung der rechten und linken Spalte',
|
||||
'PORTAL_LEFT_COLUMN_WIDTH' => 'Breite der linken Spalte',
|
||||
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Ändere hier die Breite der linken Spalte in Pixel, empfohlener Wert 180',
|
||||
@@ -96,21 +97,24 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_PHPBB_MENU' => 'phpBB-Menü',
|
||||
'PORTAL_PHPBB_MENU_EXP' => 'Den phpBB Header auf dem Portal anzeigen.',
|
||||
'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox',
|
||||
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen',
|
||||
|
||||
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen. Die Jumpbox wird nur angezeigt, wenn sie gleichzeitig in den Board-Funktionalitäten aktiviert ist.',
|
||||
|
||||
'LINK_ADDED' => 'Der Link wurde erfolgreich eingetragen',
|
||||
'LINK_UPDATED' => 'Der Link wurde erfolgreich geändert',
|
||||
'LOG_PORTAL_LINK_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />» Link hinzu gefügt: %s ',
|
||||
'LOG_PORTAL_LINK_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />» Link geändert: %s ',
|
||||
'LOG_PORTAL_LINK_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />» Link gelöscht: %s ',
|
||||
'LOG_PORTAL_EVENT_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />» Termin eingetragen: %s ',
|
||||
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />» Termin geändert: %s ',
|
||||
|
||||
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />» Termin gelöscht: %s ',
|
||||
|
||||
// Upload Module
|
||||
'ACP_PORTAL_UPLOAD' => 'Modul hochladen',
|
||||
'MODULE_UPLOAD' => 'Lade ein Modul hoch',
|
||||
'MODULE_UPLOAD_EXP' => 'Wähle die ZIP-Datei des Moduls das du hochladen willst:',
|
||||
'MODULE_UPLOAD_GO' => 'Hochladen',
|
||||
'NO_MODULE_UPLOAD' => 'Deine Server-Konfiguration erlaubt das Hochladen von Dateien nicht.',
|
||||
'NO_FILE_B3P' => 'Es wurde keine Zip-Datei ausgewählt.',
|
||||
'MODULE_UPLOADED' => 'Modul erfolgreich hochgeladen.',
|
||||
'MODULE_UPLOAD_MKDIR_FAILURE' => 'Es konnte kein Ordner erstellt werden.',
|
||||
'MODULE_COPY_FAILURE' => 'Die folgende Datei konnte nicht kopiert werden: %1$s',
|
||||
@@ -121,15 +125,14 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_MODULE_STATUS' => 'Status',
|
||||
'PORTAL_MODULE_SUCCESS' => 'Erfolgreich kopiert.',
|
||||
'PORTAL_MODULE_ERROR' => 'Datei exisitert schon oder konnte nicht kopiert werden.',
|
||||
|
||||
|
||||
// Install
|
||||
'PORTAL_BASIC_INSTALL' => 'Füge Basismodule hinzu',
|
||||
'PORTAL_BASIC_UNINSTALL' => 'Entferne Module von Datenbank',
|
||||
'PORTAL_CONVERT_SUCCESS' => 'Konvertiere von Board3 Portal 1.0.6 & füge Basismodule hinzu',
|
||||
|
||||
|
||||
// Logs
|
||||
'LOG_PORTAL_CONFIG' => '<strong>Portal-Einstellungen geändert</strong><br />» %s',
|
||||
|
||||
|
||||
/**
|
||||
* A copy of Handyman` s MOD version check, to view it on the gallery overview
|
||||
*/
|
||||
@@ -142,9 +145,9 @@ $lang = array_merge($lang, array(
|
||||
'RELEASE_ANNOUNCEMENT' => 'Ankündigungsthema',
|
||||
'UP_TO_DATE' => '%s ist aktuell',
|
||||
'VERSION_CHECK' => 'MOD Version Check',
|
||||
|
||||
|
||||
// Adding the permissions
|
||||
'acl_a_manage_portal' => array('lang' => 'Kann Portal-Einstellungen ändern', 'cat' => 'misc'),
|
||||
'acl_u_view_portal' => array('lang' => 'Kann das Portal sehen', 'cat' => 'misc'),
|
||||
|
||||
|
||||
));
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang = array_merge($lang, array(
|
||||
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
|
||||
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
|
||||
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_ANNOUNCE_SETTINGS' => 'Einstellungen für Bekanntmachungen',
|
||||
'ACP_PORTAL_ANNOUNCE_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die Bekanntmachungen ändern.',
|
||||
@@ -62,8 +62,8 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_ANNOUNCEMENTS_LENGTH' => 'Maximale Länge der Bekanntmachungen',
|
||||
'PORTAL_ANNOUNCEMENTS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
|
||||
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM' => 'Foren der Bekanntmachungen',
|
||||
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Die ID des Forums, aus welchem die Bekanntmachungen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Foren aussschließen',
|
||||
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Die ID des Forums, aus welchem die Bekanntmachungen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
|
||||
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE_EXP'=> 'Wähle "Ja" wenn du die ausgewählten Foren vom Bekanntmachungen-Block ausschließen willst, und "Nein" wenn du nur die Bekanntmachungen aus den ausgewählten Foren im Bekanntmachungen-Block sehen willst.',
|
||||
'PORTAL_ANNOUNCEMENTS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
|
||||
'PORTAL_ANNOUNCEMENTS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der Bekanntmachungen',
|
||||
|
||||
@@ -35,20 +35,20 @@ $lang = array_merge($lang, array(
|
||||
'DOWNLOADS' => 'Downloads',
|
||||
'NO_ATTACHMENTS' => 'Keine Dateianhänge',
|
||||
'PORTAL_ATTACHMENTS' => 'Dateianhänge-Block',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS' => 'Einstellungen für Dateianhänge',
|
||||
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Dateianhänge ändern.',
|
||||
'PORTAL_ATTACHMENTS_NUMBER' => 'Anzahl der anzuzeigenden Dateianhänge',
|
||||
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 bedeutet unbegrenzt',
|
||||
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Dateianhänge Foren',
|
||||
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Die Foren, aus welchen die Dateianhänge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren aus, aus denen du die Dateianhänge sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Foren aussschließen',
|
||||
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Die Foren, aus welchen die Dateianhänge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren aus, aus denen du die Dateianhänge sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
|
||||
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Dateianhänge-Block ausschließen willst, und "Nein" wenn du nur die Dateianhänge der ausgewählten Foren im Dateianhänge-Block sehen willst.',
|
||||
'PORTAL_ATTACHMENTS_MAX_LENGTH' => 'Maximal angezeigte Länge der Dateianhänge',
|
||||
'PORTAL_ATTACHMENTS_MAX_LENGTH_EXP' => '0 bedeutet unbegrenzt',
|
||||
'PORTAL_ATTACHMENTS_FILETYPE' => 'Dateitypen',
|
||||
'PORTAL_ATTACHMENTS_FILETYPE_EXP' => 'Falls "Dateitypen ausschließen" auf "Ja" steht, wähle die Dateitypen die du ausschließen willst.<br />Falls "Dateitypen ausschließen" auf "Nein" steht, wähle die Dateitypen die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Dateitypen aussschließen',
|
||||
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Dateitypen ausschließen',
|
||||
'PORTAL_ATTACHMENTS_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Dateitypen vom Dateianhänge-Block ausschließen willst, und "Nein" wenn du nur die ausgewählten Dateitypen im Dateianhänge-Block sehen willst.',
|
||||
));
|
||||
|
||||
@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'BIRTHDAYS_AHEAD' => 'In den nächsten %s Tagen',
|
||||
'NO_BIRTHDAYS_AHEAD' => 'In diesem Zeitraum hat kein Mitglied Geburtstag',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_BIRTHDAYS_SETTINGS' => 'Einstellungen für den Geburtstage-Block',
|
||||
'ACP_PORTAL_BIRTHDAYS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für den Geburtstage-Block ändern.',
|
||||
'PORTAL_BIRTHDAYS' => 'Geburtstage',
|
||||
'PORTAL_BIRTHDAYS_EXPLAIN' => 'Diesen Block auf dem Portal anzeigen.',
|
||||
'PORTAL_BIRTHDAYS_AHEAD' => 'Anstehende Geburtstage',
|
||||
'PORTAL_BIRTHDAYS_AHEAD_EXP' => 'Zeitraum für die Geburtstagsvorschau (Tage).<br />"0" deaktiviert die Anzeige der bevorstehenden Geburtstage.',
|
||||
));
|
||||
|
||||
@@ -85,7 +85,7 @@ $lang = array_merge($lang, array(
|
||||
'12'=> 'Dezember',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CALENDAR' => 'Kalender Einstellungen',
|
||||
'ACP_PORTAL_CALENDAR_EXP' => 'Hier kannst du die Einstellungen für den Kalender ändern.',
|
||||
@@ -127,7 +127,7 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Berechtigungen für die Veranstaltung',
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Wähle die Gruppen aus, denen es erlaubt sein soll die Veranstaltung zu sehen. Falls alle Benutzer die Veranstaltung sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_EVENTS_URL_NEW_WINDOW' => 'Öffne externe Veranstaltungsverknüpfungen in einem neuen Fenster',
|
||||
|
||||
|
||||
// Logs
|
||||
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Veranstaltung aktualisiert</strong><br />» %s',
|
||||
'LOG_PORTAL_EVENT_ADDED' => '<strong>Veranstaltung hinzugefügt</strong><br />» %s',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'CLOCK' => 'Uhr',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CLOCK_SETTINGS' => 'Uhr Einstellungen',
|
||||
'ACP_PORTAL_CLOCK_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die Uhr ändern',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_CUSTOM' => 'Eigener Block',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
|
||||
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Einstellungen für den eigenen Block',
|
||||
|
||||
@@ -55,14 +55,11 @@ $lang = array_merge($lang, array(
|
||||
'EUR' => 'Euro (EUR)',
|
||||
'MXN' => 'Mexikanische Pesos (MXN)',
|
||||
'ILS' => 'Neue Israelische Schekel (ILS)',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_PAYPAL_SETTINGS' => 'Paypal Einstellungen',
|
||||
'ACP_PORTAL_PAYPAL_SETTINGS_EXP' => 'Hier kannst du die Paypal Einstellungen ändern.',
|
||||
'PORTAL_PAY_C_BLOCK' => 'Normalen Paypal-Block anzeigen',
|
||||
'PORTAL_PAY_C_BLOCK_EXP' => 'Diesen Block auf dem Portal anzeigen.',
|
||||
'PORTAL_PAY_S_BLOCK' => 'Paypal als kleinen Block anzeigen',
|
||||
'PORTAL_PAY_S_BLOCK_EXP' => 'Diesen Block auf dem Portal anzeigen.',
|
||||
'PORTAL_PAY_ACC' => 'Paypal Account',
|
||||
'PORTAL_PAY_ACC_EXP' => 'Gib deine e-mail-Adresse an, die du bei Paypal benutzt, z.B. xxx@xxx.com',
|
||||
'PORTAL_PAY_CUSTOM' => 'Benutzername an die Paypal Zahlung anhängen',
|
||||
));
|
||||
|
||||
@@ -38,7 +38,7 @@ $lang = array_merge($lang, array(
|
||||
'NO_FRIENDS' => 'Derzeit sind keine Freunde definiert',
|
||||
'NO_FRIENDS_OFFLINE' => 'Keine Freunde offline',
|
||||
'NO_FRIENDS_ONLINE' => 'Keine Freunde online',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_FRIENDS_SETTINGS' => 'Einstellungen für den Freunde-Block',
|
||||
'ACP_PORTAL_FRIENDS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für den Freunde-Block ändern.',
|
||||
|
||||
@@ -34,9 +34,7 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'LATEST_BOTS' => 'Letzte Bots',
|
||||
'LAST_VISITED_BOTS' => 'Die letzten Bots',
|
||||
'LAST_VISITED_BOTS_CNT' => 'Die letzten %s Bots',
|
||||
'LAST_VISITED_BOT' => 'Der letzte Bot',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_BOTS_SETTINGS' => 'Einstellungen für Bot-Besuche',
|
||||
'ACP_PORTAL_BOTS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Bot-Besuche ändern.',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'LATEST_MEMBERS' => 'Neue Mitglieder',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_MEMBERS_SETTINGS' => 'Einstellungen für neue Mitglieder',
|
||||
'ACP_PORTAL_MEMBERS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für neue Mitglieder ändern.',
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
|
||||
'NO_MODERATORS_P' => 'Keine Moderatoren',
|
||||
'NO_GROUPS_P' => 'Keine Gruppen',
|
||||
'ACP_PORTAL_LEADERS' => 'Das Team',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_LEADERS' => 'Team Block Einstellungen',
|
||||
'ACP_PORTAL_LEADERS_EXP' => 'Hier kannst Du den Team-Block anpassen',
|
||||
|
||||
@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_LINKS' => 'Links',
|
||||
'LINKS_NO_LINKS' => 'Keine Links vorhanden',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_LINKS' => 'Links-Einstellungen',
|
||||
'ACP_PORTAL_LINKS_EXP' => 'Einstellungen für die Links ändern.',
|
||||
@@ -49,4 +49,8 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_LINK_PERMISSION' => 'Link Berechtigungen',
|
||||
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Wähle die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab indem du <samp>STRG</samp> gedrückt hältst und klickst.',
|
||||
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Öffne externe Verknüpfungen in einem neuen Fenster',
|
||||
|
||||
// Errors
|
||||
'NO_LINK_TITLE' => 'Du musst einen Titel für diesen Link angeben.',
|
||||
'NO_LINK_URL' => 'Du musst eine Link URL eingeben.',
|
||||
));
|
||||
|
||||
@@ -41,7 +41,7 @@ $lang = array_merge($lang, array(
|
||||
'M_PRV' => 'Datenschutzrichtlinie',
|
||||
'M_SEARCH' => 'Suche',
|
||||
'MENU_NO_LINKS' => 'Keine Links',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_MENU' => 'Hauptmenü-Einstellungen',
|
||||
'ACP_PORTAL_MENU_LINK_SETTINGS' => 'Link Einstellungen',
|
||||
@@ -62,4 +62,8 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_MENU_PERMISSION' => 'Link Berechtigungen',
|
||||
'ACP_PORTAL_MENU_PERMISSION_EXP'=> 'Wähle die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab indem du <samp>STRG</samp> gedrückt hältst und klickst.',
|
||||
'ACP_PORTAL_MENU_EXT_NEW_WINDOW'=> 'Öffne externe Verknüpfungen in einem neuen Fenster',
|
||||
|
||||
// Errors
|
||||
'NO_LINK_TITLE' => 'Du musst einen Titel für diesen Link angeben.',
|
||||
'NO_LINK_URL' => 'Du musst eine Link URL eingeben.',
|
||||
));
|
||||
|
||||
@@ -43,7 +43,7 @@ $lang = array_merge($lang, array(
|
||||
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
|
||||
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
|
||||
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_NEWS_SETTINGS' => 'Aktuelle Beiträge Einstellungen',
|
||||
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die aktuellen Beiträge ändern.',
|
||||
@@ -56,8 +56,8 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_NEWS_LENGTH' => 'Maximal angezeigte Länge der Beiträge',
|
||||
'PORTAL_NEWS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
|
||||
'PORTAL_NEWS_FORUM' => 'Beiträge Foren',
|
||||
'PORTAL_NEWS_FORUM_EXP' => 'Die Foren, aus welchen die Beiträge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_NEWS_EXCLUDE' => 'Foren aussschließen',
|
||||
'PORTAL_NEWS_FORUM_EXP' => 'Die Foren, aus welchen die Beiträge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_NEWS_EXCLUDE' => 'Foren ausschließen',
|
||||
'PORTAL_NEWS_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Aktuelle Beiträge-Block ausschließen willst, und "Nein" wenn du nur die Beiträge aus den ausgewählten Foren im Aktuelle Beiträge-Block sehen willst.',
|
||||
'PORTAL_NEWS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
|
||||
'PORTAL_NEWS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der aktuellen Beiträge',
|
||||
|
||||
@@ -37,12 +37,12 @@ $lang = array_merge($lang, array(
|
||||
'NO_OPTIONS' => 'Diese Umfrage verfügt über keine Optionen.',
|
||||
'NO_POLL' => 'Derzeit gibt es keine aktuellen Umfragen',
|
||||
'RETURN_PORTAL' => '%sZurück zum Portal%s',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_POLLS_SETTINGS' => 'Einstellungen für Umfragen',
|
||||
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Umfragen ändern.',
|
||||
'PORTAL_POLL_TOPIC_ID' => 'Umfragen Foren',
|
||||
'PORTAL_POLL_TOPIC_ID_EXP' => 'Die Foren, aus welchen die Umfragen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_POLL_TOPIC_ID_EXP' => 'Die Foren, aus welchen die Umfragen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_POLL_EXCLUDE_ID' => 'Foren ausschließen',
|
||||
'PORTAL_POLL_EXCLUDE_ID_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Umfragen-Block ausschließen willst, und "Nein" wenn du nur die Themen aus den ausgewählten Foren im Umfragen-Block sehen willst.',
|
||||
'PORTAL_POLL_LIMIT' => 'Maximale Anzahl der Umfragen',
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_RECENT_TOPIC' => 'Aktuelle Themen',
|
||||
'PORTAL_RECENT_ANN' => 'Aktuelle Bekanntmachungen',
|
||||
'PORTAL_RECENT_HOT_TOPIC' => 'Beliebte Themen',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_RECENT_SETTINGS' => 'Einstellungen für neueste Themen',
|
||||
'ACP_PORTAL_RECENT_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die neuesten Themen ändern.',
|
||||
@@ -45,7 +45,7 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_RECENT_TITLE_LIMIT' => 'Maximal angezeigte Länge der neuesten Themen',
|
||||
'PORTAL_RECENT_TITLE_LIMIT_EXP' => '0 bedeutet unbegrenzt',
|
||||
'PORTAL_RECENT_FORUM' => 'Themen Foren',
|
||||
'PORTAL_RECENT_FORUM_EXP' => 'Die Foren, aus welchen die Themen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_EXCLUDE_FORUM' => 'Foren aussschließen',
|
||||
'PORTAL_RECENT_FORUM_EXP' => 'Die Foren, aus welchen die Themen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
|
||||
'PORTAL_EXCLUDE_FORUM' => 'Foren ausschließen',
|
||||
'PORTAL_EXCLUDE_FORUM_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Aktuelle Themen-Block ausschließen willst, und "Nein" wenn du nur die Themen aus den ausgewählten Foren im Aktuelle Themen-Block sehen willst.',
|
||||
));
|
||||
|
||||
@@ -34,5 +34,8 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'TOPPOSTERS' => 'Top Poster',
|
||||
'TOPPOSTERS_CONFIG' => 'Einstellungen zu Top Poster',
|
||||
|
||||
// ACP
|
||||
'NUM_TOPPOSTERS' => 'Anzahl der Top Poster',
|
||||
'NUM_TOPPOSTERS_EXP' => 'Gebe die Anzahl der Benutzer an, die im Top Poster Block angezeigt werden sollen.',
|
||||
));
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_WELCOME' => 'Willkommen',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_WELCOME_SETTINGS' => 'Einstellungen für die Willkommens-Nachricht',
|
||||
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'Die eingegebene Nachricht ist nicht lang genug.',
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
|
||||
// Portal Modules
|
||||
'ACP_PORTAL_MODULES' => 'Portal Modules',
|
||||
'ACP_PORTAL_MODULES_EXP' => 'You can manage your portal modules here. If you turn off all modules, please also disable the Portal.',
|
||||
|
||||
|
||||
'MODULE_POS_TOP' => 'Top',
|
||||
'MODULE_POS_LEFT' => 'Left column',
|
||||
'MODULE_POS_RIGHT' => 'Right column',
|
||||
@@ -52,15 +52,17 @@ $lang = array_merge($lang, array(
|
||||
'MOVE_LEFT' => 'Move left',
|
||||
'B3P_FILE_NOT_FOUND' => 'The requested file could not be found',
|
||||
'UNABLE_TO_MOVE' => 'It is not possible to move the block to the selected column.',
|
||||
'UNABLE_TO_MOVE_ROW' => 'It is not possible to move the block to the selected row.',
|
||||
'DELETE_MODULE_CONFIRM' => 'Are you sure you wish to delete the module "%1$s"?',
|
||||
'MODULE_RESET_SUCCESS' => 'Successfully reset the module settings.',
|
||||
'MODULE_RESET_CONFIRM' => 'Are you sure you wish to reset the settings of the module "%1$s"?',
|
||||
|
||||
'MODULE_NOT_EXISTS' => 'The selected module does not exist.',
|
||||
|
||||
'MODULE_OPTIONS' => 'Module options',
|
||||
'MODULE_NAME' => 'Module name',
|
||||
'MODULE_NAME_EXP' => 'Enter the name of the Module that should be displayed in the Module configuration.',
|
||||
'MODULE_IMAGE' => 'Module image',
|
||||
'MODULE_IMAGE_EXP' => 'Enter the filename of the module image. Images need to be in all styles/*yourstyle*/theme/images/portal/ folders',
|
||||
'MODULE_IMAGE_EXP' => 'Enter the filename of the module image. Images need to be in all styles/{yourstyle}/theme/images/portal/ folders',
|
||||
'MODULE_PERMISSIONS' => 'Module permissions',
|
||||
'MODULE_PERMISSIONS_EXP' => 'Select the groups that should be authorized to view the module. If you want all users to be able to view the module, don’t select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
|
||||
'MODULE_IMAGE_WIDTH' => 'Module image width',
|
||||
@@ -71,6 +73,7 @@ $lang = array_merge($lang, array(
|
||||
'MODULE_RESET_EXP' => 'This will reset all settings to the default!',
|
||||
'MODULE_STATUS' => 'Enable module',
|
||||
'MODULE_ADD_ONCE' => 'This module can only be added once.',
|
||||
'MODULE_IMAGE_ERROR' => 'There was an error while checking for the module image:',
|
||||
|
||||
// general
|
||||
'ACP_PORTAL' => 'Portal',
|
||||
@@ -88,26 +91,29 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_PHPBB_MENU' => 'phpBB menu',
|
||||
'PORTAL_PHPBB_MENU_EXP' => 'Display the phpBB Header on the portal.',
|
||||
'PORTAL_DISPLAY_JUMPBOX' => 'Display jumpbox',
|
||||
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Display the jumpbox on the portal',
|
||||
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Display the jumpbox on the portal. The jumpbox will only be displayed if it is also enabled in the board features.',
|
||||
'ACP_PORTAL_COLUMN_WIDTH_SETTINGS' => 'Left and right column width settings',
|
||||
'PORTAL_LEFT_COLUMN_WIDTH' => 'Width of the left column',
|
||||
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Change the width of the left column in pixels; recommended value is 180',
|
||||
'PORTAL_RIGHT_COLUMN_WIDTH' => 'Width of the right column',
|
||||
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Change the width of the right column in pixels; recommended value is 180',
|
||||
|
||||
|
||||
'LINK_ADDED' => 'The link has been successfully added',
|
||||
'LINK_UPDATED' => 'The link has been successfully updated',
|
||||
'LOG_PORTAL_LINK_ADDED' => '<strong>Altered Portal settings</strong><br />» Link added: %s ',
|
||||
'LOG_PORTAL_LINK_UPDATED' => '<strong>Altered Portal settings</strong><br />» Link updated: %s ',
|
||||
'LOG_PORTAL_LINK_REMOVED' => '<strong>Altered Portal settings</strong><br />» Link removed: %s ',
|
||||
'LOG_PORTAL_EVENT_ADDED' => '<strong>Altered Portal settings</strong><br />» Event added: %s ',
|
||||
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Altered Portal settings</strong><br />» Event updated: %s ',
|
||||
|
||||
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Altered Portal settings</strong><br />» Event removed: %s ',
|
||||
|
||||
// Upload Module
|
||||
'ACP_PORTAL_UPLOAD' => 'Upload module',
|
||||
'MODULE_UPLOAD' => 'Upload a module',
|
||||
'MODULE_UPLOAD_EXP' => 'Choose the zip file of the module you want to upload:',
|
||||
'MODULE_UPLOAD_GO' => 'Upload',
|
||||
'NO_MODULE_UPLOAD' => 'Your server configuration does not allow file uploads.',
|
||||
'NO_FILE_B3P' => 'No zip file specified.',
|
||||
'MODULE_UPLOADED' => 'Module uploaded successfully.',
|
||||
'MODULE_UPLOAD_MKDIR_FAILURE' => 'Unable to create a folder.',
|
||||
'MODULE_COPY_FAILURE' => 'Unable to copy the following file: %1$s',
|
||||
@@ -118,15 +124,14 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_MODULE_STATUS' => 'Status',
|
||||
'PORTAL_MODULE_SUCCESS' => 'Success',
|
||||
'PORTAL_MODULE_ERROR' => 'Error',
|
||||
|
||||
|
||||
// Install
|
||||
'PORTAL_BASIC_INSTALL' => 'Adding basic set of modules',
|
||||
'PORTAL_BASIC_UNINSTALL' => 'Removing modules from database',
|
||||
'PORTAL_CONVERT_SUCCESS' => 'Converting from Board3 Portal 1.0.6 & adding basic set of modules',
|
||||
|
||||
|
||||
// Logs
|
||||
'LOG_PORTAL_CONFIG' => '<strong>Altered Portal settings</strong><br />» %s',
|
||||
|
||||
|
||||
/**
|
||||
* A copy of Handyman` s MOD version check, to view it on the portal overview
|
||||
*/
|
||||
@@ -139,7 +144,7 @@ $lang = array_merge($lang, array(
|
||||
'RELEASE_ANNOUNCEMENT' => 'Annoucement Topic',
|
||||
'UP_TO_DATE' => '%s is up to date',
|
||||
'VERSION_CHECK' => 'MOD Version Check',
|
||||
|
||||
|
||||
// Adding the permissions
|
||||
'acl_a_manage_portal' => array('lang' => 'Can alter Portal settings', 'cat' => 'misc'),
|
||||
'acl_u_view_portal' => array('lang' => 'Can view the Portal', 'cat' => 'misc'),
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang = array_merge($lang, array(
|
||||
'JUMP_NEWEST' => 'Jump to newest post',
|
||||
'JUMP_FIRST' => 'Jump to first post',
|
||||
'JUMP_TO_POST' => 'Jump to post',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_ANNOUNCE_SETTINGS' => 'Global announcements settings',
|
||||
'ACP_PORTAL_ANNOUNCE_SETTINGS_EXP' => 'This is where you customize the global announcements block.',
|
||||
|
||||
@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'DOWNLOADS' => 'Downloads',
|
||||
'NO_ATTACHMENTS' => 'No attachments',
|
||||
'PORTAL_ATTACHMENTS' => 'Attachments Block',
|
||||
|
||||
'PORTAL_ATTACHMENTS' => 'Attachments',
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS' => 'Attachments settings',
|
||||
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS_EXP' => 'This is where you customize the attachments block.',
|
||||
'PORTAL_ATTACHMENTS_EXP' => 'Display this block on the portal.',
|
||||
'PORTAL_ATTACHMENTS_NUMBER' => 'Limit of displayed attachments',
|
||||
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 means infinite',
|
||||
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Attachments forums',
|
||||
|
||||
@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'BIRTHDAYS_AHEAD' => 'In the next %s days',
|
||||
'NO_BIRTHDAYS_AHEAD' => 'No members have a birthday within this period of time.',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_BIRTHDAYS_SETTINGS' => 'Birthdays Settings',
|
||||
'ACP_PORTAL_BIRTHDAYS_SETTINGS_EXP' => 'This is where you customize the birthday block.',
|
||||
'PORTAL_BIRTHDAYS' => 'Birthday block',
|
||||
'PORTAL_BIRTHDAYS_EXP' => 'Display this block on the portal.',
|
||||
'PORTAL_BIRTHDAYS_AHEAD' => 'Birthdays ahead days',
|
||||
'PORTAL_BIRTHDAYS_AHEAD_EXP' => 'How many days to look ahead for future birthdays.<br />"0" will disable the ahead birthdays list.',
|
||||
));
|
||||
|
||||
@@ -85,7 +85,7 @@ $lang = array_merge($lang, array(
|
||||
'12'=> 'December',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CALENDAR' => 'Calendar settings',
|
||||
'ACP_PORTAL_CALENDAR_EXP' => 'This is where you customize the calendar block.',
|
||||
@@ -127,8 +127,7 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Event permissions',
|
||||
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Select the groups that should be authorized to view the event. If you want all users to be able to view the event, don’t select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
|
||||
'PORTAL_EVENTS_URL_NEW_WINDOW' => 'Open external event links in a new window',
|
||||
|
||||
|
||||
|
||||
// Logs
|
||||
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Updated Event</strong><br />» %s',
|
||||
'LOG_PORTAL_EVENT_ADDED' => '<strong>Added Event</strong><br />» %s',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'CLOCK' => 'Clock',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CLOCK_SETTINGS' => 'Clock Settings',
|
||||
'ACP_PORTAL_CLOCK_SETTINGS_EXP' => 'This is where you customize your clock',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_CUSTOM' => 'Custom Block',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
|
||||
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Here you can edit your custom block',
|
||||
|
||||
@@ -55,14 +55,11 @@ $lang = array_merge($lang, array(
|
||||
'EUR' => 'Euros (EUR)',
|
||||
'MXN' => 'Mexican Pesos (MXN)',
|
||||
'ILS' => 'Israeli New Shekels (ILS)',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_PAYPAL_SETTINGS' => 'Paypal settings',
|
||||
'ACP_PORTAL_PAYPAL_SETTINGS_EXPLAIN' => 'This is where you customize the Paypal block.',
|
||||
'PORTAL_PAY_C_BLOCK' => 'Display paypal center block',
|
||||
'PORTAL_PAY_C_BLOCK_EXPLAIN' => 'Display this block on the portal.',
|
||||
'PORTAL_PAY_S_BLOCK' => 'Display paypal small block',
|
||||
'PORTAL_PAY_S_BLOCK_EXPLAIN' => 'Display this block on the portal.',
|
||||
'ACP_PORTAL_PAYPAL_SETTINGS_EXP' => 'This is where you customize the Paypal block.',
|
||||
'PORTAL_PAY_ACC' => 'Paypal account to use',
|
||||
'PORTAL_PAY_ACC_EXPLAIN' => 'Enter your Paypal e-mail address eg. xxx@xxx.com',
|
||||
'PORTAL_PAY_ACC_EXP' => 'Enter your Paypal e-mail address eg. xxx@xxx.com',
|
||||
'PORTAL_PAY_CUSTOM' => 'Append username to Paypal donation',
|
||||
));
|
||||
|
||||
@@ -38,7 +38,7 @@ $lang = array_merge($lang, array(
|
||||
'NO_FRIENDS' => 'No friends currently defined',
|
||||
'NO_FRIENDS_OFFLINE' => 'No friends offline',
|
||||
'NO_FRIENDS_ONLINE' => 'No friends online',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_FRIENDS_SETTINGS' => 'Friends Settings',
|
||||
'ACP_PORTAL_FRIENDS_SETTINGS_EXP' => 'This is where you customize the friends block.',
|
||||
|
||||
@@ -34,9 +34,7 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'LATEST_BOTS' => 'Latest Bots',
|
||||
'LAST_VISITED_BOTS' => 'Last visited bots',
|
||||
'LAST_VISITED_BOTS_CNT' => 'Last %s visited bots',
|
||||
'LAST_VISITED_BOT' => 'Last visited bot',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_BOTS_SETTINGS' => 'Visiting bots settings',
|
||||
'ACP_PORTAL_BOTS_SETTINGS_EXP' => 'This is where you customize the visiting bots block.',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'LATEST_MEMBERS' => 'Newest members',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_MEMBERS_SETTINGS' => 'Newest members settings',
|
||||
'ACP_PORTAL_MEMBERS_SETTINGS_EXP' => 'This is where you customize the newest members block.',
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
|
||||
'NO_MODERATORS_P' => 'No Moderators',
|
||||
'NO_GROUPS_P' => 'No Groups',
|
||||
'ACP_PORTAL_LEADERS' => 'The Team',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_LEADERS' => 'Team Settings',
|
||||
'ACP_PORTAL_LEADERS_EXP' => 'This is where you customize the team block',
|
||||
|
||||
@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_LINKS' => 'Links',
|
||||
'LINKS_NO_LINKS' => 'No links',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_LINKS' => 'Link Settings',
|
||||
'ACP_PORTAL_LINKS_EXP' => 'Customize the links listed in the links block',
|
||||
@@ -49,4 +49,8 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_LINK_PERMISSION' => 'Link permissions',
|
||||
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Select the groups that should be authorized to view the link. If you want all users to be able to view the link, don’t select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
|
||||
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Open external links in a new window',
|
||||
|
||||
// Errors
|
||||
'NO_LINK_TITLE' => 'You must enter a title for this link.',
|
||||
'NO_LINK_URL' => 'You must enter a link URL.',
|
||||
));
|
||||
|
||||
@@ -41,7 +41,7 @@ $lang = array_merge($lang, array(
|
||||
'M_PRV' => 'Privacy policy',
|
||||
'M_SEARCH' => 'Search',
|
||||
'MENU_NO_LINKS' => 'No links',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_MENU' => 'Menu settings',
|
||||
'ACP_PORTAL_MENU_LINK_SETTINGS' => 'Link Settings',
|
||||
@@ -62,4 +62,8 @@ $lang = array_merge($lang, array(
|
||||
'ACP_PORTAL_MENU_PERMISSION' => 'Link permissions',
|
||||
'ACP_PORTAL_MENU_PERMISSION_EXP'=> 'Select the groups that should be authorized to view the link. If you want all users to be able to view the link, don’t select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
|
||||
'ACP_PORTAL_MENU_EXT_NEW_WINDOW'=> 'Open external links in a new window',
|
||||
|
||||
// Errors
|
||||
'NO_LINK_TITLE' => 'You must enter a title for this link.',
|
||||
'NO_LINK_URL' => 'You must enter a link URL.',
|
||||
));
|
||||
|
||||
@@ -43,8 +43,7 @@ $lang = array_merge($lang, array(
|
||||
'JUMP_NEWEST' => 'Jump to newest post',
|
||||
'JUMP_FIRST' => 'Jump to first post',
|
||||
'JUMP_TO_POST' => 'Jump to post',
|
||||
'BACK' => 'Back',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_NEWS_SETTINGS' => 'News settings',
|
||||
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'This is where you customize the news block.',
|
||||
|
||||
@@ -37,12 +37,10 @@ $lang = array_merge($lang, array(
|
||||
'NO_OPTIONS' => 'This poll has no available options.',
|
||||
'NO_POLL' => 'No polls available',
|
||||
'RETURN_PORTAL' => '%sReturn to the portal%s',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_POLLS_SETTINGS' => 'Poll settings',
|
||||
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'This is where you customize the poll block.',
|
||||
'PORTAL_POLL_TOPIC' => 'Display poll blocks',
|
||||
'PORTAL_POLL_TOPIC_EXP' => 'Display this block on the portal.',
|
||||
'PORTAL_POLL_TOPIC_ID' => 'Poll forum(s)',
|
||||
'PORTAL_POLL_TOPIC_ID_EXP' => 'The forum(s) from which the polls should be displayed. If "Exclude forums" is set to "Yes", select the forums you want to exclude.<br />If "Exclude forums" is set to "No" select the forums you want to see.<br />Select/Deselect multiple forums by holding <samp>CTRL</samp> and clicking.',
|
||||
'PORTAL_POLL_EXCLUDE_ID' => 'Exclude Forums',
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
|
||||
'PORTAL_RECENT_TOPIC' => 'Recent topics',
|
||||
'PORTAL_RECENT_ANN' => 'Recent announcements',
|
||||
'PORTAL_RECENT_HOT_TOPIC' => 'Recent popular topics',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_RECENT_SETTINGS' => 'Recent topics settings',
|
||||
'ACP_PORTAL_RECENT_SETTINGS_EXP' => 'This is where you customize the recent topics block.',
|
||||
|
||||
@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
|
||||
$lang = array_merge($lang, array(
|
||||
'TOPPOSTERS' => 'Top Posters',
|
||||
'TOPPOSTERS_CONFIG' => 'Top Poster settings',
|
||||
|
||||
|
||||
// ACP
|
||||
'NUM_TOPPOSTERS' => 'Number of Top Posters',
|
||||
'NUM_TOPPOSTERS_EXP' => 'Enter how many users should be displayed in the top posters block.',
|
||||
|
||||
@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
|
||||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
$lang = array_merge($lang, array(
|
||||
'PORTAL_WELCOME' => 'Welcome Message',
|
||||
|
||||
|
||||
// ACP
|
||||
'ACP_PORTAL_WELCOME_SETTINGS' => 'Welcome Message Settings',
|
||||
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'The message you entered is not long enough.',
|
||||
|
||||
@@ -65,7 +65,7 @@ foreach ($portal_modules as $row)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$class_name = 'portal_' . $row['module_classname'] . '_module';
|
||||
if (!class_exists($class_name))
|
||||
{
|
||||
@@ -77,7 +77,7 @@ foreach ($portal_modules as $row)
|
||||
}
|
||||
|
||||
$module = new $class_name();
|
||||
|
||||
|
||||
/**
|
||||
* Check for permissions before loading anything
|
||||
* the default group of a user always defines his/her permission (KISS)
|
||||
@@ -87,35 +87,35 @@ foreach ($portal_modules as $row)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if ($module->language)
|
||||
{
|
||||
$user->add_lang('mods/portal/' . $module->language);
|
||||
}
|
||||
if ($row['module_column'] == 1 && $config['board3_left_column'])
|
||||
if ($row['module_column'] == column_string_num('left') && $config['board3_left_column'])
|
||||
{
|
||||
$template_module = $module->get_template_side($row['module_id']);
|
||||
$template_column = 'left';
|
||||
++$module_count['left'];
|
||||
}
|
||||
if ($row['module_column'] == 2)
|
||||
if ($row['module_column'] == column_string_num('center'))
|
||||
{
|
||||
$template_module = $module->get_template_center($row['module_id']);
|
||||
$template_column = 'center';
|
||||
++$module_count['center'];
|
||||
}
|
||||
if ($row['module_column'] == 3 && $config['board3_right_column'])
|
||||
if ($row['module_column'] == column_string_num('right') && $config['board3_right_column'])
|
||||
{
|
||||
$template_module = $module->get_template_side($row['module_id']);
|
||||
$template_column = 'right';
|
||||
++$module_count['right'];
|
||||
}
|
||||
if ($row['module_column'] == 4)
|
||||
if ($row['module_column'] == column_string_num('top'))
|
||||
{
|
||||
$template_module = $module->get_template_center($row['module_id']);
|
||||
++$module_count['top'];
|
||||
}
|
||||
if ($row['module_column'] == 5)
|
||||
if ($row['module_column'] == column_string_num('bottom'))
|
||||
{
|
||||
$template_module = $module->get_template_center($row['module_id']);
|
||||
++$module_count['bottom'];
|
||||
@@ -134,6 +134,8 @@ foreach ($portal_modules as $row)
|
||||
'TITLE' => $template_module['title'],
|
||||
'CODE' => $template_module['code'],
|
||||
'MODULE_ID' => $row['module_id'],
|
||||
'IMAGE_WIDTH' => $row['module_image_width'],
|
||||
'IMAGE_HEIGHT' => $row['module_image_height'],
|
||||
));
|
||||
}
|
||||
else
|
||||
@@ -160,15 +162,15 @@ if($module_count['total'] < 1)
|
||||
// Assign specific vars
|
||||
$template->assign_vars(array(
|
||||
// 'S_SMALL_BLOCK' => true,
|
||||
'S_PORTAL_LEFT_COLUMN' => $config['board3_left_column_width'],
|
||||
'S_PORTAL_RIGHT_COLUMN' => $config['board3_right_column_width'],
|
||||
'S_PORTAL_LEFT_COLUMN' => $config['board3_left_column_width'],
|
||||
'S_PORTAL_RIGHT_COLUMN' => $config['board3_right_column_width'],
|
||||
'S_LEFT_COLUMN' => ($module_count['left'] > 0 && $config['board3_left_column']) ? true : false,
|
||||
'S_CENTER_COLUMN' => ($module_count['center'] > 0) ? true : false,
|
||||
'S_RIGHT_COLUMN' => ($module_count['right'] > 0 && $config['board3_right_column']) ? true : false,
|
||||
'S_TOP_COLUMN' => ($module_count['top'] > 0) ? true : false,
|
||||
'S_BOTTOM_COLUMN' => ($module_count['bottom'] > 0) ? true : false,
|
||||
'S_DISPLAY_PHPBB_MENU' => $config['board3_phpbb_menu'],
|
||||
'S_DISPLAY_JUMPBOX' => $config['board3_display_jumpbox'],
|
||||
'S_DISPLAY_PHPBB_MENU' => $config['board3_phpbb_menu'],
|
||||
'B3P_DISPLAY_JUMPBOX' => $config['board3_display_jumpbox'],
|
||||
));
|
||||
|
||||
// Output page
|
||||
|
||||
@@ -61,7 +61,7 @@ function set_portal_config($config_name, $config_value)
|
||||
}
|
||||
|
||||
$portal_config[$config_name] = $config_value;
|
||||
|
||||
|
||||
$cache->destroy('portal_config');
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ function phpbb_fetch_posts($module_id, $forum_from, $permissions, $number_of_pos
|
||||
{
|
||||
global $db, $phpbb_root_path, $auth, $user, $bbcode_bitfield, $bbcode, $portal_config, $config;
|
||||
|
||||
$posts = array();
|
||||
$posts = $update_count = array();
|
||||
$post_time = ($time == 0) ? '' : 'AND t.topic_time > ' . (time() - $time * 86400);
|
||||
$forum_from = (strpos($forum_from, ',') !== FALSE) ? explode(',', $forum_from) : (($forum_from != '') ? array($forum_from) : array());
|
||||
$str_where = '';
|
||||
@@ -174,6 +174,11 @@ function phpbb_fetch_posts($module_id, $forum_from, $permissions, $number_of_pos
|
||||
$post_link = ($config['board3_news_style_' . $module_id]) ? 't.topic_first_post_id = p.post_id' : (($config['board3_news_show_last_' . $module_id]) ? 't.topic_last_post_id = p.post_id' : 't.topic_first_post_id = p.post_id' ) ;
|
||||
$topic_order = ($config['board3_news_show_last_' . $module_id]) ? 't.topic_last_post_time DESC' : 't.topic_time DESC' ;
|
||||
break;
|
||||
|
||||
default:
|
||||
$topic_type = $str_where = $user_link = $post_link = '';
|
||||
$topic_order = 't.topic_time DESC';
|
||||
// maybe use trigger_error here, as this shouldn't happen
|
||||
}
|
||||
|
||||
if ($type == 'announcements' && $global_f < 1)
|
||||
@@ -403,12 +408,12 @@ function get_sub_taged_string($message, $bbcode_uid, $length)
|
||||
|
||||
if(!class_exists('phpbb_trim_message'))
|
||||
{
|
||||
include(PORTAL_ROOT_PATH . 'includes/trim_message/trim_message.' . $phpEx);
|
||||
include($phpbb_root_path . 'includes/trim_message/trim_message.' . $phpEx);
|
||||
}
|
||||
|
||||
|
||||
if(!class_exists('phpbb_trim_message_bbcodes'))
|
||||
{
|
||||
include(PORTAL_ROOT_PATH . 'includes/trim_message/bbcodes.' . $phpEx);
|
||||
include($phpbb_root_path . 'includes/trim_message/bbcodes.' . $phpEx);
|
||||
}
|
||||
|
||||
$object = new phpbb_trim_message($message, $bbcode_uid, $length);
|
||||
@@ -440,6 +445,11 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
|
||||
$pagination_type = 'np';
|
||||
$anker = '#n';
|
||||
break;
|
||||
|
||||
default:
|
||||
// this shouldn't happend @todo: use trigger_error()
|
||||
$pagination_type = 'ap';
|
||||
$anker = '#a';
|
||||
}
|
||||
|
||||
// Make sure $per_page is a valid value
|
||||
@@ -516,39 +526,6 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
|
||||
return $page_string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format user date for the Birthday block
|
||||
* Note: this function is used as we already added timezones, etc
|
||||
*
|
||||
* borrowed from Upcoming Birthday Mod
|
||||
* @author: lefty
|
||||
* changed to work outside session.php by B3P
|
||||
* @function: format_dateucb
|
||||
*/
|
||||
|
||||
function format_birthday($date, $format = false)
|
||||
{
|
||||
global $user;
|
||||
$time->time_now = time();
|
||||
$lang_dates = $user->lang['datetime'];
|
||||
$format = (!$format) ? $time->date_format : $format;
|
||||
|
||||
// Short representation of month in format
|
||||
if ((strpos($format, '\M') === false && strpos($format, 'M') !== false) || (strpos($format, '\r') === false && strpos($format, 'r') !== false))
|
||||
{
|
||||
$lang_dates['May'] = $lang_dates['May_short'];
|
||||
}
|
||||
unset($lang_dates['May_short']);
|
||||
|
||||
// We need to create a UNIX timestamp for date()
|
||||
$day = substr($date, 0, strpos($date, '-'));
|
||||
$month = substr($date, (strpos($date, '-')+1), 2);
|
||||
$year = substr($date, -4);
|
||||
$birthday_time = mktime(0, 0, 0, $month, $day, $year);
|
||||
|
||||
return strtr(@date(str_replace('|', '', $format), $birthday_time), $lang_dates);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if table exists
|
||||
* @copyright (c) 2007 phpBB Group
|
||||
@@ -580,9 +557,9 @@ function sql_table_exists($table_name)
|
||||
function get_portal_tracking_info($fetch_news)
|
||||
{
|
||||
global $config, $user;
|
||||
|
||||
$last_read = $topic_ids = $forum_ids = $tracking_info = array();
|
||||
|
||||
|
||||
$last_read = $topic_ids = $forum_ids = $tracking_info = $rev_forum_ids = array();
|
||||
|
||||
/**
|
||||
* group everything by the forum IDs
|
||||
*/
|
||||
@@ -590,16 +567,19 @@ function get_portal_tracking_info($fetch_news)
|
||||
for ($i = 0; $i < $count; ++$i)
|
||||
{
|
||||
$tracking_info[$fetch_news[$i]['forum_id']][] = $fetch_news[$i]['topic_id'];
|
||||
$topic_ids[] = $fetch_news[$i]['topic_id'];
|
||||
$forum_ids[] = $fetch_news[$i]['forum_id'];
|
||||
$rev_forum_ids[$fetch_news[$i]['topic_id']] = $fetch_news[$i]['forum_id']; // the other way round also helps
|
||||
}
|
||||
|
||||
|
||||
foreach ($tracking_info as $forum_id => $current_forum)
|
||||
{
|
||||
if ($config['load_db_lastread'] && $user->data['is_registered'])
|
||||
{
|
||||
global $db;
|
||||
|
||||
|
||||
$mark_time = array();
|
||||
|
||||
|
||||
$sql = 'SELECT topic_id, mark_time
|
||||
FROM ' . TOPICS_TRACK_TABLE . "
|
||||
WHERE user_id = {$user->data['user_id']}
|
||||
@@ -628,11 +608,16 @@ function get_portal_tracking_info($fetch_news)
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$user_lastmark = (isset($mark_time[$forum_id])) ? $mark_time[$forum_id] : $user->data['user_lastmark'];
|
||||
// @todo: do not use $current_forum here as this is already used by the outside foreach
|
||||
foreach($forum_ids as $current_forum)
|
||||
{
|
||||
$user_lastmark[$current_forum] = (isset($mark_time[$current_forum])) ? $mark_time[$current_forum] : $user->data['user_lastmark'];
|
||||
}
|
||||
|
||||
// @todo: also check if $user_lastmark has been defined for this specific forum_id
|
||||
foreach ($topic_ids as $topic_id)
|
||||
{
|
||||
$last_read[$topic_id] = $user_lastmark;
|
||||
$last_read[$topic_id] = (!isset($last_read[$topic_id]) || $user_lastmark[$rev_forum_ids[$topic_id]] > $last_read[$topic_id]) ? $user_lastmark[$rev_forum_ids[$topic_id]] : $last_read[$topic_id];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -670,13 +655,6 @@ function get_portal_tracking_info($fetch_news)
|
||||
if (sizeof($topic_ids))
|
||||
{
|
||||
$mark_time = array();
|
||||
if ($global_announce_list && sizeof($global_announce_list))
|
||||
{
|
||||
if (isset($tracking_topics['f'][0]))
|
||||
{
|
||||
$mark_time[0] = base_convert($tracking_topics['f'][0], 36, 10) + $config['board_startdate'];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($tracking_topics['f'][$forum_id]))
|
||||
{
|
||||
@@ -687,19 +665,12 @@ function get_portal_tracking_info($fetch_news)
|
||||
|
||||
foreach ($topic_ids as $topic_id)
|
||||
{
|
||||
if ($global_announce_list && isset($global_announce_list[$topic_id]))
|
||||
{
|
||||
$last_read[$topic_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
|
||||
}
|
||||
else
|
||||
{
|
||||
$last_read[$topic_id] = $user_lastmark;
|
||||
}
|
||||
$last_read[$topic_id] = $user_lastmark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $last_read;
|
||||
}
|
||||
|
||||
@@ -716,24 +687,24 @@ function get_portal_tracking_info($fetch_news)
|
||||
function board3_basic_install($mode = 'install', $purge_modules = true, $u_action = '')
|
||||
{
|
||||
global $db, $phpbb_root_path, $phpEx, $cache, $user, $table_prefix, $config;
|
||||
|
||||
|
||||
// Shouldn't happen but we should check this nonetheless
|
||||
if (!defined('PORTAL_MODULES_TABLE'))
|
||||
{
|
||||
include($phpbb_root_path . 'portal/includes/constants.' . $phpEx);
|
||||
}
|
||||
|
||||
if ($mode == 'install' || $mode == 'update')
|
||||
|
||||
if ($mode == 'install')
|
||||
{
|
||||
$directory = $phpbb_root_path . 'portal/modules/';
|
||||
|
||||
|
||||
if ($purge_modules)
|
||||
{
|
||||
$sql = 'DELETE FROM ' . PORTAL_MODULES_TABLE;
|
||||
$result = $db->sql_query($sql);
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* this is a list of the basic modules that will be installed
|
||||
* module_name => array(module_column, module_order)
|
||||
@@ -749,7 +720,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
'portal_topposters' => array(1, 8),
|
||||
'portal_latest_members' => array(1, 9),
|
||||
'portal_link_us' => array(1, 10),
|
||||
|
||||
|
||||
// center column
|
||||
'portal_welcome' => array(2, 1),
|
||||
'portal_recent' => array(2, 2),
|
||||
@@ -757,7 +728,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
'portal_news' => array(2, 4),
|
||||
'portal_poll' => array(2, 5),
|
||||
'portal_whois_online' => array(2, 6),
|
||||
|
||||
|
||||
// right column
|
||||
'portal_user_menu' => array(3, 1),
|
||||
'portal_statistics' => array(3, 2),
|
||||
@@ -766,7 +737,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
'portal_latest_bots' => array(3, 5),
|
||||
'portal_links' => array(3, 6),
|
||||
);
|
||||
|
||||
|
||||
foreach ($modules_ary as $module_name => $module_data)
|
||||
{
|
||||
$class_name = $module_name . '_module';
|
||||
@@ -778,7 +749,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
{
|
||||
trigger_error('CLASS_NOT_FOUND', E_USER_ERROR);
|
||||
}
|
||||
|
||||
|
||||
$c_class = new $class_name();
|
||||
|
||||
$sql_ary = array(
|
||||
@@ -790,145 +761,18 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
'module_group_ids' => '',
|
||||
'module_image_width' => 16,
|
||||
'module_image_height' => 16,
|
||||
'module_status' => B3_MODULE_ENABLED,
|
||||
);
|
||||
$sql = 'INSERT INTO ' . PORTAL_MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
|
||||
$db->sql_query($sql);
|
||||
|
||||
$c_class->install($db->sql_nextid());
|
||||
}
|
||||
|
||||
|
||||
// Make sure we get rid of old data
|
||||
$cache->destroy('portal_modules');
|
||||
|
||||
if ($mode == 'update')
|
||||
{
|
||||
/**
|
||||
* Check if we need to convert from Board3 Portal 1.0.6
|
||||
*/
|
||||
global $config;
|
||||
|
||||
if ($config['board3_portal_version'] == '1.0.6')
|
||||
{
|
||||
$convert = true;
|
||||
$portal_config = obtain_portal_config();
|
||||
}
|
||||
else
|
||||
{
|
||||
$convert = false;
|
||||
}
|
||||
|
||||
if ($convert)
|
||||
{
|
||||
$portal_modules = obtain_portal_modules();
|
||||
|
||||
foreach ($portal_modules as $row)
|
||||
{
|
||||
switch($row['module_classname'])
|
||||
{
|
||||
case 'announcements':
|
||||
set_config('board3_announcements_style_' . $row['module_id'], $portal_config['portal_announcements_style']);
|
||||
set_config('board3_number_of_announcements_' . $row['module_id'], $portal_config['portal_number_of_announcements']);
|
||||
set_config('board3_announcements_day_' . $row['module_id'], $portal_config['portal_announcements_day']);
|
||||
set_config('board3_announcements_length_' . $row['module_id'], $portal_config['portal_announcements_length']);
|
||||
set_config('board3_global_announcements_forum_' . $row['module_id'], $portal_config['portal_global_announcements_forum']);
|
||||
set_config('board3_announcements_forum_exclude_' . $row['module_id'], $portal_config['portal_announcements_forum_exclude']);
|
||||
set_config('board3_announcements_archive_' . $row['module_id'], $portal_config['portal_announcements_archive']);
|
||||
set_config('board3_announcements_permissions_' . $row['module_id'], $portal_config['portal_announcements_permissions']);
|
||||
set_config('board3_show_announcements_replies_views_' . $row['module_id'], $portal_config['portal_show_announcements_replies_views']);
|
||||
break;
|
||||
|
||||
case 'attachments':
|
||||
set_config('board3_attachments_number_' . $row['module_id'], $portal_config['portal_attachments_number']);
|
||||
set_config('board3_attach_max_length_' . $row['module_id'], $portal_config['portal_attach_max_length']);
|
||||
set_config('board3_attachments_forum_ids_' . $row['module_id'], $portal_config['portal_attachments_forum_ids']);
|
||||
set_config('board3_attachments_forum_exclude_' . $row['module_id'], $portal_config['portal_attachments_forum_exclude']);
|
||||
set_config('board3_attachments_filetype_' . $row['module_id'], $portal_config['portal_attachments_filetype']);
|
||||
set_config('board3_attachments_exclude_' . $row['module_id'], $portal_config['portal_attachments_exclude']);
|
||||
break;
|
||||
|
||||
case 'birthday_list':
|
||||
set_config('board3_birthdays_ahead_' . $row['module_id'], 'portal_birthdays_ahead');
|
||||
break;
|
||||
|
||||
case 'calendar':
|
||||
set_config('board3_sunday_first_' . $row['module_id'], $portal_config['portal_sunday_first']);
|
||||
set_config('board3_calendar_today_color_' . $row['module_id'], $portal_config['portal_minicalendar_today_color']);
|
||||
set_config('board3_calendar_sunday_color_' . $row['module_id'], $portal_config['portal_minicalendar_sunday_color']);
|
||||
set_config('board3_long_month_' . $row['module_id'], $portal_config['portal_long_month']);
|
||||
break;
|
||||
|
||||
case 'donation':
|
||||
set_config('board3_pay_acc_' . $row['module_id'], $portal_config['portal_pay_acc']);
|
||||
break;
|
||||
|
||||
case 'friends':
|
||||
set_config('board3_max_online_friends_' . $row['module_id'], $portal_config['portal_max_online_friends']);
|
||||
break;
|
||||
|
||||
case 'latest_bots':
|
||||
set_config('board3_last_visited_bots_number_' . $row['module_id'], $portal_config['portal_last_visited_bots_number']);
|
||||
break;
|
||||
|
||||
case 'latest_members':
|
||||
set_config('board3_max_last_member_' . $row['module_id'], $portal_config['portal_max_last_member']);
|
||||
break;
|
||||
|
||||
case 'leaders':
|
||||
set_config('board3_leaders_ext_' . $row['module_id'], $portal_config['portal_leaders_ext']);
|
||||
break;
|
||||
|
||||
case 'news':
|
||||
set_config('board3_news_length_' . $row['module_id'], $portal_config['portal_news_length']);
|
||||
set_config('board3_news_forum_' . $row['module_id'], $portal_config['portal_news_forum']);
|
||||
set_config('board3_news_permissions_' . $row['module_id'], $portal_config['portal_news_permissions']);
|
||||
set_config('board3_number_of_news_' . $row['module_id'], $portal_config['portal_number_of_news']);
|
||||
set_config('board3_show_all_news_' . $row['module_id'], $portal_config['portal_show_all_news']);
|
||||
set_config('board3_news_exclude_' . $row['module_id'], $portal_config['portal_news_exclude']);
|
||||
set_config('board3_news_archive_' . $row['module_id'], $portal_config['portal_news_archive']);
|
||||
set_config('board3_news_show_last_' . $row['module_id'], $portal_config['portal_news_show_last']);
|
||||
set_config('board3_show_news_replies_views_' . $row['module_id'], $portal_config['portal_show_news_replies_views']);
|
||||
set_config('board3_news_style_' . $row['module_id'], $portal_config['portal_news_style']);
|
||||
break;
|
||||
|
||||
case 'poll':
|
||||
set_config('board3_poll_allow_vote_' . $row['module_id'], $portal_config['portal_poll_allow_vote']);
|
||||
set_config('board3_poll_topic_id_' . $row['module_id'], $portal_config['portal_poll_topic_id']);
|
||||
set_config('board3_poll_exclude_id_' . $row['module_id'], $portal_config['portal_poll_exclude_id']);
|
||||
set_config('board3_poll_hide_' . $row['module_id'], $portal_config['portal_poll_hide']);
|
||||
set_config('board3_poll_limit_' . $row['module_id'], $portal_config['portal_poll_limit']);
|
||||
break;
|
||||
|
||||
case 'recent':
|
||||
set_config('board3_max_topics_' . $row['module_id'], $portal_config['portal_max_topics']);
|
||||
set_config('board3_recent_title_limit_' . $row['module_id'], $portal_config['portal_recent_title_limit']);
|
||||
set_config('board3_recent_forum_' . $row['module_id'], $portal_config['portal_recent_forum']);
|
||||
set_config('board3_recent_exclude_forums_' . $row['module_id'], $portal_config['portal_exclude_forums']);
|
||||
break;
|
||||
|
||||
case 'topposters':
|
||||
set_config('board3_topposters_' . $row['module_id'], $portal_config['portal_max_most_poster']);
|
||||
break;
|
||||
|
||||
case 'welcome':
|
||||
set_portal_config('board3_welcome_message_' . $row['module_id'], $portal_config['portal_welcome_intro']);
|
||||
break;
|
||||
|
||||
default:
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
// Now that we are done, delete all data that seems useless to us
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE config_name ' . $db->sql_like_expression(utf8_clean_string('portal_') . $db->any_char);
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
return $user->lang['PORTAL_CONVERT_SUCCESS'];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $user->lang['PORTAL_BASIC_INSTALL'];
|
||||
}
|
||||
return $user->lang['PORTAL_BASIC_INSTALL'];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -947,28 +791,28 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
|
||||
$sql = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE config_name ' . $db->sql_like_expression(utf8_clean_string('board3_') . $db->any_char) . '
|
||||
AND ' . $db->sql_in_set('config_name', $skip_entries, true);
|
||||
$db->sql_query($sql);
|
||||
|
||||
|
||||
return $user->lang['PORTAL_BASIC_UNINSTALL'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* check if the entered source file actually exists
|
||||
*/
|
||||
function check_file_src($value, $key, $module_id)
|
||||
function check_file_src($value, $key, $module_id, $force_error = true)
|
||||
{
|
||||
global $db, $phpbb_root_path, $phpEx, $user;
|
||||
|
||||
|
||||
$error = '';
|
||||
|
||||
|
||||
// We check if the chosen file is present in all active styles
|
||||
$sql = 'SELECT st.theme_path
|
||||
FROM ' . STYLES_THEME_TABLE . ' st
|
||||
LEFT JOIN ' . STYLES_TABLE . ' s
|
||||
ON (st.theme_id = s.style_id)
|
||||
WHERE s.style_active = 1';
|
||||
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
@@ -978,9 +822,52 @@ function check_file_src($value, $key, $module_id)
|
||||
}
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
if (!empty($error))
|
||||
{
|
||||
trigger_error($error . adm_back_link(append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=portal&mode=config&module_id=' . $module_id)), E_USER_WARNING );
|
||||
if ($force_error)
|
||||
{
|
||||
trigger_error($error . adm_back_link(append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=portal&mode=config&module_id=' . $module_id)), E_USER_WARNING );
|
||||
}
|
||||
else
|
||||
{
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the groups a user is in
|
||||
*
|
||||
* @return array Array containing the user's groups
|
||||
*/
|
||||
function get_user_groups()
|
||||
{
|
||||
global $cache, $db, $user;
|
||||
|
||||
$groups_ary = $cache->get('_user_groups_' . $user->data['user_id']);
|
||||
|
||||
if ($groups_ary === false)
|
||||
{
|
||||
// get user's groups
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . USER_GROUP_TABLE . '
|
||||
WHERE user_id = ' . (int) $user->data['user_id'] . '
|
||||
ORDER BY group_id ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
while($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// save data in cache for 60 seconds
|
||||
$cache->put('_user_groups_' . $user->data['user_id'], $groups_ary, 60);
|
||||
}
|
||||
|
||||
return $groups_ary;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,8 @@ function column_num_string($column)
|
||||
return 'top';
|
||||
case 5:
|
||||
return 'bottom';
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
109
root/portal/includes/functions_upload.php
Normal file → Executable file
109
root/portal/includes/functions_upload.php
Normal file → Executable file
@@ -22,7 +22,7 @@ class portal_upload
|
||||
*/
|
||||
private $upload_path;
|
||||
private $u_action;
|
||||
|
||||
|
||||
/*
|
||||
* constructor function
|
||||
*/
|
||||
@@ -37,7 +37,7 @@ class portal_upload
|
||||
$this->upload_file();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* upload module zip
|
||||
*/
|
||||
@@ -50,12 +50,13 @@ class portal_upload
|
||||
$upload = new fileupload();
|
||||
// Only allow ZIP files
|
||||
$upload->set_allowed_extensions(array('zip'));
|
||||
|
||||
|
||||
$file = $upload->form_upload('modupload');
|
||||
|
||||
if (empty($file->filename))
|
||||
|
||||
// this is for module zips so don't allow anything else
|
||||
if (empty($file->filename) || !preg_match('.zip.', $file->get('realname')))
|
||||
{
|
||||
trigger_error($user->lang['NO_UPLOAD_FILE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
trigger_error($user->lang['NO_FILE_B3P'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -63,7 +64,7 @@ class portal_upload
|
||||
{
|
||||
$file->clean_filename('real');
|
||||
$file->move_file(str_replace($phpbb_root_path, '', $this->upload_path), true, true);
|
||||
|
||||
|
||||
if (!sizeof($file->error))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_compress.' . $phpEx);
|
||||
@@ -85,7 +86,7 @@ class portal_upload
|
||||
// We need to move that directory then
|
||||
$this->directory_move($mod_dir . '_tmp/' . $folder_contents[0], $this->upload_path . $folder_contents[0]);
|
||||
$new_mod_dir = $this->upload_path . $folder_contents[0];
|
||||
|
||||
|
||||
}
|
||||
else if (!is_dir($mod_dir))
|
||||
{
|
||||
@@ -95,25 +96,35 @@ class portal_upload
|
||||
}
|
||||
|
||||
$this->directory_delete($mod_dir . '_tmp/');
|
||||
|
||||
|
||||
// make sure we set $mod_dir to the correct folder after the above step
|
||||
$mod_dir = (isset($new_mod_dir)) ? $new_mod_dir : $mod_dir;
|
||||
|
||||
|
||||
// if we got until here set $actions['NEW_FILES']
|
||||
$actions['NEW_FILES'] = array();
|
||||
|
||||
|
||||
// Now we need to get the files inside the folders
|
||||
//$folder_contents = $this->cut_folder(scandir($mod_dir));
|
||||
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($mod_dir)); // requires PHP 5
|
||||
|
||||
|
||||
foreach($iterator as $cur_file)
|
||||
{
|
||||
$cur_path = $cur_file->getPathname();
|
||||
$cur_path = str_replace('\\', '/', $cur_path); // we want unix-like paths
|
||||
$cur_path = str_replace($mod_dir . '/', '', $cur_path);
|
||||
$cut_pos = strpos($cur_path, '/');
|
||||
|
||||
// Only allow files in adm, language, portal and styles folder
|
||||
|
||||
/*
|
||||
* We only copy files. The recursive iterator might grab paths depending on
|
||||
* the PHP version. This will trigger our error handle with trigger_error()
|
||||
* though. If we are trying to copy a directory just move on.
|
||||
*/
|
||||
if (is_dir($cur_path))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Only allow files in adm, language, portal and styles folder and a license.txt
|
||||
if(!in_array(substr($cur_path, 0, $cut_pos), array('adm', 'language', 'portal', 'styles')) && $cur_file->getFilename() != 'license.txt')
|
||||
{
|
||||
$file->remove();
|
||||
@@ -131,6 +142,14 @@ class portal_upload
|
||||
// Let's start moving our files where they belong
|
||||
foreach ($actions['NEW_FILES'] as $source => $target)
|
||||
{
|
||||
/*
|
||||
* make sure we don't try to copy folders
|
||||
* folders will be created if necessary in copy_content
|
||||
*/
|
||||
if(is_dir($source))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$status = $this->copy_content($source, $target);
|
||||
|
||||
if ($status !== true && !is_null($status))
|
||||
@@ -145,7 +164,7 @@ class portal_upload
|
||||
'TARGET' => $target,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_MOD_SUCCESSBOX' => true,
|
||||
'MESSAGE' => $user->lang['MODULE_UPLOADED'],
|
||||
@@ -161,10 +180,10 @@ class portal_upload
|
||||
{
|
||||
trigger_error((sizeof($file->error) ? implode('<br />', $file->error) : $user->lang['MOD_UPLOAD_INIT_FAIL']) . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
$this->tpl_name = 'portal/acp_portal_upload_module';
|
||||
$this->page_title = $user->lang['ACP_PORTAL_UPLOAD'];
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'L_TITLE' => $user->lang['ACP_PORTAL_UPLOAD'],
|
||||
'L_TITLE_EXPLAIN' => '',
|
||||
@@ -176,7 +195,7 @@ class portal_upload
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Cuts the unneeded '.' and '..' from the folder content info scandir returns
|
||||
*
|
||||
@@ -186,19 +205,19 @@ class portal_upload
|
||||
{
|
||||
$cut_array = array('.', '..');
|
||||
$folder_content = array_diff($folder_content, $cut_array);
|
||||
|
||||
|
||||
return $folder_content;
|
||||
}
|
||||
|
||||
private function directory_move($src, $dest)
|
||||
{
|
||||
$src_contents = scandir($src);
|
||||
|
||||
|
||||
if (!is_dir($dest) && is_dir($src))
|
||||
{
|
||||
mkdir($dest . '/', 0755);
|
||||
}
|
||||
|
||||
|
||||
foreach ($src_contents as $src_entry)
|
||||
{
|
||||
if ($src_entry != '.' && $src_entry != '..')
|
||||
@@ -209,51 +228,51 @@ class portal_upload
|
||||
}
|
||||
else if (is_file($src . '/' . $src_entry) && !is_file($dest . '/' . $src_entry))
|
||||
{
|
||||
copy($src . '/' . $src_entry, $dest . '/' . $src_entry);
|
||||
chmod($dest . '/' . $src_entry, 0644);
|
||||
@copy($src . '/' . $src_entry, $dest . '/' . $src_entry);
|
||||
@chmod($dest . '/' . $src_entry, 0644);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* the following functions are from the AutoMOD package
|
||||
* @copyright (c) 2008 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
||||
*/
|
||||
|
||||
|
||||
private function directory_delete($dir)
|
||||
{
|
||||
if (!file_exists($dir))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (!is_dir($dir) && is_file($dir))
|
||||
{
|
||||
phpbb_chmod($dir, CHMOD_ALL);
|
||||
return unlink($dir);
|
||||
@chmod($dir, 0644);
|
||||
return @unlink($dir);
|
||||
}
|
||||
|
||||
foreach (scandir($dir) as $item)
|
||||
|
||||
foreach (scandir($dir) as $item)
|
||||
{
|
||||
if ($item == '.' || $item == '..')
|
||||
if ($item == '.' || $item == '..')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!$this->directory_delete($dir . "/" . $item))
|
||||
if (!$this->directory_delete($dir . "/" . $item))
|
||||
{
|
||||
phpbb_chmod($dir . "/" . $item, CHMOD_ALL);
|
||||
if (!$this->directory_delete($dir . "/" . $item))
|
||||
@chmod($dir . "/" . $item, 0644);
|
||||
if (!$this->directory_delete($dir . "/" . $item))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return @rmdir($dir);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Moves files or complete directories
|
||||
*
|
||||
@@ -288,29 +307,29 @@ class portal_upload
|
||||
return sprintf($user->lang['MODULE_UPLOAD_MKDIR_FAILURE'], $dirname_check);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// leave a backup file if it already exists
|
||||
if(file_exists($to))
|
||||
{
|
||||
// remove old backup file first
|
||||
if(file_exists($to . '.bak'))
|
||||
{
|
||||
phpbb_chmod($to . '.bak', CHMOD_ALL);
|
||||
@chmod($to . '.bak', 0644);
|
||||
unlink($to . '.bak');
|
||||
}
|
||||
rename($to, $to . '.bak');
|
||||
phpbb_chmod($to, CHMOD_ALL);
|
||||
@rename($to, $to . '.bak');
|
||||
@chmod($to, 0644);
|
||||
}
|
||||
|
||||
if (!@copy($from, $to))
|
||||
{
|
||||
return sprintf($user->lang['MODULE_COPY_FAILURE'], $to);
|
||||
}
|
||||
@chmod($to, octdec(0644));
|
||||
@chmod($to, 0644);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @author Michal Nazarewicz (from the php manual)
|
||||
* Creates all non-existant directories in a path
|
||||
@@ -345,4 +364,4 @@ class portal_upload
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ class portal_announcements_module
|
||||
// Any announcements present? If not terminate it here.
|
||||
if (sizeof($fetch_news) == 0)
|
||||
{
|
||||
$template->assign_block_vars('announcements_row', array(
|
||||
$template->assign_block_vars('announcements_center_row', array(
|
||||
'S_NO_TOPICS' => true,
|
||||
'S_NOT_LAST' => false
|
||||
));
|
||||
@@ -81,7 +81,7 @@ class portal_announcements_module
|
||||
|
||||
$time = ($config['board3_announcements_day_' . $module_id] == 0) ? 0 : $config['board3_announcements_day_' . $module_id];
|
||||
$post_time = ($time == 0) ? '' : 'AND topic_time > ' . (time() - $time * 86400);
|
||||
|
||||
|
||||
$str_where = '';
|
||||
|
||||
if($permissions == true)
|
||||
@@ -92,7 +92,7 @@ class portal_announcements_module
|
||||
{
|
||||
$disallow_access = array();
|
||||
}
|
||||
|
||||
|
||||
if($config['board3_announcements_forum_exclude_' . $module_id] == true)
|
||||
{
|
||||
$disallow_access = array_merge($disallow_access, $forum_from);
|
||||
@@ -142,7 +142,7 @@ class portal_announcements_module
|
||||
$total_announcements = (int) $db->sql_fetchfield('num_topics');
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
|
||||
$topic_tracking_info = (get_portal_tracking_info($fetch_news));
|
||||
|
||||
if($announcement < 0)
|
||||
@@ -220,7 +220,7 @@ class portal_announcements_module
|
||||
// Grab icons
|
||||
$icons = $cache->obtain_icons();
|
||||
|
||||
$template->assign_block_vars('announcements_row', array(
|
||||
$template->assign_block_vars('announcements_center_row', array(
|
||||
'ATTACH_ICON_IMG' => ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
|
||||
'FORUM_NAME' => ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
|
||||
'TITLE' => $fetch_news[$i]['topic_title'],
|
||||
@@ -261,7 +261,7 @@ class portal_announcements_module
|
||||
{
|
||||
foreach ($fetch_news[$i]['attachments'] as $attachment)
|
||||
{
|
||||
$template->assign_block_vars('announcements_row.attachment', array(
|
||||
$template->assign_block_vars('announcements_center_row.attachment', array(
|
||||
'DISPLAY_ATTACHMENT' => $attachment)
|
||||
);
|
||||
}
|
||||
@@ -280,10 +280,20 @@ class portal_announcements_module
|
||||
// Show "read full" page
|
||||
{
|
||||
$i = $announcement;
|
||||
|
||||
/**
|
||||
* redirect to portal page if the specified announcement does not exist
|
||||
* force #top anchor in order to get rid of the #a anchor
|
||||
*/
|
||||
if (!isset($fetch_news[$i]))
|
||||
{
|
||||
redirect(append_sid($phpbb_root_path . 'portal.' . $phpEx, '#top'));
|
||||
}
|
||||
|
||||
$forum_id = $fetch_news[$i]['forum_id'];
|
||||
$topic_id = $fetch_news[$i]['topic_id'];
|
||||
$topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_id, $global_announce_list = false);
|
||||
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
|
||||
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
|
||||
$open_bracket = '[ ';
|
||||
$close_bracket = ' ]';
|
||||
$read_full = $user->lang['BACK'];
|
||||
@@ -295,8 +305,8 @@ class portal_announcements_module
|
||||
{
|
||||
$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_announcements, $config['board3_number_of_announcements_' . $module_id], $start, 'announcements');
|
||||
}
|
||||
|
||||
$template->assign_block_vars('announcements_row', array(
|
||||
|
||||
$template->assign_block_vars('announcements_center_row', array(
|
||||
'ATTACH_ICON_IMG' => ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
|
||||
'FORUM_NAME' => ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
|
||||
'TITLE' => $fetch_news[$i]['topic_title'],
|
||||
@@ -325,7 +335,7 @@ class portal_announcements_module
|
||||
{
|
||||
foreach ($fetch_news[$i]['attachments'] as $attachment)
|
||||
{
|
||||
$template->assign_block_vars('announcements_row.attachment', array(
|
||||
$template->assign_block_vars('announcements_center_row.attachment', array(
|
||||
'DISPLAY_ATTACHMENT' => $attachment)
|
||||
);
|
||||
}
|
||||
@@ -358,11 +368,11 @@ class portal_announcements_module
|
||||
|
||||
if ($config['board3_announcements_style_' . $module_id])
|
||||
{
|
||||
return 'announcements_compact.html';
|
||||
return 'announcements_center_compact.html';
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'announcements.html';
|
||||
return 'announcements_center.html';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,7 +409,7 @@ class portal_announcements_module
|
||||
set_config('board3_announcements_archive_' . $module_id, 1);
|
||||
set_config('board3_announcements_permissions_' . $module_id, 1);
|
||||
set_config('board3_show_announcements_replies_views_' . $module_id, 1);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -422,14 +432,14 @@ class portal_announcements_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Create forum select box
|
||||
public function select_forums($value, $key, $module_id)
|
||||
{
|
||||
global $user, $config;
|
||||
|
||||
$forum_list = make_forum_select(false, false, true, true, true, false, true);
|
||||
|
||||
|
||||
$selected = array();
|
||||
if(isset($config[$key]) && strlen($config[$key]) > 0)
|
||||
{
|
||||
@@ -446,18 +456,15 @@ class portal_announcements_module
|
||||
return $s_forum_options;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Store selected forums
|
||||
public function store_selected_forums($key, $module_id)
|
||||
{
|
||||
global $db, $cache;
|
||||
|
||||
|
||||
// Get selected forums
|
||||
$values = request_var($key, array(0 => ''));
|
||||
|
||||
$news = implode(',', $values);
|
||||
|
||||
set_config($key, $news);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,204 +49,12 @@ class portal_attachments_module
|
||||
|
||||
public function get_template_center($module_id)
|
||||
{
|
||||
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
|
||||
|
||||
$attach_forums = false;
|
||||
$where = '';
|
||||
$filetypes = array();
|
||||
|
||||
// Get filetypes and put them into an array
|
||||
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
|
||||
{
|
||||
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
|
||||
}
|
||||
|
||||
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
|
||||
{
|
||||
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
|
||||
if($config['board3_attachments_forum_exclude_' . $module_id])
|
||||
{
|
||||
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
}
|
||||
|
||||
if(sizeof($forum_list))
|
||||
{
|
||||
$attach_forums = true;
|
||||
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
|
||||
}
|
||||
|
||||
if(sizeof($filetypes))
|
||||
{
|
||||
if($config['board3_attachments_exclude_' . $module_id])
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
|
||||
}
|
||||
}
|
||||
|
||||
if($attach_forums === true)
|
||||
{
|
||||
// Just grab all attachment info from database
|
||||
$sql = 'SELECT
|
||||
a.*,
|
||||
t.forum_id
|
||||
FROM
|
||||
' . ATTACHMENTS_TABLE . ' a,
|
||||
' . TOPICS_TABLE . ' t
|
||||
WHERE
|
||||
a.topic_id <> 0
|
||||
AND a.topic_id = t.topic_id
|
||||
' . $where . '
|
||||
ORDER BY
|
||||
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
|
||||
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
|
||||
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
|
||||
|
||||
$replace = character_limit(utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.')), $config['board3_attach_max_length_' . $module_id]);
|
||||
|
||||
$template->assign_block_vars('attach', array(
|
||||
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
|
||||
'FILETIME' => $user->format_date($row['filetime']),
|
||||
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
|
||||
'FILENAME' => $replace,
|
||||
'REAL_FILENAME' => $row['real_filename'],
|
||||
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
|
||||
'ATTACH_ID' => $row['attach_id'],
|
||||
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
|
||||
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
|
||||
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
|
||||
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
|
||||
));
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
|
||||
}
|
||||
|
||||
return 'attachments_center.html';
|
||||
return $this->parse_template($module_id, 'center');
|
||||
}
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
|
||||
|
||||
$attach_forums = false;
|
||||
$where = '';
|
||||
$filetypes = array();
|
||||
|
||||
// Get filetypes and put them into an array
|
||||
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
|
||||
{
|
||||
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
|
||||
}
|
||||
|
||||
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
|
||||
{
|
||||
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
|
||||
if($config['board3_attachments_forum_exclude_' . $module_id])
|
||||
{
|
||||
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
}
|
||||
|
||||
if(sizeof($forum_list))
|
||||
{
|
||||
$attach_forums = true;
|
||||
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
|
||||
}
|
||||
|
||||
if(sizeof($filetypes))
|
||||
{
|
||||
if($config['board3_attachments_exclude_' . $module_id])
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
|
||||
}
|
||||
}
|
||||
|
||||
if($attach_forums === true)
|
||||
{
|
||||
// Just grab all attachment info from database
|
||||
$sql = 'SELECT
|
||||
a.*,
|
||||
t.forum_id
|
||||
FROM
|
||||
' . ATTACHMENTS_TABLE . ' a,
|
||||
' . TOPICS_TABLE . ' t
|
||||
WHERE
|
||||
a.topic_id <> 0
|
||||
AND a.topic_id = t.topic_id
|
||||
' . $where . '
|
||||
ORDER BY
|
||||
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
|
||||
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
|
||||
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
|
||||
|
||||
$replace = character_limit(utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.')), $config['board3_attach_max_length_' . $module_id]);
|
||||
|
||||
$template->assign_block_vars('attach', array(
|
||||
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
|
||||
'FILETIME' => $user->format_date($row['filetime']),
|
||||
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
|
||||
'FILENAME' => $replace,
|
||||
'REAL_FILENAME' => $row['real_filename'],
|
||||
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
|
||||
'ATTACH_ID' => $row['attach_id'],
|
||||
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
|
||||
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
|
||||
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
|
||||
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
|
||||
));
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
|
||||
}
|
||||
|
||||
return 'attachments_side.html';
|
||||
return $this->parse_template($module_id, 'side');
|
||||
}
|
||||
|
||||
public function get_template_acp($module_id)
|
||||
@@ -295,29 +103,29 @@ class portal_attachments_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Create select box for attachment filetype
|
||||
public function select_filetype($value, $key, $module_id)
|
||||
{
|
||||
global $db, $user, $config;
|
||||
|
||||
|
||||
// Get extensions
|
||||
$sql = 'SELECT *
|
||||
FROM ' . EXTENSIONS_TABLE . '
|
||||
ORDER BY extension ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$extensions[] = $row;
|
||||
}
|
||||
|
||||
|
||||
$selected = array();
|
||||
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
|
||||
{
|
||||
$selected = explode(',', $config['board3_attachments_filetype_' . $module_id]);
|
||||
}
|
||||
|
||||
|
||||
// Build options
|
||||
$ext_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
|
||||
foreach ($extensions as $id => $ext)
|
||||
@@ -325,31 +133,31 @@ class portal_attachments_module
|
||||
$ext_options .= '<option value="' . $ext['extension'] . '"' . ((in_array($ext['extension'], $selected)) ? ' selected="selected"' : '') . '>' . $ext['extension'] . '</option>';
|
||||
}
|
||||
$ext_options .= '</select>';
|
||||
|
||||
|
||||
return $ext_options;
|
||||
}
|
||||
|
||||
|
||||
// Store selected filetypes
|
||||
public function store_filetypes($key, $module_id)
|
||||
{
|
||||
global $db, $cache;
|
||||
|
||||
|
||||
// Get selected extensions
|
||||
$values = request_var($key, array(0 => ''));
|
||||
|
||||
|
||||
$filetypes = implode(',', $values);
|
||||
|
||||
|
||||
set_config('board3_attachments_filetype_' . $module_id, $filetypes);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Create forum select box
|
||||
public function select_forums($value, $key)
|
||||
{
|
||||
global $user, $config;
|
||||
|
||||
$forum_list = make_forum_select(false, false, true, true, true, false, true);
|
||||
|
||||
|
||||
$selected = array();
|
||||
if(isset($config[$key]) && strlen($config[$key]) > 0)
|
||||
{
|
||||
@@ -366,18 +174,123 @@ class portal_attachments_module
|
||||
return $s_forum_options;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Store selected forums
|
||||
public function store_selected_forums($key)
|
||||
{
|
||||
global $db, $cache;
|
||||
|
||||
|
||||
// Get selected extensions
|
||||
$values = request_var($key, array(0 => ''));
|
||||
|
||||
$news = implode(',', $values);
|
||||
|
||||
set_config($key, $news);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse template variables for module
|
||||
*
|
||||
* @param int $module_id Module ID
|
||||
* @param string $type Module type (center or side)
|
||||
*/
|
||||
protected function parse_template($module_id, $type)
|
||||
{
|
||||
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
|
||||
|
||||
$attach_forums = false;
|
||||
$where = '';
|
||||
$filetypes = array();
|
||||
|
||||
// Get filetypes and put them into an array
|
||||
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
|
||||
{
|
||||
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
|
||||
}
|
||||
|
||||
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
|
||||
{
|
||||
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
|
||||
if($config['board3_attachments_forum_exclude_' . $module_id])
|
||||
{
|
||||
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
|
||||
}
|
||||
|
||||
if(sizeof($forum_list))
|
||||
{
|
||||
$attach_forums = true;
|
||||
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
|
||||
}
|
||||
|
||||
if(sizeof($filetypes))
|
||||
{
|
||||
if($config['board3_attachments_exclude_' . $module_id])
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
|
||||
}
|
||||
}
|
||||
|
||||
if($attach_forums === true)
|
||||
{
|
||||
// Just grab all attachment info from database
|
||||
$sql = 'SELECT
|
||||
a.*,
|
||||
t.forum_id
|
||||
FROM
|
||||
' . ATTACHMENTS_TABLE . ' a,
|
||||
' . TOPICS_TABLE . ' t
|
||||
WHERE
|
||||
a.topic_id <> 0
|
||||
AND a.topic_id = t.topic_id
|
||||
' . $where . '
|
||||
ORDER BY
|
||||
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
|
||||
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
|
||||
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
|
||||
|
||||
$raw_filename = utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.'));
|
||||
$replace = character_limit($raw_filename, $config['board3_attach_max_length_' . $module_id]);
|
||||
|
||||
$template->assign_block_vars('attach_' . $type, array(
|
||||
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
|
||||
'FILETIME' => $user->format_date($row['filetime']),
|
||||
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
|
||||
'FILENAME' => $replace,
|
||||
'REAL_FILENAME' => $row['real_filename'],
|
||||
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
|
||||
'ATTACH_ID' => $row['attach_id'],
|
||||
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
|
||||
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
|
||||
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
|
||||
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
|
||||
));
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
|
||||
}
|
||||
|
||||
return 'attachments_' . $type . '.html';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,8 @@ class portal_birthday_list_module
|
||||
while ($cache_days > 0)
|
||||
{
|
||||
$day = getdate(time() + 86400 * $cache_days + $user->timezone + $user->dst - date('Z'));
|
||||
$sql_days .= " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $day['mday'], $day['mon'])) . "%'";
|
||||
$like_expression = $db->sql_like_expression($db->any_char . (sprintf('%2d-%2d-', $day['mday'], $day['mon'])) . $db->any_char);
|
||||
$sql_days .= " OR u.user_birthday " . $like_expression . "";
|
||||
$cache_days--;
|
||||
}
|
||||
|
||||
@@ -92,21 +93,20 @@ class portal_birthday_list_module
|
||||
{
|
||||
if (substr($row['user_birthday'], 0, 6) == $today)
|
||||
{
|
||||
$birthday_list .= '<span style="float:left;"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;">' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . '</span><span style="float: right;">';
|
||||
if ($age = (int) substr($row['user_birthday'], -4))
|
||||
{
|
||||
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
|
||||
}
|
||||
$birthday_list .= '</span><br style="clear: both" />';
|
||||
$birthday_list = true;
|
||||
$template->assign_block_vars('board3_birthday_list', array(
|
||||
'USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : '',
|
||||
));
|
||||
}
|
||||
elseif ($config['board3_birthdays_ahead_' . $module_id] > 0)
|
||||
{
|
||||
$birthday_ahead_list .= '<span style="float:left;"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><span title="' . format_birthday($row['user_birthday'], 'd M') . '">' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . '</span></span><span style="float: right;">';
|
||||
if ($age = (int) substr($row['user_birthday'], -4))
|
||||
{
|
||||
$birthday_ahead_list .= ' (' . ($now['year'] - $age) . ')';
|
||||
}
|
||||
$birthday_ahead_list .= '</span><br style="clear: both" />';
|
||||
$birthday_ahead_list = true;
|
||||
$template->assign_block_vars('board3_birthday_ahead_list', array(
|
||||
'USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
|
||||
'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : '',
|
||||
'DATE' => $this->format_birthday($user, $row['user_birthday'], 'd M'),
|
||||
));
|
||||
}
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
@@ -155,4 +155,25 @@ class portal_birthday_list_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format birthday for span title
|
||||
*
|
||||
* @param object $user phpBB user object
|
||||
* @param string $birthday User's birthday from database
|
||||
* @param string $date_settings Settings for date() function
|
||||
*/
|
||||
protected function format_birthday($user, $birthday, $date_settings)
|
||||
{
|
||||
if (!preg_match('/(?:[0-9])+-+(?:[0-9]{2})+-+(?:[0-9]{4})?/', $birthday, $match))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
$date = explode('-', $birthday);
|
||||
$time = mktime(0, 0, 0, $date[1], $date[0], (isset($date[2])) ? $date[2] : 0);
|
||||
$lang_dates = array_filter($user->lang['datetime'], 'is_string');
|
||||
|
||||
return strtr(date($date_settings, $time), $lang_dates);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,22 +46,29 @@ class portal_calendar_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_calendar_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
*/
|
||||
public $custom_acp_tpl = 'acp_portal_calendar';
|
||||
|
||||
|
||||
/**
|
||||
* additional variables
|
||||
*/
|
||||
private $mini_cal_fdow;
|
||||
|
||||
/**
|
||||
* constants
|
||||
*/
|
||||
const TIME_DAY = 86400;
|
||||
const DAYS_PER_WEEK = 6; // indexes start at 0
|
||||
const MONTHS_PER_YEAR = 12;
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $user, $phpbb_root_path, $phpEx;
|
||||
|
||||
global $config, $template, $user, $phpbb_root_path, $phpEx, $db;
|
||||
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
// 0 = Sunday first - 1 = Monday first. ;-)
|
||||
@@ -75,26 +82,26 @@ class portal_calendar_module
|
||||
}
|
||||
|
||||
// get the calendar month
|
||||
$mini_cal_month = 0;
|
||||
$this->mini_cal_month = 0;
|
||||
if(isset($_GET['m' . $module_id]) || isset($_POST['m' . $module_id]))
|
||||
{
|
||||
$mini_cal_month = request_var('m' . $module_id, 0);
|
||||
$this->mini_cal_month = request_var('m' . $module_id, 0);
|
||||
}
|
||||
|
||||
// initialise some variables
|
||||
$today_timestamp = time() + $user->timezone + $user->dst;
|
||||
$mini_cal_today = date('Ymd', time() + $user->timezone + $user->dst - date('Z'));
|
||||
$s_cal_month = ($mini_cal_month != 0) ? $mini_cal_month . ' month' : $mini_cal_today;
|
||||
$s_cal_month = ($this->mini_cal_month != 0) ? $this->mini_cal_month . ' month' : $mini_cal_today;
|
||||
$this->getMonth($s_cal_month);
|
||||
$mini_cal_count = $this->mini_cal_fdow;
|
||||
$mini_cal_this_year = $this->dateYYYY;
|
||||
$mini_cal_this_month = $this->dateMM;
|
||||
$mini_cal_this_day = $this->dateDD;
|
||||
$mini_cal_month_days = $this->daysMonth;
|
||||
|
||||
|
||||
// output our general calendar bits
|
||||
$down = $mini_cal_month - 1;
|
||||
$up = $mini_cal_month + 1;
|
||||
$down = $this->mini_cal_month - 1;
|
||||
$up = $this->mini_cal_month + 1;
|
||||
$prev_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m$module_id=$down#minical$module_id") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_left_arrow.png' . '" title="' . $user->lang['VIEW_PREVIOUS_MONTH'] . '" height="16" width="16" alt="<<" /></a>';
|
||||
$next_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m$module_id=$up#minical$module_id") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_right_arrow.png' . '" title="' . $user->lang['VIEW_NEXT_MONTH'] . '" height="16" width="16" alt=">>" /></a>';
|
||||
|
||||
@@ -115,7 +122,7 @@ class portal_calendar_module
|
||||
));
|
||||
|
||||
// output the days for the current month
|
||||
for($i=0; $i < $mini_cal_month_days;)
|
||||
for($i = 0; $i < $mini_cal_month_days;)
|
||||
{
|
||||
// is this the first day of the week?
|
||||
if($mini_cal_count == $this->mini_cal_fdow)
|
||||
@@ -135,7 +142,7 @@ class portal_calendar_module
|
||||
|
||||
$template->assign_block_vars('minical.mini_cal_row.mini_cal_days', array(
|
||||
'MINI_CAL_DAY' => ($mini_cal_count == 0) ? '<span style="color: ' . $config['board3_calendar_sunday_color_' . $module_id] . ';">' . $mini_cal_day . '</span>' : $mini_cal_day)
|
||||
);
|
||||
);
|
||||
$i++;
|
||||
}
|
||||
// no day
|
||||
@@ -143,11 +150,11 @@ class portal_calendar_module
|
||||
{
|
||||
$template->assign_block_vars('minical.mini_cal_row.mini_cal_days', array(
|
||||
'MINI_CAL_DAY' => ' ')
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
// is this the last day of the week?
|
||||
if ($mini_cal_count == 6)
|
||||
if ($mini_cal_count == self::DAYS_PER_WEEK)
|
||||
{
|
||||
// if so then reset the count
|
||||
$mini_cal_count = 0;
|
||||
@@ -173,46 +180,64 @@ class portal_calendar_module
|
||||
$time_ary[$key] = $cur_event['start_time'];
|
||||
}
|
||||
array_multisort($time_ary, SORT_NUMERIC, $events);
|
||||
|
||||
|
||||
$groups_ary = get_user_groups();
|
||||
|
||||
foreach($events as $key => $cur_event)
|
||||
{
|
||||
if($cur_event['start_time'] >= $today_timestamp || $cur_event['end_time'] >= $today_timestamp || (($cur_event['start_time'] + 86400) >= $today_timestamp && $cur_event['all_day']))
|
||||
if(($cur_event['start_time'] + $user->timezone + $user->dst) >= $today_timestamp ||
|
||||
($cur_event['end_time'] + $user->timezone + $user->dst) >= $today_timestamp ||
|
||||
(($cur_event['start_time'] + $user->timezone + $user->dst + self::TIME_DAY) >= $today_timestamp && $cur_event['all_day']))
|
||||
{
|
||||
// check if this is an external link
|
||||
if (isset($cur_event['url']) && strpos($cur_event['url'], generate_board_url()) === false)
|
||||
$cur_permissions = explode(',', $cur_event['permission']);
|
||||
$permission_check = array_intersect($groups_ary, $cur_permissions);
|
||||
|
||||
if(!empty($permission_check) || $cur_event['permission'] == '')
|
||||
{
|
||||
$is_external = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$is_external = false;
|
||||
}
|
||||
// current events
|
||||
if((($cur_event['start_time'] + 86400) >= $today_timestamp && $cur_event['all_day']) || ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp))
|
||||
{
|
||||
$template->assign_block_vars('minical.cur_events', array(
|
||||
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
|
||||
'EVENT_TITLE' => $cur_event['title'],
|
||||
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
||||
'END_TIME' => (!empty($cur_event['end_time'])) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : false,
|
||||
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
||||
'ALL_DAY' => ($cur_event['all_day']) ? true : false,
|
||||
'MODULE_ID' => $module_id,
|
||||
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_block_vars('minical.upcoming_events', array(
|
||||
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
|
||||
'EVENT_TITLE' => $cur_event['title'],
|
||||
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
||||
'END_TIME' => $user->format_date($cur_event['end_time'], 'j. M Y, H:i'),
|
||||
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
||||
'ALL_DAY' => (($cur_event['start_time'] - $cur_event['end_time']) == 1) ? true : false,
|
||||
'MODULE_ID' => $module_id,
|
||||
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
|
||||
));
|
||||
// check if this is an external link
|
||||
if (isset($cur_event['url']) && strpos($cur_event['url'], generate_board_url()) === false)
|
||||
{
|
||||
$is_external = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$is_external = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Current events
|
||||
*
|
||||
* Events are treated as current if the following is met:
|
||||
* - We have an all day event and the start of that event is less than 1 day (86400 seconds) away
|
||||
* - We have a normal event with a start that is less then 1 day away and that hasn't ended yet
|
||||
*/
|
||||
if((($cur_event['start_time'] + $user->timezone + $user->dst - $today_timestamp) <= self::TIME_DAY && $cur_event['all_day']) ||
|
||||
(($cur_event['start_time'] + $user->timezone + $user->dst - $today_timestamp) <= self::TIME_DAY && ($cur_event['end_time'] + $user->timezone + $user->dst) >= $today_timestamp))
|
||||
{
|
||||
$template->assign_block_vars('minical.cur_events', array(
|
||||
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
|
||||
'EVENT_TITLE' => $cur_event['title'],
|
||||
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
||||
'END_TIME' => (!empty($cur_event['end_time'])) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : false,
|
||||
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
||||
'ALL_DAY' => ($cur_event['all_day']) ? true : false,
|
||||
'MODULE_ID' => $module_id,
|
||||
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_block_vars('minical.upcoming_events', array(
|
||||
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
|
||||
'EVENT_TITLE' => $cur_event['title'],
|
||||
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
|
||||
'END_TIME' => (!$cur_event['all_day']) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : '',
|
||||
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
|
||||
'ALL_DAY' => (($cur_event['start_time'] - $cur_event['end_time']) == 1) ? true : false,
|
||||
'MODULE_ID' => $module_id,
|
||||
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -250,7 +275,7 @@ class portal_calendar_module
|
||||
set_config('board3_display_events_' . $module_id, 0);
|
||||
set_config('board3_events_' . $module_id, '');
|
||||
set_config('board3_events_url_new_window_' . $module_id, 0);
|
||||
|
||||
|
||||
set_portal_config('board3_calendar_events_' . $module_id, '');
|
||||
return true;
|
||||
}
|
||||
@@ -258,13 +283,13 @@ class portal_calendar_module
|
||||
public function uninstall($module_id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
|
||||
$del_config = array(
|
||||
'board3_calendar_events_' . $module_id,
|
||||
);
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
|
||||
$db->sql_query($sql);
|
||||
|
||||
$del_config = array(
|
||||
@@ -280,11 +305,11 @@ class portal_calendar_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
public function manage_events($value, $key, $module_id)
|
||||
{
|
||||
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path;
|
||||
|
||||
|
||||
$action = request_var('action', '');
|
||||
$action = (isset($_POST['add'])) ? 'add' : $action;
|
||||
$action = (isset($_POST['save'])) ? 'save' : $action;
|
||||
@@ -294,7 +319,7 @@ class portal_calendar_module
|
||||
$events = (strlen($portal_config['board3_calendar_events_' . $module_id]) >= 1) ? $this->utf_unserialize($portal_config['board3_calendar_events_' . $module_id]) : array();
|
||||
|
||||
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&mode=config&module_id=' . $module_id);
|
||||
|
||||
|
||||
switch($action)
|
||||
{
|
||||
// Save changes
|
||||
@@ -314,7 +339,7 @@ class portal_calendar_module
|
||||
$event_url = request_var('event_url', ' ');
|
||||
$event_permission = request_var('permission-setting-calendar', array(0 => ''));
|
||||
$groups_ary = array();
|
||||
|
||||
|
||||
/*
|
||||
* parse the event time
|
||||
* first check for obvious errors, we don't want to waste server resources
|
||||
@@ -338,7 +363,7 @@ class portal_calendar_module
|
||||
$start_year = (int) substr($event_start_day, $second_start_hyphen + 1, $start_day_length - $second_start_hyphen);
|
||||
$start_hour = (int) substr($event_start_time, 0, $start_colon_pos);
|
||||
$start_minute = (int) substr($event_start_time, $start_colon_pos + 1, ($start_time_length - $start_colon_pos) - 1);
|
||||
|
||||
|
||||
if(!$event_all_day)
|
||||
{
|
||||
$first_end_hyphen = strpos($event_end_day, '-', 0);
|
||||
@@ -352,12 +377,12 @@ class portal_calendar_module
|
||||
$end_hour = (int) substr($event_end_time, 0, $end_colon_pos);
|
||||
$end_minute = (int) substr($event_end_time, $end_colon_pos + 1, ($end_time_length - $end_colon_pos) - 1);
|
||||
}
|
||||
|
||||
|
||||
// UNIX timestamps
|
||||
$start_time = gmmktime($start_hour, $start_minute, 0, $start_month, $start_day, $start_year) - $user->timezone - $user->dst;
|
||||
$end_time = (!$event_all_day) ? gmmktime($end_hour, $end_minute, 0, $end_month, $end_day, $end_year) - $user->timezone - $user->dst : '';
|
||||
|
||||
if(($end_time) <= time() && !(($start_time + 86400) >= time() && $event_all_day))
|
||||
if(($end_time) <= time() && !(($start_time + self::TIME_DAY) >= time() && $event_all_day))
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_CALENDAR_EVENT_PAST']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
@@ -365,7 +390,7 @@ class portal_calendar_module
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_CALENDAR_EVENT_START_FIRST']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
// get groups and check if the selected groups actually exist
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -376,7 +401,7 @@ class portal_calendar_module
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$event_permission = array_intersect($event_permission, $groups_ary);
|
||||
$event_permission = implode(',', $event_permission);
|
||||
|
||||
@@ -395,7 +420,7 @@ class portal_calendar_module
|
||||
if (isset($link_id) && $link_id < sizeof($events))
|
||||
{
|
||||
$message = $user->lang['EVENT_UPDATED'];
|
||||
|
||||
|
||||
$events[$link_id] = array(
|
||||
'title' => $event_title,
|
||||
'desc' => $event_desc,
|
||||
@@ -411,7 +436,7 @@ class portal_calendar_module
|
||||
else
|
||||
{
|
||||
$message = $user->lang['EVENT_ADDED'];
|
||||
|
||||
|
||||
$events[] = array(
|
||||
'title' => $event_title,
|
||||
'desc' => $event_desc,
|
||||
@@ -423,7 +448,7 @@ class portal_calendar_module
|
||||
);
|
||||
add_log('admin', 'LOG_PORTAL_EVENT_ADDED', $event_title);
|
||||
}
|
||||
|
||||
|
||||
// we sort the $events array by the start time
|
||||
foreach($events as $key => $cur_event)
|
||||
{
|
||||
@@ -451,7 +476,7 @@ class portal_calendar_module
|
||||
// delete the selected link and reset the array numbering afterwards
|
||||
array_splice($events, $link_id, 1);
|
||||
$events = array_merge($events);
|
||||
|
||||
|
||||
$board3_events_array = serialize($events);
|
||||
set_portal_config('board3_calendar_events_' . $module_id, $board3_events_array);
|
||||
|
||||
@@ -471,7 +496,7 @@ class portal_calendar_module
|
||||
case 'edit':
|
||||
case 'add':
|
||||
$event_all_day = (isset($events[$link_id]['all_day']) && $events[$link_id]['all_day'] == true) ? true : false;
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'EVENT_TITLE' => (isset($events[$link_id]['title']) && $action != 'add') ? $events[$link_id]['title'] : '',
|
||||
'EVENT_DESC' => (isset($events[$link_id]['desc']) && $action != 'add') ? $events[$link_id]['desc'] : '',
|
||||
@@ -487,9 +512,9 @@ class portal_calendar_module
|
||||
|
||||
'S_EDIT' => true,
|
||||
));
|
||||
|
||||
|
||||
$groups_ary = (isset($events[$link_id]['permission'])) ? explode(',', $events[$link_id]['permission']) : array();
|
||||
|
||||
|
||||
// get group info from database and assign the block vars
|
||||
$sql = 'SELECT group_id, group_name
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -509,13 +534,13 @@ class portal_calendar_module
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
for ($i = 0; $i < sizeof($events); $i++)
|
||||
{
|
||||
$event_all_day = ($events[$i]['all_day'] == true) ? true : false;
|
||||
$start_time_format = (!intval($user->format_date($events[$i]['start_time'], 'H')) && !intval($user->format_date($events[$i]['start_time'], 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
|
||||
$end_time_format = (!intval($user->format_date($events[$i]['end_time'], 'H')) && !intval($user->format_date($events[$i]['end_time'], 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
|
||||
|
||||
|
||||
$template->assign_block_vars('events', array(
|
||||
'EVENT_TITLE' => ($action != 'add') ? ((isset($user->lang[$events[$i]['title']])) ? $user->lang[$events[$i]['title']] : $events[$i]['title']) : '',
|
||||
'EVENT_DESC' => ($action != 'add') ? $events[$i]['desc'] : '',
|
||||
@@ -528,14 +553,14 @@ class portal_calendar_module
|
||||
'EVENT_ALL_DAY' => $event_all_day,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function update_events($key, $module_id)
|
||||
{
|
||||
$this->manage_events('', $key, $module_id);
|
||||
}
|
||||
|
||||
|
||||
private $dateYYY; // year in numeric format (YYYY)
|
||||
private $dateMM; // month in numeric format (MM)
|
||||
private $dateDD; // day in numeric format (DD)
|
||||
@@ -549,6 +574,8 @@ class portal_calendar_module
|
||||
**/
|
||||
private function makeTimestamp($date)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$this->stamp = strtotime($date);
|
||||
return ($this->stamp);
|
||||
}
|
||||
@@ -558,33 +585,67 @@ class portal_calendar_module
|
||||
**/
|
||||
private function getMonth($callDate)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$this->makeTimestamp($callDate);
|
||||
// last or first day of some months need to be treated in a special way
|
||||
if (!empty($this->mini_cal_month))
|
||||
{
|
||||
$today_timestamp = time() + $user->timezone + $user->dst;
|
||||
$cur_month = date("n", $today_timestamp);
|
||||
$correct_month = $cur_month + $this->mini_cal_month;
|
||||
|
||||
// move back or forth the correct number of years
|
||||
while ($correct_month < 1 || $correct_month > self::MONTHS_PER_YEAR)
|
||||
{
|
||||
if ($correct_month < 1)
|
||||
{
|
||||
$correct_month = $correct_month + self::MONTHS_PER_YEAR;
|
||||
}
|
||||
else
|
||||
{
|
||||
$correct_month = $correct_month - self::MONTHS_PER_YEAR;
|
||||
}
|
||||
}
|
||||
|
||||
// fix incorrect months
|
||||
while (date("n", $this->stamp) != $correct_month)
|
||||
{
|
||||
if (date("n", $this->stamp) > $correct_month)
|
||||
{
|
||||
$this->stamp = $this->stamp - self::TIME_DAY; // go back one day
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->stamp = $this->stamp + self::TIME_DAY; // move forward one day
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->dateYYYY = date("Y", $this->stamp);
|
||||
$this->dateMM = date("n", $this->stamp);
|
||||
$this->ext_dateMM = date("F", $this->stamp);
|
||||
$this->dateDD = date("d", $this->stamp);
|
||||
$this->daysMonth = date("t", $this->stamp);
|
||||
|
||||
for($i=1; $i < $this->daysMonth+1; $i++)
|
||||
|
||||
for ($i = 1; $i < $this->daysMonth + 1; $i++)
|
||||
{
|
||||
$this->makeTimestamp("$i $this->ext_dateMM $this->dateYYYY");
|
||||
$this->makeTimestamp("$i {$this->ext_dateMM} {$this->dateYYYY}");
|
||||
$this->day[] = array(
|
||||
"0" => "$i",
|
||||
"1" => $this->dateMM,
|
||||
"2" => $this->dateYYYY,
|
||||
"3" => (date('w', $this->stamp))
|
||||
'0' => "$i",
|
||||
'1' => $this->dateMM,
|
||||
'2' => $this->dateYYYY,
|
||||
'3' => date('w', $this->stamp)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Unserialize links array
|
||||
private function utf_unserialize($serial_str)
|
||||
{
|
||||
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
|
||||
return unserialize($out);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* validate URLs and execute apppend_sid if necessary
|
||||
*/
|
||||
@@ -595,19 +656,19 @@ class portal_calendar_module
|
||||
$url = str_replace("\r\n", "\n", str_replace('\"', '"', trim($url)));
|
||||
$url = str_replace(' ', '%20', $url);
|
||||
$url = str_replace('&', '&', $url);
|
||||
|
||||
|
||||
// if there is no scheme, then add http schema
|
||||
if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}#i', $url))
|
||||
{
|
||||
$url = 'http://' . $url;
|
||||
}
|
||||
|
||||
|
||||
// Is this a link to somewhere inside this board? If so then run reapply_sid()
|
||||
if (strpos($url, generate_board_url()) !== false)
|
||||
{
|
||||
$url = reapply_sid($url);
|
||||
}
|
||||
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_custom_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_custom_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
@@ -55,72 +55,12 @@ class portal_custom_module
|
||||
|
||||
public function get_template_center($module_id)
|
||||
{
|
||||
global $config, $template, $portal_config, $user;
|
||||
|
||||
/*
|
||||
* Run generate_text_for_display if the user uses BBCode for designing his custom block
|
||||
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
|
||||
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
|
||||
*/
|
||||
if ($config['board3_custom_' . $module_id . '_bbcode'])
|
||||
{
|
||||
// Generate text for display and assign template vars
|
||||
$uid = $config['board3_custom_' . $module_id . '_uid'];
|
||||
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
|
||||
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
|
||||
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
|
||||
}
|
||||
else
|
||||
{
|
||||
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
|
||||
}
|
||||
|
||||
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
|
||||
|
||||
if(!empty($assign_code))
|
||||
{
|
||||
return array(
|
||||
'template' => 'custom_center.html',
|
||||
'title' => $title,
|
||||
'code' => $assign_code,
|
||||
'image_src' => '', // no image for center blocks
|
||||
);
|
||||
}
|
||||
return $this->parse_template($module_id);
|
||||
}
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $portal_config, $user;
|
||||
|
||||
/*
|
||||
* Run generate_text_for_display if the user uses BBCode for designing his custom block
|
||||
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
|
||||
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
|
||||
*/
|
||||
if ($config['board3_custom_' . $module_id . '_bbcode'])
|
||||
{
|
||||
// Generate text for display and assign template vars
|
||||
$uid = $config['board3_custom_' . $module_id . '_uid'];
|
||||
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
|
||||
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
|
||||
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
|
||||
}
|
||||
else
|
||||
{
|
||||
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
|
||||
}
|
||||
|
||||
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
|
||||
|
||||
if(!empty($assign_code))
|
||||
{
|
||||
return array(
|
||||
'template' => 'custom_side.html',
|
||||
'title' => $title,
|
||||
'code' => $assign_code,
|
||||
'image_src' => (!empty($config['board3_custom_' . $module_id . '_image_src'])) ? $config['board3_custom_' . $module_id . '_image_src'] : $this->image_src,
|
||||
);
|
||||
}
|
||||
return $this->parse_template($module_id, 'side');
|
||||
}
|
||||
|
||||
public function get_template_acp($module_id)
|
||||
@@ -159,7 +99,7 @@ class portal_custom_module
|
||||
);
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
|
||||
$check = $db->sql_query($sql);
|
||||
|
||||
$del_config = array(
|
||||
@@ -174,19 +114,19 @@ class portal_custom_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return ((!$check) ? $check : $db->sql_query($sql)); // if something went wrong, make sure we are aware of the first query
|
||||
}
|
||||
|
||||
|
||||
public function manage_custom($value, $key, $module_id)
|
||||
{
|
||||
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path, $phpbb_root_path;
|
||||
|
||||
|
||||
$action = (isset($_POST['reset'])) ? 'reset' : '';
|
||||
$action = (isset($_POST['submit'])) ? 'save' : $action;
|
||||
$action = (isset($_POST['preview'])) ? 'preview' : $action;
|
||||
|
||||
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&mode=config&module_id=' . $module_id);
|
||||
|
||||
|
||||
switch($action)
|
||||
{
|
||||
// Save changes
|
||||
@@ -199,7 +139,7 @@ class portal_custom_module
|
||||
$custom_code = utf8_normalize_nfc(request_var('custom_code', '', true));
|
||||
$custom_bbcode = request_var('custom_use_bbcode', 1); // default to BBCode
|
||||
$custom_permission = request_var('permission-setting', array(0 => ''));
|
||||
$custom_title = utf8_normalize_nfc(request_var('module_name', ''));
|
||||
$custom_title = utf8_normalize_nfc(request_var('module_name', '', true));
|
||||
$custom_image_src = utf8_normalize_nfc(request_var('module_image', ''));
|
||||
$groups_ary = array();
|
||||
$uid = $bitfield = $flags = '';
|
||||
@@ -208,14 +148,13 @@ class portal_custom_module
|
||||
{
|
||||
generate_text_for_storage($custom_code, $uid, $bitfield, $flags, true, true, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// first check for obvious errors, we don't want to waste server resources
|
||||
if(empty($custom_code))
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_CUSTOM_CODE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
// get groups and check if the selected groups actually exist
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -226,12 +165,21 @@ class portal_custom_module
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$custom_permission = array_intersect($custom_permission, $groups_ary);
|
||||
$custom_permission = implode(',', $custom_permission);
|
||||
|
||||
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_CUSTOM'] . ' - ' . $config['board3_custom_' . $module_id . '_title']);
|
||||
|
||||
if (isset($user->lang[$custom_title]))
|
||||
{
|
||||
$log_title = $user->lang[$custom_title];
|
||||
}
|
||||
else
|
||||
{
|
||||
$log_title = $custom_title;
|
||||
}
|
||||
|
||||
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_CUSTOM'] . ': ' . $log_title);
|
||||
|
||||
// set_portal_config will take care of escaping the welcome message
|
||||
set_portal_config('board3_custom_' . $module_id . '_code', $custom_code);
|
||||
set_config('board3_custom_' . $module_id . '_bbcode', $custom_bbcode);
|
||||
@@ -244,7 +192,7 @@ class portal_custom_module
|
||||
//trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link(($module_id) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=portal&mode=modules') : $u_action));
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'preview':
|
||||
$custom_code = $text = utf8_normalize_nfc(request_var('custom_code', '', true));
|
||||
$custom_bbcode = request_var('custom_use_bbcode', 1); // default to BBCode
|
||||
@@ -252,13 +200,13 @@ class portal_custom_module
|
||||
$custom_title = utf8_normalize_nfc(request_var('module_name', ''));
|
||||
$custom_image_src = utf8_normalize_nfc(request_var('module_image', ''));
|
||||
$groups_ary = array();
|
||||
|
||||
|
||||
// first check for obvious errors, we don't want to waste server resources
|
||||
if(empty($custom_code))
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_CUSTOM_CODE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
if (!class_exists('parse_message'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
|
||||
@@ -270,19 +218,19 @@ class portal_custom_module
|
||||
$bitfield = (isset($config['board3_custom_' . $module_id . '_bitfield'])) ? $config['board3_custom_' . $module_id . '_bitfield'] : '';
|
||||
$options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
|
||||
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
|
||||
|
||||
|
||||
$text = generate_text_for_display($text, $uid, $bitfield, $options);
|
||||
}
|
||||
else
|
||||
{
|
||||
$text = htmlspecialchars_decode($text, ENT_QUOTES);
|
||||
}
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PREVIEW_TEXT' => $text,
|
||||
'S_PREVIEW' => true,
|
||||
));
|
||||
|
||||
|
||||
// get groups and check if the selected groups actually exist
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -293,7 +241,7 @@ class portal_custom_module
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$temp_permissions = array_intersect($custom_permission, $groups_ary);
|
||||
|
||||
// Edit or add menu item
|
||||
@@ -317,9 +265,9 @@ class portal_custom_module
|
||||
'S_BBCODE_ALLOWED' => true,
|
||||
'MAX_FONT_SIZE' => (int) $config['max_post_font_size'],
|
||||
));
|
||||
|
||||
|
||||
$groups_ary = (isset($temp_permissions)) ? $temp_permissions : ((isset($config['board3_custom_' . $module_id . '_permission'])) ? explode(',', $config['board3_custom_' . $module_id . '_permission']) : array());
|
||||
|
||||
|
||||
// get group info from database and assign the block vars
|
||||
$sql = 'SELECT group_id, group_name
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -334,12 +282,12 @@ class portal_custom_module
|
||||
));
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
if(!function_exists('display_forums'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||
}
|
||||
|
||||
|
||||
// Build custom bbcodes array
|
||||
display_custom_bbcodes();
|
||||
$user->add_lang('posting');
|
||||
@@ -347,9 +295,53 @@ class portal_custom_module
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update_custom($key, $module_id)
|
||||
{
|
||||
$this->manage_custom('', $key, $module_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse template for custom blocks
|
||||
*
|
||||
* @param int $module_id Module ID of current module
|
||||
* @param string $type Type of module (center or side), default to
|
||||
* center to not show module image unless wanted
|
||||
* @return array An array containing the custom module data
|
||||
*/
|
||||
protected function parse_template($module_id, $type = 'center')
|
||||
{
|
||||
global $config, $template, $portal_config, $user;
|
||||
|
||||
/*
|
||||
* Run generate_text_for_display if the user uses BBCode for designing his custom block
|
||||
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
|
||||
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
|
||||
*/
|
||||
if ($config['board3_custom_' . $module_id . '_bbcode'])
|
||||
{
|
||||
// Generate text for display and assign template vars
|
||||
$uid = $config['board3_custom_' . $module_id . '_uid'];
|
||||
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
|
||||
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
|
||||
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
|
||||
}
|
||||
else
|
||||
{
|
||||
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
|
||||
}
|
||||
|
||||
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
|
||||
|
||||
if(!empty($assign_code))
|
||||
{
|
||||
return array(
|
||||
'template' => 'custom_' . $type . '.html',
|
||||
'title' => $title,
|
||||
'code' => $assign_code,
|
||||
// no image for center blocks
|
||||
'image_src' => ($type === 'center') ? '' : ((!empty($config['board3_custom_' . $module_id . '_image_src'])) ? $config['board3_custom_' . $module_id . '_image_src'] : $this->image_src),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,13 +46,13 @@ class portal_modulename_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = '';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
*/
|
||||
public $custom_acp_tpl = '';
|
||||
|
||||
|
||||
/**
|
||||
* hide module name in ACP configuration page
|
||||
*/
|
||||
|
||||
@@ -49,18 +49,24 @@ class portal_donation_module
|
||||
|
||||
public function get_template_center($module_id)
|
||||
{
|
||||
global $config, $template;
|
||||
|
||||
$template->assign_var('PAY_ACC', $config['board3_pay_acc_' . $module_id]);
|
||||
global $config, $template, $user;
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PAY_ACC_CENTER' => $config['board3_pay_acc_' . $module_id],
|
||||
'PAY_CUSTOM_CENTER' => (!empty($config['board3_pay_custom_' . $module_id])) ? $user->data['username_clean'] : false,
|
||||
));
|
||||
|
||||
return 'donation_center.html';
|
||||
}
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template;
|
||||
global $config, $template, $user;
|
||||
|
||||
$template->assign_var('PAY_ACC', $config['board3_pay_acc_' . $module_id]);
|
||||
$template->assign_vars(array(
|
||||
'PAY_ACC_SIDE' => $config['board3_pay_acc_' . $module_id],
|
||||
'PAY_CUSTOM_SIDE' => (!empty($config['board3_pay_custom_' . $module_id])) ? $user->data['username_clean'] : false,
|
||||
));
|
||||
|
||||
return 'donation_side.html';
|
||||
}
|
||||
@@ -71,7 +77,8 @@ class portal_donation_module
|
||||
'title' => 'ACP_PORTAL_PAYPAL_SETTINGS',
|
||||
'vars' => array(
|
||||
'legend1' => 'ACP_PORTAL_PAYPAL_SETTINGS',
|
||||
'board3_pay_acc_' . $module_id => array('lang' => 'PORTAL_PAY_ACC' , 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
|
||||
'board3_pay_acc_' . $module_id => array('lang' => 'PORTAL_PAY_ACC', 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
|
||||
'board3_pay_custom_' . $module_id => array('lang' => 'PORTAL_PAY_CUSTOM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -82,6 +89,7 @@ class portal_donation_module
|
||||
public function install($module_id)
|
||||
{
|
||||
set_config('board3_pay_acc_' . $module_id, 'your@paypal.com');
|
||||
set_config('board3_pay_custom_' . $module_id, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -91,6 +99,7 @@ class portal_donation_module
|
||||
|
||||
$del_config = array(
|
||||
'board3_pay_acc_' . $module_id,
|
||||
'board3_pay_custom_' . $module_id,
|
||||
);
|
||||
$sql = 'DELETE FROM ' . CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_forumlist_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_forumlist_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
|
||||
@@ -49,7 +49,7 @@ class portal_friends_module
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $db, $user;
|
||||
global $config, $template, $db, $user, $auth;
|
||||
|
||||
$s_display_friends = false;
|
||||
|
||||
|
||||
@@ -46,11 +46,11 @@ class portal_latest_bots_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_latest_bots_module';
|
||||
|
||||
|
||||
/**
|
||||
* hide module name in ACP configuration page
|
||||
*/
|
||||
public $hide_name = true;
|
||||
public $hide_name = false;
|
||||
|
||||
|
||||
public function get_template_side($module_id)
|
||||
@@ -64,7 +64,7 @@ class portal_latest_bots_module
|
||||
AND user_lastvisit > 0
|
||||
ORDER BY user_lastvisit DESC';
|
||||
$result = $db->sql_query_limit($sql, $config['board3_last_visited_bots_number_' . $module_id]);
|
||||
|
||||
|
||||
$show_module = false;
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
@@ -76,27 +76,6 @@ class portal_latest_bots_module
|
||||
$show_module = true;
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if($config['board3_last_visited_bots_number_' . $module_id] != 0)
|
||||
{
|
||||
if($config['board3_last_visited_bots_number_' . $module_id] == 1)
|
||||
{
|
||||
$last_visited_bots = $user->lang['LAST_VISITED_BOT'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$last_visited_bots = sprintf($user->lang['LAST_VISITED_BOTS_CNT'], $config['board3_last_visited_bots_number_' . $module_id]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$last_visited_bots = $user->lang['LAST_VISITED_BOTS'];
|
||||
}
|
||||
|
||||
// Assign specific vars
|
||||
$template->assign_vars(array(
|
||||
'LAST_VISITED_BOTS' => $last_visited_bots,
|
||||
));
|
||||
|
||||
if($show_module)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ class portal_leaders_module
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $user, $auth, $db, $phpEx, $phpbb_root_path;
|
||||
|
||||
|
||||
// Display a listing of board admins, moderators
|
||||
$user->add_lang('groups');
|
||||
|
||||
@@ -97,14 +97,15 @@ class portal_leaders_module
|
||||
if(sizeof($legends))
|
||||
{
|
||||
$sql = 'SELECT
|
||||
u.user_id AS user_id, u.username AS username, u.user_colour AS user_colour, ug.group_id AS group_id
|
||||
u.user_id AS user_id, u.username AS username, u.username_clean AS username_clean,
|
||||
u.user_colour AS user_colour, ug.group_id AS group_id
|
||||
FROM
|
||||
' . USERS_TABLE . ' AS u,
|
||||
' . USER_GROUP_TABLE . ' AS ug
|
||||
WHERE
|
||||
ug.user_id = u.user_id
|
||||
AND '. $db->sql_in_set('ug.group_id', $legends) . '
|
||||
ORDER BY u.username ASC';
|
||||
ORDER BY u.username_clean ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
@@ -163,7 +164,7 @@ class portal_leaders_module
|
||||
));
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
if ($row['group_name'] == 'ADMINISTRATORS')
|
||||
|
||||
@@ -46,13 +46,13 @@ class portal_links_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_links_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
*/
|
||||
public $custom_acp_tpl = 'acp_portal_links';
|
||||
|
||||
|
||||
/**
|
||||
* constants
|
||||
*/
|
||||
@@ -65,22 +65,12 @@ class portal_links_module
|
||||
|
||||
$links = array();
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
|
||||
$links = $this->utf_unserialize($portal_config['board3_links_array_' . $module_id]);
|
||||
|
||||
|
||||
// get user's groups
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . USER_GROUP_TABLE . '
|
||||
WHERE user_id = ' . (int) $user->data['user_id'] . '
|
||||
ORDER BY group_id ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
while($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$groups_ary = get_user_groups();
|
||||
|
||||
for ($i = 0; $i < sizeof($links); $i++)
|
||||
{
|
||||
if($links[$i]['type'] == self::LINK_INT)
|
||||
@@ -92,10 +82,10 @@ class portal_links_module
|
||||
{
|
||||
$cur_url = $links[$i]['url'];
|
||||
}
|
||||
|
||||
|
||||
$cur_permissions = explode(',', $links[$i]['permission']);
|
||||
$permission_check = array_intersect($groups_ary, $cur_permissions);
|
||||
|
||||
|
||||
if(!empty($permission_check) || $links[$i]['permission'] == '')
|
||||
{
|
||||
$template->assign_block_vars('portallinks', array(
|
||||
@@ -129,29 +119,29 @@ class portal_links_module
|
||||
public function install($module_id)
|
||||
{
|
||||
global $phpbb_root_path, $db;
|
||||
|
||||
|
||||
$links = array();
|
||||
|
||||
|
||||
$links_titles = array(
|
||||
'Board3.de',
|
||||
'phpBB.com',
|
||||
);
|
||||
|
||||
|
||||
$links_types = array(
|
||||
self::LINK_EXT,
|
||||
self::LINK_EXT,
|
||||
);
|
||||
|
||||
|
||||
$links_urls = array(
|
||||
'http://www.board3.de/',
|
||||
'http://www.phpbb.com/',
|
||||
);
|
||||
|
||||
|
||||
$links_permissions = array(
|
||||
'',
|
||||
'',
|
||||
);
|
||||
|
||||
|
||||
foreach($links_urls as $i => $url)
|
||||
{
|
||||
$links[] = array(
|
||||
@@ -161,12 +151,12 @@ class portal_links_module
|
||||
'permission' => $links_permissions[$i],
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$board3_menu_array = serialize($links);
|
||||
set_portal_config('board3_links_array_' . $module_id, $board3_menu_array);
|
||||
set_config('board3_links_' . $module_id, '');
|
||||
set_config('board3_links_url_new_window_' . $module_id, 0);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -179,9 +169,9 @@ class portal_links_module
|
||||
);
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
|
||||
$db->sql_query($sql);
|
||||
|
||||
|
||||
$del_config = array(
|
||||
'board3_links_' . $module_id,
|
||||
'board3_links_url_new_window_' . $module_id
|
||||
@@ -190,18 +180,18 @@ class portal_links_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Manage the menu links
|
||||
public function manage_links($value, $key, $module_id)
|
||||
{
|
||||
global $config, $phpbb_admin_path, $user, $phpEx, $db, $template;
|
||||
|
||||
|
||||
$action = request_var('action', '');
|
||||
$action = (isset($_POST['add'])) ? 'add' : $action;
|
||||
$action = (isset($_POST['save'])) ? 'save' : $action;
|
||||
$link_id = request_var('id', 99999999); // 0 will trigger unwanted behavior, therefore we set a number we should never reach
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
|
||||
$links = array();
|
||||
|
||||
$links = $this->utf_unserialize($portal_config['board3_links_array_' . $module_id]);
|
||||
@@ -219,11 +209,11 @@ class portal_links_module
|
||||
|
||||
$link_title = utf8_normalize_nfc(request_var('link_title', ' ', true));
|
||||
$link_type = request_var('link_type', 2); // default to B3_LINK_EXT, no categories in Links block
|
||||
$link_url = request_var('link_url', ' ');
|
||||
$link_url = utf8_normalize_nfc(request_var('link_url', ' ', true));
|
||||
$link_url = str_replace('&', '&', $link_url);
|
||||
$link_permission = request_var('permission-setting-link', array(0 => ''));
|
||||
$groups_ary = array();
|
||||
|
||||
|
||||
// get groups and check if the selected groups actually exist
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -234,7 +224,7 @@ class portal_links_module
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$link_permissions = array_intersect($link_permission, $groups_ary);
|
||||
$link_permissions = implode(',', $link_permissions);
|
||||
|
||||
@@ -253,7 +243,7 @@ class portal_links_module
|
||||
if (isset($link_id) && $link_id < sizeof($links))
|
||||
{
|
||||
$message = $user->lang['LINK_UPDATED'];
|
||||
|
||||
|
||||
$links[$link_id] = array(
|
||||
'title' => $link_title,
|
||||
'url' => htmlspecialchars_decode($link_url),
|
||||
@@ -275,7 +265,7 @@ class portal_links_module
|
||||
);
|
||||
add_log('admin', 'LOG_PORTAL_LINK_ADDED', $link_title);
|
||||
}
|
||||
|
||||
|
||||
$board3_links_array = serialize($links);
|
||||
set_portal_config('board3_links_array_' . $module_id, $board3_links_array);
|
||||
|
||||
@@ -297,7 +287,7 @@ class portal_links_module
|
||||
// delete the selected link and reset the array numbering afterwards
|
||||
array_splice($links, $link_id, 1);
|
||||
$links = array_merge($links);
|
||||
|
||||
|
||||
$board3_links_array = serialize($links);
|
||||
set_portal_config('board3_links_array_' . $module_id, $board3_links_array);
|
||||
|
||||
@@ -342,7 +332,7 @@ class portal_links_module
|
||||
'type' => $links[$link_id]['type'],
|
||||
'permission' => $links[$link_id]['permission'],
|
||||
);
|
||||
|
||||
|
||||
// move the info of the links we replace in the order
|
||||
$links[$link_id] = array(
|
||||
'title' => $links[$switch_order_id]['title'],
|
||||
@@ -350,7 +340,7 @@ class portal_links_module
|
||||
'type' => $links[$switch_order_id]['type'],
|
||||
'permission' => $links[$switch_order_id]['permission'],
|
||||
);
|
||||
|
||||
|
||||
// insert the info of the moved link
|
||||
$links[$switch_order_id] = $cur_link;
|
||||
|
||||
@@ -372,9 +362,9 @@ class portal_links_module
|
||||
'S_EDIT' => true,
|
||||
'S_LINK_IS_INT' => (isset($links[$link_id]['type']) && $links[$link_id]['type'] == self::LINK_INT) ? true : false,
|
||||
));
|
||||
|
||||
|
||||
$groups_ary = (isset($links[$link_id]['permission'])) ? explode(',', $links[$link_id]['permission']) : array();
|
||||
|
||||
|
||||
// get group info from database and assign the block vars
|
||||
$sql = 'SELECT group_id, group_name
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -408,12 +398,12 @@ class portal_links_module
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update_links($key, $module_id)
|
||||
{
|
||||
$this->manage_links('', $key, $module_id);
|
||||
}
|
||||
|
||||
|
||||
// Unserialize links array
|
||||
private function utf_unserialize($serial_str)
|
||||
{
|
||||
|
||||
@@ -46,13 +46,13 @@ class portal_main_menu_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_main_menu_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
*/
|
||||
public $custom_acp_tpl = 'acp_portal_menu';
|
||||
|
||||
|
||||
/**
|
||||
* constants
|
||||
*/
|
||||
@@ -66,22 +66,12 @@ class portal_main_menu_module
|
||||
|
||||
$links = array();
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
|
||||
$links = $this->utf_unserialize($portal_config['board3_menu_array_' . $module_id]);
|
||||
|
||||
|
||||
// get user's groups
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . USER_GROUP_TABLE . '
|
||||
WHERE user_id = ' . (int) $user->data['user_id'] . '
|
||||
ORDER BY group_id ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
while($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$groups_ary = get_user_groups();
|
||||
|
||||
for ($i = 0; $i < sizeof($links); $i++)
|
||||
{
|
||||
if($links[$i]['type'] == self::LINK_CAT)
|
||||
@@ -102,10 +92,10 @@ class portal_main_menu_module
|
||||
{
|
||||
$cur_url = $links[$i]['url'];
|
||||
}
|
||||
|
||||
|
||||
$cur_permissions = explode(',', $links[$i]['permission']);
|
||||
$permission_check = array_intersect($groups_ary, $cur_permissions);
|
||||
|
||||
|
||||
if(!empty($permission_check) || $links[$i]['permission'] == '')
|
||||
{
|
||||
$template->assign_block_vars('portalmenu.links', array(
|
||||
@@ -139,19 +129,19 @@ class portal_main_menu_module
|
||||
public function install($module_id)
|
||||
{
|
||||
global $phpbb_root_path, $phpEx, $db;
|
||||
|
||||
|
||||
// get the correct group IDs from the database
|
||||
$in_ary = array('GUESTS', 'REGISTERED', 'REGISTERED_COPPA');
|
||||
|
||||
|
||||
$sql = 'SELECT group_id, group_name FROM ' . GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('group_name', $in_ary);
|
||||
$result = $db->sql_query($sql);
|
||||
while($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$groups_ary[$row['group_name']] = $row['group_id'];
|
||||
}
|
||||
|
||||
|
||||
$links = array();
|
||||
|
||||
|
||||
$links_titles = array(
|
||||
'M_CONTENT',
|
||||
'INDEX',
|
||||
@@ -165,7 +155,7 @@ class portal_main_menu_module
|
||||
'M_TERMS',
|
||||
'M_PRV',
|
||||
);
|
||||
|
||||
|
||||
$links_types = array(
|
||||
self::LINK_CAT,
|
||||
self::LINK_INT,
|
||||
@@ -179,7 +169,7 @@ class portal_main_menu_module
|
||||
self::LINK_INT,
|
||||
self::LINK_INT,
|
||||
);
|
||||
|
||||
|
||||
$links_urls = array(
|
||||
'',
|
||||
'index.' . $phpEx,
|
||||
@@ -193,7 +183,7 @@ class portal_main_menu_module
|
||||
'ucp.' . $phpEx . '?mode=terms',
|
||||
'ucp.' . $phpEx . '?mode=privacy',
|
||||
);
|
||||
|
||||
|
||||
$links_permissions = array(
|
||||
'',
|
||||
'',
|
||||
@@ -207,7 +197,7 @@ class portal_main_menu_module
|
||||
'',
|
||||
'',
|
||||
);
|
||||
|
||||
|
||||
foreach($links_urls as $i => $url)
|
||||
{
|
||||
$links[] = array(
|
||||
@@ -217,12 +207,12 @@ class portal_main_menu_module
|
||||
'permission' => $links_permissions[$i],
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$board3_menu_array = serialize($links);
|
||||
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
|
||||
set_config('board3_menu_' . $module_id, '');
|
||||
set_config('board3_menu_url_new_window_' . $module_id, 0);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -235,9 +225,9 @@ class portal_main_menu_module
|
||||
);
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
|
||||
$db->sql_query($sql);
|
||||
|
||||
|
||||
$del_config = array(
|
||||
'board3_menu_' . $module_id,
|
||||
'board3_menu_url_new_window_' . $module_id,
|
||||
@@ -246,18 +236,18 @@ class portal_main_menu_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Manage the menu links
|
||||
public function manage_links($value, $key, $module_id)
|
||||
{
|
||||
global $config, $phpbb_admin_path, $user, $phpEx, $db, $template;
|
||||
|
||||
|
||||
$action = request_var('action', '');
|
||||
$action = (isset($_POST['add'])) ? 'add' : $action;
|
||||
$action = (isset($_POST['save'])) ? 'save' : $action;
|
||||
$link_id = request_var('id', 99999999); // 0 will trigger unwanted behavior, therefore we set a number we should never reach
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
|
||||
$links = array();
|
||||
|
||||
$links = $this->utf_unserialize($portal_config['board3_menu_array_' . $module_id]);
|
||||
@@ -276,11 +266,11 @@ class portal_main_menu_module
|
||||
$link_title = utf8_normalize_nfc(request_var('link_title', ' ', true));
|
||||
$link_is_cat = request_var('link_is_cat', false);
|
||||
$link_type = (!$link_is_cat) ? request_var('link_type', self::LINK_INT) : self::LINK_CAT;
|
||||
$link_url = ($link_is_cat) ? ' ' : request_var('link_url', ' ');
|
||||
$link_url = ($link_is_cat) ? ' ' : utf8_normalize_nfc(request_var('link_url', ' ', true));
|
||||
$link_url = str_replace('&', '&', $link_url);
|
||||
$link_permission = request_var('permission-setting-menu', array(0 => ''));
|
||||
$groups_ary = array();
|
||||
|
||||
|
||||
// get groups and check if the selected groups actually exist
|
||||
$sql = 'SELECT group_id
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -291,7 +281,7 @@ class portal_main_menu_module
|
||||
$groups_ary[] = $row['group_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
$link_permissions = array_intersect($link_permission, $groups_ary);
|
||||
$link_permissions = implode(',', $link_permissions);
|
||||
|
||||
@@ -310,7 +300,7 @@ class portal_main_menu_module
|
||||
if (isset($link_id) && $link_id < sizeof($links))
|
||||
{
|
||||
$message = $user->lang['LINK_UPDATED'];
|
||||
|
||||
|
||||
$links[$link_id] = array(
|
||||
'title' => $link_title,
|
||||
'url' => htmlspecialchars_decode($link_url),
|
||||
@@ -336,7 +326,7 @@ class portal_main_menu_module
|
||||
);
|
||||
add_log('admin', 'LOG_PORTAL_LINK_ADDED', $link_title);
|
||||
}
|
||||
|
||||
|
||||
$board3_menu_array = serialize($links);
|
||||
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
|
||||
|
||||
@@ -358,7 +348,7 @@ class portal_main_menu_module
|
||||
// delete the selected link and reset the array numbering afterwards
|
||||
array_splice($links, $link_id, 1);
|
||||
$links = array_merge($links);
|
||||
|
||||
|
||||
$board3_menu_array = serialize($links);
|
||||
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
|
||||
|
||||
@@ -403,7 +393,7 @@ class portal_main_menu_module
|
||||
'type' => $links[$link_id]['type'],
|
||||
'permission' => $links[$link_id]['permission'],
|
||||
);
|
||||
|
||||
|
||||
// move the info of the links we replace in the order
|
||||
$links[$link_id] = array(
|
||||
'title' => $links[$switch_order_id]['title'],
|
||||
@@ -411,7 +401,7 @@ class portal_main_menu_module
|
||||
'type' => $links[$switch_order_id]['type'],
|
||||
'permission' => $links[$switch_order_id]['permission'],
|
||||
);
|
||||
|
||||
|
||||
// insert the info of the moved link
|
||||
$links[$switch_order_id] = $cur_link;
|
||||
|
||||
@@ -434,9 +424,9 @@ class portal_main_menu_module
|
||||
'S_LINK_IS_CAT' => (!isset($links[$link_id]['type']) || $links[$link_id]['type'] == self::LINK_CAT) ? true : false,
|
||||
'S_LINK_IS_INT' => (isset($links[$link_id]['type']) && $links[$link_id]['type'] == self::LINK_INT) ? true : false,
|
||||
));
|
||||
|
||||
|
||||
$groups_ary = (isset($links[$link_id]['permission'])) ? explode(',', $links[$link_id]['permission']) : array();
|
||||
|
||||
|
||||
// get group info from database and assign the block vars
|
||||
$sql = 'SELECT group_id, group_name
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
@@ -472,12 +462,12 @@ class portal_main_menu_module
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update_links($key, $module_id)
|
||||
{
|
||||
$this->manage_links('', $key, $module_id);
|
||||
}
|
||||
|
||||
|
||||
// Unserialize links array
|
||||
private function utf_unserialize($serial_str)
|
||||
{
|
||||
|
||||
@@ -52,7 +52,7 @@ class portal_news_module
|
||||
global $config, $template, $db, $user, $auth, $cache, $phpEx, $phpbb_root_path;
|
||||
|
||||
$news = request_var('news', -1);
|
||||
$news = ($news > $config['board3_news_length_' . $module_id] -1) ? -1 : $news;
|
||||
$news = ($news > $config['board3_number_of_news_' . $module_id] -1) ? -1 : $news;
|
||||
$user->add_lang('viewforum');
|
||||
$start = request_var('np', 0);
|
||||
$start = ($start < 0) ? 0 : $start;
|
||||
@@ -90,7 +90,7 @@ class portal_news_module
|
||||
{
|
||||
$disallow_access = array();
|
||||
}
|
||||
|
||||
|
||||
if($config['board3_news_exclude_' . $module_id] == true)
|
||||
{
|
||||
$disallow_access = array_merge($disallow_access, $forum_from);
|
||||
@@ -134,7 +134,7 @@ class portal_news_module
|
||||
$total_news = (int) $db->sql_fetchfield('num_topics');
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
|
||||
$topic_tracking_info = get_portal_tracking_info($fetch_news);
|
||||
|
||||
if($news < 0)
|
||||
@@ -159,7 +159,7 @@ class portal_news_module
|
||||
$forum_id = $fetch_news[$i]['forum_id'];
|
||||
$topic_id = $fetch_news[$i]['topic_id'];
|
||||
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
|
||||
|
||||
|
||||
$read_full_url = (isset($_GET['np'])) ? 'np='. $start . '&news=' . $i . '#n' . $i : 'news=' . $i . '#n' . $i;
|
||||
$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
|
||||
if ($config['board3_news_archive_' . $module_id])
|
||||
@@ -274,7 +274,7 @@ class portal_news_module
|
||||
$open_bracket = '[ ';
|
||||
$close_bracket = ' ]';
|
||||
$read_full = $user->lang['BACK'];
|
||||
|
||||
|
||||
$read_full_url = (isset($_GET['np'])) ? append_sid("{$phpbb_root_path}portal.$phpEx", "np=$start#n$i") : append_sid("{$phpbb_root_path}portal.$phpEx#n$i");
|
||||
$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&t=' . $topic_id);
|
||||
if ($config['board3_news_archive_' . $module_id])
|
||||
@@ -412,14 +412,14 @@ class portal_news_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Create forum select box
|
||||
public function select_forums($value, $key, $module_id)
|
||||
{
|
||||
global $user, $config;
|
||||
|
||||
$forum_list = make_forum_select(false, false, true, true, true, false, true);
|
||||
|
||||
|
||||
$selected = array();
|
||||
if(isset($config[$key]) && strlen($config[$key]) > 0)
|
||||
{
|
||||
@@ -436,18 +436,18 @@ class portal_news_module
|
||||
return $s_forum_options;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Store selected forums
|
||||
public function store_selected_forums($key, $module_id)
|
||||
{
|
||||
global $db, $cache;
|
||||
|
||||
|
||||
// Get selected extensions
|
||||
$values = request_var($key, array(0 => ''));
|
||||
|
||||
|
||||
$news = implode(',', $values);
|
||||
|
||||
|
||||
set_config($key, $news);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@ class portal_random_member_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_random_member_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_recent_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_recent_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
@@ -64,8 +64,8 @@ class portal_recent_module
|
||||
if ($config['board3_recent_forum_' . $module_id] > 0)
|
||||
{
|
||||
$exclude_forums = explode(',', $config['board3_recent_forum_' . $module_id]);
|
||||
|
||||
$sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_exclude_forums_' . $module_id]) ? true : false);
|
||||
|
||||
$sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_recent_exclude_forums_' . $module_id]) ? true : false);
|
||||
}
|
||||
|
||||
// Get a list of forums the user cannot read
|
||||
@@ -210,14 +210,14 @@ class portal_recent_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return $db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
||||
// Create forum select box
|
||||
public function select_forums($value, $key, $module_id)
|
||||
{
|
||||
global $user, $config;
|
||||
|
||||
$forum_list = make_forum_select(false, false, true, true, true, false, true);
|
||||
|
||||
|
||||
$selected = array();
|
||||
if(isset($config[$key]) && strlen($config[$key]) > 0)
|
||||
{
|
||||
@@ -234,18 +234,18 @@ class portal_recent_module
|
||||
return $s_forum_options;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Store selected forums
|
||||
public function store_selected_forums($key, $module_id)
|
||||
{
|
||||
global $db, $cache;
|
||||
|
||||
|
||||
// Get selected extensions
|
||||
$values = request_var($key, array(0 => ''));
|
||||
|
||||
|
||||
$news = implode(',', $values);
|
||||
|
||||
|
||||
set_config($key, $news);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_search_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_search_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_statistics_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_statistics_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
@@ -158,22 +158,22 @@ class portal_statistics_module
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Better function with only one query
|
||||
public function get_topics_count()
|
||||
{
|
||||
global $db, $user;
|
||||
|
||||
|
||||
$return_ary = array(
|
||||
POST_ANNOUNCE => 0,
|
||||
POST_STICKY => 0,
|
||||
);
|
||||
|
||||
|
||||
$sql_in = array(
|
||||
POST_ANNOUNCE,
|
||||
POST_STICKY,
|
||||
);
|
||||
|
||||
|
||||
$sql = 'SELECT DISTINCT(topic_id) AS topic_id, topic_type AS type
|
||||
FROM ' . TOPICS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('topic_type', $sql_in, false);
|
||||
@@ -185,14 +185,14 @@ class portal_statistics_module
|
||||
case POST_ANNOUNCE:
|
||||
++$return_ary[POST_ANNOUNCE];
|
||||
break;
|
||||
|
||||
|
||||
case POST_STICKY:
|
||||
++$return_ary[POST_STICKY];
|
||||
break;
|
||||
}
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
return $return_ary;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class portal_user_menu_module
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $user, $auth, $db, $phpEx, $phpbb_root_path;
|
||||
|
||||
|
||||
if (!function_exists('display_forums'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||
@@ -62,7 +62,7 @@ class portal_user_menu_module
|
||||
// + new posts since last visit & you post number
|
||||
//
|
||||
$ex_fid_ary = array_unique(array_merge(array_keys($auth->acl_getf('!f_read', true)), array_keys($auth->acl_getf('!f_search', true))));
|
||||
|
||||
|
||||
if ($auth->acl_get('m_approve'))
|
||||
{
|
||||
$m_approve_fid_ary = array(-1);
|
||||
@@ -88,7 +88,7 @@ class portal_user_menu_module
|
||||
$result = $db->sql_query($sql);
|
||||
$new_posts_count = (int) $db->sql_fetchfield('total');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
|
||||
// unread posts
|
||||
$sql_where = 'AND t.topic_moved_id = 0
|
||||
' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . '
|
||||
|
||||
@@ -46,7 +46,7 @@ class portal_welcome_module
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_welcome_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
@@ -56,7 +56,7 @@ class portal_welcome_module
|
||||
public function get_template_center($module_id)
|
||||
{
|
||||
global $config, $template, $portal_config, $phpEx;
|
||||
|
||||
|
||||
// Generate text for display and assign template vars
|
||||
$uid = $config['board3_welcome_message_uid_' . $module_id];
|
||||
$bitfield = $config['board3_welcome_message_bitfield_' . $module_id];
|
||||
@@ -102,7 +102,7 @@ class portal_welcome_module
|
||||
);
|
||||
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
|
||||
|
||||
$check = $db->sql_query($sql);
|
||||
|
||||
$del_config = array(
|
||||
@@ -114,19 +114,19 @@ class portal_welcome_module
|
||||
WHERE ' . $db->sql_in_set('config_name', $del_config);
|
||||
return ((!$check) ? $check : $db->sql_query($sql)); // if something went wrong, make sure we are aware of the first query
|
||||
}
|
||||
|
||||
|
||||
public function manage_welcome($value, $key, $module_id)
|
||||
{
|
||||
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path, $phpbb_root_path;
|
||||
|
||||
|
||||
$action = (isset($_POST['reset'])) ? 'reset' : '';
|
||||
$action = (isset($_POST['submit'])) ? 'save' : $action;
|
||||
$action = (isset($_POST['preview'])) ? 'preview' : $action;
|
||||
|
||||
|
||||
$portal_config = obtain_portal_config();
|
||||
|
||||
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&mode=config&module_id=' . $module_id);
|
||||
|
||||
|
||||
switch($action)
|
||||
{
|
||||
// Save changes
|
||||
@@ -140,22 +140,21 @@ class portal_welcome_module
|
||||
$uid = $bitfield = $flags = '';
|
||||
$options = 7;
|
||||
generate_text_for_storage($welcome_message, $uid, $bitfield, $flags, true, true, true);
|
||||
|
||||
|
||||
|
||||
// first check for obvious errors, we don't want to waste server resources
|
||||
if(empty($welcome_message))
|
||||
{
|
||||
trigger_error($user->lang['ACP_PORTAL_WELCOME_MESSAGE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
|
||||
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_WELCOME']);
|
||||
|
||||
|
||||
// set_portal_config will take care of escaping the welcome message
|
||||
set_portal_config('board3_welcome_message_' . $module_id, $welcome_message);
|
||||
set_config('board3_welcome_message_uid_' . $module_id, $uid);
|
||||
set_config('board3_welcome_message_bitfield_' . $module_id, $bitfield);
|
||||
break;
|
||||
|
||||
|
||||
case 'preview':
|
||||
$welcome_message = $text = utf8_normalize_nfc(request_var('welcome_message', '', true));
|
||||
|
||||
@@ -169,9 +168,9 @@ class portal_welcome_module
|
||||
$bitfield = (isset($config['board3_welcome_message_bitfield_' . $module_id])) ? $config['board3_welcome_message_bitfield_' . $module_id] : '';
|
||||
$options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
|
||||
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
|
||||
|
||||
|
||||
$text = generate_text_for_display($text, $uid, $bitfield, $options);
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PREVIEW_TEXT' => $text,
|
||||
'S_PREVIEW' => true,
|
||||
@@ -184,7 +183,7 @@ class portal_welcome_module
|
||||
{
|
||||
$welcome_message = generate_text_for_edit($portal_config['board3_welcome_message_' . $module_id], $config['board3_welcome_message_uid_' . $module_id], '');
|
||||
}
|
||||
|
||||
|
||||
$template->assign_vars(array(
|
||||
'WELCOME_MESSAGE' => (is_array($welcome_message)) ? $welcome_message['text'] : $welcome_message,
|
||||
//'U_BACK' => $u_action,
|
||||
@@ -197,12 +196,12 @@ class portal_welcome_module
|
||||
'S_BBCODE_ALLOWED' => true,
|
||||
'MAX_FONT_SIZE' => (int) $config['max_post_font_size'],
|
||||
));
|
||||
|
||||
|
||||
if(!function_exists('display_forums'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||
}
|
||||
|
||||
|
||||
// Build custom bbcodes array
|
||||
display_custom_bbcodes();
|
||||
$user->add_lang('posting');
|
||||
@@ -210,7 +209,7 @@ class portal_welcome_module
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update_welcome($key, $module_id)
|
||||
{
|
||||
$this->manage_welcome('', $key, $module_id);
|
||||
|
||||
@@ -28,7 +28,7 @@ class portal_whois_online_module
|
||||
* right 8
|
||||
* bottom 16
|
||||
*/
|
||||
public $columns = 21;
|
||||
public $columns = 31;
|
||||
|
||||
/**
|
||||
* Default modulename
|
||||
@@ -39,14 +39,14 @@ class portal_whois_online_module
|
||||
* Default module-image:
|
||||
* file must be in "{T_THEME_PATH}/images/portal/"
|
||||
*/
|
||||
public $image_src = '';
|
||||
public $image_src = 'portal_friends.png';
|
||||
|
||||
/**
|
||||
* module-language file
|
||||
* file must be in "language/{$user->lang}/mods/portal/"
|
||||
*/
|
||||
public $language = 'portal_whois_online_module';
|
||||
|
||||
|
||||
/**
|
||||
* custom acp template
|
||||
* file must be in "adm/style/portal/"
|
||||
@@ -99,12 +99,21 @@ class portal_whois_online_module
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$legend = implode(', ', $legend);
|
||||
|
||||
|
||||
$template->assign_var('PORTAL_LEGEND', $legend);
|
||||
|
||||
return 'whois_online_center.html';
|
||||
}
|
||||
|
||||
public function get_template_side($module_id)
|
||||
{
|
||||
global $config, $template, $user, $auth, $db, $phpbb_root_path, $phpEx;
|
||||
|
||||
// No legend on the side so just return the template file
|
||||
|
||||
return 'whois_online_side.html';
|
||||
}
|
||||
|
||||
public function get_template_acp($module_id)
|
||||
{
|
||||
return array(
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
<!-- BEGIN announcements_row -->
|
||||
<!-- IF announcements_row.S_FIRST_ROW -->
|
||||
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- IF $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
|
||||
<!-- IF announcements_row.S_NO_TOPICS -->
|
||||
<div class="post bg2" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
|
||||
<!-- ELSE -->
|
||||
<div style="margin-bottom: <!-- IF announcements_row.S_LAST_ROW -->0px<!-- ELSE -->1px<!-- ENDIF -->" class="post <!-- IF announcements_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<h4 class="first"><a name="a"></a><a name="a{announcements_row.A_ID}"></a><!-- IF announcements_row.S_UNREAD_INFO --><a href="{announcements_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --> {announcements_row.ATTACH_ICON_IMG} <!-- IF announcements_row.S_POLL --> <strong>{L_VIEW_TOPIC_POLL}: </strong><!-- ENDIF --><!-- IF announcements_row.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{announcements_row.TOPIC_ICON_IMG}" width="{announcements_row.TOPIC_ICON_IMG_WIDTH}" height="{announcements_row.TOPIC_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="{announcements_row.U_VIEW_COMMENTS}"><strong>{announcements_row.TITLE}</strong></a></h4>
|
||||
<!-- IF announcements_row.PAGINATION --><strong class="pagination"><span>{announcements_row.PAGINATION}</span></strong><!-- ENDIF -->
|
||||
<ul class="linklist">
|
||||
<li>{L_POSTED} {L_POST_BY_AUTHOR}: {announcements_row.POSTER_FULL} » {announcements_row.TIME}</li>
|
||||
<li class="rightside"><!-- IF announcements_row.FORUM_NAME -->{L_FORUM}: <strong><a href="{announcements_row.U_VIEWFORUM}">{announcements_row.FORUM_NAME}</a></strong><!-- ELSE -->{L_GLOBAL_ANNOUNCEMENT}<!-- ENDIF --></li>
|
||||
</ul>
|
||||
<!-- IF not $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
|
||||
<div class="content">
|
||||
<br />{announcements_row.TEXT}
|
||||
</div>
|
||||
<!-- IF announcements_row.S_HAS_ATTACHMENTS -->
|
||||
<dl class="attachbox">
|
||||
<dt>{L_ATTACHMENTS}</dt>
|
||||
<!-- BEGIN attachment -->
|
||||
<dd>{announcements_row.attachment.DISPLAY_ATTACHMENT}</dd>
|
||||
<!-- END attachment -->
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<br style="clear:both" />
|
||||
<span style="float: left;">{L_TOPIC_VIEWS}: {announcements_row.TOPIC_VIEWS} • <a href="{announcements_row.U_VIEW_COMMENTS}" title="{L_VIEW_COMMENTS}">{L_COMMENTS}: {announcements_row.REPLIES}</a> • <a href="{announcements_row.U_POST_COMMENT}">{L_POST_REPLY}</a></span>
|
||||
<span style="float: right; margin: 0 0 5px 0">{announcements_row.OPEN}<a href="{announcements_row.U_READ_FULL}">{announcements_row.L_READ_FULL}</a>{announcements_row.CLOSE}</span>
|
||||
<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
|
||||
<!-- IF announcements_row.S_NOT_LAST --><br style="clear:both" /><!-- ENDIF -->
|
||||
<!-- IF announcements_row.S_LAST_ROW and (AP_PAGINATION or TOTAL_ANNOUNCEMENTS) -->
|
||||
<hr class="dashed" />
|
||||
<div class="pagination">
|
||||
{TOTAL_ANNOUNCEMENTS}
|
||||
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> • {AP_PAGE_NUMBER} • <span>{AP_PAGINATION}</span><!-- ELSE --> • {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not $S_POSTBODY_TOP --></div><!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
<!-- IF $S_POSTBODY_TOP --></div><!-- ENDIF -->
|
||||
<!-- IF announcements_row.S_LAST_ROW -->
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- END announcements_row -->
|
||||
@@ -0,0 +1,51 @@
|
||||
<!-- BEGIN announcements_center_row -->
|
||||
<!-- IF announcements_center_row.S_FIRST_ROW -->
|
||||
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- IF $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
|
||||
<!-- IF announcements_center_row.S_NO_TOPICS -->
|
||||
<div class="post bg2" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
|
||||
<!-- ELSE -->
|
||||
<div style="margin-bottom: <!-- IF announcements_center_row.S_LAST_ROW -->0px<!-- ELSE -->1px<!-- ENDIF -->" class="post <!-- IF announcements_center_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<h4 class="first"><a <!-- IF announcements_center_row.S_FIRST_ROW -->id="a" <!-- ENDIF -->name="a{announcements_center_row.A_ID}"></a><!-- IF announcements_center_row.S_UNREAD_INFO --><a href="{announcements_center_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_center_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --> {announcements_center_row.ATTACH_ICON_IMG} <!-- IF announcements_center_row.S_POLL --> <strong>{L_VIEW_TOPIC_POLL}: </strong><!-- ENDIF --><!-- IF announcements_center_row.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{announcements_center_row.TOPIC_ICON_IMG}" width="{announcements_center_row.TOPIC_ICON_IMG_WIDTH}" height="{announcements_center_row.TOPIC_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="{announcements_center_row.U_VIEW_COMMENTS}"><strong>{announcements_center_row.TITLE}</strong></a></h4>
|
||||
<!-- IF announcements_center_row.PAGINATION --><strong class="pagination"><span>{announcements_center_row.PAGINATION}</span></strong><!-- ENDIF -->
|
||||
<ul class="linklist">
|
||||
<li>{L_POSTED} {L_POST_BY_AUTHOR}: {announcements_center_row.POSTER_FULL} » {announcements_center_row.TIME}</li>
|
||||
<li class="rightside"><!-- IF announcements_center_row.FORUM_NAME -->{L_FORUM}: <strong><a href="{announcements_center_row.U_VIEWFORUM}">{announcements_center_row.FORUM_NAME}</a></strong><!-- ELSE -->{L_GLOBAL_ANNOUNCEMENT}<!-- ENDIF --></li>
|
||||
</ul>
|
||||
<!-- IF not $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
|
||||
<div class="content">
|
||||
<br />{announcements_center_row.TEXT}
|
||||
</div>
|
||||
<!-- IF announcements_center_row.S_HAS_ATTACHMENTS -->
|
||||
<dl class="attachbox">
|
||||
<dt>{L_ATTACHMENTS}</dt>
|
||||
<!-- BEGIN attachment -->
|
||||
<dd>{announcements_center_row.attachment.DISPLAY_ATTACHMENT}</dd>
|
||||
<!-- END attachment -->
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<br style="clear:both" />
|
||||
<span style="float: left;">{L_TOPIC_VIEWS}: {announcements_center_row.TOPIC_VIEWS} • <a href="{announcements_center_row.U_VIEW_COMMENTS}" title="{L_VIEW_COMMENTS}">{L_COMMENTS}: {announcements_center_row.REPLIES}</a> • <a href="{announcements_center_row.U_POST_COMMENT}">{L_POST_REPLY}</a></span>
|
||||
<span style="float: right; margin: 0 0 5px 0">{announcements_center_row.OPEN}<a href="{announcements_center_row.U_READ_FULL}">{announcements_center_row.L_READ_FULL}</a>{announcements_center_row.CLOSE}</span>
|
||||
<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
|
||||
<!-- IF announcements_center_row.S_NOT_LAST --><br style="clear:both" /><!-- ENDIF -->
|
||||
<!-- IF announcements_center_row.S_LAST_ROW and (AP_PAGINATION or TOTAL_ANNOUNCEMENTS) -->
|
||||
<hr class="dashed" />
|
||||
<div class="pagination">
|
||||
{TOTAL_ANNOUNCEMENTS}
|
||||
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> • {AP_PAGE_NUMBER} • <span>{AP_PAGINATION}</span><!-- ELSE --> • {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not $S_POSTBODY_TOP --></div><!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
<!-- IF $S_POSTBODY_TOP --></div><!-- ENDIF -->
|
||||
<!-- IF announcements_center_row.S_LAST_ROW -->
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- END announcements_center_row -->
|
||||
@@ -0,0 +1,58 @@
|
||||
<!-- BEGIN announcements_center_row -->
|
||||
<!-- IF announcements_center_row.S_NO_TOPICS -->
|
||||
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
|
||||
<div class="post bg2" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ELSE -->
|
||||
<!-- IF announcements_center_row.S_FIRST_ROW -->
|
||||
{$CC_BLOCK_H_L}
|
||||
<dt id="a" <!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->style="width: 44%"<!-- ELSE -->style="width: 60%"<!-- ENDIF -->>{$TITLE}</dt>
|
||||
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
|
||||
<dd class="posts" style="width: 11%">{L_REPLIES}</dd>
|
||||
<dd class="views" style="width: 11%">{L_VIEWS}</dd>
|
||||
<!-- ENDIF -->
|
||||
<dd class="lastpost" style="width: 25%"><span>{L_LAST_POST}</span></dd>
|
||||
{$CC_BLOCK_H_R}
|
||||
<ul class="topiclist topics">
|
||||
<!-- ENDIF -->
|
||||
<li class="row<!-- IF announcements_center_row.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
|
||||
<dl class="icon" style="background-image: url({announcements_center_row.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
|
||||
<dt style="<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->width: 44%;<!-- ELSE -->width: 60%;<!-- ENDIF --> <!-- IF announcements_center_row.TOPIC_ICON_IMG -->background-image: url({T_ICONS_PATH}{announcements_center_row.TOPIC_ICON_IMG}); background-repeat: no-repeat;<!-- ENDIF -->" title="{announcements_center_row.TOPIC_FOLDER_IMG_ALT}"><!-- IF announcements_center_row.S_UNREAD_TOPIC --><a href="{announcements_center_row.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><!-- IF announcements_center_row.ATTACH_ICON_IMG -->{announcements_center_row.ATTACH_ICON_IMG} <!-- ENDIF --><!-- IF announcements_center_row.S_POLL --><strong>{L_VIEW_TOPIC_POLL}</strong><!-- ENDIF --><a href="{announcements_center_row.U_VIEW_COMMENTS}" title="{announcements_center_row.TITLE}" class="topictitle">{announcements_center_row.TITLE}</a><!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --> • <a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> • <!-- ENDIF -->
|
||||
<!-- IF announcements_center_row.PAGINATION --><strong class="pagination"><span>{announcements_center_row.PAGINATION}</span></strong><!-- ENDIF -->
|
||||
<br />{L_POSTED} {L_POST_BY_AUTHOR} {announcements_center_row.POSTER_FULL} » {announcements_center_row.TIME}
|
||||
<!-- IF announcements_center_row.FORUM_NAME -->
|
||||
<br />{L_FORUM}: <a href="{announcements_center_row.U_VIEWFORUM}" style="font-weight: bold;">{announcements_center_row.FORUM_NAME}</a>
|
||||
<!-- ELSE -->
|
||||
<br />{L_GLOBAL_ANNOUNCEMENT}
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not S_DISPLAY_ANNOUNCEMENTS_RVS --><!-- IF announcements_center_row.FORUM_NAME -->• <!-- ENDIF -->{L_REPLIES}: <strong>{announcements_center_row.REPLIES}</strong> • {L_VIEWS}: <strong>{announcements_center_row.TOPIC_VIEWS}</strong><!-- ENDIF -->
|
||||
</dt>
|
||||
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
|
||||
<dd class="posts" style="width: 11%">{announcements_center_row.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
|
||||
<dd class="views" style="width: 11%">{announcements_center_row.TOPIC_VIEWS} <dfn>{L_VIEWS}</dfn></dd>
|
||||
<!-- ENDIF -->
|
||||
<dd class="lastpost" style="width: 25%"><span><dfn>{L_LAST_POST}</dfn>{L_POST_BY_AUTHOR} {announcements_center_row.USERNAME_FULL_LAST} <!-- IF announcements_center_row.S_UNREAD_INFO --><a href="{announcements_center_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_center_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --><br />
|
||||
{announcements_center_row.LAST_POST_TIME}</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<!-- IF announcements_center_row.S_LAST_ROW -->
|
||||
<!-- IF AP_PAGINATION or TOTAL_ANNOUNCEMENTS -->
|
||||
<li class="row<!-- IF announcements_center_row.S_ROW_COUNT is even --> bg2<!-- ELSE --> bg1<!-- ENDIF -->">
|
||||
<div class="topic-actions">
|
||||
<div class="pagination">
|
||||
{TOTAL_ANNOUNCEMENTS}
|
||||
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> • {AP_PAGE_NUMBER} • <span>{AP_PAGINATION}</span><!-- ELSE --> • {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<!-- ENDIF -->
|
||||
</ul>
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<!-- END announcements_center_row -->
|
||||
@@ -1,59 +0,0 @@
|
||||
<!-- BEGIN announcements_row -->
|
||||
<!-- IF announcements_row.S_NO_TOPICS -->
|
||||
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
|
||||
<div class="post bg2" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ELSE -->
|
||||
<!-- IF announcements_row.S_FIRST_ROW -->
|
||||
<a name="a"></a>
|
||||
{$CC_BLOCK_H_L}
|
||||
<dt <!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->style="width: 44%"<!-- ELSE -->style="width: 60%"<!-- ENDIF -->>{$TITLE}</dt>
|
||||
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
|
||||
<dd class="posts" style="width: 11%">{L_REPLIES}</dd>
|
||||
<dd class="views" style="width: 11%">{L_VIEWS}</dd>
|
||||
<!-- ENDIF -->
|
||||
<dd class="lastpost" style="width: 25%"><span>{L_LAST_POST}</span></dd>
|
||||
{$CC_BLOCK_H_R}
|
||||
<ul class="topiclist topics">
|
||||
<!-- ENDIF -->
|
||||
<li class="row<!-- IF announcements_row.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
|
||||
<dl class="icon" style="background-image: url({announcements_row.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
|
||||
<dt style="<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->width: 44%;<!-- ELSE -->width: 60%;<!-- ENDIF --> <!-- IF announcements_row.TOPIC_ICON_IMG -->background-image: url({T_ICONS_PATH}{announcements_row.TOPIC_ICON_IMG}); background-repeat: no-repeat;<!-- ENDIF -->" title="{announcements_row.TOPIC_FOLDER_IMG_ALT}"><!-- IF announcements_row.S_UNREAD_TOPIC --><a href="{announcements_row.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><!-- IF announcements_row.ATTACH_ICON_IMG -->{announcements_row.ATTACH_ICON_IMG} <!-- ENDIF --><!-- IF announcements_row.S_POLL --><strong>{L_VIEW_TOPIC_POLL}</strong><!-- ENDIF --><a href="{announcements_row.U_VIEW_COMMENTS}" title="{announcements_row.TITLE}" class="topictitle">{announcements_row.TITLE}</a><!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --> • <a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> • <!-- ENDIF -->
|
||||
<!-- IF announcements_row.PAGINATION --><strong class="pagination"><span>{announcements_row.PAGINATION}</span></strong><!-- ENDIF -->
|
||||
<br />{L_POSTED} {L_POST_BY_AUTHOR} {announcements_row.POSTER_FULL} » {announcements_row.TIME}
|
||||
<!-- IF announcements_row.FORUM_NAME -->
|
||||
<br />{L_FORUM}: <a href="{announcements_row.U_VIEWFORUM}" style="font-weight: bold;">{announcements_row.FORUM_NAME}</a>
|
||||
<!-- ELSE -->
|
||||
<br />{L_GLOBAL_ANNOUNCEMENT}
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not S_DISPLAY_ANNOUNCEMENTS_RVS --><!-- IF announcements_row.FORUM_NAME -->• <!-- ENDIF -->{L_REPLIES}: <strong>{announcements_row.REPLIES}</strong> • {L_VIEWS}: <strong>{announcements_row.TOPIC_VIEWS}</strong><!-- ENDIF -->
|
||||
</dt>
|
||||
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
|
||||
<dd class="posts" style="width: 11%">{announcements_row.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
|
||||
<dd class="views" style="width: 11%">{announcements_row.TOPIC_VIEWS} <dfn>{L_VIEWS}</dfn></dd>
|
||||
<!-- ENDIF -->
|
||||
<dd class="lastpost" style="width: 25%"><span><dfn>{L_LAST_POST}</dfn>{L_POST_BY_AUTHOR} {announcements_row.USERNAME_FULL_LAST} <!-- IF announcements_row.S_UNREAD_INFO --><a href="{announcements_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --><br />
|
||||
{announcements_row.LAST_POST_TIME}</span>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<!-- IF announcements_row.S_LAST_ROW -->
|
||||
<!-- IF AP_PAGINATION or TOTAL_ANNOUNCEMENTS -->
|
||||
<li class="row<!-- IF announcements_row.S_ROW_COUNT is even --> bg2<!-- ELSE --> bg1<!-- ENDIF -->">
|
||||
<div class="topic-actions">
|
||||
<div class="pagination">
|
||||
{TOTAL_ANNOUNCEMENTS}
|
||||
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> • {AP_PAGE_NUMBER} • <span>{AP_PAGINATION}</span><!-- ELSE --> • {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<!-- ENDIF -->
|
||||
</ul>
|
||||
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<!-- END announcements_row -->
|
||||
@@ -1,16 +1,16 @@
|
||||
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
|
||||
<div class="panel bg1" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<!-- IF .attach -->
|
||||
<span style="float:left;"><strong>{L_FILENAME}</strong></span><br />
|
||||
<!-- BEGIN attach -->
|
||||
<span style="float:left;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" /> <a href="{attach.U_TOPIC}" title="{attach.REAL_FILENAME}"><strong>{attach.FILENAME}</strong></a></span><br style="clear:both" />
|
||||
<span style="float:left;padding-right:10px;">{L_FILESIZE}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.FILESIZE}</strong></span><br style="clear:both" />
|
||||
<span style="float:left;padding-right:10px;">{L_DOWNLOADS}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
|
||||
<!-- IF not attach.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
|
||||
<!-- END .attach -->
|
||||
<!-- IF .attach_center -->
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br />
|
||||
<!-- BEGIN attach_center -->
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" /> <a href="{attach_center.U_TOPIC}" title="{attach_center.REAL_FILENAME}"><strong>{attach_center.FILENAME}</strong></a></span><br style="clear:both" />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_FILESIZE}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_center.FILESIZE}</strong></span><br style="clear:both" />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_DOWNLOADS}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_center.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
|
||||
<!-- IF not attach_center.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
|
||||
<!-- END .attach_center -->
|
||||
<!-- ELSE -->
|
||||
<span style="float:left;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
|
||||
<!-- ENDIF -->
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" /> <!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
|
||||
<!-- IF .attach -->
|
||||
<span style="float:left;"><strong>{L_FILENAME}</strong></span><br />
|
||||
<!-- BEGIN attach -->
|
||||
<span style="float:left;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" /> <a href="{attach.U_TOPIC}" title="{attach.REAL_FILENAME}"><strong>{attach.FILENAME}</strong></a></span><br style="clear:both" />
|
||||
<span style="float:left;padding-right:10px;">{L_FILESIZE}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.FILESIZE}</strong></span><br style="clear:both" />
|
||||
<span style="float:left;padding-right:10px;">{L_DOWNLOADS}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
|
||||
<!-- IF not attach.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
|
||||
<!-- END .attach -->
|
||||
<!-- IF .attach_side -->
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br />
|
||||
<!-- BEGIN attach_side -->
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" /> <a href="{attach_side.U_TOPIC}" title="{attach_side.REAL_FILENAME}"><strong>{attach_side.FILENAME}</strong></a></span><br style="clear:both" />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_FILESIZE}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_side.FILESIZE}</strong></span><br style="clear:both" />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_DOWNLOADS}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_side.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
|
||||
<!-- IF not attach_side.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
|
||||
<!-- END .attach_side -->
|
||||
<!-- ELSE -->
|
||||
<span style="float:left;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
|
||||
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
|
||||
<!-- ENDIF -->
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
@@ -1,6 +1,17 @@
|
||||
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" /> <!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
|
||||
<!-- IF BIRTHDAY_LIST -->
|
||||
<strong>{L_CONGRATULATIONS}:</strong><br /> {BIRTHDAY_LIST}
|
||||
<strong>{L_CONGRATULATIONS}:</strong><br />
|
||||
<!-- BEGIN board3_birthday_list -->
|
||||
<span style="float:left;">
|
||||
<img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" />
|
||||
</span>
|
||||
<span style="float:left; padding-left:5px; padding-top:2px;">
|
||||
{board3_birthday_list.USER}
|
||||
</span>
|
||||
<span style="float: right;">
|
||||
<!-- IF board3_birthday_list.AGE -->{board3_birthday_list.AGE}<!-- ENDIF -->
|
||||
</span><br style="clear: both" />
|
||||
<!-- END board3_birthday_list -->
|
||||
<!-- ELSE -->
|
||||
{L_NO_BIRTHDAYS}
|
||||
<!-- ENDIF -->
|
||||
@@ -9,9 +20,19 @@
|
||||
<strong>{L_BIRTHDAYS_AHEAD}</strong>
|
||||
<br />
|
||||
<!-- IF BIRTHDAYS_AHEAD_LIST -->
|
||||
{BIRTHDAYS_AHEAD_LIST}
|
||||
<!-- BEGIN board3_birthday_ahead_list -->
|
||||
<span style="float:left;">
|
||||
<img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" />
|
||||
</span>
|
||||
<span style="float:left; padding-left:5px; padding-top:2px;">
|
||||
<span title="{board3_birthday_ahead_list.DATE}">{board3_birthday_ahead_list.USER}</span>
|
||||
</span>
|
||||
<span style="float: right;">
|
||||
<!-- IF board3_birthday_ahead_list.AGE -->{board3_birthday_ahead_list.AGE}<!-- ENDIF -->
|
||||
</span><br style="clear: both" />
|
||||
<!-- END board3_birthday_ahead_list -->
|
||||
<!-- ELSE -->
|
||||
{L_NO_BIRTHDAYS_AHEAD}
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<!-- BEGIN minical -->
|
||||
<!-- IF minical.MODULE_ID eq $MODULE_ID -->
|
||||
<a name="minical{minical.MODULE_ID}"></a>
|
||||
<a id="minical{minical.MODULE_ID}" style="float: right;"></a>
|
||||
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" /> <!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
|
||||
<table width="100%" cellspacing="1">
|
||||
<tr>
|
||||
<td align="left" colspan="2">{minical.U_PREV_MONTH}</td>
|
||||
<td align="left" colspan="2"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{minical.U_NEXT_MONTH}<!-- ELSE -->{minical.U_PREV_MONTH}<!-- ENDIF --></td>
|
||||
<td colspan="3" align="center"><span class="genmed">{minical.L_MINI_CAL_MONTH}</span></td>
|
||||
<td align="right" colspan="2">{minical.U_NEXT_MONTH}</td>
|
||||
<td align="right" colspan="2"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{minical.U_PREV_MONTH}<!-- ELSE -->{minical.U_NEXT_MONTH}<!-- ENDIF --></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- IF minical.S_SUNDAY_FIRST -->
|
||||
@@ -61,26 +61,27 @@
|
||||
<div class="menutitle" style="font: bold 12px 'Trebuchet MS','Lucida Grande',Arial,sans-serif; text-decoration: underline;">{L_UPCOMING_EVENTS}:</div>
|
||||
<ul class="portal-events">
|
||||
<!-- BEGIN upcoming_events -->
|
||||
|
||||
|
||||
<li class="row">
|
||||
<dl class="icon">
|
||||
<dt style="width: 100%; padding-left: 0px; padding-bottom: 5px;">
|
||||
<!-- IF minical.upcoming_events.EVENT_URL --><a href="{minical.upcoming_events.EVENT_URL}" title="{minical.upcoming_events.EVENT_TITLE}" <!-- IF minical.upcoming_events.EVENT_URL_NEW_WINDOW -->onclick="window.open('{minical.upcoming_events.EVENT_URL}'); return false;"<!-- ENDIF -->><!-- ENDIF -->
|
||||
<span style="font-weight: bold;">{minical.upcoming_events.EVENT_TITLE}:</span><br />
|
||||
<!-- IF minical.upcoming_events.EVENT_DESC --><span style="font-style: italic;">{minical.upcoming_events.EVENT_DESC}</span><br /><!-- ENDIF -->
|
||||
<!-- IF not minical.upcoming_events.ALL_DAY and not minical.upcoming_events.END_TIME -->{L_EVENT_TIME}: {minical.upcoming_events.START_TIME}<br />
|
||||
<!-- ELSEIF not minical.upcoming_events.ALL_DAY and minical.upcoming_events.END_TIME -->{L_EVENT_START}: {minical.upcoming_events.START_TIME}<br />{L_EVENT_END}: {minical.upcoming_events.END_TIME}<br />
|
||||
<!-- ELSE -->{L_EVENT_TIME}: {minical.upcoming_events.START_TIME}<br />{L_EVENT_ALL_DAY}<br />
|
||||
<!-- ENDIF -->
|
||||
<!-- IF minical.upcoming_events.EVENT_DESC --><span style="font-style: italic;">{minical.upcoming_events.EVENT_DESC}</span><br /><!-- ENDIF -->
|
||||
<!-- IF minical.upcoming_events.EVENT_URL --></a><!-- ENDIF -->
|
||||
</dt>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
|
||||
<!-- BEGINELSE -->
|
||||
<li class="calendar-info"><span style="float:left;" class="gensmall"><strong>{L_NO_UPCOMING_EVENTS}</strong></span><br /></li>
|
||||
<!-- END upcoming_events -->
|
||||
</ul>
|
||||
<br />
|
||||
<!-- ENDIF -->
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
<!-- ENDIF -->
|
||||
|
||||
@@ -6,5 +6,4 @@
|
||||
<param name="movie" value="{T_THEME_PATH}/images/portal/board3clock.swf" />
|
||||
</object>
|
||||
</div>
|
||||
<br />
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="panel bg1" style="margin-bottom: 0px">
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<div class="postbody" style="width: 100%">
|
||||
<div class="content">{$CUSTOM_CODE}</div>
|
||||
<div class="content" style="min-height: 1em;">{$CUSTOM_CODE}</div>
|
||||
</div>
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" /> <!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
|
||||
<div class="inner"><span class="portal-corners-top-inner"></span>
|
||||
<div class="postbody" style="width: 100%">
|
||||
<div class="content">{$CUSTOM_CODE}</div>
|
||||
<div class="content" style="min-height: 1em;">{$CUSTOM_CODE}</div>
|
||||
</div>
|
||||
<span class="portal-corners-bottom-inner"></span></div>
|
||||
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user