summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakan Sandell <sandell.hakan@gmail.com>2010-11-20 14:30:57 +0100
committerHakan Sandell <sandell.hakan@gmail.com>2010-11-20 14:30:57 +0100
commit8f0a521756228d15469d2a712fa1010b64a1d53a (patch)
tree38ce28a99433403fa18d2bce871abc7290c8be54
parentba9418bca378a6759305e3b388926df4f5a0af9c (diff)
parent85dcda20ffd82becbe69a7ca5d99e4b6fd99c9ea (diff)
downloadrpg-8f0a521756228d15469d2a712fa1010b64a1d53a.tar.gz
rpg-8f0a521756228d15469d2a712fa1010b64a1d53a.tar.bz2
Merge branch 'master' of git://github.com/splitbrain/dokuwiki
-rw-r--r--inc/DifferenceEngine.php282
-rw-r--r--inc/JSON.php17
-rw-r--r--inc/actions.php17
-rw-r--r--inc/changelog.php9
-rw-r--r--inc/form.php4
-rw-r--r--inc/html.php1
-rw-r--r--inc/lang/cs/lang.php4
-rw-r--r--inc/lang/cs/subscr_form.txt2
-rw-r--r--inc/lang/ko/adminplugins.txt1
-rw-r--r--inc/lang/ko/edit.txt2
-rw-r--r--inc/lang/ko/lang.php80
-rw-r--r--inc/lang/ko/register.txt2
-rw-r--r--inc/lang/ko/subscr_digest.txt18
-rw-r--r--inc/lang/ko/subscr_form.txt3
-rw-r--r--inc/lang/ko/subscr_list.txt15
-rw-r--r--inc/lang/ko/subscr_single.txt21
-rw-r--r--inc/parserutils.php72
-rw-r--r--inc/search.php3
-rw-r--r--inc/template.php4
-rw-r--r--lib/exe/indexer.php4
-rw-r--r--lib/plugins/acl/admin.php2
-rw-r--r--lib/plugins/acl/lang/ko/lang.php1
-rw-r--r--lib/plugins/config/lang/cs/intro.txt2
-rw-r--r--lib/plugins/config/lang/cs/lang.php10
-rw-r--r--lib/plugins/config/lang/ko/lang.php8
-rw-r--r--lib/plugins/plugin/lang/cs/lang.php4
-rw-r--r--lib/plugins/plugin/lang/ko/lang.php1
-rw-r--r--lib/plugins/popularity/lang/cs/intro.txt2
-rw-r--r--lib/plugins/popularity/lang/ko/lang.php1
-rw-r--r--lib/plugins/revert/lang/cs/intro.txt2
-rw-r--r--lib/plugins/revert/lang/ko/lang.php1
-rw-r--r--lib/plugins/usermanager/lang/cs/lang.php2
-rw-r--r--lib/plugins/usermanager/lang/ko/lang.php1
-rw-r--r--lib/scripts/media.js9
-rw-r--r--lib/styles/style.css104
35 files changed, 479 insertions, 232 deletions
diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php
index 7b14e4463..a56fe9f6e 100644
--- a/inc/DifferenceEngine.php
+++ b/inc/DifferenceEngine.php
@@ -30,7 +30,7 @@ class _DiffOp {
class _DiffOp_Copy extends _DiffOp {
var $type = 'copy';
- function _DiffOp_Copy ($orig, $closing = false) {
+ function _DiffOp_Copy($orig, $closing = false) {
if (!is_array($closing))
$closing = $orig;
$this->orig = $orig;
@@ -45,7 +45,7 @@ class _DiffOp_Copy extends _DiffOp {
class _DiffOp_Delete extends _DiffOp {
var $type = 'delete';
- function _DiffOp_Delete ($lines) {
+ function _DiffOp_Delete($lines) {
$this->orig = $lines;
$this->closing = false;
}
@@ -58,7 +58,7 @@ class _DiffOp_Delete extends _DiffOp {
class _DiffOp_Add extends _DiffOp {
var $type = 'add';
- function _DiffOp_Add ($lines) {
+ function _DiffOp_Add($lines) {
$this->closing = $lines;
$this->orig = false;
}
@@ -71,7 +71,7 @@ class _DiffOp_Add extends _DiffOp {
class _DiffOp_Change extends _DiffOp {
var $type = 'change';
- function _DiffOp_Change ($orig, $closing) {
+ function _DiffOp_Change($orig, $closing) {
$this->orig = $orig;
$this->closing = $closing;
}
@@ -104,7 +104,7 @@ class _DiffOp_Change extends _DiffOp {
*/
class _DiffEngine {
- function diff ($from_lines, $to_lines) {
+ function diff($from_lines, $to_lines) {
$n_from = count($from_lines);
$n_to = count($to_lines);
@@ -135,7 +135,7 @@ class _DiffEngine {
$xhash[$from_lines[$xi]] = 1;
for ($yi = $skip; $yi < $n_to - $endskip; $yi++) {
$line = $to_lines[$yi];
- if ( ($this->ychanged[$yi] = empty($xhash[$line])) )
+ if (($this->ychanged[$yi] = empty($xhash[$line])))
continue;
$yhash[$line] = 1;
$this->yv[] = $line;
@@ -143,7 +143,7 @@ class _DiffEngine {
}
for ($xi = $skip; $xi < $n_from - $endskip; $xi++) {
$line = $from_lines[$xi];
- if ( ($this->xchanged[$xi] = empty($yhash[$line])) )
+ if (($this->xchanged[$xi] = empty($yhash[$line])))
continue;
$this->xv[] = $line;
$this->xind[] = $xi;
@@ -165,8 +165,7 @@ class _DiffEngine {
// Skip matching "snake".
$copy = array();
- while ( $xi < $n_from && $yi < $n_to
- && !$this->xchanged[$xi] && !$this->ychanged[$yi]) {
+ while ($xi < $n_from && $yi < $n_to && !$this->xchanged[$xi] && !$this->ychanged[$yi]) {
$copy[] = $from_lines[$xi++];
++$yi;
}
@@ -210,15 +209,14 @@ class _DiffEngine {
* match. The caller must trim matching lines from the beginning and end
* of the portions it is going to specify.
*/
- function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) {
+ function _diag($xoff, $xlim, $yoff, $ylim, $nchunks) {
$flip = false;
if ($xlim - $xoff > $ylim - $yoff) {
// Things seems faster (I'm not sure I understand why)
// when the shortest sequence in X.
$flip = true;
- list ($xoff, $xlim, $yoff, $ylim)
- = array( $yoff, $ylim, $xoff, $xlim);
+ list ($xoff, $xlim, $yoff, $ylim) = array($yoff, $ylim, $xoff, $xlim);
}
if ($flip)
@@ -284,7 +282,7 @@ class _DiffEngine {
return array($this->lcs, $seps);
}
- function _lcs_pos ($ypos) {
+ function _lcs_pos($ypos) {
$end = $this->lcs;
if ($end == 0 || $ypos > $this->seq[$end]) {
$this->seq[++$this->lcs] = $ypos;
@@ -295,7 +293,7 @@ class _DiffEngine {
$beg = 1;
while ($beg < $end) {
$mid = (int)(($beg + $end) / 2);
- if ( $ypos > $this->seq[$mid] )
+ if ($ypos > $this->seq[$mid])
$beg = $mid + 1;
else
$end = $mid;
@@ -321,17 +319,15 @@ class _DiffEngine {
* Note that XLIM, YLIM are exclusive bounds.
* All line numbers are origin-0 and discarded lines are not counted.
*/
- function _compareseq ($xoff, $xlim, $yoff, $ylim) {
+ function _compareseq($xoff, $xlim, $yoff, $ylim) {
// Slide down the bottom initial diagonal.
- while ($xoff < $xlim && $yoff < $ylim
- && $this->xv[$xoff] == $this->yv[$yoff]) {
+ while ($xoff < $xlim && $yoff < $ylim && $this->xv[$xoff] == $this->yv[$yoff]) {
++$xoff;
++$yoff;
}
// Slide up the top initial diagonal.
- while ($xlim > $xoff && $ylim > $yoff
- && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) {
+ while ($xlim > $xoff && $ylim > $yoff && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) {
--$xlim;
--$ylim;
}
@@ -379,7 +375,7 @@ class _DiffEngine {
*
* This is extracted verbatim from analyze.c (GNU diffutils-2.7).
*/
- function _shift_boundaries ($lines, &$changed, $other_changed) {
+ function _shift_boundaries($lines, &$changed, $other_changed) {
$i = 0;
$j = 0;
@@ -519,7 +515,7 @@ class Diff {
* @return object A Diff object representing the inverse of the
* original diff.
*/
- function reverse () {
+ function reverse() {
$rev = $this;
$rev->edits = array();
foreach ($this->edits as $edit) {
@@ -533,7 +529,7 @@ class Diff {
*
* @return bool True iff two sequences were identical.
*/
- function isEmpty () {
+ function isEmpty() {
foreach ($this->edits as $edit) {
if ($edit->type != 'copy')
return false;
@@ -548,7 +544,7 @@ class Diff {
*
* @return int The length of the LCS.
*/
- function lcs () {
+ function lcs() {
$lcs = 0;
foreach ($this->edits as $edit) {
if ($edit->type == 'copy')
@@ -598,7 +594,7 @@ class Diff {
*
* This is here only for debugging purposes.
*/
- function _check ($from_lines, $to_lines) {
+ function _check($from_lines, $to_lines) {
if (serialize($from_lines) != serialize($this->orig()))
trigger_error("Reconstructed original doesn't match", E_USER_ERROR);
if (serialize($to_lines) != serialize($this->closing()))
@@ -612,7 +608,7 @@ class Diff {
$prevtype = 'none';
foreach ($this->edits as $edit) {
- if ( $prevtype == $edit->type )
+ if ($prevtype == $edit->type)
trigger_error("Edit sequence is non-optimal", E_USER_ERROR);
$prevtype = $edit->type;
}
@@ -649,8 +645,7 @@ class MappedDiff extends Diff {
* @param $mapped_to_lines array This array should
* have the same number of elements as $to_lines.
*/
- function MappedDiff($from_lines, $to_lines,
- $mapped_from_lines, $mapped_to_lines) {
+ function MappedDiff($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) {
assert(count($from_lines) == count($mapped_from_lines));
assert(count($to_lines) == count($mapped_to_lines));
@@ -727,9 +722,7 @@ class DiffFormatter {
$context = array_slice($edit->orig, 0, $ntrail);
$block[] = new _DiffOp_Copy($context);
}
- $this->_block($x0, $ntrail + $xi - $x0,
- $y0, $ntrail + $yi - $y0,
- $block);
+ $this->_block($x0, $ntrail + $xi - $x0, $y0, $ntrail + $yi - $y0, $block);
$block = false;
}
}
@@ -754,9 +747,7 @@ class DiffFormatter {
}
if (is_array($block))
- $this->_block($x0, $xi - $x0,
- $y0, $yi - $y0,
- $block);
+ $this->_block($x0, $xi - $x0, $y0, $yi - $y0, $block);
return $this->_end_diff();
}
@@ -836,17 +827,21 @@ class DiffFormatter {
define('NBSP', "\xC2\xA0"); // utf-8 non-breaking space.
class _HWLDF_WordAccumulator {
- function _HWLDF_WordAccumulator () {
+ function _HWLDF_WordAccumulator() {
$this->_lines = array();
$this->_line = '';
$this->_group = '';
$this->_tag = '';
}
- function _flushGroup ($new_tag) {
+ function _flushGroup($new_tag) {
if ($this->_group !== '') {
if ($this->_tag == 'mark')
$this->_line .= '<strong>'.$this->_group.'</strong>';
+ elseif ($this->_tag == 'add')
+ $this->_line .= '<span class="diff-addedline">'.$this->_group.'</span>';
+ elseif ($this->_tag == 'del')
+ $this->_line .= '<span class="diff-deletedline"><del>'.$this->_group.'</del></span>';
else
$this->_line .= $this->_group;
}
@@ -854,14 +849,14 @@ class _HWLDF_WordAccumulator {
$this->_tag = $new_tag;
}
- function _flushLine ($new_tag) {
+ function _flushLine($new_tag) {
$this->_flushGroup($new_tag);
if ($this->_line != '')
$this->_lines[] = $this->_line;
$this->_line = '';
}
- function addWords ($words, $tag = '') {
+ function addWords($words, $tag = '') {
if ($tag != $this->_tag)
$this->_flushGroup($tag);
@@ -887,46 +882,80 @@ class _HWLDF_WordAccumulator {
class WordLevelDiff extends MappedDiff {
- function WordLevelDiff ($orig_lines, $closing_lines) {
+ function WordLevelDiff($orig_lines, $closing_lines) {
list ($orig_words, $orig_stripped) = $this->_split($orig_lines);
list ($closing_words, $closing_stripped) = $this->_split($closing_lines);
- $this->MappedDiff($orig_words, $closing_words,
- $orig_stripped, $closing_stripped);
+ $this->MappedDiff($orig_words, $closing_words, $orig_stripped, $closing_stripped);
}
function _split($lines) {
- if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
- implode("\n", $lines),
- $m)) {
+ if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
+ implode("\n", $lines), $m)) {
return array(array(''), array(''));
- }
- return array($m[0], $m[1]);
- }
+ }
+ return array($m[0], $m[1]);
+ }
- function orig () {
- $orig = new _HWLDF_WordAccumulator;
+ function orig() {
+ $orig = new _HWLDF_WordAccumulator;
- foreach ($this->edits as $edit) {
+ foreach ($this->edits as $edit) {
if ($edit->type == 'copy')
- $orig->addWords($edit->orig);
+ $orig->addWords($edit->orig);
elseif ($edit->orig)
- $orig->addWords($edit->orig, 'mark');
- }
- return $orig->getLines();
- }
+ $orig->addWords($edit->orig, 'mark');
+ }
+ return $orig->getLines();
+ }
- function closing () {
- $closing = new _HWLDF_WordAccumulator;
+ function closing() {
+ $closing = new _HWLDF_WordAccumulator;
- foreach ($this->edits as $edit) {
- if ($edit->type == 'copy')
- $closing->addWords($edit->closing);
- elseif ($edit->closing)
- $closing->addWords($edit->closing, 'mark');
- }
- return $closing->getLines();
- }
+ foreach ($this->edits as $edit) {
+ if ($edit->type == 'copy')
+ $closing->addWords($edit->closing);
+ elseif ($edit->closing)
+ $closing->addWords($edit->closing, 'mark');
+ }
+ return $closing->getLines();
+ }
+}
+
+class InlineWordLevelDiff extends MappedDiff {
+
+ function InlineWordLevelDiff($orig_lines, $closing_lines) {
+ list ($orig_words, $orig_stripped) = $this->_split($orig_lines);
+ list ($closing_words, $closing_stripped) = $this->_split($closing_lines);
+
+ $this->MappedDiff($orig_words, $closing_words, $orig_stripped, $closing_stripped);
+ }
+
+ function _split($lines) {
+ if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
+ implode("\n", $lines), $m)) {
+ return array(array(''), array(''));
+ }
+ return array($m[0], $m[1]);
+ }
+
+ function inline() {
+ $orig = new _HWLDF_WordAccumulator;
+ foreach ($this->edits as $edit) {
+ if ($edit->type == 'copy')
+ $orig->addWords($edit->orig);
+ elseif ($edit->type == 'change'){
+ $orig->addWords($edit->orig, 'del');
+ $orig->addWords($edit->closing, 'add');
+ } elseif ($edit->type == 'delete')
+ $orig->addWords($edit->orig, 'del');
+ elseif ($edit->type == 'add')
+ $orig->addWords($edit->closing, 'add');
+ elseif ($edit->orig)
+ $orig->addWords($edit->orig, 'del');
+ }
+ return $orig->getLines();
+ }
}
/**
@@ -986,76 +1015,145 @@ class TableDiffFormatter extends DiffFormatter {
return $text;
}
- function _block_header( $xbeg, $xlen, $ybeg, $ylen ) {
+ function _block_header($xbeg, $xlen, $ybeg, $ylen) {
global $lang;
$l1 = $lang['line'].' '.$xbeg;
$l2 = $lang['line'].' '.$ybeg;
- $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.":</td>\n" .
- '<td class="diff-blockheader" colspan="2">'.$l2.":</td></tr>\n";
+ $r = '<tr><td class="diff-blockheader" colspan="2">'.$l1.':</td>\n'.
+ ' <td class="diff-blockheader" colspan="2">'.$l2.":</td>\n'.
+ '</tr>\n";
return $r;
}
- function _start_block( $header ) {
- print( $header );
+ function _start_block($header) {
+ print($header);
}
function _end_block() {
}
- function _lines( $lines, $prefix=' ', $color="white" ) {
+ function _lines($lines, $prefix=' ', $color="white") {
}
- function addedLine( $line ) {
- return '<td>+</td><td class="diff-addedline">' .
- $line.'</td>';
-
+ function addedLine($line) {
+ return '<td>+</td><td class="diff-addedline">' . $line.'</td>';
}
- function deletedLine( $line ) {
- return '<td>-</td><td class="diff-deletedline">' .
- $line.'</td>';
+ function deletedLine($line) {
+ return '<td>-</td><td class="diff-deletedline">' . $line.'</td>';
}
function emptyLine() {
return '<td colspan="2">&nbsp;</td>';
}
- function contextLine( $line ) {
+ function contextLine($line) {
return '<td> </td><td class="diff-context">'.$line.'</td>';
}
function _added($lines) {
foreach ($lines as $line) {
- print( '<tr>' . $this->emptyLine() .
- $this->addedLine( $line ) . "</tr>\n" );
+ print('<tr>' . $this->emptyLine() . $this->addedLine($line) . "</tr>\n");
}
}
function _deleted($lines) {
foreach ($lines as $line) {
- print( '<tr>' . $this->deletedLine( $line ) .
- $this->emptyLine() . "</tr>\n" );
+ print('<tr>' . $this->deletedLine($line) . $this->emptyLine() . "</tr>\n");
}
}
- function _context( $lines ) {
+ function _context($lines) {
foreach ($lines as $line) {
- print( '<tr>' . $this->contextLine( $line ) .
- $this->contextLine( $line ) . "</tr>\n" );
+ print('<tr>' . $this->contextLine($line) . $this->contextLine($line) . "</tr>\n");
}
}
- function _changed( $orig, $closing ) {
- $diff = new WordLevelDiff( $orig, $closing );
+ function _changed($orig, $closing) {
+ $diff = new WordLevelDiff($orig, $closing);
$del = $diff->orig();
$add = $diff->closing();
- while ( $line = array_shift( $del ) ) {
- $aline = array_shift( $add );
- print( '<tr>' . $this->deletedLine( $line ) .
- $this->addedLine( $aline ) . "</tr>\n" );
+ while ($line = array_shift($del)) {
+ $aline = array_shift($add);
+ print('<tr>' . $this->deletedLine($line) . $this->addedLine($aline) . "</tr>\n");
}
- $this->_added( $add ); # If any leftovers
+ $this->_added($add); # If any leftovers
+ }
+}
+
+/**
+ * Inline style diff formatter.
+ *
+ */
+class InlineDiffFormatter extends DiffFormatter {
+
+ function InlineDiffFormatter() {
+ $this->leading_context_lines = 2;
+ $this->trailing_context_lines = 2;
+ }
+
+ function format($diff) {
+ // Preserve whitespaces by converting some to non-breaking spaces.
+ // Do not convert all of them to allow word-wrap.
+ $val = parent::format($diff);
+ $val = str_replace(' ','&nbsp; ', $val);
+ $val = preg_replace('/ (?=<)|(?<=[ >]) /', '&nbsp;', $val);
+ return $val;
+ }
+
+ function _pre($text){
+ $text = htmlspecialchars($text);
+ return $text;
+ }
+
+ function _block_header($xbeg, $xlen, $ybeg, $ylen) {
+ global $lang;
+ if ($xlen != 1)
+ $xbeg .= "," . $xlen;
+ if ($ylen != 1)
+ $ybeg .= "," . $ylen;
+ $r = '<tr><td class="diff-blockheader">@@ '.$lang['line']." -$xbeg +$ybeg @@";
+ $r .= ' <span class="diff-deletedline"><del>'.$lang['deleted'].'</del></span>';
+ $r .= ' <span class="diff-addedline">'.$lang['created'].'</span>';
+ $r .= "</td></tr>\n";
+ return $r;
+ }
+
+ function _start_block($header) {
+ print($header."\n");
+ }
+
+ function _end_block() {
+ }
+
+ function _lines($lines, $prefix=' ', $color="white") {
+ }
+
+ function _added($lines) {
+ foreach ($lines as $line) {
+ print('<tr><td class="diff-addedline">'. $line . "</td></tr>\n");
+ }
+ }
+
+ function _deleted($lines) {
+ foreach ($lines as $line) {
+ print('<tr><td class="diff-deletedline"><del>' . $line . "</del></td></tr>\n");
+ }
+ }
+
+ function _context($lines) {
+ foreach ($lines as $line) {
+ print('<tr><td class="diff-context">'.$line."</td></tr>\n");
+ }
+ }
+
+ function _changed($orig, $closing) {
+ $diff = new InlineWordLevelDiff($orig, $closing);
+ $add = $diff->inline();
+
+ foreach ($add as $line)
+ print('<tr><td>'.$line."</td></tr>\n");
}
}
diff --git a/inc/JSON.php b/inc/JSON.php
index 332827f4c..2dea44003 100644
--- a/inc/JSON.php
+++ b/inc/JSON.php
@@ -112,6 +112,16 @@ define('JSON_STRICT_TYPE', 11);
* @deprecated
*/
class JSON {
+
+ /**
+ * Disables the use of PHP5's native json_decode()
+ *
+ * You shouldn't change this usually because the native function is much
+ * faster. However, this non-native will also parse slightly broken JSON
+ * which might be handy when talking to a non-conform endpoint
+ */
+ public $skipnative = false;
+
/**
* constructs a new JSON instance
*
@@ -130,6 +140,7 @@ class JSON {
/**
* encodes an arbitrary variable into JSON format
+ * If available the native PHP JSON implementation is used.
*
* @param mixed $var any number, boolean, string, array, or object to be encoded.
* see argument 1 to JSON() above for array-parsing behavior.
@@ -140,6 +151,7 @@ class JSON {
* @access public
*/
function encode($var) {
+ if (function_exists('json_encode')) return json_encode($var);
switch (gettype($var)) {
case 'boolean':
return $var ? 'true' : 'false';
@@ -352,6 +364,7 @@ class JSON {
/**
* decodes a JSON string into appropriate variable
+ * If available the native PHP JSON implementation is used.
*
* @param string $str JSON-formatted string
*
@@ -363,6 +376,10 @@ class JSON {
* @access public
*/
function decode($str) {
+ if (!$this->skipnative && function_exists('json_decode')){
+ return json_decode($str,($this->use == JSON_LOOSE_TYPE));
+ }
+
$str = $this->reduce_string($str);
switch (strtolower($str)) {
diff --git a/inc/actions.php b/inc/actions.php
index 9db7d5f24..fb2ae452f 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -20,6 +20,7 @@ function act_dispatch(){
global $ID;
global $QUERY;
global $lang;
+ global $conf;
$preact = $ACT;
@@ -50,6 +51,12 @@ function act_dispatch(){
}
}
+ //display some infos
+ if($ACT == 'check'){
+ check();
+ $ACT = 'show';
+ }
+
//check permissions
$ACT = act_permcheck($ACT);
@@ -120,12 +127,6 @@ function act_dispatch(){
if(substr($ACT,0,7) == 'export_')
$ACT = act_export($ACT);
- //display some infos
- if($ACT == 'check'){
- check();
- $ACT = 'show';
- }
-
//handle admin tasks
if($ACT == 'admin'){
// retrieve admin plugin name from $_REQUEST['page']
@@ -143,6 +144,10 @@ function act_dispatch(){
$ACT = act_permcheck($ACT);
} // end event ACTION_ACT_PREPROCESS default action
$evt->advise_after();
+ // Make sure plugs can handle 'denied'
+ if($conf['send404'] && $ACT == 'denied') {
+ header('HTTP/1.0 403 Forbidden');
+ }
unset($evt);
// when action 'show', the intial not 'show' and POST, do a redirect
diff --git a/inc/changelog.php b/inc/changelog.php
index bb00df76c..cc7612bfd 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -37,6 +37,15 @@ function parseChangelogLine($line) {
/**
* Add's an entry to the changelog and saves the metadata for the page
*
+ * @param int $date Timestamp of the change
+ * @param String $id Name of the affected page
+ * @param String $type Type of the change see DOKU_CHANGE_TYPE_*
+ * @param String $summary Summary of the change
+ * @param mixed $extra In case of a revert the revision (timestmp) of the reverted page
+ * @param array $flags Additional flags in a key value array.
+ * Availible flags:
+ * - ExternalEdit - mark as an external edit.
+ *
* @author Andreas Gohr <andi@splitbrain.org>
* @author Esther Brunner <wikidesign@gmail.com>
* @author Ben Coburn <btcoburn@silicodon.net>
diff --git a/inc/form.php b/inc/form.php
index 70190d2b4..e614d2f30 100644
--- a/inc/form.php
+++ b/inc/form.php
@@ -252,7 +252,7 @@ class Doku_Form {
global $lang;
$form = '';
$this->params['accept-charset'] = $lang['encoding'];
- $form .= '<form ' . html_attbuild($this->params) . '><div class="no">' . DOKU_LF;
+ $form .= '<form ' . buildAttributes($this->params,true) . '><div class="no">' . DOKU_LF;
if (!empty($this->_hidden)) {
foreach ($this->_hidden as $name=>$value)
$form .= form_hidden(array('name'=>$name, 'value'=>$value));
@@ -597,7 +597,7 @@ function form_makeListboxField($name, $values, $selected='', $label=null, $id=''
* @author Tom N Harris <tnharris@whoopdedo.org>
*/
function form_tag($attrs) {
- return '<'.$attrs['_tag'].' '.buildAttributes($attrs).'/>';
+ return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'/>';
}
/**
diff --git a/inc/html.php b/inc/html.php
index 7f502afa5..9d3c92707 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -26,6 +26,7 @@ function html_wikilink($id,$name=null,$search=''){
/**
* Helps building long attribute lists
*
+ * @deprecated Use buildAttributes instead
* @author Andreas Gohr <andi@splitbrain.org>
*/
function html_attbuild($attributes){
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index 33c6db01a..749a41a5b 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -242,7 +242,7 @@ $lang['i_wikiname'] = 'Název wiki';
$lang['i_enableacl'] = 'Zapnout ACL (doporučeno)';
$lang['i_superuser'] = 'Správce';
$lang['i_problems'] = 'Instalátor narazil na níže popsané problémy. Nelze pokračovat v instalaci, dokud je neopravíte.';
-$lang['i_modified'] = 'Instalátor bude z bezpečnostních důvodů pracovat pouze s čistou a ještě neupravenou instalací DokuWiki. Buď znovu rozbalte souboru z instalačního balíčku nebo se zkuste poradit s <a href="http://dokuwiki.org/install">instrukcemi pro instalci DokuWiki</a>.';
+$lang['i_modified'] = 'Instalátor bude z bezpečnostních důvodů pracovat pouze s čistou a ještě neupravenou instalací DokuWiki. Buď znovu rozbalte souboru z instalačního balíčku nebo se zkuste poradit s <a href="http://dokuwiki.org/install">instrukcemi pro instalaci DokuWiki</a>.';
$lang['i_funcna'] = 'PHP funkce <code>%s</code> není dostupná. Váš webhosting ji možná z nějakého důvodu vypnul.';
$lang['i_phpver'] = 'Verze vaší instalace PHP <code>%s</code> je nižší než požadovaná <code>%s</code>. Budete muset aktualizovat svou instalaci PHP.';
$lang['i_permfail'] = 'DokuWiki nemůže zapisovat do <code>%s</code>. Budete muset opravit práva k tomuto adresáři.';
@@ -268,7 +268,7 @@ $lang['mu_toobig'] = 'příliš velké';
$lang['mu_ready'] = 'připraveno k načtení';
$lang['mu_done'] = 'hotovo';
$lang['mu_fail'] = 'selhalo';
-$lang['mu_authfail'] = 'vypršla session';
+$lang['mu_authfail'] = 'vypršela session';
$lang['mu_progress'] = '@PCT@% načten';
$lang['mu_filetypes'] = 'Povolené typy souborů';
$lang['mu_info'] = 'soubory načteny.';
diff --git a/inc/lang/cs/subscr_form.txt b/inc/lang/cs/subscr_form.txt
index b786ac137..d051b646f 100644
--- a/inc/lang/cs/subscr_form.txt
+++ b/inc/lang/cs/subscr_form.txt
@@ -1,3 +1,3 @@
====== Správa odběratelů změn ======
-Tato stránka Vám umožnuje spravovat uživatele přihlášené k odběru změn aktuální stránky nebo jmenného prostoru. \ No newline at end of file
+Tato stránka Vám umožňuje spravovat uživatele přihlášené k odběru změn aktuální stránky nebo jmenného prostoru. \ No newline at end of file
diff --git a/inc/lang/ko/adminplugins.txt b/inc/lang/ko/adminplugins.txt
new file mode 100644
index 000000000..5312cf357
--- /dev/null
+++ b/inc/lang/ko/adminplugins.txt
@@ -0,0 +1 @@
+===== 부가적인 플러그인 ===== \ No newline at end of file
diff --git a/inc/lang/ko/edit.txt b/inc/lang/ko/edit.txt
index d73f935fe..9b59524f7 100644
--- a/inc/lang/ko/edit.txt
+++ b/inc/lang/ko/edit.txt
@@ -1,2 +1,2 @@
-페이지를 편집하고 **저장**을 누르십시오. 위키 구문은 [[wiki:syntax]] 혹은 [[syntax|(한글) 구문]]을 참고하십시오. 이 페이지를 **더 낫게 만들 자신이 있을** 때에만 편집하십시오. 실험을 하고 싶을 때에는, 먼저 [[playground:playground|연습장]] 에 가서 연습해 보십시오.
+페이지를 편집하고 **저장**을 누르십시오. 위키 구문은 [[wiki:syntax]] 혹은 [[wiki:ko_syntax|(한글) 구문]]을 참고하십시오. 이 페이지를 **더 낫게 만들 자신이 있을** 때에만 편집하십시오. 실험을 하고 싶을 때에는, 먼저 [[playground:playground|연습장]] 에 가서 연습해 보십시오.
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index 83014c151..3765dd011 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -8,6 +8,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -41,15 +42,13 @@ $lang['btn_back'] = '뒤로';
$lang['btn_backlink'] = '이전 링크';
$lang['btn_backtomedia'] = '미디어 파일 선택으로 돌아가기';
$lang['btn_subscribe'] = '구독 신청';
-$lang['btn_unsubscribe'] = '구독 신청 해지';
-$lang['btn_subscribens'] = '네임스페이스 구독 신청';
-$lang['btn_unsubscribens'] = '네임스페이스 구독 신청 해지';
$lang['btn_profile'] = '개인정보 변경';
$lang['btn_reset'] = '초기화';
$lang['btn_resendpwd'] = '새 패스워드 보내기';
$lang['btn_draft'] = '문서초안 편집';
$lang['btn_recover'] = '문서초안 복구';
$lang['btn_draftdel'] = '문서초안 삭제';
+$lang['btn_revert'] = '복원';
$lang['loggedinas'] = '다음 사용자로 로그인';
$lang['user'] = '사용자';
$lang['pass'] = '패스워드';
@@ -88,13 +87,45 @@ $lang['resendpwdconfirm'] = '확인 링크를 이메일로 보냈습니다.
$lang['resendpwdsuccess'] = '새로운 패스워드는 이메일로 보내드립니다.';
$lang['license'] = '이 위키의 내용은 다음의 라이센스에 따릅니다 :';
$lang['licenseok'] = '주의 : 이 페이지를 수정한다는 다음의 라이센스에 동의함을 의미합니다 :';
+$lang['searchmedia'] = '파일이름 찾기:';
+$lang['searchmedia_in'] = ' %에서 검색';
$lang['txt_upload'] = '업로드 파일을 선택합니다.';
$lang['txt_filename'] = '업로드 파일 이름을 입력합니다.(선택 사항)';
$lang['txt_overwrt'] = '새로운 파일로 이전 파일을 교체합니다.';
$lang['lockedby'] = '현재 잠금 사용자';
$lang['lockexpire'] = '잠금 해제 시간';
$lang['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하기 바랍니다.';
-$lang['js']['notsavedyet'] = "저장하지 않은 변경은 지워집니다.\n계속하시겠습니까?";
+$lang['js']['notsavedyet'] = '저장하지 않은 변경은 지워집니다.
+계속하시겠습니까?';
+$lang['js']['searchmedia'] = '파일 찾기';
+$lang['js']['keepopen'] = '선택할 때 윈도우를 열어놓으시기 바랍니다.';
+$lang['js']['hidedetails'] = '자세한 정보 감추기';
+$lang['js']['mediatitle'] = '링크 설정';
+$lang['js']['mediadisplay'] = '링크 형태';
+$lang['js']['mediaalign'] = '배치';
+$lang['js']['mediasize'] = '그림 크기';
+$lang['js']['mediatarget'] = '링크 목표';
+$lang['js']['mediaclose'] = '닫기';
+$lang['js']['mediainsert'] = '삽입';
+$lang['js']['mediadisplayimg'] = '그림보기';
+$lang['js']['mediasmall'] = '작게';
+$lang['js']['mediamedium'] = '중간';
+$lang['js']['medialarge'] = '크게';
+$lang['js']['mediaoriginal'] = '원본';
+$lang['js']['medialnk'] = '세부정보페이지로 링크';
+$lang['js']['mediadirect'] = '원본으로 직접 링크';
+$lang['js']['medianolnk'] = '링크 없슴';
+$lang['js']['medianolink'] = '그림을 링크하지 않음';
+$lang['js']['medialeft'] = '왼쪽 배치';
+$lang['js']['mediaright'] = '오른쪽 배치';
+$lang['js']['mediacenter'] = '중앙 배치';
+$lang['js']['medianoalign'] = '배치 없슴';
+$lang['js']['nosmblinks'] = '윈도우 공유 파일과의 연결은 MS 인터넷 익스플로러에서만 동작합니다.
+그러나 링크를 복사하거나 붙여넣기를 할 수 있습니다.';
+$lang['js']['linkwiz'] = '링크 마법사';
+$lang['js']['linkto'] = '다음으로 연결:';
+$lang['js']['del_confirm'] = '정말로 선택된 항목(들)을 삭제하시겠습니까?';
+$lang['js']['mu_btn'] = '여러 파일들을 한번에 업로드합니다.';
$lang['rssfailed'] = 'feed 가져오기 실패: ';
$lang['nothingfound'] = '아무 것도 없습니다.';
$lang['mediaselect'] = '미디어 파일 선택';
@@ -112,11 +143,7 @@ $lang['deletefail'] = '"%s" 파일을 삭제할 수 없습니다. -
$lang['mediainuse'] = '"%s" 파일을 삭제할 수 없습니다. - 아직 사용 중입니다.';
$lang['namespaces'] = '네임스페이스';
$lang['mediafiles'] = '사용 가능한 파일 목록';
-$lang['js']['keepopen'] = '선택할 때 윈도우를 열어놓으시기 바랍니다.';
-$lang['js']['hidedetails'] = '자세한 정보 감추기';
-$lang['js']['nosmblinks'] = '윈도우 공유 파일과의 연결은 MS 인터넷 익스플로러에서만 동작합니다.
-그러나 링크를 복사하거나 붙여넣기를 할 수 있습니다.';
-$lang['js']['mu_btn'] = '여러 파일들을 한번에 업로드합니다.';
+$lang['accessdenied'] = '이 페이지를 볼 권한이 없습니다.';
$lang['mediausage'] = '이 파일을 참조하려면 다음 문법을 사용하기 바랍니다:';
$lang['mediaview'] = '원본 파일 보기';
$lang['mediaroot'] = '루트(root)';
@@ -143,8 +170,10 @@ $lang['restored'] = '옛 버전 복구';
$lang['external_edit'] = '외부 편집기';
$lang['summary'] = '편집 요약';
$lang['noflash'] = '이 컨텐츠를 표시하기 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>이 필요합니다.';
+$lang['download'] = '조각 다운로드';
$lang['mail_newpage'] = '페이지 추가:';
$lang['mail_changed'] = '페이지 변경:';
+$lang['mail_subscribe_list'] = '네임스페이스에서 변경된 페이지:';
$lang['mail_new_user'] = '새로운 사용자:';
$lang['mail_upload'] = '파일 첨부:';
$lang['qb_bold'] = '굵은 글';
@@ -157,6 +186,11 @@ $lang['qb_h2'] = '2단계 헤드라인';
$lang['qb_h3'] = '3단계 헤드라인';
$lang['qb_h4'] = '4단계 헤드라인';
$lang['qb_h5'] = '5단계 헤드라인';
+$lang['qb_h'] = '표제';
+$lang['qb_hs'] = '표제 선택';
+$lang['qb_hplus'] = '상위 표제';
+$lang['qb_hminus'] = '하위 표제';
+$lang['qb_hequal'] = '동급 표제';
$lang['qb_link'] = '내부 링크';
$lang['qb_extlink'] = '외부 링크';
$lang['qb_hr'] = '수평선';
@@ -166,7 +200,7 @@ $lang['qb_media'] = '이미지와 기타 파일 추가';
$lang['qb_sig'] = '서명 추가';
$lang['qb_smileys'] = '이모티콘';
$lang['qb_chars'] = '특수문자';
-$lang['js']['del_confirm'] = '정말로 선택된 항목(들)을 삭제하시겠습니까?';
+$lang['upperns'] = '상위 네임스페이스로 이동';
$lang['admin_register'] = '새로운 사용자 추가';
$lang['metaedit'] = '메타 데이타를 편집합니다.';
$lang['metasaveerr'] = '메타 데이타 쓰기가 실패했습니다.';
@@ -182,11 +216,16 @@ $lang['img_copyr'] = '저작권';
$lang['img_format'] = '포맷';
$lang['img_camera'] = '카메라';
$lang['img_keywords'] = '키워드';
-$lang['subscribe_success'] = '%s를 추가했습니다. (%s의 구독 목록)';
-$lang['subscribe_error'] = '%s를 추가하는데 실패했습니다.(%s의 구독 목록)';
-$lang['subscribe_noaddress'] = '로그인 정보에 이메일 주소가 없습니다, 구독 목록에 추가할 수 없습니다.';
-$lang['unsubscribe_success'] = '%s를 제외시켰습니다. (%s의 구독 목록)';
-$lang['unsubscribe_error'] = '%s를 제외시키는데 실패했습니다.(%s의 구독 목록)';
+$lang['subscr_subscribe_noaddress'] = '등록된 주소가 없기 때문에 구독목록에 등록되지 않았습니다.';
+$lang['subscr_m_not_subscribed'] = '현재의 페이지나 네임스페이스에 구독등록이 되어있지 않습니다.';
+$lang['subscr_m_new_header'] = '구독 추가';
+$lang['subscr_m_current_header'] = '현재 구독중인 것들';
+$lang['subscr_m_unsubscribe'] = '구독 취소';
+$lang['subscr_m_subscribe'] = '구독';
+$lang['subscr_m_receive'] = '받기';
+$lang['subscr_style_every'] = '모든 변화를 이메일로 받기';
+$lang['subscr_style_digest'] = '각 페이지의 변화를 요약 (매 %.2f 일 마다)';
+$lang['subscr_style_list'] = '마지막 이메일 이후 변화된 페이지의 목록 (매 %.2f 일 마다)';
$lang['authmodfailed'] = '잘못된 사용자 인증 설정입니다. 관리자에게 문의하기 바랍니다.';
$lang['authtempfail'] = '사용자 인증이 일시적으로 불가능합니다. 만일 계속해서 문제가 발생하면 관리자에게 문의하기 바랍니다.';
$lang['i_chooselang'] = '사용하는 언어를 선택합니다.';
@@ -213,6 +252,7 @@ $lang['i_pol0'] = '개방형 위키 (누구나 읽기/쓰기/업
$lang['i_pol1'] = '공개형 위키 (누구나 읽을 수 있지만, 등록된 사용자만 쓰기/업로드가 가능합니다.)';
$lang['i_pol2'] = '폐쇄형 위키 (등록된 사용자만 읽기/쓰기/업로드가 가능합니다.)';
$lang['i_retry'] = '다시 시도';
+$lang['i_license'] = '내용의 배포를 위한 라이센스를 선택하세요.';
$lang['mu_intro'] = '여러 파일을 한번에 업로드할 수 있습니다. 파일 목록에 추가하려면 "찾기" 버튼을 클릭합니다. 파일 목록 추가 작업이 끝나면 "업로드" 버튼을 클릭하기 바랍니다. ';
$lang['mu_gridname'] = '파일명';
$lang['mu_gridsize'] = '크기';
@@ -226,4 +266,14 @@ $lang['mu_fail'] = '업로드가 실패했습니다.';
$lang['mu_authfail'] = '세션 기간이 종료되었습니다.';
$lang['mu_progress'] = '@PCT@% 업로드되었습니다.';
$lang['mu_filetypes'] = '허용된 파일타입';
+$lang['mu_info'] = '업로드 되었습니다.';
+$lang['mu_lasterr'] = '마지막 에러:';
$lang['recent_global'] = '<b>%s</b> 네임스페이스를 구독중입니다. <a href="%s">전체위키 변경사항 </a>도 보실수 있습니다.';
+$lang['years'] = '%d 년 전';
+$lang['months'] = '%d 개월 전';
+$lang['weeks'] = '%d 주 전';
+$lang['days'] = '%d 일 전';
+$lang['hours'] = '%d 시간 전';
+$lang['minutes'] = '%d 분 전';
+$lang['seconds'] = '%d 초 전';
+$lang['wordblock'] = '스팸 문구를 포함하고 있어서 저장되지 않았습니다.';
diff --git a/inc/lang/ko/register.txt b/inc/lang/ko/register.txt
index 999073a1d..24105efeb 100644
--- a/inc/lang/ko/register.txt
+++ b/inc/lang/ko/register.txt
@@ -1,4 +1,4 @@
====== 새 사용자 등록 ======
-이 위키에 새 계정을 만들려면 아래의 모든 내용을 입력하십시오. **제대로 된 이메일 주소**를 사용하십시오. 그러나, 아래 내용을 입력했다고 해서 계정을 만들 수 있으리라고는 믿지 마십시오. 이곳은 내가 개인적으로 사용하는 곳이며, 계정을 만들어 주고 안주고는 내 마음입니다. 차라리, 내게 이메일을 보내서 신청하는 편이 더 나을 것입니다. 패스워드는 이 이메일로 보내집니다. 사용자명은 올바른 [[doku>pagename|pagename]] 이어야 합니다.
+이 위키에 새 계정을 만들려면 아래의 모든 내용을 입력하세요. **제대로 된 이메일 주소**를 사용하세요. 암호를 입력하는 곳이 없다면 암호는 이 이메일로 보내집니다. 사용자명은 올바른 [[doku>pagename|pagename]] 이어야 합니다.
diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt
new file mode 100644
index 000000000..2e9c87848
--- /dev/null
+++ b/inc/lang/ko/subscr_digest.txt
@@ -0,0 +1,18 @@
+안녕하세요!
+
+@TITLE@ 라는 제목의 페이지 @PAGE@ 가 변경되었습니다.
+
+변경사항은 다음과 같습니다:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+옛날 것: @OLDPAGE@
+새 것: @NEWPAGE@
+
+이 페이지 변경알림의 설정을 바구려면, @DOKUWIKIURL@에 로그인한 뒤
+@SUBSCRIBE@ 를 방문하여 페이지나 이름공간의 구독을 취소하세요.
+
+--
+@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_form.txt b/inc/lang/ko/subscr_form.txt
new file mode 100644
index 000000000..31470f372
--- /dev/null
+++ b/inc/lang/ko/subscr_form.txt
@@ -0,0 +1,3 @@
+====== 구독 관리 ======
+
+이 페이지는 현재의 페이지와 네임스페이스의 구독을 관리할 수있도록 해줍니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt
new file mode 100644
index 000000000..2661a6a15
--- /dev/null
+++ b/inc/lang/ko/subscr_list.txt
@@ -0,0 +1,15 @@
+안녕하세요!
+
+@TITLE@ 라는 제목의 페이지 @PAGE@ 가 변경되었습니다.
+
+변경사항은 다음과 같습니다:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+이 페이지 변경알림의 설정을 바구려면, @DOKUWIKIURL@에 로그인한 뒤
+@SUBSCRIBE@ 를 방문하여 페이지나 이름공간의 구독을 취소하세요.
+
+--
+@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt
new file mode 100644
index 000000000..1aa4d7efa
--- /dev/null
+++ b/inc/lang/ko/subscr_single.txt
@@ -0,0 +1,21 @@
+안녕하세요!
+
+@TITLE@ 라는 제목의 페이지 @PAGE@ 가 변경되었습니다.
+
+변경사항은 다음과 같습니다:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+날짜 : @DATE@
+사용자 : @USER@
+편집 요약 : @SUMMARY@
+구 버전 : @OLDPAGE@
+새 버전 : @NEWPAGE@
+
+이 페이지 변경알림의 설정을 바구려면, @DOKUWIKIURL@에 로그인한 뒤 t
+@NEWPAGE@ 를 방문하여 페이지나 이름공간의 구독을 취소하세요.
+
+--
+@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 27a5190bd..a50e3f4f3 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -223,7 +223,7 @@ function p_get_instructions($text){
* @author Esther Brunner <esther@kaffeehaus.ch>
*/
function p_get_metadata($id, $key='', $render=false){
- global $ID, $INFO, $cache_metadata;
+ global $ID;
// cache the current page
// Benchmarking shows the current page's metadata is generally the only page metadata
@@ -234,11 +234,7 @@ function p_get_metadata($id, $key='', $render=false){
// metadata has never been rendered before - do it! (but not for non-existent pages)
if ($render && !isset($meta['current']['description']['abstract']) && page_exists($id)){
$meta = p_render_metadata($id, $meta);
- io_saveFile(metaFN($id, '.meta'), serialize($meta));
-
- // sync cached copies, including $INFO metadata
- if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta;
- if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; }
+ p_save_metadata($id, $meta);
}
$val = $meta['current'];
@@ -256,6 +252,15 @@ function p_get_metadata($id, $key='', $render=false){
/**
* sets metadata elements of a page
*
+ * @see http://www.dokuwiki.org/devel:metadata#functions_to_get_and_set_metadata
+ *
+ * @param String $id is the ID of a wiki page
+ * @param Array $data is an array with key ⇒ value pairs to be set in the metadata
+ * @param Boolean $render whether or not the page metadata should be generated with the renderer
+ * @param Boolean $persistent indicates whether or not the particular metadata value will persist through
+ * the next metadata rendering.
+ * @return boolean true on success
+ *
* @author Esther Brunner <esther@kaffeehaus.ch>
*/
function p_set_metadata($id, $data, $render=false, $persistent=true){
@@ -305,13 +310,7 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){
// save only if metadata changed
if ($meta == $orig) return true;
- // sync cached copies, including $INFO metadata
- global $cache_metadata, $INFO;
-
- if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta;
- if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; }
-
- return io_saveFile(metaFN($id, '.meta'), serialize($meta));
+ return p_save_metadata($id, $meta);
}
/**
@@ -321,25 +320,22 @@ function p_set_metadata($id, $data, $render=false, $persistent=true){
* @author Michael Klier <chi@chimeric.de>
*/
function p_purge_metadata($id) {
- $metafn = metaFN('id', '.meta');
- $meta = p_read_metadata($id);
+ $meta = p_read_metadata($id);
foreach($meta['current'] as $key => $value) {
if(is_array($meta[$key])) {
$meta['current'][$key] = array();
} else {
$meta['current'][$key] = '';
}
+
}
- return io_saveFile(metaFN($id, '.meta'), serialize($meta));
+ return p_save_metadata($id, $meta);
}
/**
* read the metadata from source/cache for $id
* (internal use only - called by p_get_metadata & p_set_metadata)
*
- * this function also converts the metadata from the original format to
- * the current format ('current' & 'persistent' arrays)
- *
* @author Christopher Smith <chris@jalakai.co.uk>
*
* @param string $id absolute wiki page id
@@ -356,26 +352,6 @@ function p_read_metadata($id,$cache=false) {
$file = metaFN($id, '.meta');
$meta = @file_exists($file) ? unserialize(io_readFile($file, false)) : array('current'=>array(),'persistent'=>array());
- // convert $meta from old format to new (current+persistent) format
- if (!isset($meta['current'])) {
- $meta = array('current'=>$meta,'persistent'=>$meta);
-
- // remove non-persistent keys
- unset($meta['persistent']['title']);
- unset($meta['persistent']['description']['abstract']);
- unset($meta['persistent']['description']['tableofcontents']);
- unset($meta['persistent']['relation']['haspart']);
- unset($meta['persistent']['relation']['references']);
- unset($meta['persistent']['date']['valid']);
-
- if (empty($meta['persistent']['description'])) unset($meta['persistent']['description']);
- if (empty($meta['persistent']['relation'])) unset($meta['persistent']['relation']);
- if (empty($meta['persistent']['date'])) unset($meta['persistent']['date']);
-
- // save converted metadata
- io_saveFile($file, serialize($meta));
- }
-
if ($cache) {
$cache_metadata[(string)$id] = $meta;
}
@@ -384,6 +360,24 @@ function p_read_metadata($id,$cache=false) {
}
/**
+ * This is the backend function to save a metadata array to a file
+ *
+ * @param string $id absolute wiki page id
+ * @param array $meta metadata
+ *
+ * @return bool success / fail
+ */
+function p_save_metadata($id, $meta) {
+ // sync cached copies, including $INFO metadata
+ global $cache_metadata, $INFO;
+
+ if (isset($cache_metadata[$id])) $cache_metadata[$id] = $meta;
+ if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; }
+
+ return io_saveFile(metaFN($id, '.meta'), serialize($meta));
+}
+
+/**
* renders the metadata of a page
*
* @author Esther Brunner <esther@kaffeehaus.ch>
diff --git a/inc/search.php b/inc/search.php
index 03abec0c0..a6787c5d2 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -511,8 +511,7 @@ function pathID($path,$keeptxt=false){
$id = utf8_decodeFN($path);
$id = str_replace('/',':',$id);
if(!$keeptxt) $id = preg_replace('#\.txt$#','',$id);
- $id = preg_replace('#^:+#','',$id);
- $id = preg_replace('#:+$#','',$id);
+ $id = trim($id, ':');
return $id;
}
diff --git a/inc/template.php b/inc/template.php
index 00bfde723..e2ea6e386 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -609,7 +609,7 @@ function tpl_get_action($type) {
$type = 'subscribe';
$params['do'] = 'subscribe';
case 'subscribe':
- if(!$conf['useacl'] || !$auth || $ACT !== 'show' || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){
+ if(!$conf['useacl'] || !$auth || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){
return false;
}
break;
@@ -617,7 +617,7 @@ function tpl_get_action($type) {
break;
case 'profile':
if(!$conf['useacl'] || !$auth || !isset($_SERVER['REMOTE_USER']) ||
- !$auth->canDo('Profile') || ($ACT=='profile')){
+ !$auth->canDo('Profile')){
return false;
}
break;
diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php
index f35f9ed72..3fa81715b 100644
--- a/lib/exe/indexer.php
+++ b/lib/exe/indexer.php
@@ -190,7 +190,7 @@ function metaUpdate(){
// rendering needed?
if (@file_exists($file)) return false;
- if (!@file_exists(wikiFN($ID))) return false;
+ if (!page_exists($ID)) return false;
global $conf;
@@ -213,7 +213,7 @@ function metaUpdate(){
}
$meta = p_render_metadata($ID, $meta);
- io_saveFile($file, serialize($meta));
+ p_save_metadata($ID, $meta);
echo "metaUpdate(): finished".NL;
return true;
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index 84932f7ac..3e7bd8121 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -765,7 +765,7 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
//build code
$ret .= '<label for="pbox'.$label.'" title="'.$this->getLang('acl_perm'.$perm).'"'.$class.'>';
- $ret .= '<input '.html_attbuild($atts).' />&nbsp;';
+ $ret .= '<input '.buildAttributes($atts).' />&nbsp;';
$ret .= $this->getLang('acl_perm'.$perm);
$ret .= '</label>'.NL;
}
diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php
index 43a5ceeeb..6f4e991cb 100644
--- a/lib/plugins/acl/lang/ko/lang.php
+++ b/lib/plugins/acl/lang/ko/lang.php
@@ -10,6 +10,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['admin_acl'] = '접근 제어 목록 관리';
$lang['acl_group'] = '그룹';
diff --git a/lib/plugins/config/lang/cs/intro.txt b/lib/plugins/config/lang/cs/intro.txt
index bad92ac8e..63381b84e 100644
--- a/lib/plugins/config/lang/cs/intro.txt
+++ b/lib/plugins/config/lang/cs/intro.txt
@@ -2,7 +2,7 @@
Tuto stránku můžete používat ke správě nastavení vaší instalace DokuWiki. Nápovědu pro konkrétní položky nastavení naleznete na [[doku>config]]. Pro další detaily o tomto pluginu viz [[doku>plugin:config]].
-Položky se světle červeným pozadím jsou chráněné a nelze je upravovat tímto pluginem. Položky s modrým pozadím jsou výchozí hodnoty a položky s bílým pozadím byly nastaveny lokálně v této konktétní instalaci. Modré i bílé položky je možné upravovat.
+Položky se světle červeným pozadím jsou chráněné a nelze je upravovat tímto pluginem. Položky s modrým pozadím jsou výchozí hodnoty a položky s bílým pozadím byly nastaveny lokálně v této konkrétní instalaci. Modré i bílé položky je možné upravovat.
Než opustíte tuto stránku, nezapomeňte stisknout tlačítko **Uložit**, jinak budou změny ztraceny.
diff --git a/lib/plugins/config/lang/cs/lang.php b/lib/plugins/config/lang/cs/lang.php
index 3f8c05f26..06839c1d0 100644
--- a/lib/plugins/config/lang/cs/lang.php
+++ b/lib/plugins/config/lang/cs/lang.php
@@ -11,7 +11,7 @@
*/
$lang['menu'] = 'Správa nastavení';
$lang['error'] = 'Nastavení nebyla změněna kvůli alespoň jedné neplatné položce,
-zkotrolujte prosím své úpravy a odešlete je znovu.<br />
+zkontrolujte prosím své úpravy a odešlete je znovu.<br />
Neplatné hodnoty se zobrazí v červeném rámečku.';
$lang['updated'] = 'Nastavení byla úspěšně upravena.';
$lang['nochoice'] = '(nejsou k dispozici žádné další volby)';
@@ -69,10 +69,10 @@ $lang['useheading'] = 'Používat první nadpis jako název stránky'
$lang['refcheck'] = 'Kontrolovat odkazy na média (před vymazáním)';
$lang['refshow'] = 'Počet zobrazených odkazů na média';
$lang['allowdebug'] = 'Povolit debugování. <b>Vypněte, pokud to nepotřebujete!</b>';
-$lang['usewordblock'] = 'Blokovat spam za použítí seznamu známých spamových slov';
+$lang['usewordblock'] = 'Blokovat spam za použití seznamu známých spamových slov';
$lang['indexdelay'] = 'Časová prodleva před indexací (v sekundách)';
$lang['relnofollow'] = 'Používat rel="nofollow" na externí odkazy';
-$lang['mailguard'] = 'Metoda "zamaskování" emailových addres';
+$lang['mailguard'] = 'Metoda "zamaskování" emailových adres';
$lang['iexssprotect'] = 'Zkontrolovat nahrané soubory vůči možnému škodlivému JavaScriptu či HTML';
$lang['showuseras'] = 'Co se má přesně zobrazit, když se ukazuje uživatel, který naposledy editoval stránku';
$lang['useacl'] = 'Používat přístupová práva (ACL)';
@@ -95,7 +95,7 @@ vnořené jmenné prostory, k nimž právo má, budou přesto skryty.
To může mít za následek, že index bude při některých
nastaveních ACL nepoužitelný.';
$lang['auth_security_timeout'] = 'Časový limit pro autentikaci (v sekundách)';
-$lang['securecookie'] = 'Má prohlížeč posílat cookies nastavené přes HTTPS opět jen přes HTTPS? Vypňete tuto volbu, pokud chcete, aby bylo pomocí SSL zabezpečeno pouze přihlašování do wiki, ale obsah budete prohlížet nezabezpečeně.';
+$lang['securecookie'] = 'Má prohlížeč posílat cookies nastavené přes HTTPS opět jen přes HTTPS? Vypněte tuto volbu, pokud chcete, aby bylo pomocí SSL zabezpečeno pouze přihlašování do wiki, ale obsah budete prohlížet nezabezpečeně.';
$lang['xmlrpc'] = 'Povolit/Zakázat rozhraní XML-RPC.';
$lang['xmlrpcuser'] = 'Omezit přístup pomocí XML-RPC pouze na zde zadané skupiny či uživatele (oddělené čárkami). Necháte-li pole prázdné, dáte přístup komukoliv.';
$lang['updatecheck'] = 'Kontrolovat aktualizace a bezpečnostní varování? DokuWiki potřebuje pro tuto funkci přístup k splitbrain.org';
@@ -112,7 +112,7 @@ $lang['locktime'] = 'Maximální životnost zámkových souborů (v
$lang['fetchsize'] = 'Maximální velikost souboru (v bajtech), co ještě fetch.php bude stahovat z externích zdrojů';
$lang['notify'] = 'Posílat oznámení o změnách na následující emailovou adresu';
$lang['registernotify'] = 'Posílat informace o nově registrovaných uživatelích na tuto mailovou adresu';
-$lang['mailfrom'] = 'Emailová addresa, která se bude používat pro automatické maily';
+$lang['mailfrom'] = 'Emailová adresa, která se bude používat pro automatické maily';
$lang['gzip_output'] = 'Používat pro xhtml Content-Encoding gzip';
$lang['gdlib'] = 'Verze GD knihovny';
$lang['im_convert'] = 'Cesta k nástroji convert z balíku ImageMagick';
diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php
index efac643ab..13f5efefe 100644
--- a/lib/plugins/config/lang/ko/lang.php
+++ b/lib/plugins/config/lang/ko/lang.php
@@ -7,6 +7,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['menu'] = '환경 설정';
$lang['error'] = '잘못된 값때문에 설정들을 변경할 수 없습니다. 수정한 값들을 검사하고 확인을 누르기 바랍니다.
@@ -89,12 +90,15 @@ $lang['sneaky_index'] = '기본적으로, DokuWiki는 색인 목록에
특정 ACL 설정은 색인 사용이 불가능하게 할 수도 있습니다.';
$lang['auth_security_timeout'] = '인증 보안 초과 시간(초)';
$lang['securecookie'] = 'HTTPS로 보내진 쿠키는 HTTPS에만 적용 할까요? 위키의 로그인 페이지만 SSL로 암호화 하고 위키 페이지는 그렇지 않은경우 꺼야 합니다.';
+$lang['xmlrpc'] = 'XML-RPC 인터페이스 지원/무시';
+$lang['xmlrpcuser'] = '주어진 그룹이나 유저들에게만 XML-RPC접근을 허락하려면 컴마로 구분하여 적으세요. 비어두면 모두에게 허용됩니다.';
$lang['updatecheck'] = '업데이트와 보안 문제를 검사(DokuWiki를 splitbrain.org에 연결해야 합니다.)';
$lang['userewrite'] = 'URL rewriting기능 사용';
$lang['useslash'] = 'URL에서 네임스페이스 구분자로 슬래쉬 문자 사용';
$lang['usedraft'] = '편집하는 동안 자동으로 문서 초안 저장';
$lang['sepchar'] = '페이지 이름 단어 구분자';
$lang['canonical'] = '완전한 canonical URL 사용';
+$lang['fnencode'] = '아스키가 아닌 파일이르믈 인코딩 하는 방법.';
$lang['autoplural'] = '링크 연결시 plural폼 검사';
$lang['compression'] = 'attic파일 압축 방법 선택';
$lang['cachetime'] = '최대 캐쉬 생존 시간(초)';
@@ -108,6 +112,7 @@ $lang['gdlib'] = 'GD 라이브러리 버전';
$lang['im_convert'] = 'ImageMagick 위치';
$lang['jpg_quality'] = 'JPG 압축 품질 (0-100)';
$lang['subscribers'] = '페이지 갱신 알람 기능';
+$lang['subscribe_time'] = ' 구독 목록과 요약이 보내질 경과 시간 (초); 이 것은 recent_days에서 설정된 시간보다 작아야 합니다.';
$lang['compress'] = '최적화된 CSS, javascript 출력';
$lang['hidepages'] = '매칭된 페이지 숨기기(정규표현식)';
$lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP 404/Page Not Found" 응답';
@@ -115,7 +120,6 @@ $lang['sitemap'] = '구글 사이트맵 생성(날짜)';
$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있으면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>를 참고하기 바랍니다.';
$lang['xsendfile'] = '웹 서버 static 파일 전송 지원을 위해 X-Sendfile 헤더를 사용한다면 이 옵션을 사용합니다.
웹 서버가 이 기능을 지원해야 합니다.';
-$lang['xmlrpc'] = 'XML-RPC 인터페이스 지원/무시';
$lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기';
$lang['renderer__core'] = '%s (DokuWiki 내부 기능)';
$lang['renderer__plugin'] = '%s (DokuWiki 플러그인)';
@@ -136,6 +140,7 @@ $lang['proxy____port'] = '프록시 서버 포트';
$lang['proxy____user'] = '프록시 사용자 이름';
$lang['proxy____pass'] = '프록시 패스워드';
$lang['proxy____ssl'] = '프록시 연결시 ssl사용';
+$lang['proxy____except'] = '프록시설정이 무시될 URL주소들의 RegEx형식표현';
$lang['safemodehack'] = 'safemode hack기능 사용';
$lang['ftp____host'] = 'safemode hack의 FTP 서버';
$lang['ftp____port'] = 'safemode hack의 FTP port';
@@ -183,3 +188,4 @@ $lang['useheading_o_0'] = '아니요';
$lang['useheading_o_navigation'] = '네비게이션에만';
$lang['useheading_o_content'] = '위키 내용에만';
$lang['useheading_o_1'] = '항상';
+$lang['readdircache'] = 'readdir 캐쉬를 위한 최대 시간 (초)';
diff --git a/lib/plugins/plugin/lang/cs/lang.php b/lib/plugins/plugin/lang/cs/lang.php
index c15a5ca21..54de0ff18 100644
--- a/lib/plugins/plugin/lang/cs/lang.php
+++ b/lib/plugins/plugin/lang/cs/lang.php
@@ -26,7 +26,7 @@ $lang['source'] = 'Zdroj:';
$lang['unknown'] = 'neznámý';
$lang['updating'] = 'Aktualizuji ...';
$lang['updated'] = 'Modul %s úspěšně aktualizován';
-$lang['updates'] = 'Následjící pluginy byly úspěšně aktualizovány';
+$lang['updates'] = 'Následující pluginy byly úspěšně aktualizovány';
$lang['update_none'] = 'Žádné aktualizace nenalezeny.';
$lang['deleting'] = 'Probíhá mazání ...';
$lang['deleted'] = 'Plugin %s smazán.';
@@ -49,7 +49,7 @@ $lang['error_download'] = 'Nelze stáhnout soubor s pluginem: %s';
$lang['error_badurl'] = 'URL je zřejmě chybná - nelze z ní určit název souboru';
$lang['error_dircreate'] = 'Nelze vytvořit dočasný adresář ke stažení dat';
$lang['error_decompress'] = 'Správce pluginů nemůže rozbalit stažený soubor. Toto může být způsobeno chybou při stahování. Můžete se pokusit stahování opakovat. Chyba může být také v kompresním formátu souboru. V tom případě bude nutné stáhnout a nainstalovat plugin ručně.';
-$lang['error_copy'] = 'Došlo k chybě při instalaci pluginu <em>%s</em>. Je možné, že na disku není volné místo, nebo mohou být špatně nastavena přístupová práva. Pozor, mohlo dojít k častečné a tudíž chybné instalaci pluginu a tím může být ohrožena stabilita wiki.';
+$lang['error_copy'] = 'Došlo k chybě při instalaci pluginu <em>%s</em>. Je možné, že na disku není volné místo, nebo mohou být špatně nastavena přístupová práva. Pozor, mohlo dojít k částečné a tudíž chybné instalaci pluginu a tím může být ohrožena stabilita wiki.';
$lang['error_delete'] = 'Došlo k chybě při pokusu o smazání pluginu <em>%s</em>. Nejspíše je chyba v nastavení přístupových práv k některým souborům či adresářům.';
$lang['enabled'] = 'Plugin %s aktivován.';
$lang['notenabled'] = 'Plugin %s nelze aktivovat, zkontrolujte práva k souborům.';
diff --git a/lib/plugins/plugin/lang/ko/lang.php b/lib/plugins/plugin/lang/ko/lang.php
index af14a0cd2..72c04ddab 100644
--- a/lib/plugins/plugin/lang/ko/lang.php
+++ b/lib/plugins/plugin/lang/ko/lang.php
@@ -7,6 +7,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['menu'] = '플러그인 관리자';
$lang['download'] = '새로운 플러그인 다운로드 및 설치';
diff --git a/lib/plugins/popularity/lang/cs/intro.txt b/lib/plugins/popularity/lang/cs/intro.txt
index 70cf1a42c..4b386568a 100644
--- a/lib/plugins/popularity/lang/cs/intro.txt
+++ b/lib/plugins/popularity/lang/cs/intro.txt
@@ -1,6 +1,6 @@
===== Průzkum používání =====
-Tento nástroj jednorázově shromáží anonymní data o vaší wiki a umožní vám odeslat je vývojářům DokuWiki. To jim pomůže lépe porozumět, jak uživatelé DokuWiki používají, a jejich rozhodnutí při dalším vývoji budou založena na statistikách z reálného používání DokuWiki.
+Tento nástroj jednorázově shromáždí anonymní data o vaší wiki a umožní vám odeslat je vývojářům DokuWiki. To jim pomůže lépe porozumět, jak uživatelé DokuWiki používají, a jejich rozhodnutí při dalším vývoji budou založena na statistikách z reálného používání DokuWiki.
Chcete-li pomoci vývojářům, čas od času, jak vaše wiki poroste, použijte tento nástroj. Vaše data budou pokaždé označena stejným anonymním identifikátorem.
diff --git a/lib/plugins/popularity/lang/ko/lang.php b/lib/plugins/popularity/lang/ko/lang.php
index 3a28b1b0e..91d798a5f 100644
--- a/lib/plugins/popularity/lang/ko/lang.php
+++ b/lib/plugins/popularity/lang/ko/lang.php
@@ -6,6 +6,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['name'] = '인기도 조사 (불러오는데 시간이 걸릴 수 있습니다.)';
$lang['submit'] = '자료 보내기';
diff --git a/lib/plugins/revert/lang/cs/intro.txt b/lib/plugins/revert/lang/cs/intro.txt
index bbc0df25a..1e1cd0fd8 100644
--- a/lib/plugins/revert/lang/cs/intro.txt
+++ b/lib/plugins/revert/lang/cs/intro.txt
@@ -1,3 +1,3 @@
====== Obnova zaspamovaných stránek ======
-Tato stránka pomůže při automatické obnově po spamovém útoku. Pro nalezení seznamu zaspamovaných stránek nedřív zadejte hledaný výraz (např. spamové URL) a pak potvrďte, že nalezené stránky opravdu obsahují spam a mohou být obnoveny.
+Tato stránka pomůže při automatické obnově po spamovém útoku. Pro nalezení seznamu zaspamovaných stránek nejdříve zadejte hledaný výraz (např. spamové URL) a pak potvrďte, že nalezené stránky opravdu obsahují spam a mohou být obnoveny.
diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php
index 5e070de92..0163d2754 100644
--- a/lib/plugins/revert/lang/ko/lang.php
+++ b/lib/plugins/revert/lang/ko/lang.php
@@ -6,6 +6,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['menu'] = '복구 관리자';
$lang['filter'] = '스팸 페이지 검색 ';
diff --git a/lib/plugins/usermanager/lang/cs/lang.php b/lib/plugins/usermanager/lang/cs/lang.php
index 9c5a2abc9..7d8e4599d 100644
--- a/lib/plugins/usermanager/lang/cs/lang.php
+++ b/lib/plugins/usermanager/lang/cs/lang.php
@@ -45,7 +45,7 @@ $lang['edit_usermissing'] = 'Vybraný uživatel nebyl nalezen, zadané uži
$lang['user_notify'] = 'Upozornit uživatele';
$lang['note_notify'] = 'Maily s upozorněním se budou posílat pouze, když uživatel dostává nové heslo.';
$lang['note_group'] = 'Noví uživatelé budou přidáváni do této výchozí skupiny (%s), pokud pro ně není uvedena žádná skupina.';
-$lang['note_pass'] = 'Heslo bude automaticky vygenerováno pokud je pole ponacháno prázdné a je zapnutá notifikace uživatele.';
+$lang['note_pass'] = 'Heslo bude automaticky vygenerováno pokud je pole ponecháno prázdné a je zapnutá notifikace uživatele.';
$lang['add_ok'] = 'Uživatel úspěšně vytvořen';
$lang['add_fail'] = 'Vytvoření uživatele selhalo';
$lang['notify_ok'] = 'Odeslán mail s upozorněním';
diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php
index eeb8eb791..f2322414a 100644
--- a/lib/plugins/usermanager/lang/ko/lang.php
+++ b/lib/plugins/usermanager/lang/ko/lang.php
@@ -6,6 +6,7 @@
* @author dongnak@gmail.com
* @author Song Younghwan <purluno@gmail.com>
* @author SONG Younghwan <purluno@gmail.com>
+ * @author Seung-Chul Yoo <dryoo@live.com>
*/
$lang['menu'] = '사용자 관리자';
$lang['noauth'] = '(사용자 인증이 불가능합니다.)';
diff --git a/lib/scripts/media.js b/lib/scripts/media.js
index 5b9372b68..b90f7047b 100644
--- a/lib/scripts/media.js
+++ b/lib/scripts/media.js
@@ -215,14 +215,6 @@ var media_manager = {
return false;
}
- // FIXME these lines deactivate the media options dialog and restore
- // the old behavior according to FS#2047
- //opener.insertTags('wiki__text','{{'+id+'|','}}','');
- //if(!media_manager.keepopen) window.close();
- //opener.focus();
- //return false;
-
-
media_manager.ext = false;
var dot = id.lastIndexOf(".");
if (dot != -1) {
@@ -357,6 +349,7 @@ var media_manager = {
media_manager.popup = document.createElement('div');
media_manager.popup.setAttribute('id','media__popup');
+ media_manager.popup.style.display = 'none';
var root = document.getElementById('media__manager');
if (root === null) return;
diff --git a/lib/styles/style.css b/lib/styles/style.css
index 814191615..395f82b78 100644
--- a/lib/styles/style.css
+++ b/lib/styles/style.css
@@ -4,86 +4,98 @@
*/
div.clearer {
- clear: both;
- line-height: 0;
- height: 0;
- overflow: hidden;
+ clear: both;
+ line-height: 0;
+ height: 0;
+ overflow: hidden;
}
div.no {
- display: inline;
- margin: 0;
- padding: 0;
+ display: inline;
+ margin: 0;
+ padding: 0;
}
.hidden {
- display: none;
+ display: none;
+}
+
+/* messages with msg() */
+div.error,
+div.info,
+div.success,
+div.notify {
+ color: #000;
+ background-repeat: no-repeat;
+ background-position: .5em 0;
+ border-bottom: 1px solid;
+ font-size: 90%;
+ margin: 0;
+ padding-left: 3em;
+ overflow: hidden;
}
div.error {
- background: #fcc url(../images/error.png) 0.5em 0px no-repeat;
- color: #000;
- border-bottom: 1px solid #faa;
- font-size: 90%;
- margin: 0;
- padding-left: 3em;
- overflow: hidden;
+ background-color: #fcc;
+ background-image: url(../images/error.png);
+ border-bottom-color: #faa;
}
div.info {
- background: #ccf url(../images/info.png) 0.5em 0px no-repeat;
- color: #000;
- border-bottom: 1px solid #aaf;
- font-size: 90%;
- margin: 0;
- padding-left: 3em;
- overflow: hidden;
+ background-color: #ccf;
+ background-image: url(../images/info.png);
+ border-bottom-color: #aaf;
}
div.success {
- background: #cfc url(../images/success.png) 0.5em 0px no-repeat;
- color: #000;
- border-bottom: 1px solid #afa;
- font-size: 90%;
- margin: 0;
- padding-left: 3em;
- overflow: hidden;
+ background-color: #cfc;
+ background-image: url(../images/success.png);
+ border-bottom-color: #afa;
}
div.notify {
- background: #ffc url(../images/notify.png) 0.5em 0px no-repeat;
- color: #000;
- border-bottom: 1px solid #ffa;
- font-size: 90%;
- margin: 0;
- padding-left: 3em;
- overflow: hidden;
+ background-color: #ffc;
+ background-image: url(../images/notify.png);
+ border-bottom-color: #ffa;
}
/* image alignment */
.medialeft {
- float: left;
+ float: left;
}
.mediaright {
- float: right;
+ float: right;
}
.mediacenter {
- display: block;
- margin-left: auto;
- margin-right: auto;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
}
-.leftalign { text-align: left; }
+/* table cell alignment */
+.leftalign { text-align: left; }
.centeralign { text-align: center; }
-.rightalign { text-align: right; }
+.rightalign { text-align: right; }
+/* underline */
em.u {
- font-style: normal;
- text-decoration: underline;
+ font-style: normal;
+ text-decoration: underline;
}
em em.u {
- font-style: italic;
+ font-style: italic;
+}
+
+/* modal windows */
+.JSpopup,
+#link__wiz,
+#media__popup {
+ position: absolute;
+ background-color: #fff;
+ color: #000;
+ z-index: 20;
+ overflow: hidden;
}