Simplified and improved templates

Changed to simple more developped localized templates
This commit is contained in:
Simon DELAGE 2014-09-09 08:38:50 +02:00
parent b0865ce8d2
commit aa260f2242
7 changed files with 62 additions and 24 deletions

View file

@ -24,14 +24,14 @@ class action_plugin_userhomepage extends DokuWiki_Action_Plugin{
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 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
@ -169,27 +169,35 @@ class action_plugin_userhomepage extends DokuWiki_Action_Plugin{
function applyTemplate($type) {
global $INFO;
global $lang;
// 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
// // 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);
// $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);
// $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
// Build a fake data structure for the parser
$data = array('tpl' => $content, 'id' => $this->private_page);
// Use the built-in parser
$content = parsePageTemplate($data);
return $content;
}
function replace($content) {
global $uhpreplace;
foreach ($uhpreplace as $pattern => $replacement){
$content = str_replace($pattern,$replacement,$content);
}
return $content;
}
// function replace($content) {
// global $uhpreplace;
// foreach ($uhpreplace as $pattern => $replacement){
// $content = str_replace($pattern,$replacement,$content);
// }
// return $content;
// }
}

View file

@ -6,5 +6,3 @@
*/
$lang['created'] = 'Page created from template by Userhompage plugin.';
$lang['privatenamespace'] = 'Private Namespace';
$lang['publicpage'] = 'Public Page';

View file

@ -0,0 +1,9 @@
====== @NAME@ (@USER@) - Espace Privé ======
Cet espace de nom (@TARGETPRIVATENS@) et son contenu (pages, images, ...) vous est réservé et **vous seul y avez accès** (ainsi que l'administrateur)...
* Pour créer une page au sein de cet espace réservé (et donc protégée), utiliser 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, le créer sous l'espace __@TARGETPRIVATENS@__ :
<code>[[@TARGETPRIVATENS@:<sous_espace>:exemple3]]</code>
Vous pouvez évidement supprimer ce paragraphe...
A vos claviers! :-D

View file

@ -0,0 +1,8 @@
====== @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

View file

@ -6,5 +6,3 @@
*/
$lang['created'] = 'Page créée à partir du modèle par le plugin Userhomepage.';
$lang['privatenamespace'] = 'Espace Privé';
$lang['publicpage'] = 'Page Publique';

View file

@ -0,0 +1,9 @@
====== @NAME@ (@USER@) - Espace Privé ======
Cet espace de nom (@TARGETPRIVATENS@) et son contenu (pages, images, ...) vous est réservé et **vous seul y avez accès** (ainsi que l'administrateur)...
* Pour créer une page au sein de cet espace réservé (et donc protégée), utiliser 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, le créer sous l'espace __@TARGETPRIVATENS@__ :
<code>[[@TARGETPRIVATENS@:<sous_espace>:exemple3]]</code>
Vous pouvez évidement supprimer ce paragraphe...
A vos claviers! :-D

View file

@ -0,0 +1,8 @@
====== @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