Localized templates are now working

This commit is contained in:
Simon DELAGE 2014-09-09 21:51:02 +02:00
parent 1d8e1189ec
commit 2c7bda473c
5 changed files with 31 additions and 50 deletions

View file

@ -23,15 +23,6 @@ class action_plugin_userhomepage extends DokuWiki_Action_Plugin{
function init(&$event, $param) {
global $conf;
global $INFO;
// global $uhpreplace;
// // CREATE AND LOAD LOCAL REPLACEMENT FILE IF IT DOESN'T EXIST YET
// if (!file_exists(DOKU_INC.'conf/userhomepage_replace.php')) {
// $content = io_readFile(DOKU_INC.'lib/plugins/userhomepage/userhomepage_replace.default', false);
// $content = str_replace('privatenamespace',$this->getLang('privatenamespace'),$content);
// $content = str_replace('publicpage',$this->getLang('publicpage'),$content);
// file_put_contents(DOKU_INC.'conf/userhomepage_replace.php', $content);
// }
// if (file_exists(DOKU_INC.'conf/userhomepage_replace.php')) { require_once(DOKU_INC.'conf/userhomepage_replace.php'); }
// CREATE PRIVATE NAMESPACE START PAGE TEMPLATES IF NEEDED
if (($this->getConf('create_private_ns')) && (!file_exists(DOKU_INC.$this->getConf('templates_path').'/userhomepage_private.txt'))) {
// If old template exists, use it as source to create userhomepage_private.txt in templates_path
@ -172,19 +163,13 @@ class action_plugin_userhomepage extends DokuWiki_Action_Plugin{
// // Improved template process to use any replacement patterns from https://www.dokuwiki.org/namespace_templates based on code proposed by Christian Nancy or local ones from conf/userhomepage_replace.php file
if ($type == 'private') {
$content = io_readFile($this->private_page_template, false);
// $content = $this->replace($content);
// $data = array('tpl' => $content, 'id' => $this->private_page);
} elseif ($type == 'public') {
$content = io_readFile($this->public_page_template, false);
// $content = $this->replace($content);
// $data = array('tpl' => $content, 'id' => $this->public_page);
}
// // Use the built-in parser
// $content = parsePageTemplate($data);
str_replace('@TARGETPRIVATENS@', $this->private_ns, $content);
str_replace('@TARGETPUBLICPAGE@', $this->public_page, $content);
str_replace('@TARGETPUBLICNS@', cleanID($this->getConf('public_pages_ns')), $content);
// Improved template process to use any replacement patterns from https://www.dokuwiki.org/namespace_templates based on code proposed by Christian Nancy
$content = str_replace('@TARGETPRIVATENS@', $this->private_ns, $content);
$content = str_replace('@TARGETPUBLICPAGE@', $this->public_page, $content);
$content = str_replace('@TARGETPUBLICNS@', cleanID($this->getConf('public_pages_ns')), $content);
// Improved template process to use standard replacement patterns from https://www.dokuwiki.org/namespace_templates based on code proposed by Christian Nancy
// Build a fake data structure for the parser
$data = array('tpl' => $content, 'id' => $this->private_page);
// Use the built-in parser
@ -192,12 +177,4 @@ class action_plugin_userhomepage extends DokuWiki_Action_Plugin{
return $content;
}
// function replace($content) {
// global $uhpreplace;
// foreach ($uhpreplace as $pattern => $replacement){
// $content = str_replace($pattern,$replacement,$content);
// }
// return $content;
// }
}

View file

@ -1,9 +1,10 @@
====== @NAME@ (@USER@) - Espace Privé ======
This namespace (@TARGETPRIVATENS@) and it's content (pages, images, ...) is **reserved for your own usage**...
====== @NAME@ (@USER@) - Private Space ======
This namespace (//@TARGETPRIVATENS@://) and it's content (pages, images, ...) is **reserved for your own usage** (only superusers can also access to it)...
* To create a page inside this private space, simply use the standard link syntax __without any namespace__ :
<code>[[exemple page 1]]
[[exemple2|My example page2]]</code>
* To create a sub-namespace, simply indicate it's full position :
<code>[[@TARGETPRIVATENS@:<sub-namespace_to_create>:exemple3]]</code>
Feel free to delete this paragraph...
Now write something! :-D
<code>[[example page 1]]
[[example 2|My example page 2]]</code>
* To create a sub-namespace, simply indicate a new page's full position :
<code>[[@TARGETPRIVATENS@:<sub-namespace_to_create>:exemple 3]]</code>
Feel free to remove this paragraph (beside the title)...\\
Now, write something! :-D

View file

@ -1,8 +1,9 @@
====== @NAME@ (@USER@) - Page Publique ======
Cet page publique (@TARGETPUBLICPAGE@) est par définition **accessible à tous en lecture mais vous seul pouvez la modifier** (ainsi que l'administrateur)...
* Vous pouvez vous présenter, raconter une histoire ou présenter vos travaux personnels (même sans lien avec ce wiki)
* Vous pouvez inclure un avatar ou autre image
* Ne créez pas d'autre page dans cet espace de nom (@TARGETPUBLICNS@)
* Pensez à respecter la [[wpfr>http://en.wikipedia.org/wiki/Etiquette_in_technology|nétiquette]] ainsi que la loi ;-)
Vous pouvez évidement supprimer ce paragraphe...
A vos claviers! :-D
====== @NAME@ (@USER@) - Public Page ======
This public page (//@TARGETPUBLICPAGE@.txt//), as stated by it's name, **can be read by anyone but only you can edit it** (or a superuser)...
* You can introduce yourself, add links to your contributions in this wiki, tell a story or present your other works
* You can add an avatar or a picture
* Please, don't create any other page in that namespace (//@TARGETPUBLICNS@//)
* Think about [[wp>http://en.wikipedia.org/wiki/Etiquette_in_technology|netiquette]] ;-)
Feel free to remove this paragraph (beside the title)...\\
Now, write something! :-D

View file

@ -1,9 +1,10 @@
====== @NAME@ (@USER@) - Espace Privé ======
Cet espace de nom (@TARGETPRIVATENS@) et son contenu (pages, images, ...) **vous est réservé**...
Cet espace de nom (//@TARGETPRIVATENS@://) et son contenu (pages, images, ...) **vous est réservé** (seul un super-utilisateur peut y accéder)...
* Pour créer une page au sein de cet espace réservé, utilisez simplement la syntaxe de lien __sans aucun espace de nom__ :
<code>[[page exemple 1]]
[[exemple2|Ma page exemple2]]</code>
* Pour créer un sous-espace de nom, il suffit d'indiquer son emplacement complet :
* Pour créer un sous-espace de nom, il suffit d'indiquer une nouvelle page avec son emplacement complet :
<code>[[@TARGETPRIVATENS@:<sous-espace_à_créer>:exemple3]]</code>
Vous pouvez évidement supprimer ce paragraphe...
Vous pouvez évidement supprimer ce paragraphe (sauf le titre)...\\
A vos claviers! :-D

View file

@ -1,8 +1,9 @@
====== @NAME@ (@USER@) - Page Publique ======
Cet page publique (@TARGETPUBLICPAGE@) est par définition **accessible à tous en lecture mais vous seul pouvez la modifier** (ainsi que l'administrateur)...
Cet page publique (//@TARGETPUBLICPAGE@.txt//) est par définition **accessible à tous en lecture mais vous seul pouvez la modifier** (en dehors d'un super-utilisateur)...
* Vous pouvez vous présenter, raconter une histoire ou présenter vos travaux personnels (même sans lien avec ce wiki)
* Vous pouvez inclure un avatar ou autre image
* Ne créez pas d'autre page dans cet espace de nom (@TARGETPUBLICNS@)
* Pensez à respecter la [[wpfr>http://en.wikipedia.org/wiki/Etiquette_in_technology|nétiquette]] ainsi que la loi ;-)
Vous pouvez évidement supprimer ce paragraphe...
* Ne créez pas d'autre page dans cet espace de nom (//@TARGETPUBLICNS@//)
* Pensez à la [[wpfr>http://fr.wikipedia.org/wiki/N%C3%A9tiquette|nétiquette]] ;-)
Vous pouvez évidement supprimer ce paragraphe (sauf le titre)...\\
A vos claviers! :-D