Merge branch 'master' into indexer_rewrite

Conflicts:
	inc/fulltext.php
	inc/indexer.php
	lib/exe/indexer.php
This commit is contained in:
Michael Hamann 2011-02-24 23:27:24 +01:00
commit f77fc90de1
477 changed files with 3371 additions and 2384 deletions

View File

@ -0,0 +1,31 @@
<?php
require_once DOKU_INC.'inc/DifferenceEngine.php';
class differenceengine_test extends UnitTestCase {
function test_white_between_words(){
// From FS#2161
global $lang;
$df = new Diff(explode("\n","example"),
explode("\n","example example2"));
$idf = new InlineDiffFormatter();
$tdf = new TableDiffFormatter();
$this->assertEqual($idf->format($df), '<tr><td colspan="4" class="diff-blockheader">@@ ' . $lang['line'] .
' -1 +1 @@&nbsp;<span class="diff-deletedline"><del>' . $lang['deleted'] .
'</del></span>&nbsp;<span class="diff-addedline">' . $lang['created'] .
'</span></td></tr>
<tr><td colspan="4">example&nbsp;<span class="diff-addedline">example2</span></td></tr>
');
$this->assertEqual($tdf->format($df),
'<tr><td class="diff-blockheader" colspan="2">' . $lang['line'] . ' 1:</td>
&nbsp; &nbsp;&nbsp;<td class="diff-blockheader" colspan="2">' . $lang['line'] . ' 1:</td>
</tr>
<tr><td>-</td><td class="diff-deletedline">example</td><td>+</td><td class="diff-addedline">example&nbsp;<strong>example2</strong></td></tr>
');
}
}
//Setup VIM: ex: et ts=4 :

View File

@ -18,6 +18,8 @@ class auth_password_test extends UnitTestCase {
'kmd5' => 'a579299436d7969791189acadd86fcb716',
'pmd5' => '$P$abcdefgh1RC6Fd32heUzl7EYCG9uGw.',
'hmd5' => '$H$abcdefgh1ZbJodHxmeXVAhEzTG7IAp.',
'djangomd5' => 'md5$abcde$d0fdddeda8cd92725d2b54148ac09158',
'djangosha1' => 'sha1$abcde$c8e65a7f0acc9158843048a53dcc5a6bc4d17678',
);
@ -37,6 +39,16 @@ class auth_password_test extends UnitTestCase {
}
}
function test_verifySelf(){
foreach($this->passes as $method => $hash){
$info = "testing method $method";
$this->signal('failinfo',$info);
$hash = auth_cryptPassword('foo'.$method);
$this->assertTrue(auth_verifyPassword('foo'.$method,$hash));
}
}
function test_verifyPassword_nohash(){
$this->assertTrue(auth_verifyPassword('foo','$1$$n1rTiFE0nRifwV/43bVon/'));
}

View File

@ -25,7 +25,8 @@ class mail_isvalid extends UnitTestCase {
$tests[] = array('bu[g]s@php.net1',false);
$tests[] = array('somebody@somewhere.museum',true);
$tests[] = array('somebody@somewhere.travel',true);
$tests[] = array('root@[2010:fb:fdac::311:2101]',true);
$tests[] = array('test@example', true); // we allow local addresses
// tests from http://code.google.com/p/php-email-address-validation/ below
@ -62,7 +63,6 @@ class mail_isvalid extends UnitTestCase {
$tests[] = array('test@.org', false);
$tests[] = array('12345678901234567890123456789012345678901234567890123456789012345@example.com', false); // 64 characters is maximum length for local part. This is 65.
$tests[] = array('test@123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012.com', false); // 255 characters is maximum length for domain. This is 256.
$tests[] = array('test@example', false);
$tests[] = array('test@[123.123.123.123', false);
$tests[] = array('test@123.123.123.123]', false);

View File

@ -13,7 +13,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("Foo".DOKU_PARSER_EOL."Bar".DOKU_PARSER_EOL)),
array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -29,7 +29,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
array('cdata',array("Foo")),
array('p_close',array()),
array('p_open',array()),
array('cdata',array("bar".DOKU_PARSER_EOL."Foo".DOKU_PARSER_EOL)),
array('cdata',array("bar".DOKU_PARSER_EOL."Foo")),
array('p_close',array()),
array('document_end',array()),
);
@ -42,7 +42,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("Foo".DOKU_PARSER_EOL."Bar".DOKU_PARSER_EOL)),
array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -57,7 +57,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\nFoo")),
array('linebreak',array()),
array('cdata',array("Bar\n")),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -76,7 +76,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
array('linebreak',array()),
array('p_close',array()),
array('p_open',array()),
array('cdata',array("Bar".DOKU_PARSER_EOL)),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -89,7 +89,7 @@ class TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo\\\\Bar'."\n")),
array('cdata',array("\n".'Foo\\\\Bar')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -23,7 +23,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' testing ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -35,7 +35,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nFoo (( testing\n Bar\n")),
array('cdata',array("\nFoo (( testing\n Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -54,7 +54,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(" testing\ntesting ")),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'.DOKU_PARSER_EOL)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -72,7 +72,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' x((y')),
array('footnote_close',array()),
))),
array('cdata',array('z )) Bar'."\n")),
array('cdata',array('z )) Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -91,7 +91,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(" test\ning ")),
array('footnote_close',array()),
))),
array('cdata',array('Y'.DOKU_PARSER_EOL.' Bar'.DOKU_PARSER_EOL)),
array('cdata',array('Y'.DOKU_PARSER_EOL.' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -114,7 +114,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -135,7 +135,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array("\n ")),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -156,7 +156,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -177,7 +177,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -199,7 +199,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'.DOKU_PARSER_EOL)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -221,7 +221,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -240,7 +240,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(" \n====Test====\n ")),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -286,7 +286,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -328,7 +328,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -356,7 +356,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
array('cdata',array(' ')),
array('footnote_close',array()),
))),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -381,7 +381,7 @@ class TestOfDoku_Parser_Footnote extends TestOfDoku_Parser {
))),
array('cdata',array(" ")),
array('strong_close',array()),
array('cdata',array(" c ))\n")),
array('cdata',array(" c ))")),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -17,7 +17,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('strong_open',array()),
array('cdata',array('bar')),
array('strong_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -30,7 +30,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc **bar def\n")),
array('cdata',array("\nabc **bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -47,7 +47,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('bar')),
array('emphasis_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -64,7 +64,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('Тест: ')),
array('emphasis_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -81,7 +81,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('b')),
array('emphasis_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -98,7 +98,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('foo:')),
array('emphasis_close',array()),
array('cdata',array(' bar// def'."\n")),
array('cdata',array(' bar// def')),
array('p_close',array()),
array('document_end',array()),
);
@ -118,7 +118,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('externallink',array('http://www.google.com', NULL)),
array('cdata',array(' bar')),
array('emphasis_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -131,7 +131,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc //bar def\n")),
array('cdata',array("\nabc //bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -148,7 +148,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('bar')),
array('emphasis_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -161,7 +161,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc //http:// def\n")),
array('cdata',array("\nabc //http:// def")),
array('p_close',array()),
array('document_end',array()),
);
@ -185,7 +185,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('text:')),
array('emphasis_close',array()),
array('cdata',array(" another Blablabla Blablabla\n")),
array('cdata',array(" another Blablabla Blablabla")),
array('p_close',array()),
array('document_end',array()),
);
@ -203,7 +203,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_open',array()),
array('cdata',array('Тест:')),
array('emphasis_close',array()),
array('cdata',array("\n")),
array('cdata', array('')),
array('p_close',array()),
array('document_end',array()),
);
@ -248,7 +248,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('underline_open',array()),
array('cdata',array('bar')),
array('underline_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -261,7 +261,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc __bar def\n")),
array('cdata',array("\nabc __bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -278,7 +278,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('monospace_open',array()),
array('cdata',array('bar')),
array('monospace_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -291,7 +291,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc ''bar def\n")),
array('cdata',array("\nabc ''bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -308,7 +308,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('subscript_open',array()),
array('cdata',array('bar')),
array('subscript_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -321,7 +321,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc <sub>bar def\n")),
array('cdata',array("\nabc <sub>bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -338,7 +338,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('superscript_open',array()),
array('cdata',array('bar')),
array('superscript_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -351,7 +351,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc <sup>bar def\n")),
array('cdata',array("\nabc <sup>bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -368,7 +368,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('deleted_open',array()),
array('cdata',array('bar')),
array('deleted_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -381,7 +381,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc <del>bar def\n")),
array('cdata',array("\nabc <del>bar def")),
array('p_close',array()),
array('document_end',array()),
);
@ -403,7 +403,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('emphasis_close',array()),
array('cdata',array('c')),
array('strong_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);
@ -424,7 +424,7 @@ class TestOfDoku_Parser_Formatting extends TestOfDoku_Parser {
array('strong_open',array()),
array('cdata',array('c')),
array('strong_close',array()),
array('cdata',array(' def'."\n")),
array('cdata',array(' def')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -13,12 +13,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',1,6)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -32,12 +32,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',2,6)),
array('section_open',array(2)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -51,12 +51,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',3,6)),
array('section_open',array(3)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -70,12 +70,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',4,6)),
array('section_open',array(4)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -89,12 +89,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',5,6)),
array('section_open',array(5)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -108,12 +108,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',2,6)),
array('section_open',array(2)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -127,12 +127,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',2,6)),
array('section_open',array(2)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -146,12 +146,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',1,6)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -165,7 +165,7 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n= Header =\n def\n")),
array('cdata',array("\nabc \n= Header =\n def")),
array('p_close',array()),
array('document_end',array()),
);
@ -179,12 +179,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('== Header ==',1,6)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -198,12 +198,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('====== Header ======',5,6)),
array('section_open',array(5)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -217,12 +217,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n== ====== Header\n")),
array('cdata',array("\nabc \n== ====== Header")),
array('p_close',array()),
array('header',array('',1,23)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -243,12 +243,12 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array('abc '.DOKU_PARSER_EOL)),
array('cdata',array('abc ')),
array('p_close',array()),
array('header',array('Header',1, 6)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array(' def'.DOKU_PARSER_EOL)),
array('cdata',array(' def')),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -263,18 +263,18 @@ class TestOfDoku_Parser_Headers extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc \n")),
array('cdata',array("\nabc ")),
array('p_close',array()),
array('header',array('Header',1,6)),
array('section_open',array(1)),
array('p_open',array()),
array('cdata',array("\n def abc \n")),
array('cdata',array("\n def abc ")),
array('p_close',array()),
array('section_close',array()),
array('header',array('Header2',2,39)),
array('section_open',array(2)),
array('p_open',array()),
array('cdata',array("\n def\n")),
array('cdata',array("\n def")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array())

View File

@ -47,7 +47,7 @@ class TestOfDoku_Parser_i18n extends TestOfDoku_Parser {
array('deleted_open',array()),
array('cdata',array('æ')),
array('deleted_close',array()),
array('cdata',array("tiøn\n")),
array('cdata',array("tiøn")),
array('p_close',array()),
array('document_end',array()),
);
@ -60,12 +60,12 @@ class TestOfDoku_Parser_i18n extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nFoo\n")),
array('cdata',array("\nFoo")),
array('p_close',array()),
array('header',array('Iñtërnâtiônàlizætiøn',3,5)),
array('section_open',array(3)),
array('p_open',array()),
array('cdata',array("\n Bar\n")),
array('cdata',array("\n Bar")),
array('p_close',array()),
array('section_close',array()),
array('document_end',array()),
@ -110,7 +110,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(153)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -126,7 +126,7 @@ def');
array('p_open',array()),
array('cdata',array("\nFoo ")),
array('acronym',array('Iñtërnâtiônàlizætiøn')),
array('cdata',array(" Bar\n")),
array('cdata',array(" Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -141,7 +141,7 @@ def');
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('interwikilink',array('wp>Iñtërnâtiônàlizætiøn','Iñtërnâtiônàlizætiøn','wp','Iñtërnâtiônàlizætiøn')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -156,7 +156,7 @@ def');
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('x:Iñtërnâtiônàlizætiøn:y:foo_bar:z','Iñtërnâtiônàlizætiøn')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -16,7 +16,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('http://www.google.com', NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -31,20 +31,100 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('HTTP://WWW.GOOGLE.COM', NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testExternalIPv4() {
$this->P->addMode('externallink',new Doku_Parser_Mode_ExternalLink());
$this->P->parse("Foo http://123.123.3.21/foo Bar");
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('http://123.123.3.21/foo', NULL)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testExternalIPv6() {
$this->P->addMode('externallink',new Doku_Parser_Mode_ExternalLink());
$this->P->parse("Foo http://[3ffe:2a00:100:7031::1]/foo Bar");
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('http://[3ffe:2a00:100:7031::1]/foo', NULL)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testExternalMulti(){
$this->teardown();
$links = array(
'http://www.google.com',
'HTTP://WWW.GOOGLE.COM',
'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html',
'http://[1080:0:0:0:8:800:200C:417A]/index.html',
'http://[3ffe:2a00:100:7031::1]',
'http://[1080::8:800:200C:417A]/foo',
'http://[::192.9.5.5]/ipng',
'http://[::FFFF:129.144.52.38]:80/index.html',
'http://[2010:836B:4179::836B:4179]',
);
$titles = array(false,null,'foo bar');
foreach($links as $link){
foreach($titles as $title){
if($title === false){
$source = $link;
$name = null;
}elseif($title === null){
$source = "[[$link]]";
$name = null;
}else{
$source = "[[$link|$title]]";
$name = $title;
}
$this->signal('failinfo',$source);
$this->setup();
$this->P->addMode('internallink',new Doku_Parser_Mode_InternalLink());
$this->P->addMode('externallink',new Doku_Parser_Mode_ExternalLink());
$this->P->parse("Foo $source Bar");
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array($link, $name)),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
$this->teardown();
}
}
$this->setup();
}
function testExternalLinkJavascript() {
$this->P->addMode('externallink',new Doku_Parser_Mode_ExternalLink());
$this->P->parse("Foo javascript:alert('XSS'); Bar");
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nFoo javascript:alert('XSS'); Bar\n")),
array('cdata',array("\nFoo javascript:alert('XSS'); Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -59,7 +139,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('http://www.google.com', 'www.google.com')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -74,15 +154,13 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('ftp://ftp.sunsite.com', 'ftp.sunsite.com')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
$this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls);
}
function testEmail() {
/* $this->fail('The emaillink mode seems to cause php 5.0.5 to segfault');
return; //FIXME: is this still true?*/
$this->P->addMode('emaillink',new Doku_Parser_Mode_Emaillink());
$this->P->parse("Foo <bugs@php.net> Bar");
$calls = array (
@ -90,7 +168,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('emaillink',array('bugs@php.net', NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -105,7 +183,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('emaillink',array("~fix+bug's.for/ev{e}r@php.net", NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -120,7 +198,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('emaillink',array('bugs@pHp.net', NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -136,7 +214,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('l',NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -151,7 +229,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('foo:bar',NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -166,7 +244,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('x:1:y:foo_bar:z','Test')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -181,7 +259,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('wiki:syntax#internal','Syntax')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -196,7 +274,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('http://www.google.com','Google')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -211,7 +289,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('interwikilink',array('iw>somepage','Some Page','iw','somepage')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -226,7 +304,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('interwikilink',array('IW>somepage','Some Page','iw','somepage')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -241,7 +319,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('interwikilink',array('wp>Callback_(computer_science)','callbacks','wp','Callback_(computer_science)')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -256,7 +334,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('camelcaselink',array('FooBar')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -271,7 +349,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('filelink',array('file://temp/file.txt ',NULL)),
array('cdata',array('Bar'."\n")),
array('cdata',array('Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -286,7 +364,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externallink',array('file://temp/file.txt','Some File')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -301,7 +379,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('windowssharelink',array('\\\server\share',NULL)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -316,7 +394,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('windowssharelink',array('\\\server\share','My Documents')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -331,7 +409,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,NULL,NULL,NULL,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -346,7 +424,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,NULL,NULL,NULL,'cache','linkonly')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -361,7 +439,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('foo.txt','Some File',null,10,10,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -376,7 +454,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,'left',NULL,NULL,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -391,7 +469,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,'right',NULL,NULL,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -406,7 +484,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,'center',NULL,NULL,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -421,7 +499,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif',NULL,NULL,'50','100','nocache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -436,7 +514,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internalmedia',array('img.gif','Some Image',NULL,'50','100','cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -451,7 +529,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externalmedia',array('http://www.google.com/img.gif',NULL,NULL,NULL,NULL,'cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -466,7 +544,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('externalmedia',array('http://www.google.com/img.gif',NULL,NULL,'50','100','nocache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -482,7 +560,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('cdata',array("\n".'Foo ')),
array('externalmedia',
array('http://www.google.com/img.gif','Some Image',NULL,'50','100','cache','details')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -509,7 +587,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('x:1:y:foo_bar:z',$image)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -536,7 +614,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('internallink',array('x:1:y:foo_bar:z',$image)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -563,7 +641,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('emaillink',array('foo@example.com',$image)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -579,7 +657,7 @@ class TestOfDoku_Parser_Links extends TestOfDoku_Parser {
array('cdata',array("\n".'Foo ')),
array('internalmedia',
array('img.gif','{{foo.gif|{{bar.gif|Bar',NULL,NULL,NULL,'cache','details')),
array('cdata',array('}}}} Bar'."\n")),
array('cdata',array('}}}} Bar')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -171,7 +171,7 @@ class TestOfDoku_Parser_Lists extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nFoo -bar *foo Bar\n")),
array('cdata',array("\nFoo -bar *foo Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -211,7 +211,7 @@ Bar');
array('listitem_close',array()),
array('listu_close',array()),
array('p_open',array()),
array('cdata',array("Bar".DOKU_PARSER_EOL)),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -17,7 +17,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('file',array('testing',null,null)),
array('p_open',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -35,7 +35,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('code',array('testing', null, null)),
array('p_open',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -52,7 +52,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('code',array('testing', null, null)),
array('p_open',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -69,7 +69,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('code',array('testing', 'php', null)),
array('p_open',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -86,7 +86,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('preformatted',array("x \n y ")),
array('p_open',array()),
array('cdata',array('Bar'."\n\n")),
array('cdata',array('Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -103,7 +103,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('preformatted',array("x \n y ")),
array('p_open',array()),
array('cdata',array('Bar'."\n\n")),
array('cdata',array('Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -120,7 +120,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('preformatted',array("x\t\n\ty\t")),
array('p_open',array()),
array('cdata',array("Bar\n\n")),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -137,7 +137,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('preformatted',array("x\t\n\ty\t")),
array('p_open',array()),
array('cdata',array("Bar\n\n")),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -169,7 +169,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_close',array()),
array('preformatted',array("x \n y \n-X\n*Y")),
array('p_open',array()),
array('cdata',array("Bar\n\n")),
array('cdata',array("Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -186,7 +186,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('php',array('testing')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -203,7 +203,7 @@ class TestOfDoku_Parser_Preformatted extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('html',array('testing')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -22,7 +22,7 @@ class TestOfDoku_Parser_Quote extends TestOfDoku_Parser {
array('quote_close',array()),
array('quote_close',array()),
array('p_open',array()),
array('cdata',array("klm\n")),
array('cdata',array("klm")),
array('p_close',array()),
array('document_end',array()),
@ -45,7 +45,7 @@ class TestOfDoku_Parser_Quote extends TestOfDoku_Parser {
array('quote_close',array()),
array('quote_close',array()),
array('p_open',array()),
array('cdata',array("klm\n")),
array('cdata',array("klm")),
array('p_close',array()),
array('document_end',array()),
@ -86,7 +86,7 @@ class TestOfDoku_Parser_Quote extends TestOfDoku_Parser {
array('quote_close',array()),
array('quote_close',array()),
array('p_open',array()),
array('cdata',array("klm".DOKU_PARSER_EOL)),
array('cdata',array("klm")),
array('p_close',array()),
array('document_end',array()),

View File

@ -22,7 +22,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('singlequoteopening',array()),
array('cdata',array('hello Bar'."\n")),
array('cdata',array('hello Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -39,7 +39,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo said:')),
array('singlequoteopening',array()),
array('cdata',array('hello Bar'."\n")),
array('cdata',array('hello Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -56,7 +56,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo hello')),
array('singlequoteclosing',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -73,7 +73,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo hello')),
array('singlequoteclosing',array()),
array('cdata',array(') Bar'."\n")),
array('cdata',array(') Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -92,7 +92,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('singlequoteopening',array()),
array('cdata',array('hello')),
array('singlequoteclosing',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -109,7 +109,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'hey it')),
array('apostrophe',array()),
array('cdata',array('s fine weather today'."\n")),
array('cdata',array('s fine weather today')),
array('p_close',array()),
array('document_end',array()),
);
@ -129,7 +129,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('singlequoteopening',array()),
array('cdata',array('hello')),
array('singlequoteclosing',array()),
array('cdata',array(') Bar'."\n")),
array('cdata',array(') Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -146,7 +146,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('doublequoteopening',array()),
array('cdata',array('hello Bar'."\n")),
array('cdata',array('hello Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -163,7 +163,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo said:')),
array('doublequoteopening',array()),
array('cdata',array('hello Bar'."\n")),
array('cdata',array('hello Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -180,7 +180,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo hello')),
array('doublequoteclosing',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -197,7 +197,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo hello')),
array('doublequoteclosing',array()),
array('cdata',array(') Bar'."\n")),
array('cdata',array(') Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -216,7 +216,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('doublequoteopening',array()),
array('cdata',array('hello')),
array('doublequoteclosing',array()),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -235,7 +235,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('doublequoteopening',array()),
array('cdata',array('hello')),
array('doublequoteclosing',array()),
array('cdata',array(') Bar'."\n")),
array('cdata',array(') Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -261,7 +261,7 @@ class TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
array('cdata',array('s world')),
array('singlequoteclosing',array()),
array('doublequoteclosing',array()),
array('cdata',array(".\n")),
array('cdata',array(".")),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -17,7 +17,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'abc ')),
array('acronym',array('FOOBAR')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -32,7 +32,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'abcFOOBARxyz'."\n")),
array('cdata',array("\n".'abcFOOBARxyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -49,7 +49,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'FOOBAR ')),
array('acronym',array('FOO')),
array('cdata',array("\n")),
array('cdata',array('')),
array('p_close',array()),
array('document_end',array()),
);
@ -68,7 +68,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('acronym',array('FOO')),
array('cdata',array(' def ')),
array('acronym',array('BAR')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -92,7 +92,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('acronym',array('FOO.1')),
array('cdata',array(" ")),
array('acronym',array('A.FOO.1')),
array('cdata',array("\n")),
array('cdata',array('')),
array('p_close',array()),
array('document_end',array()),
);
@ -115,7 +115,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('acronym',array('FOO.1')),
array('cdata',array(" ")),
array('acronym',array('A.FOO.1')),
array('cdata',array("\n")),
array('cdata',array('')),
array('p_close',array()),
array('document_end',array()),
);
@ -130,7 +130,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc:-)xyz\n")),
array('cdata',array("\nabc:-)xyz")),
array('p_close',array()),
array('document_end',array()),
);
@ -147,7 +147,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'abc ')),
array('smiley',array(':-)')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -162,7 +162,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc:-)x^_^yz\n")),
array('cdata',array("\nabc:-)x^_^yz")),
array('p_close',array()),
array('document_end',array()),
);
@ -181,7 +181,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('smiley',array(':-)')),
array('cdata',array(' x ')),
array('smiley',array('^_^')),
array('cdata',array(' yz'."\n")),
array('cdata',array(' yz')),
array('p_close',array()),
array('document_end',array()),
);
@ -197,7 +197,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\nabc".':-\\\\'."xyz\n")),
array('cdata',array("\nabc".':-\\\\'."xyz")),
array('p_close',array()),
array('document_end',array()),
);
@ -215,7 +215,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'abc ')),
array('smiley',array(':-\\\\')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -232,7 +232,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'abc ')),
array('wordblock',array('CAT')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -249,7 +249,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'abc ')),
array('wordblock',array('cat')),
array('cdata',array(' xyz'."\n")),
array('cdata',array(' xyz')),
array('p_close',array()),
array('document_end',array()),
);
@ -268,7 +268,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('wordblock',array('cat')),
array('cdata',array(' x ')),
array('wordblock',array('DOG')),
array('cdata',array(' yz'."\n")),
array('cdata',array(' yz')),
array('p_close',array()),
array('document_end',array()),
);
@ -285,7 +285,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'x ')),
array('entity',array('->')),
array('cdata',array(' y'."\n")),
array('cdata',array(' y')),
array('p_close',array()),
array('document_end',array()),
);
@ -304,7 +304,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('entity',array('->')),
array('cdata',array(' y ')),
array('entity',array('<-')),
array('cdata',array(' z'."\n")),
array('cdata',array(' z')),
array('p_close',array()),
array('document_end',array()),
);
@ -321,7 +321,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('multiplyentity',array(10,20)),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -337,7 +337,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array("\n".'Foo 0x123 Bar'."\n")),
array('cdata',array("\n".'Foo 0x123 Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -356,7 +356,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_close',array()),
array('hr',array()),
array('p_open',array()),
array('cdata',array("\n Bar\n")),
array('cdata',array("\n Bar")),
array('p_close',array()),
array('document_end',array()),
);
@ -374,7 +374,7 @@ class TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
array('p_close',array()),
array('hr',array()),
array('p_open',array()),
array('cdata',array("\n Bar\n")),
array('cdata',array("\n Bar")),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -44,7 +44,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(121)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -84,7 +84,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(121)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -108,7 +108,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(7)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -142,7 +142,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(19)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -177,7 +177,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(23)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -220,7 +220,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(31)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -268,7 +268,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(51)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -306,7 +306,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(27)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -326,7 +326,7 @@ def');
$calls = array (
array('document_start',array()),
array('p_open',array()),
array('cdata',array(DOKU_PARSER_EOL."abc")),
array('cdata',array("abc")),
array('p_close',array()),
array('table_open',array(3, 2, 6)),
array('tablerow_open',array()),
@ -353,7 +353,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(121)),
array('p_open',array()),
array('cdata',array('def'.DOKU_PARSER_EOL)),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -408,7 +408,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(129)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -459,7 +459,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(155)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -506,7 +506,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(123)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);
@ -566,7 +566,7 @@ def');
array('tablerow_close',array()),
array('table_close',array(129)),
array('p_open',array()),
array('cdata',array('def'."\n")),
array('cdata',array('def')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -15,7 +15,7 @@ class TestOfDoku_Parser_Unformatted extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('unformatted',array('testing')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);
@ -32,7 +32,7 @@ class TestOfDoku_Parser_Unformatted extends TestOfDoku_Parser {
array('p_open',array()),
array('cdata',array("\n".'Foo ')),
array('unformatted',array('testing')),
array('cdata',array(' Bar'."\n")),
array('cdata',array(' Bar')),
array('p_close',array()),
array('document_end',array()),
);

View File

@ -0,0 +1,93 @@
<?php
require_once DOKU_INC.'inc/init.php';
class parserutils_set_metadata_during_rendering_test extends UnitTestCase {
// the id used for this test case
private $id;
// if the test case is currently running
private $active = false;
// the original plugin controller
private $plugin_controller;
// the actual test
function test_p_set_metadata_during_rendering() {
global $EVENT_HANDLER;
$this->id = 'test:p_set_metadata_during_rendering';
$this->active = true;
// write the wiki page so it exists and needs to be rendered
saveWikiText($this->id, 'Test '.time(), 'Test data setup');
$EVENT_HANDLER->register_hook('PARSER_METADATA_RENDER', 'BEFORE', $this, 'helper_set_metadata', array('test_before_set' => 'test'));
$EVENT_HANDLER->register_hook('PARSER_METADATA_RENDER', 'AFTER', $this, 'helper_set_metadata', array('test_after_set' => 'test'));
$EVENT_HANDLER->register_hook('PARSER_HANDLER_DONE', 'BEFORE', $this, 'helper_inject_test_instruction');
// Change the global plugin controller so this test can be a fake syntax plugin
global $plugin_controller;
$this->plugin_controller = $plugin_controller;
$plugin_controller = $this;
// the actual rendering, all hooks should be executed here
$newMeta = p_get_metadata($this->id);
// restore the plugin controller
$plugin_controller = $this->plugin_controller;
// assert that all three calls to p_set_metadata have been successful
$this->assertEqual($newMeta['test_before_set'], 'test');
$this->assertEqual($newMeta['test_after_set'], 'test');
$this->assertEqual($newMeta['test_during_rendering'], 'test');
// clean up
$this->active = false;
// make sure the saved metadata is the one that has been rendered
$this->assertEqual($newMeta, p_get_metadata($this->id));
saveWikiText($this->id, '', 'Test data remove');
}
// helper for the action plugin part of the test, tries executing p_set_metadata during rendering
function helper_set_metadata($event, $meta) {
if ($this->active) {
p_set_metadata($this->id, $meta, false, true);
$key = array_pop(array_keys($meta));
$this->assertTrue(is_string($meta[$key])); // ensure we really have a key
// ensure that the metadata property hasn't been set previously
$this->assertNotEqual($meta[$key], p_get_metadata($this->id, $key));
}
}
// helper for injecting an instruction for this test case
function helper_inject_test_instruction($event) {
if ($this->active)
$event->data->calls[] = array('plugin', array('parserutils_test', array()));
}
// fake syntax plugin rendering method that tries calling p_set_metadata during the actual rendering process
function render($format, &$renderer, $data) {
if ($this->active) {
$key = 'test_during_rendering';
p_set_metadata($this->id, array($key => 'test'), false, true);
// ensure that the metadata property hasn't been set previously
$this->assertNotEqual($key, p_get_metadata($this->id, $key));
}
}
// wrapper function for the fake plugin controller
function getList($type='',$all=false){
return $this->plugin_controller->getList();
}
// wrapper function for the fake plugin controller, return $this for the fake syntax of this test
function &load($type,$name,$new=false,$disabled=false){
if ($name == 'parserutils_test') {
return $this;
} else {
return $this->plugin_controller->load($type, $name, $new, $disabled);
}
}
}
// vim:ts=4:sw=4:et:

View File

@ -62,6 +62,7 @@ JPEG Joint Photographics Experts Group
JPG Joint Photographics Experts Group
JS JavaScript
KISS Keep it simple stupid
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
LGPL GNU Lesser General Public License
LOL Laughing out loud

View File

@ -5,7 +5,8 @@
# no further encoding is done
# If no placeholder is defined the urlencoded name is appended to the URL
# You can add more InterWiki shortcuts here.
# To prevent losing your added InterWiki shortcuts after an upgrade,
# you should add new ones to interwiki.local.conf
wp http://en.wikipedia.org/wiki/{NAME}
wpfr http://fr.wikipedia.org/wiki/{NAME}
@ -15,7 +16,7 @@ wppl http://pl.wikipedia.org/wiki/{NAME}
wpjp http://ja.wikipedia.org/wiki/{NAME}
wpmeta http://meta.wikipedia.org/wiki/{NAME}
doku http://www.dokuwiki.org/
dokubug http://bugs.splitbrain.org/index.php?do=details&amp;task_id=
dokubug http://bugs.dokuwiki.org/index.php?do=details&amp;task_id=
rfc http://www.cs.ccu.edu.tw/~chm91u/rfc2html.php?in=
man http://man.cx/
amazon http://www.amazon.com/exec/obidos/ASIN/{URL}/splitbrain-20/
@ -26,9 +27,13 @@ phpfn http://www.php.net/{NAME}
coral http://{HOST}.{PORT}.nyud.net:8090/{PATH}?{QUERY}
freecache http://freecache.org/{NAME}
sb http://www.splitbrain.org/go/
skype skype:{NAME}
google.de http://www.google.de/search?q=
go http://www.google.com/search?q={URL}&amp;btnI=lucky
# To support VoIP/SIP links
callto callto://{NAME}
# Standards from http://usemod.com/intermap.txt follow
AbbeNormal http://www.ourpla.net/cgi-bin/pikie.cgi?

View File

@ -18,6 +18,7 @@
:-X icon_silenced.gif
:-| icon_neutral.gif
;-) icon_wink.gif
m( facepalm.gif
^_^ icon_fun.gif
:?: icon_question.gif
:!: icon_exclaim.gif

View File

@ -26,4 +26,7 @@ downgradetowindowsxp\.com
elegantugg\.com
classicedhardy\.com
research-service\.com
https?:\/\/(\S*?)(2-pay-secure|911essay|academia-research|anypapers|applicationessay|bestbuyessay|bestdissertation|bestessay|bestresume|besttermpaper|businessessay|college-paper|customessay|custom-made-paper|custom-writing|dissertationblog|dissertation-service|dissertations?expert|essaybank|essay-?blog|essaycapital|essaylogic|essaymill|essayontime|essaypaper|essays?land|essaytownsucks|essaywrit|essay-writing-service|fastessays|freelancercareers|genuinecontent|genuineessay|genuinepaper|goessay|grandresume|killer-content|ma-dissertation|managementessay|masterpaper|mightystudent|needessay|researchedge|researchpaper-blog|resumecvservice|resumesexperts|resumesplanet|rushessay|samedayessay|superiorcontent|superiorpaper|superiorthesis|term-paper|termpaper-blog|term-paper-research|thesisblog|universalresearch|valwriting|vdwriters|wisetranslation|writersassembly|writers\.com\.ph|writers\.ph)
https?:\/\/(\S*?)(2-pay-secure|911essay|academia-research|anypapers|applicationessay|bestbuyessay|bestdissertation|bestessay|bestresume|besttermpaper|businessessay|college-paper|customessay|custom-made-paper|custom-writing|degree-?result|dissertationblog|dissertation-service|dissertations?expert|essaybank|essay-?blog|essaycapital|essaylogic|essaymill|essayontime|essaypaper|essays?land|essaytownsucks|essay-?writ|fastessays|freelancercareers|genuinecontent|genuineessay|genuinepaper|goessay|grandresume|killer-content|ma-dissertation|managementessay|masterpaper|mightystudent|needessay|researchedge|researchpaper-blog|resumecvservice|resumesexperts|resumesplanet|rushessay|samedayessay|superiorcontent|superiorpaper|superiorthesis|term-paper|termpaper-blog|term-paper-research|thesisblog|universalresearch|valwriting|vdwriters|wisetranslation|writersassembly|writers\.com\.ph|writers\.ph)
flatsinmumbai\.co\.in
https?:\/\/(\S*?)penny-?stock
mattressreview\.biz

View File

@ -27,6 +27,7 @@ if (isset($_SERVER['HTTP_X_DOKUWIKI_DO'])){
require_once(DOKU_INC.'inc/init.php');
//import variables
$_REQUEST['id'] = str_replace("\xC2\xAD",'',$_REQUEST['id']); //soft-hyphen
$QUERY = trim($_REQUEST['id']);
$ID = getID();

View File

@ -932,7 +932,7 @@ class InlineWordLevelDiff extends MappedDiff {
}
function _split($lines) {
if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xsu',
implode("\n", $lines), $m)) {
return array(array(''), array(''));
}
@ -943,7 +943,7 @@ class InlineWordLevelDiff extends MappedDiff {
$orig = new _HWLDF_WordAccumulator;
foreach ($this->edits as $edit) {
if ($edit->type == 'copy')
$orig->addWords($edit->orig);
$orig->addWords($edit->closing);
elseif ($edit->type == 'change'){
$orig->addWords($edit->orig, 'del');
$orig->addWords($edit->closing, 'add');
@ -1087,6 +1087,7 @@ class TableDiffFormatter extends DiffFormatter {
*
*/
class InlineDiffFormatter extends DiffFormatter {
var $colspan = 4;
function InlineDiffFormatter() {
$this->leading_context_lines = 2;
@ -1113,7 +1114,7 @@ class InlineDiffFormatter extends DiffFormatter {
$xbeg .= "," . $xlen;
if ($ylen != 1)
$ybeg .= "," . $ylen;
$r = '<tr><td class="diff-blockheader">@@ '.$lang['line']." -$xbeg +$ybeg @@";
$r = '<tr><td colspan="'.$this->colspan.'" 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";
@ -1132,19 +1133,19 @@ class InlineDiffFormatter extends DiffFormatter {
function _added($lines) {
foreach ($lines as $line) {
print('<tr><td class="diff-addedline">'. $line . "</td></tr>\n");
print('<tr><td colspan="'.$this->colspan.'" 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");
print('<tr><td colspan="'.$this->colspan.'" 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");
print('<tr><td colspan="'.$this->colspan.'" class="diff-context">'.$line."</td></tr>\n");
}
}
@ -1153,7 +1154,7 @@ class InlineDiffFormatter extends DiffFormatter {
$add = $diff->inline();
foreach ($add as $line)
print('<tr><td>'.$line."</td></tr>\n");
print('<tr><td colspan="'.$this->colspan.'">'.$line."</td></tr>\n");
}
}

View File

@ -5,7 +5,7 @@
* @author Dave Child <dave@addedbytes.com>
* @link http://code.google.com/p/php-email-address-validation/
* @license http://www.opensource.org/licenses/bsd-license.php
* @version SVN r10 + Issue 15 fix
* @version SVN r10 + Issue 15 fix + Issue 12 fix
*/
class EmailAddressValidator {
/**
@ -121,13 +121,30 @@ class EmailAddressValidator {
if (!$this->check_text_length($strDomainPortion, 1, 255)) {
return false;
}
// some IPv4/v6 regexps borrowed from Feyd
// see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479
$dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])';
$hex_digit = '[A-Fa-f0-9]';
$h16 = "{$hex_digit}{1,4}";
$IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet";
$ls32 = "(?:$h16:$h16|$IPv4Address)";
$IPv6Address =
"(?:(?:{$IPv4Address})|(?:".
"(?:$h16:){6}$ls32" .
"|::(?:$h16:){5}$ls32" .
"|(?:$h16)?::(?:$h16:){4}$ls32" .
"|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" .
"|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" .
"|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" .
"|(?:(?:$h16:){0,4}$h16)?::$ls32" .
"|(?:(?:$h16:){0,5}$h16)?::$h16" .
"|(?:(?:$h16:){0,6}$h16)?::" .
")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)";
// Check if domain is IP, possibly enclosed in square brackets.
if (preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])'
.'(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}$/'
,$strDomainPortion) ||
preg_match('/^\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])'
.'(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\]$/'
,$strDomainPortion)) {
if (preg_match("/^($IPv4Address|\[$IPv4Address\]|\[$IPv6Address\])$/",
$strDomainPortion)){
return true;
} else {
$arrDomainPortion = explode('.', $strDomainPortion);

View File

@ -299,8 +299,6 @@ class HTTPClient {
$this->error = "Could not connect to $server:$port\n$errstr ($errno)";
return false;
}
//set non blocking
stream_set_blocking($socket,0);
// keep alive?
if ($this->keep_alive) {
@ -310,6 +308,9 @@ class HTTPClient {
}
}
//set blocking
stream_set_blocking($socket,1);
// build request
$request = "$method $request_url HTTP/".$this->http.HTTP_NL;
$request .= $this->_buildHeaders($headers);
@ -319,11 +320,28 @@ class HTTPClient {
$this->_debug('request',$request);
// select parameters
$sel_r = null;
$sel_w = array($socket);
$sel_e = null;
// send request
$towrite = strlen($request);
$written = 0;
while($written < $towrite){
$ret = fwrite($socket, substr($request,$written));
// check timeout
if(time()-$start > $this->timeout){
$this->status = -100;
$this->error = sprintf('Timeout while sending request (%.3fs)',$this->_time() - $this->start);
unset($this->connections[$connectionId]);
return false;
}
// wait for stream ready or timeout (1sec)
if(stream_select($sel_r,$sel_w,$sel_e,1) === false) continue;
// write to stream
$ret = fwrite($socket, substr($request,$written,4096));
if($ret === false){
$this->status = -100;
$this->error = 'Failed writing to socket';
@ -333,6 +351,9 @@ class HTTPClient {
$written += $ret;
}
// continue non-blocking
stream_set_blocking($socket,0);
// read headers from socket
$r_headers = '';
do{

View File

@ -1466,16 +1466,21 @@ class JpegMeta {
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $tags);
$result = xml_parse_into_struct($parser, $data, $values, $tags);
xml_parser_free($parser);
if ($result == 0) {
$this->_info['xmp'] = false;
return false;
}
$this->_info['xmp'] = array();
$count = count($values);
for ($i = 0; $i < $count; $i++) {
if ($values[$i]['tag'] == 'rdf:Description' && $values[$i]['type'] == 'open') {
while ($values[++$i]['tag'] != 'rdf:Description') {
$this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i]['tag']]);
while ((++$i < $count) && ($values[$i]['tag'] != 'rdf:Description')) {
$this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i]['tag']], $count);
}
}
}
@ -1487,7 +1492,7 @@ class JpegMeta {
*
* @author Hakan Sandell <hakan.sandell@mydata.se>
*/
function _parseXmpNode($values, &$i, &$meta) {
function _parseXmpNode($values, &$i, &$meta, $count) {
if ($values[$i]['type'] == 'close') return;
if ($values[$i]['type'] == 'complete') {
@ -1497,11 +1502,13 @@ class JpegMeta {
}
$i++;
if ($i >= $count) return;
if ($values[$i]['tag'] == 'rdf:Bag' || $values[$i]['tag'] == 'rdf:Seq') {
// Array property
$meta = array();
while ($values[++$i]['tag'] == 'rdf:li') {
$this->_parseXmpNode($values, $i, $meta[]);
$this->_parseXmpNode($values, $i, $meta[], $count);
}
$i++; // skip closing Bag/Seq tag
@ -1509,8 +1516,8 @@ class JpegMeta {
// Language Alternative property, only the first (default) value is used
if ($values[$i]['type'] == 'open') {
$i++;
$this->_parseXmpNode($values, $i, $meta);
while ($values[++$i]['tag'] != 'rdf:Alt');
$this->_parseXmpNode($values, $i, $meta, $count);
while ((++$i < $count) && ($values[$i]['tag'] != 'rdf:Alt'));
$i++; // skip closing Alt tag
}
@ -1519,8 +1526,8 @@ class JpegMeta {
$meta = array();
$startTag = $values[$i-1]['tag'];
do {
$this->_parseXmpNode($values, $i, $meta[$values[$i]['tag']]);
} while ($values[++$i]['tag'] != $startTag);
$this->_parseXmpNode($values, $i, $meta[$values[$i]['tag']], $count);
} while ((++$i < $count) && ($values[$i]['tag'] != $startTag));
}
}

379
inc/PassHash.class.php Normal file
View File

@ -0,0 +1,379 @@
<?php
/**
* Password Hashing Class
*
* This class implements various mechanisms used to hash passwords
*
* @author Andreas Gohr <andi@splitbrain.org>
* @license LGPL2
*/
class PassHash {
/**
* Verifies a cleartext password against a crypted hash
*
* The method and salt used for the crypted hash is determined automatically,
* then the clear text password is crypted using the same method. If both hashs
* match true is is returned else false
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function verify_hash($clear,$hash){
$method='';
$salt='';
$magic='';
//determine the used method and salt
$len = strlen($hash);
if(preg_match('/^\$1\$([^\$]{0,8})\$/',$hash,$m)){
$method = 'smd5';
$salt = $m[1];
$magic = '1';
}elseif(preg_match('/^\$apr1\$([^\$]{0,8})\$/',$hash,$m)){
$method = 'apr1';
$salt = $m[1];
$magic = 'apr1';
}elseif(preg_match('/^\$P\$(.{31})$/',$hash,$m)){
$method = 'pmd5';
$salt = $m[1];
$magic = 'P';
}elseif(preg_match('/^\$H\$(.{31})$/',$hash,$m)){
$method = 'pmd5';
$salt = $m[1];
$magic = 'H';
}elseif(preg_match('/^sha1\$(.{5})\$/',$hash,$m)){
$method = 'djangosha1';
$salt = $m[1];
}elseif(preg_match('/^md5\$(.{5})\$/',$hash,$m)){
$method = 'djangomd5';
$salt = $m[1];
}elseif(substr($hash,0,6) == '{SSHA}'){
$method = 'ssha';
$salt = substr(base64_decode(substr($hash, 6)),20);
}elseif($len == 32){
$method = 'md5';
}elseif($len == 40){
$method = 'sha1';
}elseif($len == 16){
$method = 'mysql';
}elseif($len == 41 && $hash[0] == '*'){
$method = 'my411';
}elseif($len == 34){
$method = 'kmd5';
$salt = $hash;
}else{
$method = 'crypt';
$salt = substr($hash,0,2);
}
//crypt and compare
$call = 'hash_'.$method;
if($this->$call($clear,$salt,$magic) === $hash){
return true;
}
return false;
}
/**
* Create a random salt
*
* @param int $len - The length of the salt
*/
public function gen_salt($len=32){
$salt = '';
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
for($i=0;$i<$len,$i++;) $salt .= $chars[mt_rand(0,61)];
return $salt;
}
/**
* Initialize the passed variable with a salt if needed.
*
* If $salt is not null, the value is kept, but the lenght restriction is
* applied.
*
* @param stringref $salt - The salt, pass null if you want one generated
* @param int $len - The length of the salt
*/
public function init_salt(&$salt,$len=32){
if(is_null($salt)) $salt = $this->gen_salt($len);
if(strlen($salt) > $len) $salt = substr($salt,0,$len);
}
// Password hashing methods follow below
/**
* Password hashing method 'smd5'
*
* Uses salted MD5 hashs. Salt is 8 bytes long.
*
* The same mechanism is used by Apache's 'apr1' method. This will
* fallback to a implementation in pure PHP if MD5 support is not
* available in crypt()
*
* @author Andreas Gohr <andi@splitbrain.org>
* @author <mikey_nich at hotmail dot com>
* @link http://de.php.net/manual/en/function.crypt.php#73619
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @param string $magic - the hash identifier (apr1 or 1)
* @returns string - hashed password
*/
public function hash_smd5($clear, $salt=null){
$this->init_salt($salt,8);
if(defined('CRYPT_MD5') && CRYPT_MD5){
return crypt($clear,'$1$'.$salt.'$');
}else{
// Fall back to PHP-only implementation
return $this->apr1($clear, $salt, '1');
}
}
/**
* Password hashing method 'apr1'
*
* Uses salted MD5 hashs. Salt is 8 bytes long.
*
* This is basically the same as smd1 above, but as used by Apache.
*
* @author <mikey_nich at hotmail dot com>
* @link http://de.php.net/manual/en/function.crypt.php#73619
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @param string $magic - the hash identifier (apr1 or 1)
* @returns string - hashed password
*/
public function hash_apr1($clear, $salt=null, $magic='apr1'){
$this->init_salt($salt,8);
$len = strlen($clear);
$text = $clear.'$'.$magic.'$'.$salt;
$bin = pack("H32", md5($clear.$salt.$clear));
for($i = $len; $i > 0; $i -= 16) {
$text .= substr($bin, 0, min(16, $i));
}
for($i = $len; $i > 0; $i >>= 1) {
$text .= ($i & 1) ? chr(0) : $clear{0};
}
$bin = pack("H32", md5($text));
for($i = 0; $i < 1000; $i++) {
$new = ($i & 1) ? $clear : $bin;
if ($i % 3) $new .= $salt;
if ($i % 7) $new .= $clear;
$new .= ($i & 1) ? $bin : $clear;
$bin = pack("H32", md5($new));
}
$tmp = '';
for ($i = 0; $i < 5; $i++) {
$k = $i + 6;
$j = $i + 12;
if ($j == 16) $j = 5;
$tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
}
$tmp = chr(0).chr(0).$bin[11].$tmp;
$tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
return '$'.$magic.'$'.$salt.'$'.$tmp;
}
/**
* Password hashing method 'md5'
*
* Uses MD5 hashs.
*
* @param string $clear - the clear text to hash
* @returns string - hashed password
*/
public function hash_md5($clear){
return md5($clear);
}
/**
* Password hashing method 'sha1'
*
* Uses SHA1 hashs.
*
* @param string $clear - the clear text to hash
* @returns string - hashed password
*/
public function hash_sha1($clear){
return sha1($clear);
}
/**
* Password hashing method 'ssha' as used by LDAP
*
* Uses salted SHA1 hashs. Salt is 4 bytes long.
*
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @returns string - hashed password
*/
public function hash_ssha($clear, $salt=null){
$this->init_salt($salt,4);
return '{SSHA}'.base64_encode(pack("H*", sha1($clear.$salt)).$salt);
}
/**
* Password hashing method 'crypt'
*
* Uses salted crypt hashs. Salt is 2 bytes long.
*
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @returns string - hashed password
*/
public function hash_crypt($clear, $salt=null){
$this->init_salt($salt,2);
return crypt($clear,$salt);
}
/**
* Password hashing method 'mysql'
*
* This method was used by old MySQL systems
*
* @link http://www.php.net/mysql
* @author <soren at byu dot edu>
* @param string $clear - the clear text to hash
* @returns string - hashed password
*/
public function hash_mysql($clear){
$nr=0x50305735;
$nr2=0x12345671;
$add=7;
$charArr = preg_split("//", $clear);
foreach ($charArr as $char) {
if (($char == '') || ($char == ' ') || ($char == '\t')) continue;
$charVal = ord($char);
$nr ^= ((($nr & 63) + $add) * $charVal) + ($nr << 8);
$nr2 += ($nr2 << 8) ^ $nr;
$add += $charVal;
}
return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff));
}
/**
* Password hashing method 'my411'
*
* Uses SHA1 hashs. This method is used by MySQL 4.11 and above
*
* @param string $clear - the clear text to hash
* @returns string - hashed password
*/
public function hash_my411($clear){
return '*'.sha1(pack("H*", sha1($clear)));
}
/**
* Password hashing method 'kmd5'
*
* Uses salted MD5 hashs.
*
* Salt is 2 bytes long, but stored at position 16, so you need to pass at
* least 18 bytes. You can pass the crypted hash as salt.
*
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @returns string - hashed password
*/
public function hash_kmd5($clear, $salt=null){
$this->init_salt($salt);
$key = substr($salt, 16, 2);
$hash1 = strtolower(md5($key . md5($clear)));
$hash2 = substr($hash1, 0, 16) . $key . substr($hash1, 16);
return $hash2;
}
/**
* Password hashing method 'pmd5'
*
* Uses salted MD5 hashs. Salt is 1+8 bytes long, 1st byte is the
* iteration count.
*
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @param string $magic - the hash identifier (P or H)
* @returns string - hashed password
*/
public function hash_pmd5($clear, $salt=null, $magic='P'){
$this->init_salt($salt);
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$iterc = $salt[0]; // pos 0 of salt is iteration count
$iter = strpos($itoa64,$iterc);
$iter = 1 << $iter;
$salt = substr($salt,1,8);
// iterate
$hash = md5($salt . $clear, true);
do {
$hash = md5($hash . $clear, true);
} while (--$iter);
// encode
$output = '';
$count = 16;
$i = 0;
do {
$value = ord($hash[$i++]);
$output .= $itoa64[$value & 0x3f];
if ($i < $count)
$value |= ord($hash[$i]) << 8;
$output .= $itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
break;
if ($i < $count)
$value |= ord($hash[$i]) << 16;
$output .= $itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
break;
$output .= $itoa64[($value >> 18) & 0x3f];
} while ($i < $count);
return '$'.$magic.'$'.$iterc.$salt.$output;
}
/**
* Alias for hash_pmd5
*/
public function hash_hmd5($clear, $salt=null, $magic='H'){
return $this->hash_pmd5($clear, $salt, $magic);
}
/**
* Password hashing method 'djangosha1'
*
* Uses salted SHA1 hashs. Salt is 5 bytes long.
* This is used by the Django Python framework
*
* @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @returns string - hashed password
*/
public function hash_djangosha1($clear, $salt=null){
$this->init_salt($salt,5);
return 'sha1$'.$salt.'$'.sha1($salt.$clear);
}
/**
* Password hashing method 'djangomd5'
*
* Uses salted MD5 hashs. Salt is 5 bytes long.
* This is used by the Django Python framework
*
* @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords
* @param string $clear - the clear text to hash
* @param string $salt - the salt to use, null for random
* @returns string - hashed password
*/
public function hash_djangomd5($clear, $salt=null){
$this->init_salt($salt,5);
return 'md5$'.$salt.'$'.md5($salt.$clear);
}
}

View File

@ -244,7 +244,6 @@ function act_permcheck($act){
$permneed = AUTH_CREATE;
}
}elseif(in_array($act,array('login','search','recent','profile','index', 'sitemap'))){
}elseif(in_array($act,array('login','search','recent','profile','sitemap'))){
$permneed = AUTH_NONE;
}elseif($act == 'revert'){
$permneed = AUTH_ADMIN;
@ -610,7 +609,7 @@ function act_sitemap($act) {
print "Sitemap generation is disabled.";
exit;
}
$sitemap = Sitemapper::getFilePath();
if(strrchr($sitemap, '.') === '.gz'){
$mime = 'application/x-gzip';

View File

@ -1183,8 +1183,17 @@ class adLDAP {
$add=array();
$add["unicodePwd"][0]=$this->encode_password($password);
$result=ldap_mod_replace($this->_conn,$user_dn,$add);
if ($result==false){ return (false); }
$result=@ldap_mod_replace($this->_conn,$user_dn,$add);
if ($result==false){
$err = ldap_errno($this->_conn);
if($err){
$msg = 'Error '.$err.': '.ldap_err2str($err).'.';
if($err == 53) $msg .= ' Your password might not match the password policy.';
throw new adLDAPException($msg);
}else{
return false;
}
}
return (true);
}

View File

@ -686,9 +686,8 @@ function register(){
global $conf;
global $auth;
if (!$auth) return false;
if(!$_POST['save']) return false;
if(!$auth->canDo('addUser')) return false;
if(!actionOK('register')) return false;
//clean username
$_POST['login'] = trim($auth->cleanUser($_POST['login']));
@ -764,12 +763,10 @@ function updateprofile() {
global $lang;
global $auth;
if (!$auth) return false;
if(empty($_POST['save'])) return false;
if(!checkSecurityToken()) return false;
// should not be able to get here without Profile being possible...
if(!$auth->canDo('Profile')) {
if(!actionOK('profile')) {
msg($lang['profna'],-1);
return false;
}
@ -840,11 +837,7 @@ function act_resendpwd(){
global $conf;
global $auth;
if(!actionOK('resendpwd')) return false;
if (!$auth) return false;
// should not be able to get here without modPass being possible...
if(!$auth->canDo('modPass')) {
if(!actionOK('resendpwd')) {
msg($lang['resendna'],-1);
return false;
}
@ -932,20 +925,6 @@ function act_resendpwd(){
* If the selected method needs a salt and none was given, a random one
* is chosen.
*
* The following methods are understood:
*
* smd5 - Salted MD5 hashing
* apr1 - Apache salted MD5 hashing
* md5 - Simple MD5 hashing
* sha1 - SHA1 hashing
* ssha - Salted SHA1 hashing
* crypt - Unix crypt
* mysql - MySQL password (old method)
* my411 - MySQL 4.1.1 password
* kmd5 - Salted MD5 hashing as used by UNB
* pmd5 - Salted multi iteration MD5 as used by Wordpress
* hmd5 - Same as pmd5 but PhpBB3 flavour
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return string The crypted password
*/
@ -953,173 +932,26 @@ function auth_cryptPassword($clear,$method='',$salt=null){
global $conf;
if(empty($method)) $method = $conf['passcrypt'];
//prepare a salt
if(is_null($salt)) $salt = md5(uniqid(rand(), true));
$pass = new PassHash();
$call = 'hash_'.$method;
switch(strtolower($method)){
case 'smd5':
if(defined('CRYPT_MD5') && CRYPT_MD5) return crypt($clear,'$1$'.substr($salt,0,8).'$');
// when crypt can't handle SMD5, falls through to pure PHP implementation
$magic = '1';
case 'apr1':
//from http://de.php.net/manual/en/function.crypt.php#73619 comment by <mikey_nich at hotmail dot com>
if(!isset($magic)) $magic = 'apr1';
$salt = substr($salt,0,8);
$len = strlen($clear);
$text = $clear.'$'.$magic.'$'.$salt;
$bin = pack("H32", md5($clear.$salt.$clear));
for($i = $len; $i > 0; $i -= 16) {
$text .= substr($bin, 0, min(16, $i));
}
for($i = $len; $i > 0; $i >>= 1) {
$text .= ($i & 1) ? chr(0) : $clear{0};
}
$bin = pack("H32", md5($text));
for($i = 0; $i < 1000; $i++) {
$new = ($i & 1) ? $clear : $bin;
if ($i % 3) $new .= $salt;
if ($i % 7) $new .= $clear;
$new .= ($i & 1) ? $bin : $clear;
$bin = pack("H32", md5($new));
}
$tmp = '';
for ($i = 0; $i < 5; $i++) {
$k = $i + 6;
$j = $i + 12;
if ($j == 16) $j = 5;
$tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
}
$tmp = chr(0).chr(0).$bin[11].$tmp;
$tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
return '$'.$magic.'$'.$salt.'$'.$tmp;
case 'md5':
return md5($clear);
case 'sha1':
return sha1($clear);
case 'ssha':
$salt=substr($salt,0,4);
return '{SSHA}'.base64_encode(pack("H*", sha1($clear.$salt)).$salt);
case 'crypt':
return crypt($clear,substr($salt,0,2));
case 'mysql':
//from http://www.php.net/mysql comment by <soren at byu dot edu>
$nr=0x50305735;
$nr2=0x12345671;
$add=7;
$charArr = preg_split("//", $clear);
foreach ($charArr as $char) {
if (($char == '') || ($char == ' ') || ($char == '\t')) continue;
$charVal = ord($char);
$nr ^= ((($nr & 63) + $add) * $charVal) + ($nr << 8);
$nr2 += ($nr2 << 8) ^ $nr;
$add += $charVal;
}
return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff));
case 'my411':
return '*'.sha1(pack("H*", sha1($clear)));
case 'kmd5':
$key = substr($salt, 16, 2);
$hash1 = strtolower(md5($key . md5($clear)));
$hash2 = substr($hash1, 0, 16) . $key . substr($hash1, 16);
return $hash2;
case 'hmd5':
$key = 'H';
// hmd5 is exactly the same as pmd5, but uses an H as identifier
// PhpBB3 uses it that way, so we just fall through here
case 'pmd5':
if(!$key) $key = 'P';
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$iterc = $salt[0]; // pos 0 of salt is iteration count
$iter = strpos($itoa64,$iterc);
$iter = 1 << $iter;
$salt = substr($salt,1,8);
// iterate
$hash = md5($salt . $clear, true);
do {
$hash = md5($hash . $clear, true);
} while (--$iter);
// encode
$output = '';
$count = 16;
$i = 0;
do {
$value = ord($hash[$i++]);
$output .= $itoa64[$value & 0x3f];
if ($i < $count)
$value |= ord($hash[$i]) << 8;
$output .= $itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
break;
if ($i < $count)
$value |= ord($hash[$i]) << 16;
$output .= $itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
break;
$output .= $itoa64[($value >> 18) & 0x3f];
} while ($i < $count);
return '$'.$key.'$'.$iterc.$salt.$output;
default:
msg("Unsupported crypt method $method",-1);
if(!method_exists($pass,$call)){
msg("Unsupported crypt method $method",-1);
return false;
}
return $pass->$call($clear,$salt);
}
/**
* Verifies a cleartext password against a crypted hash
*
* The method and salt used for the crypted hash is determined automatically
* then the clear text password is crypted using the same method. If both hashs
* match true is is returned else false
*
* @author Andreas Gohr <andi@splitbrain.org>
* @return bool
*/
function auth_verifyPassword($clear,$crypt){
$method='';
$salt='';
//determine the used method and salt
$len = strlen($crypt);
if(preg_match('/^\$1\$([^\$]{0,8})\$/',$crypt,$m)){
$method = 'smd5';
$salt = $m[1];
}elseif(preg_match('/^\$apr1\$([^\$]{0,8})\$/',$crypt,$m)){
$method = 'apr1';
$salt = $m[1];
}elseif(preg_match('/^\$P\$(.{31})$/',$crypt,$m)){
$method = 'pmd5';
$salt = $m[1];
}elseif(preg_match('/^\$H\$(.{31})$/',$crypt,$m)){
$method = 'hmd5';
$salt = $m[1];
}elseif(substr($crypt,0,6) == '{SSHA}'){
$method = 'ssha';
$salt = substr(base64_decode(substr($crypt, 6)),20);
}elseif($len == 32){
$method = 'md5';
}elseif($len == 40){
$method = 'sha1';
}elseif($len == 16){
$method = 'mysql';
}elseif($len == 41 && $crypt[0] == '*'){
$method = 'my411';
}elseif($len == 34){
$method = 'kmd5';
$salt = $crypt;
}else{
$method = 'crypt';
$salt = substr($crypt,0,2);
}
//crypt and compare
if(auth_cryptPassword($clear,$method,$salt) === $crypt){
return true;
}
return false;
$pass = new PassHash();
return $pass->verify_hash($clear,$crypt);
}
/**

View File

@ -24,6 +24,7 @@
* $conf['auth']['ad']['ad_password'] = 'pass';
* $conf['auth']['ad']['real_primarygroup'] = 1;
* $conf['auth']['ad']['use_ssl'] = 1;
* $conf['auth']['ad']['use_tls'] = 1;
* $conf['auth']['ad']['debug'] = 1;
*
* // get additional information to the userinfo array
@ -51,6 +52,7 @@ class auth_ad extends auth_basic {
global $conf;
$this->cnf = $conf['auth']['ad'];
// additional information fields
if (isset($this->cnf['additional'])) {
$this->cnf['additional'] = str_replace(' ', '', $this->cnf['additional']);
@ -60,7 +62,7 @@ class auth_ad extends auth_basic {
// ldap extension is needed
if (!function_exists('ldap_connect')) {
if ($this->cnf['debug'])
msg("LDAP err: PHP LDAP extension not found.",-1);
msg("AD Auth: PHP LDAP extension not found.",-1);
$this->success = false;
return;
}
@ -97,7 +99,12 @@ class auth_ad extends auth_basic {
$this->opts['domain_controllers'] = array_map('trim',$this->opts['domain_controllers']);
$this->opts['domain_controllers'] = array_filter($this->opts['domain_controllers']);
// we currently just handle authentication, so no capabilities are set
// we can change the password if SSL is set
if($this->opts['use_ssl'] || $this->opts['use_tls']){
$this->cando['modPass'] = true;
}
$this->cando['modName'] = true;
$this->cando['modMail'] = true;
}
/**
@ -246,6 +253,49 @@ class auth_ad extends auth_basic {
return $result;
}
/**
* Modify user data
*
* @param $user nick of the user to be changed
* @param $changes array of field/value pairs to be changed
* @return bool
*/
function modifyUser($user, $changes) {
$return = true;
// password changing
if(isset($changes['pass'])){
try {
$return = $this->adldap->user_password($user,$changes['pass']);
} catch (adLDAPException $e) {
if ($this->cnf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
$return = false;
}
if(!$return) msg('AD Auth: failed to change the password. Maybe the password policy was not met?',-1);
}
// changing user data
$adchanges = array();
if(isset($changes['name'])){
// get first and last name
$parts = explode(' ',$changes['name']);
$adchanges['surname'] = array_pop($parts);
$adchanges['firstname'] = join(' ',$parts);
$adchanges['display_name'] = $changes['name'];
}
if(isset($changes['mail'])){
$adchanges['email'] = $changes['mail'];
}
try {
$return = $return & $this->adldap->user_modify($user,$adchanges);
} catch (adLDAPException $e) {
if ($this->cnf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
$return = false;
}
return $return;
}
/**
* Initialize the AdLDAP library and connect to the server
*/
@ -261,7 +311,7 @@ class auth_ad extends auth_basic {
return true;
} catch (adLDAPException $e) {
if ($this->cnf['debug']) {
msg($e->getMessage(), -1);
msg('AD Auth: '.$e->getMessage(), -1);
}
$this->success = false;
$this->adldap = null;

View File

@ -46,7 +46,7 @@ class auth_mysql extends auth_basic {
// set capabilities based upon config strings set
if (empty($this->cnf['server']) || empty($this->cnf['user']) ||
empty($this->cnf['password']) || empty($this->cnf['database'])){
!isset($this->cnf['password']) || empty($this->cnf['database'])){
if ($this->cnf['debug'])
msg("MySQL err: insufficient configuration.",-1,__LINE__,__FILE__);
$this->success = false;

View File

@ -639,7 +639,7 @@ function clientIP($single=false){
// decide which IP to use, trying to avoid local addresses
$ip = array_reverse($ip);
foreach($ip as $i){
if(preg_match('/^(127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){
if(preg_match('/^(::1|[fF][eE]80:|127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){
continue;
}else{
return $i;
@ -804,7 +804,7 @@ function rawWiki($id,$rev=''){
/**
* Returns the pagetemplate contents for the ID's namespace
*
* @triggers COMMON_PAGE_FROMTEMPLATE
* @triggers COMMON_PAGETPL_LOAD
* @author Andreas Gohr <andi@splitbrain.org>
*/
function pageTemplate($id){
@ -812,29 +812,50 @@ function pageTemplate($id){
if (is_array($id)) $id = $id[0];
$path = dirname(wikiFN($id));
$tpl = '';
if(@file_exists($path.'/_template.txt')){
$tpl = io_readFile($path.'/_template.txt');
}else{
// search upper namespaces for templates
$len = strlen(rtrim($conf['datadir'],'/'));
while (strlen($path) >= $len){
if(@file_exists($path.'/__template.txt')){
$tpl = io_readFile($path.'/__template.txt');
break;
// prepare initial event data
$data = array(
'id' => $id, // the id of the page to be created
'tpl' => '', // the text used as template
'tplfile' => '', // the file above text was/should be loaded from
'doreplace' => true // should wildcard replacements be done on the text?
);
$evt = new Doku_Event('COMMON_PAGETPL_LOAD',$data);
if($evt->advise_before(true)){
// the before event might have loaded the content already
if(empty($data['tpl'])){
// if the before event did not set a template file, try to find one
if(empty($data['tplfile'])){
$path = dirname(wikiFN($id));
$tpl = '';
if(@file_exists($path.'/_template.txt')){
$data['tplfile'] = $path.'/_template.txt';
}else{
// search upper namespaces for templates
$len = strlen(rtrim($conf['datadir'],'/'));
while (strlen($path) >= $len){
if(@file_exists($path.'/__template.txt')){
$data['tplfile'] = $path.'/__template.txt';
break;
}
$path = substr($path, 0, strrpos($path, '/'));
}
}
}
$path = substr($path, 0, strrpos($path, '/'));
// load the content
$data['tpl'] = io_readFile($data['tplfile']);
}
if($data['doreplace']) parsePageTemplate(&$data);
}
$data = compact('tpl', 'id');
trigger_event('COMMON_PAGE_FROMTEMPLATE', $data, 'parsePageTemplate', true);
$evt->advise_after();
unset($evt);
return $data['tpl'];
}
/**
* Performs common page template replacements
* This is the default action for COMMON_PAGE_FROMTEMPLATE
* This works on data from COMMON_PAGETPL_LOAD
*
* @author Andreas Gohr <andi@splitbrain.org>
*/

View File

@ -5,7 +5,8 @@
* This array configures the default locations of various files in the
* DokuWiki directory hierarchy. It can be overriden in inc/preload.php
*/
$config_cascade = array(
$config_cascade = array_merge(
array(
'main' => array(
'default' => array(DOKU_CONF.'dokuwiki.php'),
'local' => array(DOKU_CONF.'local.php'),
@ -62,5 +63,7 @@ $config_cascade = array(
'plainauth.users' => array(
'default' => DOKU_CONF.'users.auth.php',
),
),
$config_cascade
);

View File

@ -241,17 +241,24 @@ function actionOK($action){
// prepare disabled actions array and handle legacy options
$disabled = explode(',',$conf['disableactions']);
$disabled = array_map('trim',$disabled);
if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register';
if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd';
if(isset($conf['subscribers']) && !$conf['subscribers']) {
$disabled[] = 'subscribe';
}
if (is_null($auth) || !$auth->canDo('addUser')) {
if(!empty($conf['openregister']) || is_null($auth) || !$auth->canDo('addUser')) {
$disabled[] = 'register';
}
if (is_null($auth) || !$auth->canDo('modPass')) {
if(!empty($conf['resendpasswd']) || is_null($auth) || !$auth->canDo('modPass')) {
$disabled[] = 'resendpwd';
}
if(!empty($conf['subscribers']) || is_null($auth)) {
$disabled[] = 'subscribe';
}
if (is_null($auth) || !$auth->canDo('Profile')) {
$disabled[] = 'profile';
}
if (is_null($auth)) {
$disabled[] = 'login';
}
if (is_null($auth) || !$auth->canDo('logout')) {
$disabled[] = 'logout';
}
$disabled = array_unique($disabled);
}

View File

@ -287,6 +287,7 @@ function ft_pagesorter($a, $b){
*/
function ft_snippet($id,$highlight){
$text = rawWiki($id);
$text = str_replace("\xC2\xAD",'',$text); // remove soft-hyphens
$evdata = array(
'id' => $id,
'text' => &$text,

View File

@ -62,17 +62,11 @@ function html_login(){
$form->endFieldset();
if(actionOK('register')){
$form->addElement('<p>'
. $lang['reghere']
. ': <a href="'.wl($ID,'do=register').'" rel="nofollow" class="wikilink1">'.$lang['register'].'</a>'
. '</p>');
$form->addElement('<p>'.$lang['reghere'].': '.tpl_actionlink('register','','','',true).'</p>');
}
if (actionOK('resendpwd')) {
$form->addElement('<p>'
. $lang['pwdforget']
. ': <a href="'.wl($ID,'do=resendpwd').'" rel="nofollow" class="wikilink1">'.$lang['btn_resendpwd'].'</a>'
. '</p>');
$form->addElement('<p>'.$lang['pwdforget'].': '.tpl_actionlink('resendpwd','','','',true).'</p>');
}
html_form('login', $form);
@ -318,7 +312,13 @@ function html_search(){
global $ID;
global $lang;
print p_locale_xhtml('searchpage');
$intro = p_locale_xhtml('searchpage');
// allow use of placeholder in search intro
$intro = str_replace(
array('@QUERY@','@SEARCH@'),
array(hsc(rawurlencode($QUERY)),hsc($QUERY)),
$intro);
echo $intro;
flush();
//show progressbar
@ -864,13 +864,18 @@ function html_backlinks(){
* show diff
*
* @author Andreas Gohr <andi@splitbrain.org>
* @param string $text - compare with this text with most current version
* @param bool $intr - display the intro text
*/
function html_diff($text='',$intro=true){
function html_diff($text='',$intro=true,$type=null){
global $ID;
global $REV;
global $lang;
global $conf;
if(!$type) $type = $_REQUEST['difftype'];
if($type != 'inline') $type = 'sidebyside';
// we're trying to be clever here, revisions to compare can be either
// given as rev and rev2 parameters, with rev2 being optional. Or in an
// array in rev2.
@ -987,17 +992,48 @@ function html_diff($text='',$intro=true){
$df = new Diff(explode("\n",htmlspecialchars($l_text)),
explode("\n",htmlspecialchars($r_text)));
$tdf = new TableDiffFormatter();
if($type == 'inline'){
$tdf = new InlineDiffFormatter();
} else {
$tdf = new TableDiffFormatter();
}
if($intro) print p_locale_xhtml('diff');
if (!$text) {
$diffurl = wl($ID, array('do'=>'diff', 'rev2[0]'=>$l_rev, 'rev2[1]'=>$r_rev));
ptln('<p class="difflink">');
ptln(' <a class="wikilink1" href="'.$diffurl.'">'.$lang['difflink'].'</a>');
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('rev2[0]',$l_rev);
$form->addHidden('rev2[1]',$r_rev);
$form->addHidden('do','diff');
$form->addElement(form_makeListboxField(
'difftype',
array(
'sidebyside' => $lang['diff_side'],
'inline' => $lang['diff_inline']),
$type,
$lang['diff_type'],
'','',
array('class'=>'quickselect')));
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
$diffurl = wl($ID, array(
'do' => 'diff',
'rev2[0]' => $l_rev,
'rev2[1]' => $r_rev,
'difftype' => $type,
));
ptln('<br /><a class="wikilink1" href="'.$diffurl.'">'.$lang['difflink'].'</a>');
ptln('</p>');
}
?>
<table class="diff">
<table class="diff diff_<?php echo $type?>">
<tr>
<th colspan="2" <?php echo $l_minor?>>
<?php echo $l_head?>
@ -1069,7 +1105,7 @@ function html_register(){
print p_locale_xhtml('register');
print '<div class="centeralign">'.NL;
$form = new Doku_Form(array('id' => 'dw__register'));
$form->startFieldset($lang['register']);
$form->startFieldset($lang['btn_register']);
$form->addHidden('do', 'register');
$form->addHidden('save', '1');
$form->addElement(form_makeTextField('login', $_POST['login'], $lang['user'], null, 'block', array('size'=>'50')));
@ -1079,7 +1115,7 @@ function html_register(){
}
$form->addElement(form_makeTextField('fullname', $_POST['fullname'], $lang['fullname'], '', 'block', array('size'=>'50')));
$form->addElement(form_makeTextField('email', $_POST['email'], $lang['email'], '', 'block', array('size'=>'50')));
$form->addElement(form_makeButton('submit', '', $lang['register']));
$form->addElement(form_makeButton('submit', '', $lang['btn_register']));
$form->endFieldset();
html_form('register', $form);
@ -1398,10 +1434,11 @@ function html_admin(){
}
// data security check
echo '<a style="background: transparent url(data/security.png) left top no-repeat;
display: block; width:380px; height:73px; border:none; float:right"
target="_blank"
href="http://www.dokuwiki.org/security#web_access_security"></a>';
// @todo: could be checked and only displayed if $conf['savedir'] is under the web root
echo '<a style="border:none; float:right;" target="_blank"
href="http://www.dokuwiki.org/security#web_access_security">
<img src="data/security.png" alt="Your data directory seems to be protected properly."
onerror="this.parentNode.style.display=\'none\'" /></a>';
print p_locale_xhtml('admin');

View File

@ -27,6 +27,10 @@ define('IDX_ASIAN2','['.
'\x{30FD}-\x{31EF}\x{3200}-\x{D7AF}'.
'\x{F900}-\x{FAFF}'. // CJK Compatibility Ideographs
'\x{FE30}-\x{FE4F}'. // CJK Compatibility Forms
"\xF0\xA0\x80\x80-\xF0\xAA\x9B\x9F". // CJK Extension B
"\xF0\xAA\x9C\x80-\xF0\xAB\x9C\xBF". // CJK Extension C
"\xF0\xAB\x9D\x80-\xF0\xAB\xA0\x9F". // CJK Extension D
"\xF0\xAF\xA0\x80-\xF0\xAF\xAB\xBF". // CJK Compatibility Supplement
']');
define('IDX_ASIAN3','['. // Hiragana/Katakana (can be two characters)
'\x{3042}\x{3044}\x{3046}\x{3048}'.
@ -423,7 +427,14 @@ class Doku_Indexer {
if (!is_null($asia)) $text = $asia; // recover from regexp falure
}
}
$text = strtr($text, "\r\n\t", ' ');
$text = strtr($text,
array(
"\r" => ' ',
"\n" => ' ',
"\t" => ' ',
"\xC2\xAD" => '', //soft-hyphen
)
);
if (preg_match('/[^0-9A-Za-z ]/u', $text))
$text = utf8_stripspecials($text, ' ', '\._\-:'.$wc);
@ -772,14 +783,20 @@ class Doku_Indexer {
private function _lock() {
global $conf;
$status = true;
$run = 0;
$lock = $conf['lockdir'].'/_indexer.lock';
while (!@mkdir($lock, $conf['dmode'])) {
usleep(50);
if (time() - @filemtime($lock) > 60*5) {
// looks like a stale lock, remove it
@rmdir($lock);
$status = "stale lock removed";
} else {
if(is_dir($lock) && time()-@filemtime($lock) > 60*5){
// looks like a stale lock - remove it
if (!@rmdir($lock)) {
$status = "removing the stale lock failed";
return false;
} else {
$status = "stale lock removed";
}
}elseif($run++ == 1000){
// we waited 5 seconds for that lock
return false;
}
}

View File

@ -11,7 +11,7 @@ function delta_time($start=0) {
define('DOKU_START_TIME', delta_time());
global $config_cascade;
$config_cascade = '';
$config_cascade = array();
// if available load a preload config file
$preload = fullpath(dirname(__FILE__)).'/preload.php';
@ -52,10 +52,9 @@ global $cache_authname;
global $cache_metadata;
$cache_metadata = array();
//set the configuration cascade - but only if its not already been set in preload.php
if (empty($config_cascade)) {
include(DOKU_INC.'inc/config_cascade.php');
}
// always include 'inc/config_cascade.php'
// previously in preload.php set fields of $config_cascade will be merged with the defaults
include(DOKU_INC.'inc/config_cascade.php');
//prepare config array()
global $conf;

View File

@ -26,6 +26,7 @@ $lang['btn_backlink'] = 'Wat skakel hierheen';
$lang['btn_subscribe'] = 'Hou bladsy dop';
$lang['btn_unsubscribe'] = 'Verwyder van bladsy dophoulys';
$lang['btn_resendpwd'] = 'E-pos nuwe wagwoord';
$lang['btn_register'] = 'Skep gerus \'n rekening';
$lang['loggedinas'] = 'Ingeteken as';
$lang['user'] = 'Gebruikernaam';
$lang['pass'] = 'Wagwoord';
@ -35,7 +36,6 @@ $lang['passchk'] = 'Herhaal wagwoord';
$lang['remember'] = 'Onthou my wagwoord oor sessies';
$lang['fullname'] = 'Regte naam';
$lang['email'] = 'E-pos';
$lang['register'] = 'Skep gerus \'n rekening';
$lang['badlogin'] = 'Intekenfout';
$lang['minoredit'] = 'Klein wysiging';
$lang['reguexists'] = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.';

View File

@ -46,7 +46,7 @@ $lang['btn_draft'] = 'حرر المسودة';
$lang['btn_recover'] = 'استرجع المسودة';
$lang['btn_draftdel'] = 'احذف المسوّدة';
$lang['btn_revert'] = 'استعد
';
$lang['btn_register'] = 'سجّل';
$lang['loggedinas'] = 'داخل باسم';
$lang['user'] = 'اسم المستخدم';
$lang['pass'] = 'كلمة السر';
@ -56,7 +56,6 @@ $lang['passchk'] = 'مرة أخرى';
$lang['remember'] = 'تذكرني';
$lang['fullname'] = 'الاسم الحقيقي';
$lang['email'] = 'البريد الإلكتروني';
$lang['register'] = 'سجّل';
$lang['profile'] = 'الملف الشخصي';
$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة';
$lang['minoredit'] = 'تعديلات طفيفة';

View File

@ -47,6 +47,7 @@ $lang['btn_draft'] = 'Qaralamada düzəliş etmək';
$lang['btn_recover'] = 'Qaralamanı qaytar';
$lang['btn_draftdel'] = 'Qaralamanı sil';
$lang['btn_revert'] = 'Qaytar';
$lang['btn_register'] = 'Qeydiyyatdan keç';
$lang['loggedinas'] = 'İstifadəcinin adı';
$lang['user'] = 'istifadəci adı';
$lang['pass'] = 'Şifrə';
@ -56,7 +57,6 @@ $lang['passchk'] = 'təkrarlayın';
$lang['remember'] = 'Məni yadda saxla';
$lang['fullname'] = 'Tam ad';
$lang['email'] = 'E-Mail';
$lang['register'] = 'Qeydiyyatdan keç';
$lang['profile'] = 'İstifadəçi profili';
$lang['badlogin'] = 'Təssüf ki istifadəçi adı və ya şifrə səhvdir.';
$lang['minoredit'] = 'Az dəyişiklər';

View File

@ -1,3 +1,3 @@
====== Администрация ======
====== Администриране ======
Долу може да намерите списък с администраторски задачи в DokuWiki.
Отдолу ще намерите списъка с администраторските задачи в DokuWiki.

View File

@ -1 +1 @@
===== Допълнителни Plugins =====
===== Допълнителни приставки =====

View File

@ -1,3 +1,3 @@
====== Задни връзки ======
====== Обратни препратки ======
Това е списък на страници, които изглежда препращат обратно към текущата страница.
Това е списък на страниците, които препращат обратно към текущата страница.

View File

@ -1,6 +1,6 @@
====== По-нова версия съшествува ======
====== Съществува по-нова версия ======
По-нова версия на документа който сте редактирали съществува. Това се случва когато друг потребител е променил документа докато сте го редактирали.
Съществува по-нова версия на документа, който сте редактирали. Това се случва когато друг потребител е променил документа докато сте го редактирали.
Разгледайте внимателно разгледайте разликите показани долу, след това решете коя версия да запазите. Ако изберете ''Запис'', версия Ви ще бъде запазена. Изберете ''Отказ'', за да запазите текущата версия.
Разгледайте внимателно разликите, след това решете коя версия да бъде запазена. Ако натиснете ''Запис'', ще бъде запазена вашата версия. Натиснете ли ''Отказ'', ще бъде запазена текущата версия.

View File

@ -1,4 +1,4 @@
====== Отказан достъп ======
Нямате достатъчно права да продължите. Може би сте забравили да влезете?
Нямате достатъчно права, за да продължите. Може би сте забравили да се впишете?

View File

@ -1,4 +1,4 @@
====== Разлики ======
Тук са показани разликите между избраната версия на страницата и текущата.
Тук са показани разликите между избраната и текущата версия на страницата.

View File

@ -1,6 +1,6 @@
====== Намерена чернова ======
Последната редакционна сесия на тази страница не е завършена правилно. Dokuwiki автоматично запазва чернова по време на работа, която може сега да използвате, за да продължите редактирането си. Долу може да видите данните, които бяха запазени от последната сесия.
Последната редакционна сесия на страницата не е завършена правилно. Dokuwiki автоматично запазва чернова по време на редактирането, която можете да ползвате сега, за да продължите работата си. Отдолу може да видите данните, които бяха запазени от последната сесия.
Моля решете, дали искате да //recover// последната си редакционна сесия, да //delete// автоматично запазената чернова или да //cancel// редакцията.
Моля решете, дали искате да //възстановите// последната си редакционна сесия, //изтриете// автоматично запазената чернова или //откажете// редакцията.

View File

@ -1,2 +1,2 @@
Редактирайте страницата и натиснете ''Запис''. Погледнете [[wiki:syntax]] за Wiki синтаксис. Моля редактирайте страницата, само ако може да я **подобрите**. Ако искате да пробвате разни неща, научете се да правите първите си стъпки в [[playground:playground|пясъчника]].
Редактирайте и натиснете ''Запис''. За информация относно ползвания синтаксис прочетете [[wiki:syntax]]. Моля, редактирайте само когато може да **подобрите** съдържанието. Ако ще пробвате разни неща, може да експериментирате в [[playground:playground|пясъчника]].

View File

@ -1,2 +1,2 @@
**Заредили сте стара версия на документа!** Ако я запазите, ще създадете нова редакция с текущите данни.
**Заредена е стара версия на документа!** Ако я запазите, ще създадете нова версия с текущите данни.
----

View File

@ -1,4 +1,4 @@
====== Индекс ======
Това е списък на всички достъпни страници подредени по [[doku>namespaces|именни пространства]].
Това е списък на всички налични страници подредени по [[doku>namespaces|именни пространства]].

View File

@ -1,25 +1,18 @@
<p>Тази страница помага при първоначална инсталация и настройка на
<p>Страницата помага при първа инсталация и настройване на
<a href="http://dokuwiki.org">Dokuwiki</a>. Повече информация
за този инсталатор е достъпна в неговата собствена
<a href="http://dokuwiki.org/installer">документация</a>.</p>
за инсталатора ще намерите в <a href="http://dokuwiki.org/installer">документацията му</a>.</p>
<p>Dokuwiki използва обикновени файлове за хранилище на уики страниците и друга
информация свързана с тези страници(примерно картинки, търсене, стари версии, т.н.).
За да използвате успешно DokuWiki
<strong>трябва</strong> да имате достъп за писане в директориите които съдържат тези
файлове. Този инсталатор няма възможности да настройва правата на директориите.
Това обикновено трябва да бъде направено директно от командният ред или ако
използвате хостинг - през FTP или контрол панела на хоста(примерно cPanel).</p>
<p>Dokuwiki ползва обикновени файлове за хранилище на страниците и друга
информация свързана с тях (примерно картинки, търсене, стари версии, и др.).
За да функционира нормално DokuWiki
<strong>трябва</strong> да има право за писане в директориите, които съдържат тези
файлове. Инсталаторът не може да настройва правата на директориите.
Обикновено трябва да направите това директно от командният ред или ако
ползвате хостинг - през FTP или контролния панела на хоста (примерно cPanel).</p>
<p>Този инсталатор ще настрои вашата DokuWiki конфигурация за
<acronym title="access control list">ACL</acronym>, което на
свой ред ще позволи на администратора да влезе и да има достъп
до администраторското меню в DokuWiki за инсталиране на плъгини, контрол
на потребители, управление да достъп до уики страници и промяна на настройките
Това не е необходимо на DokuWiki да работи, но ще направи DokuWiki по-лесно за
администриране.</p>
<p>Инсталаторът ще настрои вашата DokuWiki конфигурация на
<acronym title="списъка за достъп">ACL</acronym>, което ще позволи на администратора да се впише и ползва администраторското меню в DokuWiki за инсталиране на приставки, контрол
на потребители, управление на достъпа до страниците и промяна на останалите настройки. Това не е необходимо за функционирането на DokuWiki, но направи администрирането на DokuWiki по-лесно.</p>
<p>Опитните потребители или потребителите със специални изисквания
към настройките може да използват тези връзки за детайли свързани с
<a href="http://dokuwiki.org/install">инструкции за инсталация</a>
и <a href="http://dokuwiki.org/config">настройка</a>.</p>
<p>Опитните потребители или потребителите със специални изисквания към настройките имат на разположение информация относно <a href="http://dokuwiki.org/install"> инсталацията</a>
и <a href="http://dokuwiki.org/config">настройките</a>.</p>

View File

@ -5,6 +5,7 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Nikolay Vladimirov <nikolay@vladimiroff.com>
* @author Viktor Usunov <usun0v@mail.bg>
* @author Kiril <neohidra@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -14,8 +15,8 @@ $lang['singlequoteopening'] = '';
$lang['singlequoteclosing'] = '';
$lang['apostrophe'] = '';
$lang['btn_edit'] = 'Редактиране';
$lang['btn_source'] = оказване на кода на страницата';
$lang['btn_show'] = оказване на страница';
$lang['btn_source'] = реглед на кода';
$lang['btn_show'] = реглед на страницата';
$lang['btn_create'] = 'Създаване на страница';
$lang['btn_search'] = 'Търсене';
$lang['btn_save'] = 'Запис';
@ -24,224 +25,260 @@ $lang['btn_top'] = 'Към началото';
$lang['btn_newer'] = '<< по-нови';
$lang['btn_older'] = 'по-стари >>';
$lang['btn_revs'] = 'История';
$lang['btn_recent'] = 'Последни промени';
$lang['btn_recent'] = 'Скорошни промени';
$lang['btn_upload'] = 'Качване';
$lang['btn_cancel'] = 'Отказ';
$lang['btn_index'] = 'Индекс';
$lang['btn_secedit'] = 'Редактиране';
$lang['btn_login'] = 'Вход';
$lang['btn_logout'] = 'Изход';
$lang['btn_login'] = 'Вписване';
$lang['btn_logout'] = 'Отписване';
$lang['btn_admin'] = 'Настройки';
$lang['btn_update'] = 'Обновяване';
$lang['btn_update'] = 'Актуализиране';
$lang['btn_delete'] = 'Изтриване';
$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_backlink'] = 'Обратни препратки';
$lang['btn_backtomedia'] = 'Назад към избора на медиен файл';
$lang['btn_subscribe'] = 'Абонаменти';
$lang['btn_profile'] = 'Профил';
$lang['btn_reset'] = 'Изчистване';
$lang['btn_resendpwd'] = 'Пращане на нова парола';
$lang['btn_draft'] = 'Редактиране на чернова';
$lang['btn_recover'] = 'Възстановяване на чернова';
$lang['btn_draftdel'] = 'Изтриване на чернова';
$lang['btn_revert'] = 'Възстановяване';
$lang['loggedinas'] = 'Влезли сте като';
$lang['btn_register'] = 'Регистриране';
$lang['loggedinas'] = 'Вписани сте като';
$lang['user'] = 'Потребител';
$lang['pass'] = 'Парола';
$lang['newpass'] = 'Нова парола';
$lang['oldpass'] = 'Потвърждение на текуща парола';
$lang['passchk'] = 'oтново';
$lang['passchk'] = 'още веднъж';
$lang['remember'] = 'Запомни ме';
$lang['fullname'] = 'Пълно име';
$lang['fullname'] = 'Истинско име';
$lang['email'] = 'Електронна поща';
$lang['register'] = 'Регистрация';
$lang['profile'] = 'Потребителски профил';
$lang['badlogin'] = 'Потребителското име или паролата са грешни';
$lang['badlogin'] = 'Грешно потребителско име или парола.';
$lang['minoredit'] = 'Незначителни промени';
$lang['draftdate'] = 'Черновата бе автоматично записана на';
$lang['draftdate'] = 'Черновата е автоматично записана на';
$lang['nosecedit'] = 'Страницата бе междувременно променена, презареждане на страницата поради неактуална информация.';
$lang['regmissing'] = 'Моля, попълнете всички полета.';
$lang['reguexists'] = 'Потребител с такова име вече съществува.';
$lang['regsuccess'] = 'Потребителят бе създаден и паролата бе пратена на електронната поща.';
$lang['regsuccess2'] = 'Потребителят бе създаден.';
$lang['regmailfail'] = 'Изглежда, че има проблем с пращането на писмото с паролата. Моля, свържете се с администратора.';
$lang['reguexists'] = 'Вече съществува потребител с избраното име.';
$lang['regsuccess'] = 'Потребителят е създаден, а паролата е пратена по електронната поща.';
$lang['regsuccess2'] = 'Потребителят е създаден.';
$lang['regmailfail'] = 'Изглежда, че има проблем с пращането на писмото с паролата. Моля, свържете се с администратора!';
$lang['regbadmail'] = 'Въведеният адрес изглежда невалиден - ако мислите, че това е грешка, свържете се с администратора.';
$lang['regbadpass'] = 'Двете въведени пароли не съвпадат, моля опитайте отново';
$lang['regpwmail'] = 'Парола за DokuWiki';
$lang['reghere'] = 'Нямате профил все още? Направете си!';
$lang['profna'] = 'Това Wiki не поддържа промяна на профила';
$lang['regbadpass'] = 'Двете въведени пароли не съвпадат, моля опитайте отново.';
$lang['regpwmail'] = 'Паролата ви за DokuWiki';
$lang['reghere'] = 'Все още нямате профил? Направете си';
$lang['profna'] = 'Wiki-то не поддържа промяна на профила';
$lang['profnochange'] = 'Няма промени.';
$lang['profnoempty'] = 'Невъведено име или електронна поща не са позволени.';
$lang['profchanged'] = 'Потребителският профил бе успешно обновен.';
$lang['pwdforget'] = 'Забравили сте си паролата? Въведете нова.';
$lang['resendna'] = 'Това Wiki не поддържа повторно пращане на парола';
$lang['profnoempty'] = 'Въвеждането на име и ел. поща е задължително';
$lang['profchanged'] = 'Потребителският профил е обновен успешно.';
$lang['pwdforget'] = 'Забравили сте паролата си? Получете нова';
$lang['resendna'] = 'Wiki-то не поддържа повторно пращане на паролата.';
$lang['resendpwd'] = 'Изпращане на нова парола за';
$lang['resendpwdmissing'] = 'Моля, попълнете всички полета.';
$lang['resendpwdnouser'] = 'Потребителят не бе намерен в базата данни.';
$lang['resendpwdbadauth'] = 'Този код за потвърждение е невалиден. Проверете дали сте използвали целият линк за потвърждение.';
$lang['resendpwdconfirm'] = 'Адресът за потвърждение бе пратен по електронната поща.';
$lang['resendpwdsuccess'] = 'Паролата ви бе изпратена на електронната поща.';
$lang['license'] = 'Освен ако не е посочено друго, съдържанието на това Wiki е лицензирано под следния лиценз:';
$lang['licenseok'] = 'Имайте предвид, че чрез редактирането на тази страница, Вие се съгласявате съдържанието й да бъде лицензирано под следния лиценз:';
$lang['resendpwdnouser'] = 'Потребителят не е намерен в базата от данни.';
$lang['resendpwdbadauth'] = 'Кодът за потвърждение е невалиден. Проверете дали сте използвали целия линк за потвърждение.';
$lang['resendpwdconfirm'] = 'Линк за потвърждение е пратен по електронната поща.';
$lang['resendpwdsuccess'] = 'Новата ви паролата е пратена по електронната поща.';
$lang['license'] = 'Ако не е посочено друго, съдържанието на Wiki-то е лицензирано под следния лиценз:';
$lang['licenseok'] = 'Бележка: Редактирайки страницата, вие се съгласявате да лицензирате промените (които сте направили) под следния лиценз:';
$lang['searchmedia'] = 'Търсене на файл: ';
$lang['searchmedia_in'] = 'Търсене в %s';
$lang['txt_upload'] = 'Изберете файл за качване ';
$lang['txt_filename'] = 'Качване като (по избор)';
$lang['txt_overwrt'] = 'Запис върху съществуващ файл';
$lang['lockedby'] = 'В момента е заключено от';
$lang['lockexpire'] = 'Затварянето изтича в';
$lang['willexpire'] = 'Затварянето на страницата за редактиране изтича след минута.\nЗа да избегнете противоречия, използвайте бутона, за да рестартирате броячът за затваряне.';
$lang['js']['notsavedyet'] = "Незапазените промени ще бъдат загубени.\nИскате ли да продължите?";
$lang['rssfailed'] = 'Възникна грешка при вземането на този feed: ';
$lang['nothingfound'] = 'Нищо не бе намерено.';
$lang['mediaselect'] = 'Медийни файлове';
$lang['fileupload'] = 'Качване на медийни файлове';
$lang['uploadsucc'] = 'Качването бе успешно';
$lang['uploadfail'] = 'Качването бе неуспешно. Може би поради грешни права?';
$lang['uploadwrong'] = 'Качването бе отказано. Това файлово разширение е забранено!';
$lang['uploadexist'] = 'Файлът вече съществува. Нищо не бе направено.';
$lang['uploadbadcontent'] = 'Каченото съдържание на съответства на файлово разширение %s .';
$lang['uploadspam'] = 'Качването бе блокирано от спам списъка.';
$lang['uploadxss'] = 'Качването бе блокирано, заради възможно обидно съдържание.';
$lang['uploadsize'] = 'Файльт за качване бе прекалено голям. (макс. %s)';
$lang['deletesucc'] = 'Файлът "%s" бе изтрит.';
$lang['deletefail'] = '"%s" не бе изтрит, проверете правата';
$lang['mediainuse'] = 'Файлът "%s" не бе изтрит - все още се ползва.';
$lang['namespaces'] = 'Именни пространства';
$lang['mediafiles'] = 'Достъпни файлове в';
$lang['js']['searchmedia'] = 'Търси файлове';
$lang['js']['keepopen'] = 'Задържане на прозореца отворен при избор';
$lang['js']['hidedetails'] = 'Скрий детайлите';
$lang['txt_upload'] = 'Изберете файл за качване';
$lang['txt_filename'] = 'Качи като (незадължително)';
$lang['txt_overwrt'] = 'Презапиши съществуващите файлове';
$lang['lockedby'] = 'В момента е заключена от';
$lang['lockexpire'] = 'Ще бъде отключена на';
$lang['willexpire'] = 'Страницата ще бъде отключена за редактиране след минута.\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']['mediadisplaylnk'] = 'Показвай само препратката.';
$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'] = 'Връзките към Windows shares работят само под Internet Explorer.
Можете да копирате и поставите връзката.';
$lang['js']['linkwiz'] = 'Линк съветник';
$lang['js']['linkto'] = 'Линк към: ';
$lang['js']['linkwiz'] = 'Помощник за препратки';
$lang['js']['linkto'] = 'Препратка към: ';
$lang['js']['del_confirm'] = 'Да бъдат ли изтрити избраните елементи?';
$lang['js']['mu_btn'] = 'Качване на няколко файла наведнъж';
$lang['mediausage'] = 'Използвайте следният синтакс, за да упоменете файла:';
$lang['rssfailed'] = 'Възникна грешка при получаването на емисията: ';
$lang['nothingfound'] = 'Нищо не е открито.';
$lang['mediaselect'] = 'Медийни файлове';
$lang['fileupload'] = 'Качване на медийни файлове';
$lang['uploadsucc'] = 'Качването е успешно';
$lang['uploadfail'] = 'Качването се провали. Може би поради грешни права?';
$lang['uploadwrong'] = 'Качването е отказано. Файлово разширение е забранено!';
$lang['uploadexist'] = 'Файлът вече съществува. Нищо не е направено.';
$lang['uploadbadcontent'] = 'Каченото съдържание не съответства на файлово разширение %s .';
$lang['uploadspam'] = 'Качването е блокирано от SPAM списъка.';
$lang['uploadxss'] = 'Качването е блокирано, поради възможно зловредно съдържание.';
$lang['uploadsize'] = 'Файльт за качване е прекалено голям. (макс. %s)';
$lang['deletesucc'] = 'Файлът "%s" бе изтрит.';
$lang['deletefail'] = '"%s" не може да бъде изтрит - проверете правата.';
$lang['mediainuse'] = 'Файлът "%s" не бе изтрит - все още се ползва.';
$lang['namespaces'] = 'Именни пространства';
$lang['mediafiles'] = 'Налични файлове в';
$lang['accessdenied'] = 'Нямате разрешение да преглеждате страницата.';
$lang['mediausage'] = 'Ползвайте следния синтаксис, за да упоменете файла:';
$lang['mediaview'] = 'Преглед на оригиналния файл';
$lang['mediaroot'] = 'root';
$lang['mediaupload'] = 'Качете файл в текущото именнопространство тук. За да създадете подименни пространства, добавете ги в началото на "Качи като" име на файл, разделени с двоеточие.';
$lang['mediaextchange'] = 'Разширението на файла бе сменено от .%s на .%s!';
$lang['reference'] = 'Референции за';
$lang['mediaupload'] = 'Качете файл в текущото именно пространство. За създаване на подимено пространство, добавете име преди това на файла като ги разделите с двоеточие в полето "Качи като"';
$lang['mediaextchange'] = 'Разширението на файла е сменено от .%s на .%s!';
$lang['reference'] = 'Връзки за';
$lang['ref_inuse'] = 'Файлът не може да бъде изтрит, защото все още се ползва от следните страници:';
$lang['ref_hidden'] = 'Някои препратки са към страници, които нямате права да четете';
$lang['ref_hidden'] = 'Някои връзки са към страници, които нямате права да четете';
$lang['hits'] = 'Съвпадения';
$lang['quickhits'] = 'Съвпадащи имена на страници';
$lang['toc'] = 'Съдържание';
$lang['current'] = 'текущо';
$lang['current'] = 'текуща';
$lang['yours'] = 'Вашата версия';
$lang['diff'] = 'Преглед на разликите с текущата версия';
$lang['diff2'] = 'Показване на разликите между избрани преработки';
$lang['diff2'] = 'Показване на разликите между избрани версии';
$lang['difflink'] = 'Препратка към сравнението на версиите';
$lang['diff_type'] = 'Преглед на разликите:';
$lang['diff_inline'] = 'Вграден';
$lang['diff_side'] = 'Един до друг';
$lang['line'] = 'Ред';
$lang['breadcrumb'] = 'Следа';
$lang['youarehere'] = 'Намирате се в';
$lang['lastmod'] = 'Последна промяна';
$lang['by'] = 'от';
$lang['deleted'] = 'изтриване';
$lang['created'] = 'създаване';
$lang['deleted'] = 'изтрита';
$lang['created'] = 'създадена';
$lang['restored'] = 'възстановена предишна версия';
$lang['external_edit'] = 'външна редакция';
$lang['summary'] = 'Обобщение';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> е необходим за показване на съдържанието.';
$lang['noflash'] = 'Необходим е <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> за изобразяване на съдържанието.';
$lang['download'] = 'Изтегляне на фрагмент';
$lang['mail_newpage'] = 'добавена страница:';
$lang['mail_changed'] = 'променена страница:';
$lang['mail_new_user'] = 'нов потребител:';
$lang['mail_newpage'] = 'добавена страница: ';
$lang['mail_changed'] = 'променена страница: ';
$lang['mail_subscribe_list'] = 'променени страници в именно пространство: ';
$lang['mail_new_user'] = 'нов потребител: ';
$lang['mail_upload'] = 'качен файл: ';
$lang['qb_bold'] = 'Удебелен текст';
$lang['qb_italic'] = 'Курсив текст';
$lang['qb_underl'] = 'Подчертан текст';
$lang['qb_code'] = 'Код';
$lang['qb_strike'] = 'Зачеркнат текст';
$lang['qb_h1'] = 'Заглавие ниво 1';
$lang['qb_h2'] = 'Заглавие ниво 2';
$lang['qb_h3'] = 'Заглавие ниво 3';
$lang['qb_h4'] = 'Заглавие ниво 4';
$lang['qb_h5'] = 'Заглавие ниво 5';
$lang['qb_h1'] = 'Заглавие от 1 ниво';
$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_hs'] = 'Изберете заглавие';
$lang['qb_hplus'] = 'Надзаглавие';
$lang['qb_hminus'] = 'Подзаглавие';
$lang['qb_hequal'] = 'Заглавие на същото ниво';
$lang['qb_hequal'] = 'Заглавие от същото ниво';
$lang['qb_link'] = 'Вътрешна препратка';
$lang['qb_extlink'] = 'Външна препратка';
$lang['qb_hr'] = 'Хоризонтална линия';
$lang['qb_ol'] = 'Подреден списък';
$lang['qb_ul'] = 'Неподреден списък';
$lang['qb_ol'] = 'Номериран списък';
$lang['qb_ul'] = 'Неномериран списък';
$lang['qb_media'] = 'Добавяне на изображения и други файлове';
$lang['qb_sig'] = 'Вмъкване на подпис';
$lang['qb_smileys'] = 'Усмивчици';
$lang['qb_chars'] = 'Специални знаци';
$lang['upperns'] = 'Към свьрзано именно пространство';
$lang['admin_register'] = 'Добабяне на нов потребител';
$lang['upperns'] = 'към майчиното именно пространство';
$lang['admin_register'] = 'Добавяне на нов потребител';
$lang['metaedit'] = 'Редактиране на метаданни';
$lang['metasaveerr'] = 'Запазването на метаданните бе неуспешно';
$lang['metasaveok'] = 'Метаданните бяха запазени';
$lang['metasaveerr'] = 'Записването на метаданните се провали';
$lang['metasaveok'] = 'Метаданните са запазени успешно';
$lang['img_backto'] = 'Назад към';
$lang['img_title'] = 'Заглавие';
$lang['img_caption'] = 'Надпис';
$lang['img_date'] = 'Дата';
$lang['img_fname'] = 'Име на файл';
$lang['img_fname'] = 'Име на файла';
$lang['img_fsize'] = 'Размер';
$lang['img_artist'] = 'Заснет от';
$lang['img_artist'] = 'Фотограф';
$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['authmodfailed'] = 'Лоша настройка за удостоверяване на потребителя. Моля, уведомете администратора.';
$lang['authtempfail'] = 'Удостоверяването на потребителите е временно недостъпно. Ако това продължи дълго, моля уведомете администратора.';
$lang['i_chooselang'] = 'Избор на език';
$lang['subscr_subscribe_success'] = '%s е добавен към списъка с абониралите се за %s';
$lang['subscr_subscribe_error'] = 'Грешка при добавянето на %s към списъка с абониралите се за %s';
$lang['subscr_subscribe_noaddress'] = 'Добавянето ви към списъка с абонати не е възможно поради липсата на свързан адрес (на ел. поща) с профила ви.';
$lang['subscr_unsubscribe_success'] = '%s е премахнат от списъка с абониралите се за %s';
$lang['subscr_unsubscribe_error'] = 'Грешка при премахването на %s от списъка с абониралите се за %s';
$lang['subscr_already_subscribed'] = '%s е вече абониран за %s';
$lang['subscr_not_subscribed'] = '%s не е абониран за %s';
$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'] = 'Лоша настройки за удостоверяване. Моля, уведомете администратора на Wiki страницата.';
$lang['authtempfail'] = 'Удостоверяването на потребители не е възможно за момента. Ако продължи дълго, моля уведомете администратора на Wiki страницата.';
$lang['i_chooselang'] = 'Изберете вашия изик';
$lang['i_installer'] = 'Инсталатор на DokuWiki';
$lang['i_wikiname'] = 'Име на Wiki';
$lang['i_enableacl'] = 'Включване на списъци за достъп ACL (препоръчително)';
$lang['i_wikiname'] = 'Име на Wiki-то';
$lang['i_enableacl'] = 'Ползване на списък за достъп (ACL) [препоръчително]';
$lang['i_superuser'] = 'Супер потребител';
$lang['i_problems'] = 'Инсталатора намери проблеми указани по-долу. Не може да продължите, докато не ги отстраните.';
$lang['i_modified'] = 'Поради мерки за сигурност този скрипт ще работи само с нова и непроменена Dokuwiki инсталация. Трябва да разархивирате отново файловете от дръпнатия пакет или да се посъветвате с пълните <a href="http://dokuwiki.org/install">Инструкции за инсталация на Dokuwiki</a>.';
$lang['i_problems'] = 'Открити са проблеми, които възпрепятстват инсталирането. Ще можете да продължите след като отстраните долуизброените проблеми.';
$lang['i_modified'] = 'Поради мерки за сигурност скрипта ще работи само с нова и непроменена инсталация на Dokuwiki. Трябва да разархивирате отново файловете от сваления архив или да се посъветвате с <a href="http://dokuwiki.org/install">Инструкциите за инсталация на Dokuwiki</a>.';
$lang['i_funcna'] = 'PHP функцията <code>%s</code> не е достъпна. Може би е забранена от доставчика на хостинг.';
$lang['i_phpver'] = 'Вашата PHP версия <code>%s</code> е по-стара от необходимата <code>%s</code>. Обновете PHP инсталацията си.';
$lang['i_permfail'] = '<code>%s</code> не е достъпна за писане от DokuWiki. Трябва да промените настройките за достъп до директорията!';
$lang['i_phpver'] = 'Инсталираната версия <code>%s</code> на PHP е по-стара от необходимата <code>%s</code>. Актуализирайте PHP инсталацията.';
$lang['i_permfail'] = '<code>%s</code> не е достъпна за писане от DokuWiki. Трябва да промените правата за достъп до директорията!';
$lang['i_confexists'] = '<code>%s</code> вече съществува';
$lang['i_writeerr'] = '<code>%s</code> не можа да бъде създаден. Трябва да проверите правата на директорията/файла за достъп и да създадете файл ръчно.';
$lang['i_badhash'] = 'неразпознат или променен dokuwiki.php (hash=<code>%s</code>)';
$lang['i_writeerr'] = '<code>%s</code> не можа да бъде създаден. Трябва да проверите правата за достъп до директорията/файла и да създадете файла ръчно.';
$lang['i_badhash'] = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=<code>%s</code>)';
$lang['i_badval'] = '<code>%s</code> - непозволена или празна стойност';
$lang['i_success'] = 'Настройката приключи успешно. Може да създадете файлът install.php сега. Продължете към
<a href="doku.php">Ново Ви DokuWiki</a>.';
$lang['i_failure'] = 'Имаше грешки при записа на файловете с настройки. Може да трябва да ги редактирате ръчно. Ползвайте <a href="doku.php">Ново Ви DokuWiki</a>.';
$lang['i_policy'] = 'Първоначална политика за достъп ACL';
$lang['i_pol0'] = 'Отворено Wiki (четене, писане, качване от всички)';
$lang['i_pol1'] = 'Публично Wiki (четене от всички, писане и качване от регистрирани потребители)';
$lang['i_pol2'] = 'Затворено Wiki (четене, писане, качване само от регистрирани потребители)';
$lang['i_success'] = 'Настройването приключи успешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php">Вашето ново DokuWiki</a>.';
$lang['i_failure'] = 'Възникнаха грешки при записването на файловете с настройки. Вероятно ще се наложи да ги поправите ръчно, за да можете да ползвате <a href="doku.php">Вашето ново DokuWiki</a>.';
$lang['i_policy'] = 'Първоначална политика за достъп';
$lang['i_pol0'] = 'Отворено Wiki (всеки може да чете, пише и качва)';
$lang['i_pol1'] = 'Публично Wiki (всеки може да чете, само регистрирани пишат и качват)';
$lang['i_pol2'] = 'Затворено Wiki (само регистрирани четат, пишат и качват)';
$lang['i_retry'] = 'Повторен опит';
$lang['mu_intro'] = 'Тук можете да качите няколко файла наведнъж. Добавете ги към съответните полета и натиснете бутона за качване.
$lang['i_license'] = 'Моля, изберете лиценз под който желаете да публикувате съдържанието:';
$lang['mu_intro'] = 'От тук можете да качите няколко файла наведнъж. Натиснете бутона "Избиране", изберете файлове и натиснете "Качване".
';
$lang['mu_gridname'] = 'Име на файл';
$lang['mu_gridname'] = 'Име на файла';
$lang['mu_gridsize'] = 'Големина';
$lang['mu_gridstat'] = 'Състояние';
$lang['mu_namespace'] = 'Именно пространство';
$lang['mu_browse'] = 'Избери';
$lang['mu_browse'] = 'Избиране';
$lang['mu_toobig'] = 'прекалено голям';
$lang['mu_ready'] = 'готов за качване';
$lang['mu_done'] = 'приключен';
$lang['mu_fail'] = 'неуспешен';
$lang['mu_authfail'] = 'сесията изтече';
$lang['mu_done'] = 'качен';
$lang['mu_fail'] = 'неуспешно качване';
$lang['mu_authfail'] = 'приключила сесия';
$lang['mu_progress'] = '@PCT@% качен';
$lang['mu_filetypes'] = 'Позволени файлови разширения';
$lang['mu_info'] = 'качени файлове';
$lang['mu_info'] = 'качени файла.';
$lang['mu_lasterr'] = 'Последна грешка:';
$lang['recent_global'] = 'В момента преглеждате промените в <b>%s</b> именно пространство. Може да прегледате и <a href="%s">промените на цялото Wiki</a>.';
$lang['recent_global'] = 'В момента преглеждате промените в именно пространство <b>%s</b>. Може да прегледате и <a href="%s">промените в цялото Wiki</a>.';
$lang['years'] = 'преди %d години';
$lang['months'] = 'преди %d месеци';
$lang['months'] = 'преди %d месеца';
$lang['weeks'] = 'преди %d седмици';
$lang['days'] = 'преди %d дни';
$lang['hours'] = 'преди %d часа';
$lang['minutes'] = 'преди %d минути';
$lang['seconds'] = 'преди %d секунди';
$lang['wordblock'] = 'Направените от вас промени не са съхранени, защото съдържат забранен текст (SPAM).';

View File

@ -1,3 +1,3 @@
====== Страницата е затворена ======
====== Страницата е заключена ======
В момента страницата е затворена за редакция от друг потребител. Трябва да изчаката докато този потребител приключи или затварянето изтече.
В момента страницата е заключена за редактиране от друг потребител. Трябва да изчакате потребителя да приключи с редактирането на страницата или автоматичното отключване на страницата.

View File

@ -1,3 +1,3 @@
====== Вход ======
====== Вписване ======
В момента не сте влезли! Въведете данните си долу, за да го направите. Бисквитките (cookies) трябва да са включени.
Не сте се вписали! Въведете данните си удостоверяване отдолу, за да го направите. Бисквитките (cookies) трябва да са включени.

View File

@ -1,16 +1,16 @@
Страница във DokuWiki бе добавена или променена. Ето детайлите:
Страница във DokuWiki е добавена или променена. Ето детайлите:
Дата : @DATE@
Браузър : @BROWSER@
IP-адрес : @IPADDRESS@
Име на хост : @HOSTNAME@
Дата : @DATE@
Браузър : @BROWSER@
IP адрес : @IPADDRESS@
Име на хоста : @HOSTNAME@
Стара версия: @OLDPAGE@
Нова версия : @NEWPAGE@
Обобщение : @SUMMARY@
Потребител : @USER@
Нова версия: @NEWPAGE@
Обобщение: @SUMMARY@
Потребител : @USER@
@DIFF@
--
Това писмо е генерирано от DokuWiki на адрес @DOKUWIKIURL@
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -1,4 +1,4 @@
====== Несъществуваща тема ======
Последвали сте връзка към тема, която все още не съществува. Ако правата Ви позволяват, може да я създадете като използвате бутона ''Създаване на страницата''
Последвали сте препратка към тема, която не съществува. Ако правата ви позволяват, може да я създадете чрез бутона ''Създаване на страница''.

View File

@ -1,4 +1,4 @@
====== Няма такава версия ======
Избраната версия не съществува. Използвайте бутона ''Редакции'' за списък на стари версии на документа.
Избраната версия не съществува. Натиснете бутона ''История'' за отваряне на списъка със стари версии на документа.

View File

@ -1,9 +1,9 @@
Здравейте @FULLNAME@!
Ето Вашите потребителски данни за @TITLE@ на @DOKUWIKIURL@
Вашите потребителски данни за @TITLE@ на @DOKUWIKIURL@
Потребител: @LOGIN@
Парола : @PASSWORD@
Потребител : @LOGIN@
Парола : @PASSWORD@
--
Това писмо е генерирано от DokuWiki на адрес @DOKUWIKIURL@
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -1,3 +1,3 @@
====== Преглед ======
Ето как ще изглежда текста. Той обаче все още **не е запазен** !
Ето как ще изглежда страницата. Текста все още **не е запазен**!

View File

@ -1,14 +1,13 @@
Здравейте @FULLNAME@!
Някой е поискал нова парола за потребителя @TITLE@
Някой е поискал нова парола за потребител @TITLE@
на @DOKUWIKIURL@
Ако не сте поискали нова парола, товава просто игнорирайте това писмо.
За да потвърдите, че искането е наистина пратено от вас, моля използвайте
следния адрес.
За да потвърдите, че искането е наистина от вас, моля ползвайте следния линк:
@CONFIRM@
--
Това писмо е генерирано от DokuWiki на адрес @DOKUWIKIURL@
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -1,2 +1,2 @@
Тази страница е позволена само за четене. Може да разгледате кода, но не и да го променята. Обърнете се съм администратора си, ако мислите, че това е грешно.
Страницата е само за четене. Може да разглеждате кода, но не и да го променяте. Обърнете се съм администратора, ако смятате, че това не е редно.

View File

@ -1,4 +1,4 @@
====== Последни промени ======
====== Скорошни промени ======
Следните страници са били променени наскоро.

View File

@ -1,4 +1,4 @@
====== Регистрирайте се като нов потребител ======
====== Регистриране като нов потребител ======
Моля, попълнете всичката информация долу, за да създадете нов профил в това уики. Бъдете сигурни, че подавате **валиден адрес на електронна поща** - ако не се пита за парола тук, нова ще бъде пратена на този адрес. Потребителското име трябва да бъде валидно [[doku>pagename|име на сраница]]
Моля, попълнете всичките полета отдолу, за да бъде създаден нов профил. Уверете се, че въведеният **адрес на ел. поща е правилен**. Ако няма поле за парола, ще ви бъде изпратена такава на въведения адрес. Потребителското име трябва да бъде валидно [[doku>pagename|име на страница]].

View File

@ -1,13 +1,13 @@
Нов потребител беше регистриран. Ето детайлите:
Регистриран е нов потребител. Ето детайлите:
Потребител : @NEWUSER@
Пълно име : @NEWNAME@
E-поща : @NEWEMAIL@
Пълно име : @NEWNAME@
E. поща : @NEWEMAIL@
Дата : @DATE@
Браузър : @BROWSER@
IP-адрес : @IPADDRESS@
Име на хоста: @HOSTNAME@
Дата : @DATE@
Браузър : @BROWSER@
IP адрес : @IPADDRESS@
Име на хоста : @HOSTNAME@
--
Това писмо е генерирано от DokuWiki на адрес @DOKUWIKIURL@
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -1,3 +1,3 @@
====== Пращане на нова парола ======
Моля, въведете потребителското си име във формуляра долу, за да поискате нова парола за вашият профил в това Wiki. Връзка за потвърждение ще ви бъде пратена на регистрираният в това Wiki адрес на електронна поща.
Моля, въведете потребителското си име във формата по-долу, ако желаете да получите нова парола. По ел. поща ще получите линк, с който да потвърдите.

View File

@ -1,4 +1,4 @@
====== Стари редакции ======
====== Стари версии======
Това са стари редакции на този документ. За да възстановите стара версия, изберете я долу, натиснете ''Редактиране'' и я запазете.
Това са старите версии на документа. За да възстановите стара версия, изберете я долу, натиснете ''Редактиране'' и я запазете.

View File

@ -1,5 +1,5 @@
====== Търсене ======
Може да намерите резултатите на търсенето долу. Ако не сте намерили каквото сте търсили, може да създадете или редактирате страница кръстена по вашета заявка за търсене със съответният бутон
Резултата от търсенето ще намерите по-долу. Ако не намирате каквото сте търсили, може да създадете или редактирате страница, кръстена на вашата заявка, чрез съответния бутон.
===== Резултати =====

View File

@ -1,2 +1,2 @@
**Това е стара редакция на документа**
**Това е стара версия на документа!**
----

View File

@ -1,7 +1,7 @@
# Това е списък на думи за игнориране, с една дума на ред
# Това е списък с думи за игнориране при индексиране, с една дума на ред
# Когато редактирате този файл, не забравяйте да използвате UNIX символ за нов ред
# Не е нужно да включвате думи по-кратки от 3 символа - те са игнорирани така или иначе
# Този списък се основава на думи намерени на http://www.ranks.nl/stopwords/
# Не е нужно да включвате думи по-кратки от 3 символа - те биват игнорирани така или иначе
# Списъкът се основава на думи от http://www.ranks.nl/stopwords/
about
are
and

View File

@ -0,0 +1,18 @@
Здравейте!
Страницата @PAGE@ в @TITLE@ wiki е променена.
Промените са по-долу:
--------------------------------------------------------
@DIFF@
--------------------------------------------------------
Стара версия: @OLDPAGE@
Нова версия: @NEWPAGE@
Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
@SUBSCRIBE@
и да прекратите абонамента за промени по страницата или именното пространство.
--
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -0,0 +1,3 @@
====== Диспечер на абонаменти ======
Страницата ви позволява да управлявате текущите си абонаменти за страници и именни пространства.

View File

@ -0,0 +1,15 @@
Здравейте!
Променени са страници от именното пространство @PAGE@ от @TITLE@ wiki.
Ето променените страници:
--------------------------------------------------------
@DIFF@
--------------------------------------------------------
Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
@SUBSCRIBE@
и да прекратите абонамента за промени по страницата или именното пространство.
--
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -0,0 +1,22 @@
Здравейте!
Страницата @PAGE@ в @TITLE@ wiki е променена.
Промените са по-долу:
--------------------------------------------------------
@DIFF@
--------------------------------------------------------
Дата : @DATE@
Потребител : @USER@
Обобщение: @SUMMARY@
Стара версия: @OLDPAGE@
Нова версия: @NEWPAGE@
Ако желаете да прекратите уведомяването за страницата трябва да се впишете на адрес @DOKUWIKIURL@, да посетите
@NEWPAGE@
и да прекратите абонамента за промени по страницата или именното пространство.
--
Писмото е генерирано от DokuWiki на адрес
@DOKUWIKIURL@

View File

@ -1,3 +1,3 @@
====== Обновете профила си ======
Трябва само да допълните полетата, които искате да промените. Не може да сменяте потребителското си име.
Трябва само да допълните полетата, които искате да промените. Потребителското не може да бъде променяно.

View File

@ -1,13 +1,13 @@
Бе качен файл на вашето DokuWiki. Ето детайлите
Качен е файл на вашето DokuWiki. Ето детайлите
Файл : @MEDIA@
Дата : @DATE@
Браузeр : @BROWSER@
IP-Адрес : @IPADDRESS@
Име на хост : @HOSTNAME@
Размер : @SIZE@
MIME Тип : @MIME@
Потребител : @USER@
Файл : @MEDIA@
Дата : @DATE@
Браузър : @BROWSER@
IP адрес : @IPADDRESS@
Име на хоста : @HOSTNAME@
Размер : @SIZE@
MIME тип : @MIME@
Потребител : @USER@
--
Tова писмо е генерирано от DokuWiki на адрес @DOKUWIKIURL@
Писмото е генерирано от DokuWiki на адрес @DOKUWIKIURL@

View File

@ -4,7 +4,6 @@
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Bernat Arlandis i Mañó <berarma@ya.com>
* @author Bernat Arlandis <berarma@ya.com>
* @author Bernat Arlandis <berarma@llenguaitecnologia.com>
*/
$lang['encoding'] = 'utf-8';
@ -49,6 +48,7 @@ $lang['btn_draft'] = 'Editar borrador';
$lang['btn_recover'] = 'Recuperar borrador';
$lang['btn_draftdel'] = 'Borrar borrador';
$lang['btn_revert'] = 'Recuperar';
$lang['btn_register'] = 'Registrar-se';
$lang['loggedinas'] = 'Sessió de';
$lang['user'] = 'Nom d\'usuari';
$lang['pass'] = 'Contrasenya';
@ -58,7 +58,6 @@ $lang['passchk'] = 'una atra volta';
$lang['remember'] = 'Recorda\'m';
$lang['fullname'] = 'Nom complet';
$lang['email'] = 'Correu electrònic';
$lang['register'] = 'Registrar-se';
$lang['profile'] = 'Perfil d\'usuari';
$lang['badlogin'] = 'Disculpe, pero el nom d\'usuari o la contrasenya són incorrectes.';
$lang['minoredit'] = 'Canvis menors';

View File

@ -5,8 +5,6 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Carles Bellver <carles.bellver@cent.uji.es>
* @author Carles Bellver <carles.bellver@gmail.com>
* @author carles.bellver@gmail.com
* @author carles.bellver@cent.uji.es
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@ -50,6 +48,7 @@ $lang['btn_draft'] = 'Edita esborrany';
$lang['btn_recover'] = 'Recupera esborrany';
$lang['btn_draftdel'] = 'Suprimeix esborrany';
$lang['btn_revert'] = 'Restaura';
$lang['btn_register'] = 'Registra\'m';
$lang['loggedinas'] = 'Heu entrat com';
$lang['user'] = 'Nom d\'usuari';
$lang['pass'] = 'Contrasenya';
@ -59,7 +58,6 @@ $lang['passchk'] = 'una altra vegada';
$lang['remember'] = 'Recorda\'m';
$lang['fullname'] = 'Nom complet';
$lang['email'] = 'Correu electrònic';
$lang['register'] = 'Registra\'m';
$lang['profile'] = 'Perfil d\'usuari';
$lang['badlogin'] = 'Nom d\'usuari o contrasenya incorrectes.';
$lang['minoredit'] = 'Canvis menors';

View File

@ -5,8 +5,8 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Bohumir Zamecnik <bohumir@zamecnik.org>
* @author Tomas Valenta <t.valenta@sh.cvut.cz>
* @author Tomas Valenta <tomas@valenta.cz>
* @author Zbynek Krivka <zbynek.krivka@seznam.cz>
* @author tomas@valenta.cz
* @author Marek Sacha <sachamar@fel.cvut.cz>
* @author Lefty <lefty@multihost.cz>
*/
@ -49,6 +49,7 @@ $lang['btn_draft'] = 'Upravit koncept';
$lang['btn_recover'] = 'Obnovit koncept';
$lang['btn_draftdel'] = 'Vymazat koncept';
$lang['btn_revert'] = 'Vrátit zpět';
$lang['btn_register'] = 'Registrovat';
$lang['loggedinas'] = 'Přihlášen(a) jako';
$lang['user'] = 'Uživatelské jméno';
$lang['pass'] = 'Heslo';
@ -58,7 +59,6 @@ $lang['passchk'] = 'ještě jednou';
$lang['remember'] = 'Přihlásit se nastálo';
$lang['fullname'] = 'Celé jméno';
$lang['email'] = 'E-mail';
$lang['register'] = 'Registrovat';
$lang['profile'] = 'Uživatelský profil';
$lang['badlogin'] = 'Zadané uživatelské jméno a heslo není správně.';
$lang['minoredit'] = 'Drobné změny';

View File

@ -53,6 +53,7 @@ $lang['btn_draft'] = 'Redigér kladde';
$lang['btn_recover'] = 'Gendan kladde';
$lang['btn_draftdel'] = 'Slet kladde';
$lang['btn_revert'] = 'Reetablér';
$lang['btn_register'] = 'Registrér';
$lang['loggedinas'] = 'Logget ind som';
$lang['user'] = 'Brugernavn';
$lang['pass'] = 'Adgangskode';
@ -62,7 +63,6 @@ $lang['passchk'] = 'Gentag ny adgangskode';
$lang['remember'] = 'Automatisk log ind';
$lang['fullname'] = 'Fulde navn';
$lang['email'] = 'E-mail';
$lang['register'] = 'Registrér';
$lang['profile'] = 'Brugerprofil';
$lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.';
$lang['minoredit'] = 'Mindre ændringer';

View File

@ -58,6 +58,7 @@ $lang['btn_draft'] = 'Entwurf bearbeiten';
$lang['btn_recover'] = 'Entwurf wiederherstellen';
$lang['btn_draftdel'] = 'Entwurf löschen';
$lang['btn_revert'] = 'Wiederherstellen';
$lang['btn_register'] = 'Registrieren';
$lang['loggedinas'] = 'Angemeldet als';
$lang['user'] = 'Benutzername';
$lang['pass'] = 'Passwort';
@ -67,7 +68,6 @@ $lang['passchk'] = 'und nochmal';
$lang['remember'] = 'Angemeldet bleiben';
$lang['fullname'] = 'Voller Name';
$lang['email'] = 'E-Mail';
$lang['register'] = 'Registrieren';
$lang['profile'] = 'Benutzerprofil';
$lang['badlogin'] = 'Nutzername oder Passwort sind falsch.';
$lang['minoredit'] = 'kleine Änderung';

View File

@ -15,7 +15,6 @@
* @author Arne Pelka <mail@arnepelka.de>
* @author Dirk Einecke <dirk@dirkeinecke.de>
* @author Blitzi94@gmx.de
* @author Robert Bogenschneider <robog@GMX.de>
* @author Robert Bogenschneider <robog@gmx.de>
* @author Niels Lange <niels@boldencursief.nl>
* @author Christian Wichmann <nospam@zone0.de>
@ -59,6 +58,7 @@ $lang['btn_draft'] = 'Entwurf bearbeiten';
$lang['btn_recover'] = 'Entwurf wiederherstellen';
$lang['btn_draftdel'] = 'Entwurf löschen';
$lang['btn_revert'] = 'Wiederherstellen';
$lang['btn_register'] = 'Registrieren';
$lang['loggedinas'] = 'Angemeldet als';
$lang['user'] = 'Benutzername';
$lang['pass'] = 'Passwort';
@ -68,7 +68,6 @@ $lang['passchk'] = 'und nochmal';
$lang['remember'] = 'Angemeldet bleiben';
$lang['fullname'] = 'Voller Name';
$lang['email'] = 'E-Mail';
$lang['register'] = 'Registrieren';
$lang['profile'] = 'Benutzerprofil';
$lang['badlogin'] = 'Nutzername oder Passwort sind falsch.';
$lang['minoredit'] = 'kleine Änderung';

View File

@ -1,3 +1,3 @@
====== Διαχείριση ======
Παρακάτω μπορείτε να βρείτε μια λίστα με τις δυνατότητες διαχείρισης στο DokuWiki
Παρακάτω μπορείτε να βρείτε μια λίστα με τις λειτουργίες διαχείρισης στο DokuWiki

View File

@ -1 +1 @@
===== Πρόσθετες συνδεόμενες υπομονάδες =====
===== Πρόσθετα =====

View File

@ -1,5 +1,8 @@
====== Υπάρχει μία νεώτερη έκδοση αυτής της σελίδας ======
Υπάρχει μία νεώτερη έκδοση της σελίδας που τροποιήσατε. Αυτό συμβαίνει εάν κάποιος άλλος χρήστης τροποποίησε την ίδια σελίδα ενώ την τροποποιούσατε και εσείς.
Υπάρχει μία νεώτερη έκδοση της σελίδας που τροποιήσατε.
Αυτό συμβαίνει εάν κάποιος άλλος χρήστης τροποποίησε την ίδια σελίδα ενώ την επεξεργαζόσασταν και εσείς.
Ελέγξτε προσεκτικά τις διαφορές που παρουσιάζονται παρακάτω και έπειτα αποφασίστε ποια έκδοση θα κρατήσετε. Εάν επιλέξετε ''Αποθήκευση'', η δική σας έκδοση θα αποθηκευτεί. Εάν επιλέξετε ''Ακύρωση'', η νεώτερη έκδοση θα διατηρηθεί ως τρέχουσα.
Ελέγξτε προσεκτικά τις διαφορές που παρουσιάζονται παρακάτω και έπειτα αποφασίστε ποια έκδοση θα κρατήσετε.
Εάν επιλέξετε ''Αποθήκευση'', η δική σας έκδοση θα αποθηκευτεί.
Εάν επιλέξετε ''Ακύρωση'', η νεώτερη έκδοση θα διατηρηθεί ως τρέχουσα.

View File

@ -2,4 +2,4 @@
Συγγνώμη, αλλά δεν έχετε επαρκή δικαιώματα για την συγκεκριμένη ενέργεια.
Μήπως παραλείψατε να συνδεθείτε?
Μήπως παραλείψατε να συνδεθείτε;

View File

@ -1,6 +1,8 @@
====== Βρέθηκε μία αυτόματα αποθηκευμένη σελίδα ======
Η τελευταία τροποποίηση αυτής της σελίδας δεν ολοκληρώθηκε επιτυχώς. Η εφαρμογή αποθήκευσε αυτόματα μία εκδοχή της σελίδας την ώρα που την τροποποιούσατε και μπορείτε να την χρησιμοποιήσετε για να συνεχίσετε την εργασία σας. Παρακάτω φαίνεται αυτή η πιο πρόσφατη αυτόματα αποθηκευμένη σελίδα.
Η τελευταία τροποποίηση αυτής της σελίδας δεν ολοκληρώθηκε επιτυχώς.
Η εφαρμογή αποθήκευσε αυτόματα μία εκδοχή της σελίδας την ώρα που την επεξεργαζόσασταν και μπορείτε να την χρησιμοποιήσετε για να συνεχίσετε την εργασία σας.
Παρακάτω φαίνεται αυτή η πιο πρόσφατη αυτόματα αποθηκευμένη σελίδα.
Μπορείτε να //επαναφέρετε// αυτή την αυτόματα αποθηκευμένη σελίδα ως τρέχουσα, να την //διαγράψετε// ή να //ακυρώσετε// τη διαδικασία τροποποίησης της τρέχουσας σελίδας.

View File

@ -1 +1,3 @@
Τροποποιήστε την σελίδα **μόνο** εάν μπορείτε να την **βελτιώσετε**. Για να κάνετε δοκιμές με ασφάλεια ή να εξοικειωθείτε με το περιβάλλον χρησιμοποιήστε το [[:playground:playground|playground]]. Αφού τροποποιήστε την σελίδα επιλέξτε ''Αποθήκευση''. Δείτε τις [[:wiki:syntax|οδηγίες]] για την σωστή σύνταξη.
Τροποποιήστε την σελίδα **μόνο** εάν μπορείτε να την **βελτιώσετε**.
Για να κάνετε δοκιμές με ασφάλεια ή να εξοικειωθείτε με το περιβάλλον χρησιμοποιήστε το [[:playground:playground|playground]].
Αφού τροποποιήστε την σελίδα επιλέξτε ''Αποθήκευση''. Δείτε τις [[:wiki:syntax|οδηγίες]] για την σωστή σύνταξη.

View File

@ -1,3 +1,3 @@
====== Κατάλογος ======
Αυτός είναι ένας κατάλογος όλων των διαθέσιμων σελίδων ταξινομημένων κατά [[doku>namespaces|φακέλους]].
Εδώ βλέπετε τον κατάλογο όλων των διαθέσιμων σελίδων, ταξινομημένες κατά [[doku>namespaces|φακέλους]].

View File

@ -1,25 +1,26 @@
<p>Αυτή η σελίδα περιέχει πληροφορίες που βοηθούν στην αρχική εγκατάσταση και
ρύθμιση της εφαρμογής <a href="http://dokuwiki.org">Dokuwiki</a>. Περισσότερες
πληροφορίες υπάρχουν στη <a href="http://dokuwiki.org/installer">σελίδα τεκμηρίωσης</a>
του οδηγού εγκατάστασης.</p>
ρύθμιση της εφαρμογής <a href="http://www.dokuwiki.org/el:dokuwiki">Dokuwiki</a>.
Περισσότερες πληροφορίες υπάρχουν στη <a href="http://www.dokuwiki.org/el:installer">
σελίδα τεκμηρίωσης</a> του οδηγού εγκατάστασης.</p>
<p>Η εφαρμογή DokuWiki χρησιμοποιεί απλά αρχεία για να αποθηκεύει τις σελίδες wiki
καθώς και πληροφορίες που σχετίζονται με αυτές (π.χ. εικόνες, καταλόγους αναζήτησης,
παλαιότερες εκδόσεις σελίδων, κλπ). Για να λειτουργεί σωστά η εφαρμογή DokuWiki
<strong>πρέπει</strong> να έχει δικαιώματα εγγραφής στους φακέλους που φιλοξενούν
αυτά τα αρχεία. Ο οδηγός εγκατάστασης δεν έχει την δυνατότητα να παραχωρήσει αυτά τα
δικαιώματα εγγραφής στους σχετικούς φακέλους. Ο κανονικός τρόπος για να γίνει αυτό είναι
είτε απευθείας σε περιβάλλον γραμμής εντολών ή, εάν δεν έχετε τέτοια πρόσβαση, μέσω FTP ή
του πίνακα ελέγχου του περιβάλλοντος φιλοξενίας (π.χ. cPanel).</p>
<p>Η εφαρμογή DokuWiki χρησιμοποιεί απλά αρχεία για να αποθηκεύει τις σελίδες
wiki καθώς και πληροφορίες που σχετίζονται με αυτές (π.χ. εικόνες, καταλόγους
αναζήτησης, παλαιότερες εκδόσεις σελίδων, κλπ). Για να λειτουργεί σωστά η εφαρμογή
DokuWiki <strong>πρέπει</strong> να έχει δικαιώματα εγγραφής στους φακέλους που
φιλοξενούν αυτά τα αρχεία. Ο οδηγός εγκατάστασης δεν έχει την δυνατότητα να
παραχωρήσει αυτά τα δικαιώματα εγγραφής στους σχετικούς φακέλους. Ο κανονικός
τρόπος για να γίνει αυτό είναι είτε απευθείας σε περιβάλλον γραμμής εντολών ή,
εάν δεν έχετε τέτοια πρόσβαση, μέσω FTP ή του πίνακα ελέγχου του περιβάλλοντος
φιλοξενίας (π.χ. cPanel).</p>
<p>Ο οδηγός εγκατάστασης θα ρυθμίσει την εφαρμογή DokuWiki ώστε να χρησιμοποιεί
<acronym title="access control list">ACL</acronym>, με τρόπο ώστε ο διαχειριστής να
έχει δυνατότητα εισόδου και πρόσβαση στο μενού διαχείρισης της εφαρμογής για εγκατάσταση
επεκτάσεων, διαχείριση χρηστών, διαχείριση δικαιωμάτων πρόσβασης στις διάφορες σελίδες και
αλλαγή των ρυθμίσεων. Αυτό δεν είναι απαραίτητο για να λειτουργήσει η εφαρμογή, αλλά
κάνει την διαχείρισή της ευκολότερη.</p>
<acronym title="access control list">ACL</acronym>, με τρόπο ώστε ο διαχειριστής
να έχει δυνατότητα εισόδου και πρόσβαση στο μενού διαχείρισης της εφαρμογής για
εγκατάσταση επεκτάσεων, διαχείριση χρηστών, διαχείριση δικαιωμάτων πρόσβασης στις
διάφορες σελίδες και αλλαγή των ρυθμίσεων. Αυτό δεν είναι απαραίτητο για να
λειτουργήσει η εφαρμογή, αλλά κάνει την διαχείρισή της ευκολότερη.</p>
<p>Οι έμπειροι χρήστες και οι χρήστες με ειδικές απαιτήσεις μπορούν να επισκεφθούν
τις σελίδες που περιέχουν λεπτομερείς
<a href="http://dokuwiki.org/install">οδηγίες εγκατάστασης</a>
και <a href="http://dokuwiki.org/config">πληροφορίες για τις ρυθμίσεις</a>.</p>
τις σελίδες που περιέχουν λεπτομερείς <a href="http://dokuwiki.org/install">
οδηγίες εγκατάστασης</a> και <a href="http://dokuwiki.org/config">πληροφορίες
για τις ρυθμίσεις</a>.</p>

View File

@ -15,7 +15,7 @@ $lang['doublequoteclosing'] = '”';
$lang['singlequoteopening'] = '';
$lang['singlequoteclosing'] = '';
$lang['apostrophe'] = '';
$lang['btn_edit'] = 'Τροποποίηση σελίδας';
$lang['btn_edit'] = 'Επεξεργασία σελίδας';
$lang['btn_source'] = 'Προβολή κώδικα σελίδας';
$lang['btn_show'] = 'Προβολή σελίδας';
$lang['btn_create'] = 'Δημιουργία σελίδας';
@ -23,30 +23,31 @@ $lang['btn_search'] = 'Αναζήτηση';
$lang['btn_save'] = 'Αποθήκευση';
$lang['btn_preview'] = 'Προεπισκόπηση';
$lang['btn_top'] = 'Επιστροφή στην κορυφή της σελίδας';
$lang['btn_newer'] = '<< πλέον πρόσφατες';
$lang['btn_older'] = 'λιγότερο πρόσφατες >>';
$lang['btn_newer'] = '<< πρόσφατες';
$lang['btn_older'] = 'παλαιότερες >>';
$lang['btn_revs'] = 'Παλαιότερες εκδόσεις σελίδας';
$lang['btn_recent'] = 'Πρόσφατες αλλαγές σελίδων';
$lang['btn_recent'] = 'Πρόσφατες αλλαγές';
$lang['btn_upload'] = 'Φόρτωση';
$lang['btn_cancel'] = 'Ακύρωση';
$lang['btn_index'] = 'Κατάλογος';
$lang['btn_secedit'] = 'Τροποποίηση';
$lang['btn_login'] = 'Είσοδος χρήστη';
$lang['btn_logout'] = 'Έξοδος χρήστη';
$lang['btn_secedit'] = 'Επεξεργασία';
$lang['btn_login'] = 'Σύνδεση χρήστη';
$lang['btn_logout'] = 'Αποσύνδεση χρήστη';
$lang['btn_admin'] = 'Διαχείριση';
$lang['btn_update'] = 'Ενημέρωση';
$lang['btn_delete'] = 'Σβήσιμο';
$lang['btn_back'] = 'Πίσω';
$lang['btn_backlink'] = 'Σύνδεσμοι προς την τρέχουσα σελίδα';
$lang['btn_backlink'] = 'Σύνδεσμοι προς αυτή τη σελίδα';
$lang['btn_backtomedia'] = 'Επιστροφή στην επιλογή αρχείων';
$lang['btn_subscribe'] = 'Εγγραφή σε λήψη ενημερώσεων σελίδας';
$lang['btn_profile'] = 'Τροποποίηση προφίλ';
$lang['btn_profile'] = 'Επεξεργασία προφίλ';
$lang['btn_reset'] = 'Ακύρωση';
$lang['btn_resendpwd'] = 'Αποστολή νέου κωδικού';
$lang['btn_draft'] = 'Τροποποίηση αυτόματα αποθηκευμένης σελίδας';
$lang['btn_draft'] = 'Επεξεργασία αυτόματα αποθηκευμένης σελίδας';
$lang['btn_recover'] = 'Επαναφορά αυτόματα αποθηκευμένης σελίδας';
$lang['btn_draftdel'] = 'Διαγραφή αυτόματα αποθηκευμένης σελίδας';
$lang['btn_revert'] = 'Αποκατάσταση';
$lang['btn_register'] = 'Εγγραφή';
$lang['loggedinas'] = 'Συνδεδεμένος ως';
$lang['user'] = 'Όνομα χρήστη';
$lang['pass'] = 'Κωδικός';
@ -55,8 +56,7 @@ $lang['oldpass'] = 'Επιβεβαίωση τρέχοντος κω
$lang['passchk'] = 'ακόμη μια φορά';
$lang['remember'] = 'Απομνημόνευση στοιχείων λογαριασμού';
$lang['fullname'] = 'Ονοματεπώνυμο';
$lang['email'] = 'E-Mail';
$lang['register'] = 'Εγγραφή';
$lang['email'] = 'e-mail';
$lang['profile'] = 'Προφίλ χρήστη';
$lang['badlogin'] = 'Συγνώμη, το όνομα χρήστη ή ο κωδικός ήταν λανθασμένο.';
$lang['minoredit'] = 'Ασήμαντες αλλαγές';
@ -67,15 +67,15 @@ $lang['reguexists'] = 'Αυτός ο λογαριασμός υπάρ
$lang['regsuccess'] = 'Ο λογαριασμός δημιουργήθηκε και ο κωδικός εστάλει με e-mail.';
$lang['regsuccess2'] = 'Ο λογαριασμός δημιουργήθηκε.';
$lang['regmailfail'] = 'Φαίνεται να υπάρχει πρόβλημα με την αποστολή του κωδικού μέσω e-mail. Παρακαλούμε επικοινωνήστε μαζί μας!';
$lang['regbadmail'] = 'Η διεύθυνση e-mail δεν δείχνει έγκυρη - εάν πιστεύετε ότι αυτό είναι λάθος, επικοινωνήστε μαζί μας';
$lang['regbadmail'] = 'Η διεύθυνση e-mail δεν είναι έγκυρη - εάν πιστεύετε ότι αυτό είναι λάθος, επικοινωνήστε μαζί μας';
$lang['regbadpass'] = 'Οι δύο κωδικοί δεν είναι ίδιοι, προσπαθήστε ξανά.';
$lang['regpwmail'] = 'Ο κωδικός σας';
$lang['reghere'] = 'Δεν έχετε λογαριασμό ακόμη? Δημιουργήστε έναν';
$lang['profna'] = 'Αυτό το wiki δεν υποστηρίζει την τροποποίηση προφίλ.';
$lang['profna'] = 'Αυτό το wiki δεν υποστηρίζει την επεξεργασία προφίλ.';
$lang['profnochange'] = 'Καμία αλλαγή.';
$lang['profnoempty'] = 'Δεν επιτρέπεται κενό όνομα χρήστη η κενή διεύθυνση email.';
$lang['profchanged'] = 'Το προφίλ χρήστη τροποποιήθηκε επιτυχώς.';
$lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας? Αποκτήστε νέο.';
$lang['pwdforget'] = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
$lang['resendna'] = 'Αυτό το wiki δεν υποστηρίζει την εκ\' νέου αποστολή κωδικών.';
$lang['resendpwd'] = 'Αποστολή νέων κωδικών για τον χρήστη';
$lang['resendpwdmissing'] = 'Πρέπει να συμπληρώσετε όλα τα πεδία.';
@ -83,7 +83,7 @@ $lang['resendpwdnouser'] = 'Αυτός ο χρήστης δεν υπάρχ
$lang['resendpwdbadauth'] = 'Αυτός ο κωδικός ενεργοποίησης δεν είναι έγκυρος.';
$lang['resendpwdconfirm'] = 'Ο σύνδεσμος προς την σελίδα ενεργοποίησης εστάλει με e-mail.';
$lang['resendpwdsuccess'] = 'Ο νέος σας κωδικός εστάλη με e-mail.';
$lang['license'] = 'Εκτός εάν αναφέρεται διαφορετικά, το υλικό αυτού του wiki διατίθεται κάτω από την ακόλουθη άδεια:';
$lang['license'] = 'Εκτός εάν αναφέρεται διαφορετικά, το περιεχόμενο σε αυτο το wiki διέπεται από την ακόλουθη άδεια:';
$lang['licenseok'] = 'Σημείωση: Τροποποιώντας αυτή την σελίδα αποδέχεστε την διάθεση του υλικού σας σύμφωνα με την ακόλουθη άδεια:';
$lang['searchmedia'] = 'Αναζήτηση αρχείου:';
$lang['searchmedia_in'] = 'Αναζήτηση σε %s';
@ -92,9 +92,9 @@ $lang['txt_filename'] = 'Επιλέξτε νέο όνομα αρχεί
$lang['txt_overwrt'] = 'Αντικατάσταση υπάρχοντος αρχείου';
$lang['lockedby'] = 'Προσωρινά κλειδωμένο από';
$lang['lockexpire'] = 'Το κλείδωμα λήγει στις';
$lang['willexpire'] = 'Το κλείδωμά σας για την επεξεργασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χρησιμοποιήστε την επιλογή Προεπισκόπηση.';
$lang['willexpire'] = 'Το κλείδωμά σας για την επεξεργασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χρησιμοποιήστε την Προεπισκόπηση.';
$lang['js']['notsavedyet'] = 'Οι μη αποθηκευμένες αλλαγές θα χαθούν.
Θέλετε να συνεχίσετε?';
Θέλετε να συνεχίσετε;';
$lang['js']['searchmedia'] = 'Αναζήτηση για αρχεία';
$lang['js']['keepopen'] = 'Το παράθυρο να μην κλείνει';
$lang['js']['hidedetails'] = 'Απόκρυψη λεπτομερειών';
@ -107,25 +107,25 @@ $lang['js']['mediaclose'] = 'Κλείσιμο';
$lang['js']['mediainsert'] = 'Εισαγωγή';
$lang['js']['mediadisplayimg'] = 'Προβολή εικόνας.';
$lang['js']['mediadisplaylnk'] = 'Προβολή μόνο του συνδέσμου.';
$lang['js']['mediasmall'] = 'Μικρή έκδοση';
$lang['js']['mediamedium'] = 'Μεσαία έκδοση';
$lang['js']['medialarge'] = 'Μεγάλη έκδοση';
$lang['js']['mediaoriginal'] = 'Κανονική έκδοση';
$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']['medialeft'] = 'Αριστερή στοίχιση εικόνας.';
$lang['js']['mediaright'] = 'Δεξιά στοίχιση εικόνας.';
$lang['js']['mediacenter'] = 'Κέντρική στοίχιση εικόνας.';
$lang['js']['medianoalign'] = 'Χωρίς στοίχηση.';
$lang['js']['nosmblinks'] = 'Οι σύνδεσμοι προς Windows shares δουλεύουν μόνο στον Microsoft Internet Explorer.
Μπορείτε πάντα να κάνετε αντιγραφή και επικόλληση του συνδέσμου.';
$lang['js']['linkwiz'] = 'Αυτόματος Οδηγός Συνδέσμων';
$lang['js']['linkto'] = 'Σύνδεση σε:';
$lang['js']['del_confirm'] = 'Να διαγραφεί?';
$lang['js']['del_confirm'] = 'Να διαγραφεί;';
$lang['js']['mu_btn'] = 'Ταυτόχρονη φόρτωση πολλαπλών φακέλων';
$lang['rssfailed'] = 'Εμφανίστηκε κάποιο σφάλμα κατά την ανάγνωση αυτού του feed: ';
$lang['rssfailed'] = 'Παρουσιάστηκε κάποιο σφάλμα κατά την ανάγνωση αυτού του feed: ';
$lang['nothingfound'] = 'Δεν βρέθηκαν σχετικά αποτελέσματα.';
$lang['mediaselect'] = 'Επιλογή Αρχείων';
$lang['fileupload'] = 'Φόρτωση αρχείου';
@ -156,9 +156,12 @@ $lang['quickhits'] = 'Σχετικές σελίδες';
$lang['toc'] = 'Πίνακας Περιεχομένων';
$lang['current'] = 'τρέχουσα';
$lang['yours'] = 'Η έκδοσή σας';
$lang['diff'] = 'προβολή διαφορών με την τρέχουσα έκδοση';
$lang['diff'] = 'Προβολή διαφορών με την τρέχουσα έκδοση';
$lang['diff2'] = 'Προβολή διαφορών μεταξύ των επιλεγμένων εκδόσεων';
$lang['difflink'] = 'Σύνδεσμος σε αυτή την προβολή διαφορών.';
$lang['diff_type'] = 'Προβολή διαφορών:';
$lang['diff_inline'] = 'Σε σειρά';
$lang['diff_side'] = 'Δίπλα-δίπλα';
$lang['line'] = 'Γραμμή';
$lang['breadcrumb'] = 'Ιστορικό';
$lang['youarehere'] = 'Είστε εδώ';
@ -218,12 +221,12 @@ $lang['img_camera'] = 'Camera';
$lang['img_keywords'] = 'Λέξεις-κλειδιά';
$lang['subscr_subscribe_success'] = 'Ο/η %s προστέθηκε στην λίστα ειδοποιήσεων για το %s';
$lang['subscr_subscribe_error'] = 'Σφάλμα κατά την προσθήκη του/της %s στην λίστα ειδοποιήσεων για το %s';
$lang['subscr_subscribe_noaddress'] = 'Δεν υπάρχει διεύθυνση ταχυδρομείου, συσχετισμένη με το όνομα χρήστη σας, κατά συνέπεια δεν μπορείτε να προστεθείτε στην λίστα ειδοποιήσεων';
$lang['subscr_subscribe_noaddress'] = 'Δεν υπάρχει διεύθυνση ταχυδρομείου συσχετισμένη με το όνομα χρήστη σας. Κατά συνέπεια δεν μπορείτε να προστεθείτε στην λίστα ειδοποιήσεων';
$lang['subscr_unsubscribe_success'] = 'Ο/η %s, απομακρύνθηκε από την λίστα ειδοποιήσεων για το %s';
$lang['subscr_unsubscribe_error'] = 'Σφάλμα κατά την απομάκρυνση του/της %s στην λίστα ειδοποιήσεων για το %s';
$lang['subscr_already_subscribed'] = 'Ο/η %s είναι ήδη στην λίστα ειδοποίησης για το %s';
$lang['subscr_not_subscribed'] = 'Ο/η %s δεν είναι στην λίστα ειδοποίησης για το %s';
$lang['subscr_m_not_subscribed'] = 'Αυτήν την στιγμή, δεν είσαστε γραμμένος/η στην λίστα ειδοποίησης της τρέχουσας σελίδας ή φακέλου.';
$lang['subscr_m_not_subscribed'] = 'Αυτήν την στιγμή, δεν είσαστε εγεγγραμμένος/η στην λίστα ειδοποίησης της τρέχουσας σελίδας ή φακέλου.';
$lang['subscr_m_new_header'] = 'Προσθήκη στην λίστα ειδοποίησης';
$lang['subscr_m_current_header'] = 'Τρέχουσες εγγραφές ειδοποιήσεων';
$lang['subscr_m_unsubscribe'] = 'Διαγραφή';
@ -231,17 +234,17 @@ $lang['subscr_m_subscribe'] = 'Εγγραφή';
$lang['subscr_m_receive'] = 'Λήψη';
$lang['subscr_style_every'] = 'email σε κάθε αλλαγή';
$lang['subscr_style_digest'] = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μέρες)';
$lang['subscr_style_list'] = 'λίστα αλλαγμένων σελίδων μετά από το τελευταίο email (κάθε %.2f μέρες)';
$lang['subscr_style_list'] = 'λίστα σελίδων με αλλαγές μετά από το τελευταίο email (κάθε %.2f μέρες)';
$lang['authmodfailed'] = 'Κακή ρύθμιση λίστας χρηστών. Παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
$lang['authtempfail'] = 'Η είσοδος χρηστών δεν λειτουργεί αυτή την στιγμή. Εάν αυτό διαρκεί για πολύ χρόνο, παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
$lang['authtempfail'] = 'Η συνδεση χρηστών είναι απενεργοποιημένη αυτή την στιγμή. Αν αυτό διαρκέσει για πολύ, παρακαλούμε ενημερώστε τον διαχειριστή του wiki.';
$lang['i_chooselang'] = 'Επιλογή γλώσσας';
$lang['i_installer'] = 'Οδηγός εγκατάστασης DokuWiki';
$lang['i_wikiname'] = 'Ονομασία wiki';
$lang['i_enableacl'] = 'Ενεργοποίηση Λίστας Δικαιωμάτων Πρόσβασης - ACL (συνιστάται)';
$lang['i_enableacl'] = 'Ενεργοποίηση Λίστας Δικαιωμάτων Πρόσβασης - ACL (συνίσταται)';
$lang['i_superuser'] = 'Διαχειριστής';
$lang['i_problems'] = 'Ο οδηγός εγκατάστασης συνάντησε τα προβλήματα που αναφέρονται παρακάτω. Η εγκατάσταση δεν θα ολοκληρωθεί επιτυχώς μέχρι να επιλυθούν αυτά τα προβλήματα.';
$lang['i_modified'] = 'Για λόγους ασφαλείας, ο οδηγός εγκατάστασης λειτουργεί μόνο με νέες και μη τροποποιημένες εγκαταστάσεις Dokuwiki.
Πρέπει είτε να κάνετε νέα εγκατάσταση, χρησιμοποιώντας το αρχικό πακέτο εγκατάστασης, ή να συμβουλευτείτε τις <a href="http://dokuwiki.org/install">οδηγίες εγκατάστασης της εφαρμογής</a>.';
Πρέπει είτε να κάνετε νέα εγκατάσταση, χρησιμοποιώντας το αρχικό πακέτο εγκατάστασης, ή να συμβουλευτείτε τις <a href="http://dokuwiki.org/el:install">οδηγίες εγκατάστασης της εφαρμογής</a>.';
$lang['i_funcna'] = 'Η λειτουργία <code>%s</code> της PHP δεν είναι διαθέσιμη. Πιθανόν να είναι απενεργοποιημένη στις ρυθμίσεις έναρξης της PHP';
$lang['i_phpver'] = 'Η έκδοση <code>%s</code> της PHP που έχετε είναι παλαιότερη της απαιτούμενης <code>%s</code>. Πρέπει να αναβαθμίσετε την PHP.';
$lang['i_permfail'] = 'Ο φάκελος <code>%s</code> δεν είναι εγγράψιμος από την εφαρμογή DokuWiki. Πρέπει να διορθώσετε τα δικαιώματα πρόσβασης αυτού του φακέλου!';
@ -268,16 +271,16 @@ $lang['mu_ready'] = 'έτοιμο για φόρτωση';
$lang['mu_done'] = 'ολοκληρώθηκε';
$lang['mu_fail'] = 'απέτυχε';
$lang['mu_authfail'] = 'η συνεδρία έληξε';
$lang['mu_progress'] = '@PCT@% φορτώθηκε';
$lang['mu_progress'] = 'φορτώθηκε @PCT@%';
$lang['mu_filetypes'] = 'Επιτρεπτοί τύποι αρχείων';
$lang['mu_info'] = 'τα αρχεία ανέβηκαν.';
$lang['mu_lasterr'] = 'Τελευταίο σφάλμα:';
$lang['recent_global'] = 'Βλέπετε τις αλλαγές εντός του φακέλου <b>%s</b>. Μπορείτε επίσης να <a href="%s">δείτε τις πρόσφατες αλλαγές σε όλο το wiki</a>.';
$lang['years'] = 'πριν από %d χρόνια';
$lang['months'] = 'πριν από %d μήνες';
$lang['weeks'] = 'πριν από %d εβδομάδες';
$lang['days'] = 'πριν από %d ημέρες';
$lang['hours'] = 'πριν από %d ώρες';
$lang['minutes'] = 'πριν από %d λεπτά';
$lang['seconds'] = 'πριν από %d δευτερόλεπτα';
$lang['wordblock'] = 'Η αλλαγή σας δεν αποθηκεύτηκε γιατί περιείχε μπλοκαρισμένο κείμενο (spam).';
$lang['years'] = 'πριν %d χρόνια';
$lang['months'] = 'πριν %d μήνες';
$lang['weeks'] = 'πριν %d εβδομάδες';
$lang['days'] = 'πριν %d ημέρες';
$lang['hours'] = 'πριν %d ώρες';
$lang['minutes'] = 'πριν %d λεπτά';
$lang['seconds'] = 'πριν %d δευτερόλεπτα';
$lang['wordblock'] = 'Η αλλαγή σας δεν αποθηκεύτηκε γιατί περιείχε spam.';

View File

@ -1,4 +1,5 @@
====== Κλειδωμένη σελίδα ======
Αυτή η σελίδα είναι προς το παρόν δεσμευμένη για τροποποίηση από άλλον χρήστη. Θα πρέπει να περιμένετε μέχρι ο συγκεκριμένος χρήστης να τελειώσει την τροποποίηση ή να εκπνεύσει το χρονικό όριο για το σχετικό κλείδωμα.
Αυτή η σελίδα είναι προς το παρόν δεσμευμένη για τροποποίηση από άλλον χρήστη.
Θα πρέπει να περιμένετε μέχρι ο συγκεκριμένος χρήστης να σταματήσει να την επεξεργάζεται ή να εκπνεύσει το χρονικό όριο για το σχετικό κλείδωμα.

View File

@ -1,3 +1,5 @@
====== Είσοδος χρήστη ======
====== Σύνδεση χρήστη ======
Αυτή την στιγμή δεν έχετε συνδεθεί ως χρήστης! Για να συνδεθείτε, εισάγετε τα στοιχεία σας στην παρακάτω φόρμα. Πρέπει να έχετε ενεργοποιήσει τα cookies στον φυλλομετρητή σας.
Αυτή την στιγμή δεν έχετε συνδεθεί ως χρήστης!
Για να συνδεθείτε, εισάγετε τα στοιχεία σας στην παρακάτω φόρμα.
Πρέπει να έχετε ενεργοποιήσει τα cookies στο πρόγραμμα περιήγηση σας.

View File

@ -1,3 +1,4 @@
====== Αυτή η σελίδα δεν υπάρχει ακόμη ======
Η σελίδα που ζητάτε δεν υπάρχει ακόμη. Εάν όμως έχετε επαρκή δικαιώματα, μπορείτε να την δημιουργήσετε επιλέγοντας ''Δημιουργία σελίδας''.
Η σελίδα που ζητάτε δεν υπάρχει ακόμη.
Aν όμως έχετε επαρκή δικαιώματα, μπορείτε να την δημιουργήσετε επιλέγοντας ''Δημιουργία σελίδας''.

View File

@ -1,4 +1,5 @@
====== Δεν υπάρχει τέτοια έκδοση ======
====== Αυτή η έκδοση δεν υπάρχει ======
Η έκδοση που αναζητήσατε δεν υπάρχει. Επιλέξτε ''Παλαιότερες εκδόσεις σελίδας'' για να δείτε την λίστα με τις παλαιότερες εκδόσεις της τρέχουσας σελίδας.
Η έκδοση που αναζητήσατε δεν υπάρχει.
Μπορείτε να δείτε λίστα με τις παλαιότερες εκδόσεις της τρέχουσας σελίδας πατώντας ''Παλαιότερες εκδόσεις σελίδας''.

View File

@ -2,8 +2,8 @@
Αυτά είναι τα στοιχεία εισόδου για το @TITLE@ στο @DOKUWIKIURL@
Όνομα : @LOGIN@
Κωδικός : @PASSWORD@
Όνομα : @LOGIN@
Συνθηματικό : @PASSWORD@
--
Αυτό το e-mail δημιουργήθηκε αυτόματα από την εφαρμογή DokuWiki στην διεύθυνση

View File

@ -1,4 +1,5 @@
====== Προεπισκόπηση ======
Αυτή είναι μια προεπισκόπηση του πως θα δείχνει η σελίδα. Θυμηθείτε: Οι αλλαγές σας **δεν έχουν αποθηκευθεί** ακόμη!
Αυτή είναι μια προεπισκόπηση του πως θα δείχνει η σελίδα.
Υπενθύμιση: Οι αλλαγές σας **δεν έχουν αποθηκευθεί** ακόμη!

View File

@ -1,11 +1,11 @@
Γεια σας @FULLNAME@!
Κάποιος ζήτησε τη δημιουργία νέου κωδικού για τον λογαριασμό @TITLE@
Κάποιος ζήτησε τη δημιουργία νέου συνθηματικού για τον λογαριασμό @TITLE@
που διατηρείτε στο @DOKUWIKIURL@
Εάν δεν ζητήσατε εσείς την δημιουργία νέου κωδικού απλά αγνοήστε αυτό το e-mail.
Αν δεν ζητήσατε εσείς την δημιουργία νέου συνθηματικού απλά αγνοήστε αυτό το e-mail.
Εάν όντως εσείς ζητήσατε την δημιουργία νέου κωδικού, ακολουθήστε τον παρακάτω σύνδεσμο για να το επιβεβαιώσετε.
Αν όντως εσείς ζητήσατε την δημιουργία νέου συνθηματικού, ακολουθήστε τον παρακάτω σύνδεσμο για να το επιβεβαιώσετε.
@CONFIRM@

View File

@ -1 +1,2 @@
Μπορείτε μόνο να διαβάσετε αυτή την σελίδα και όχι να την τροποποιήσετε. Εάν πιστεύετε ότι αυτό δεν είναι σωστό, απευθυνθείτε στον διαχειριστή της εφαρμογής.
Μπορείτε να διαβάσετε αυτή την σελίδα αλλά δεν μπορείτε να την τροποποιήσετε.
Αν πιστεύετε ότι αυτό δεν είναι σωστό, απευθυνθείτε στον διαχειριστή της εφαρμογής.

Some files were not shown because too many files have changed in this diff Show More