Merge pull request #549 from fermionic/20121222-use-smarty-template-engine

Implement Smarty3
This commit is contained in:
friendica 2012-12-22 22:57:47 -08:00
commit 1d6dd1666f
755 changed files with 21646 additions and 637 deletions

View file

@ -380,9 +380,13 @@ if(! class_exists('App')) {
'videoheight' => 350, 'videoheight' => 350,
'force_max_items' => 0, 'force_max_items' => 0,
'thread_allow' => true, 'thread_allow' => true,
'stylesheet' => '' 'stylesheet' => '',
'template_engine' => 'internal',
); );
public $smarty3_ldelim = '{{';
public $smarty3_rdelim = '}}';
private $scheme; private $scheme;
private $hostname; private $hostname;
private $baseurl; private $baseurl;
@ -613,6 +617,16 @@ if(! class_exists('App')) {
if(!isset($this->page['htmlhead'])) if(!isset($this->page['htmlhead']))
$this->page['htmlhead'] = ''; $this->page['htmlhead'] = '';
$tpl = get_markup_template('head.tpl'); $tpl = get_markup_template('head.tpl');
// If we're using Smarty, then doing replace_macros() will replace
// any unrecognized variables with a blank string. Since we delay
// replacing $stylesheet until later, we need to replace it now
// with another variable name
if($this->theme['template_engine'] === 'smarty3')
$stylesheet = $this->smarty3_ldelim . '$stylesheet' . $this->smarty3_rdelim;
else
$stylesheet = '$stylesheet';
$this->page['htmlhead'] = replace_macros($tpl,array( $this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!! '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
'$local_user' => local_user(), '$local_user' => local_user(),
@ -621,7 +635,8 @@ if(! class_exists('App')) {
'$comment' => t('Comment'), '$comment' => t('Comment'),
'$showmore' => t('show more'), '$showmore' => t('show more'),
'$showfewer' => t('show fewer'), '$showfewer' => t('show fewer'),
'$update_interval' => $interval '$update_interval' => $interval,
'$stylesheet' => $stylesheet
)) . $this->page['htmlhead']; )) . $this->page['htmlhead'];
} }
@ -955,7 +970,15 @@ if(! function_exists('login')) {
} }
$o .= replace_macros($tpl,array( $includes = array(
'$field_input' => 'field_input.tpl',
'$field_password' => 'field_password.tpl',
'$field_openid' => 'field_openid.tpl',
'$field_checkbox' => 'field_checkbox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$dest_url' => $dest_url, '$dest_url' => $dest_url,
'$logout' => t('Logout'), '$logout' => t('Logout'),
@ -1324,16 +1347,25 @@ if(! function_exists('profile_sidebar')) {
$tpl = get_markup_template('profile_vcard.tpl'); $tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, array(
$includes = array(
'$diaspora_vcard' => 'diaspora_vcard.tpl'
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
if($a->theme['template_engine'] === 'internal')
$location = template_escape($location);
$o .= replace_macros($tpl, $includes + array(
'$profile' => $profile, '$profile' => $profile,
'$connect' => $connect, '$connect' => $connect,
'$wallmessage' => $wallmessage, '$wallmessage' => $wallmessage,
'$location' => template_escape($location), '$location' => $location,
'$gender' => $gender, '$gender' => $gender,
'$pdesc' => $pdesc, '$pdesc' => $pdesc,
'$marital' => $marital, '$marital' => $marital,
'$homepage' => $homepage, '$homepage' => $homepage,
'$diaspora' => $diaspora, '$diaspora_info' => $diaspora,
'$contact_block' => $contact_block, '$contact_block' => $contact_block,
)); ));

View file

@ -581,33 +581,54 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
list($categories, $folders) = get_cats_and_terms($item); list($categories, $folders) = get_cats_and_terms($item);
if($a->theme['template_engine'] === 'internal') {
$profile_name_e = template_escape($profile_name);
$item['title_e'] = template_escape($item['title']);
$body_e = template_escape($body);
$tags_e = template_escape($tags);
$hashtags_e = template_escape($hashtags);
$mentions_e = template_escape($mentions);
$location_e = template_escape($location);
$owner_name_e = template_escape($owner_name);
}
else {
$profile_name_e = $profile_name;
$item['title_e'] = $item['title'];
$body_e = $body;
$tags_e = $tags;
$hashtags_e = $hashtags;
$mentions_e = $mentions;
$location_e = $location;
$owner_name_e = $owner_name;
}
$tmp_item = array( $tmp_item = array(
'template' => $tpl, 'template' => $tpl,
'id' => (($preview) ? 'P0' : $item['item_id']), 'id' => (($preview) ? 'P0' : $item['item_id']),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'profile_url' => $profile_link, 'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item), 'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name), 'name' => $profile_name_e,
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'lock' => $lock, 'lock' => $lock,
'thumb' => $profile_avatar, 'thumb' => $profile_avatar,
'title' => template_escape($item['title']), 'title' => $item['title_e'],
'body' => template_escape($body), 'body' => $body_e,
'tags' => template_escape($tags), 'tags' => $tags_e,
'hashtags' => template_escape($hashtags), 'hashtags' => $hashtags_e,
'mentions' => template_escape($mentions), 'mentions' => $mentions_e,
'txt_cats' => t('Categories:'), 'txt_cats' => t('Categories:'),
'txt_folders' => t('Filed under:'), 'txt_folders' => t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''), 'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''), 'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories, 'categories' => $categories,
'folders' => $folders, 'folders' => $folders,
'text' => strip_tags(template_escape($body)), 'text' => strip_tags($body_e),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'location' => template_escape($location), 'location' => $location_e,
'indent' => '', 'indent' => '',
'owner_name' => template_escape($owner_name), 'owner_name' => $owner_name_e,
'owner_url' => $owner_url, 'owner_url' => $owner_url,
'owner_photo' => $owner_photo, 'owner_photo' => $owner_photo,
'plink' => get_plink($item), 'plink' => get_plink($item),
@ -682,7 +703,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$o = replace_macros($page_template, array( $o = replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl($ssl_state), '$baseurl' => $a->get_baseurl($ssl_state),
'$live_update' => $live_update_div, '$live_update' => $live_update_div,
'$remove' => t('remove'),
'$mode' => $mode, '$mode' => $mode,
'$user' => $a->user, '$user' => $a->user,
'$threads' => $threads, '$threads' => $threads,
@ -856,12 +876,27 @@ function format_like($cnt,$arr,$type,$id) {
if($cnt == 1) if($cnt == 1)
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ; $o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
else { else {
$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"'; //$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"';
$o .= (($type === 'like') ? switch($type) {
sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt) case 'like':
: // $phrase = sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt);
sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt) ); $mood = t('like this');
$o .= EOL ; break;
case 'dislike':
// $phrase = sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt);
$mood = t('don\'t like this');
break;
}
$tpl = get_markup_template("voting_fakelink.tpl");
$phrase = replace_macros($tpl, array(
'$vote_id' => $type . 'list-' . $id,
'$count' => $cnt,
'$people' => t('people'),
'$vote_mood' => $mood
));
$o .= $phrase;
// $o .= EOL ;
$total = count($arr); $total = count($arr);
if($total >= MAX_LIKERS) if($total >= MAX_LIKERS)
$arr = array_slice($arr, 0, MAX_LIKERS - 1); $arr = array_slice($arr, 0, MAX_LIKERS - 1);

View file

@ -0,0 +1,36 @@
<?php
require_once("library/Smarty/libs/Smarty.class.php");
class FriendicaSmarty extends Smarty {
public $filename;
public $root;
function __construct() {
parent::__construct();
$a = get_app();
//$this->root = $_SERVER['DOCUMENT_ROOT'] . '/';
$this->root = '';
$this->setTemplateDir($this->root . 'view/smarty3/');
$this->setCompileDir($this->root . 'view/smarty3/compiled/');
$this->setConfigDir($this->root . 'view/smarty3/config/');
$this->setCacheDir($this->root . 'view/smarty3/cache/');
$this->left_delimiter = $a->smarty3_ldelim;
$this->right_delimiter = $a->smarty3_rdelim;
}
function parsed($template = '') {
if($template) {
return $this->fetch('string:' . $template);
}
return $this->fetch('file:' . $this->root . $this->filename);
}
}

View file

@ -9,19 +9,38 @@
// depending on the order in which they were declared in the array. // depending on the order in which they were declared in the array.
require_once("include/template_processor.php"); require_once("include/template_processor.php");
require_once("include/friendica_smarty.php");
if(! function_exists('replace_macros')) { if(! function_exists('replace_macros')) {
function replace_macros($s,$r) { function replace_macros($s,$r) {
global $t; global $t;
//$ts = microtime();
$r = $t->replace($s,$r);
//$tt = microtime() - $ts;
//$a = get_app();
//$a->page['debug'] .= "$tt <br>\n";
return template_unescape($r);
// $ts = microtime();
$a = get_app();
if($a->theme['template_engine'] === 'smarty3') {
$template = '';
if(gettype($s) === 'string') {
$template = $s;
$s = new FriendicaSmarty();
}
foreach($r as $key=>$value) {
if($key[0] === '$') {
$key = substr($key, 1);
}
$s->assign($key, $value);
}
$output = $s->parsed($template);
}
else {
$r = $t->replace($s,$r);
$output = template_unescape($r);
}
// $tt = microtime() - $ts;
// $a = get_app();
// $a->page['debug'] .= "$tt <br>\n";
return $output;
}} }}
@ -421,29 +440,78 @@ if(! function_exists('get_intltext_template')) {
function get_intltext_template($s) { function get_intltext_template($s) {
global $lang; global $lang;
$a = get_app();
$engine = '';
if($a->theme['template_engine'] === 'smarty3')
$engine = "/smarty3";
if(! isset($lang)) if(! isset($lang))
$lang = 'en'; $lang = 'en';
if(file_exists("view/$lang/$s")) if(file_exists("view/$lang$engine/$s"))
return file_get_contents("view/$lang/$s"); return file_get_contents("view/$lang$engine/$s");
elseif(file_exists("view/en/$s")) elseif(file_exists("view/en$engine/$s"))
return file_get_contents("view/en/$s"); return file_get_contents("view/en$engine/$s");
else else
return file_get_contents("view/$s"); return file_get_contents("view$engine/$s");
}} }}
if(! function_exists('get_markup_template')) { if(! function_exists('get_markup_template')) {
function get_markup_template($s) { function get_markup_template($s, $root = '') {
$a=get_app(); // $ts = microtime();
$theme = current_theme(); $a = get_app();
if(file_exists("view/theme/$theme/$s"))
return file_get_contents("view/theme/$theme/$s");
elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/$s"))
return file_get_contents("view/theme/".$a->theme_info["extends"]."/$s");
else
return file_get_contents("view/$s");
if($a->theme['template_engine'] === 'smarty3') {
$template_file = get_template_file($a, 'smarty3/' . $s, $root);
$template = new FriendicaSmarty();
$template->filename = $template_file;
// $tt = microtime() - $ts;
// $a->page['debug'] .= "$tt <br>\n";
return $template;
}
else {
$template_file = get_template_file($a, $s, $root);
// $file_contents = file_get_contents($template_file);
// $tt = microtime() - $ts;
// $a->page['debug'] .= "$tt <br>\n";
// return $file_contents;
return file_get_contents($template_file);
}
}}
if(! function_exists("get_template_file")) {
function get_template_file($a, $filename, $root = '') {
$theme = current_theme();
// Make sure $root ends with a slash /
if($root !== '' && $root[strlen($root)-1] !== '/')
$root = $root . '/';
if(file_exists($root . "view/theme/$theme/$filename"))
$template_file = $root . "view/theme/$theme/$filename";
elseif (x($a->theme_info,"extends") && file_exists($root . "view/theme/".$a->theme_info["extends"]."/$filename"))
$template_file = $root . "view/theme/".$a->theme_info["extends"]."/$filename";
else
$template_file = $root . "view/$filename";
return $template_file;
}}
if(! function_exists("set_template_includes")) {
function set_template_includes($engine, $includes) {
if($engine === 'smarty3') {
$a = get_app();
foreach($includes as $name=>$path) {
// $sm_includes[$name] = $_SERVER['DOCUMENT_ROOT'] . '/' . get_template_file($a, 'smarty3/' . $path);
$sm_includes[$name] = get_template_file($a, 'smarty3/' . $path);
}
return $sm_includes;
}
else {
return $includes;
}
}} }}

View file

@ -439,7 +439,16 @@ function admin_page_site(&$a) {
); );
$t = get_markup_template("admin_site.tpl"); $t = get_markup_template("admin_site.tpl");
return replace_macros($t, array(
$includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
'$field_input' => 'field_input.tpl',
'$field_select' => 'field_select.tpl',
'$field_textarea' => 'field_textarea.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
return replace_macros($t, $includes + array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Site'), '$page' => t('Site'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -488,7 +497,7 @@ function admin_page_site(&$a) {
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")), '$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")), '$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$form_security_token' => get_form_security_token("admin_site"), '$form_security_token' => get_form_security_token("admin_site"),
)); ));
} }
@ -1109,7 +1118,14 @@ readable.");
} }
} }
return replace_macros($t, array( $includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
'$field_input' => 'field_input.tpl',
'$field_select' => 'field_select.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
return replace_macros($t, $includes + array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Logs'), '$page' => t('Logs'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -1168,7 +1184,14 @@ function admin_page_remoteupdate(&$a) {
} }
$tpl = get_markup_template("admin_remoteupdate.tpl"); $tpl = get_markup_template("admin_remoteupdate.tpl");
return replace_macros($tpl, array(
$includes = array(
'$field_input' => 'field_input.tpl',
'$field_password' => 'field_password.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
return replace_macros($tpl, $includes + array(
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
'$submit' => t("Update now"), '$submit' => t("Update now"),
'$close' => t("Close"), '$close' => t("Close"),
@ -1181,7 +1204,7 @@ function admin_page_remoteupdate(&$a) {
'$ftppath' => array('ftppath', t("FTP Path"), '/',''), '$ftppath' => array('ftppath', t("FTP Path"), '/',''),
'$ftpuser' => array('ftpuser', t("FTP User"), '',''), '$ftpuser' => array('ftpuser', t("FTP User"), '',''),
'$ftppwd' => array('ftppwd', t("FTP Password"), '',''), '$ftppwd' => array('ftppwd', t("FTP Password"), '',''),
'$remotefile'=>array('remotefile','', $u['2'],'') '$remotefile'=>array('remotefile','', $u['2'],''),
)); ));
} }

View file

@ -346,7 +346,12 @@ function contacts_content(&$a) {
$lost_contact = (($contact['archive'] && $contact['term-date'] != '0000-00-00 00:00:00' && $contact['term-date'] < datetime_convert('','','now')) ? t('Communications lost with this contact!') : ''); $lost_contact = (($contact['archive'] && $contact['term-date'] != '0000-00-00 00:00:00' && $contact['term-date'] < datetime_convert('','','now')) ? t('Communications lost with this contact!') : '');
$o .= replace_macros($tpl,array( $includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$header' => t('Contact Editor'), '$header' => t('Contact Editor'),
'$tab_str' => $tab_str, '$tab_str' => $tab_str,
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -388,7 +393,7 @@ function contacts_content(&$a) {
'$dir_icon' => $dir_icon, '$dir_icon' => $dir_icon,
'$alt_text' => $alt_text, '$alt_text' => $alt_text,
'$sparkle' => $sparkle, '$sparkle' => $sparkle,
'$url' => $url '$url' => $url,
)); ));
@ -571,7 +576,13 @@ function contacts_content(&$a) {
} }
$tpl = get_markup_template("contacts-template.tpl"); $tpl = get_markup_template("contacts-template.tpl");
$o .= replace_macros($tpl,array(
$includes = array(
'$contact_template' => 'contact_template.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$header' => t('Contacts') . (($nets) ? ' - ' . network_to_name($nets) : ''), '$header' => t('Contacts') . (($nets) ? ' - ' . network_to_name($nets) : ''),
'$tabs' => $t, '$tabs' => $t,
'$total' => $total, '$total' => $total,

View file

@ -447,6 +447,23 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
$shareable = false; $shareable = false;
$body = prepare_body($item,true); $body = prepare_body($item,true);
if($a->theme['template_engine'] === 'internal') {
$name_e = template_escape($profile_name);
$title_e = template_escape($item['title']);
$body_e = template_escape($body);
$text_e = strip_tags(template_escape($body));
$location_e = template_escape($location);
$owner_name_e = template_escape($owner_name);
}
else {
$name_e = $profile_name;
$title_e = $item['title'];
$body_e = $body;
$text_e = strip_tags($body);
$location_e = $location;
$owner_name_e = $owner_name;
}
//$tmp_item = replace_macros($tpl,array( //$tmp_item = replace_macros($tpl,array(
$tmp_item = array( $tmp_item = array(
@ -455,17 +472,17 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'profile_url' => $profile_link, 'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item), 'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name), 'name' => $name_e,
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'lock' => $lock, 'lock' => $lock,
'thumb' => $profile_avatar, 'thumb' => $profile_avatar,
'title' => template_escape($item['title']), 'title' => $title_e,
'body' => template_escape($body), 'body' => $body_e,
'text' => strip_tags(template_escape($body)), 'text' => $text_e,
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'location' => template_escape($location), 'location' => $location_e,
'indent' => '', 'indent' => '',
'owner_name' => template_escape($owner_name), 'owner_name' => $owner_name_e,
'owner_url' => $owner_url, 'owner_url' => $owner_url,
'owner_photo' => $owner_photo, 'owner_photo' => $owner_photo,
'plink' => get_plink($item), 'plink' => get_plink($item),
@ -802,6 +819,24 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
$body = prepare_body($item,true); $body = prepare_body($item,true);
//$tmp_item = replace_macros($template, //$tmp_item = replace_macros($template,
if($a->theme['template_engine'] === 'internal') {
$body_e = template_escape($body);
$text_e = strip_tags(template_escape($body));
$name_e = template_escape($profile_name);
$title_e = template_escape($item['title']);
$location_e = template_escape($location);
$owner_name_e = template_escape($owner_name);
}
else {
$body_e = $body;
$text_e = strip_tags($body);
$name_e = $profile_name;
$title_e = $item['title'];
$location_e = $location;
$owner_name_e = $owner_name;
}
$tmp_item = array( $tmp_item = array(
// collapse comments in template. I don't like this much... // collapse comments in template. I don't like this much...
'comment_firstcollapsed' => $comment_firstcollapsed, 'comment_firstcollapsed' => $comment_firstcollapsed,
@ -811,8 +846,8 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'type' => implode("",array_slice(explode("/",$item['verb']),-1)), 'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'tags' => $tags, 'tags' => $tags,
'body' => template_escape($body), 'body' => $body_e,
'text' => strip_tags(template_escape($body)), 'text' => $text_e,
'id' => $item['item_id'], 'id' => $item['item_id'],
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
@ -821,19 +856,19 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'vwall' => t('via Wall-To-Wall:'), 'vwall' => t('via Wall-To-Wall:'),
'profile_url' => $profile_link, 'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item), 'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name), 'name' => $name_e,
'thumb' => $profile_avatar, 'thumb' => $profile_avatar,
'osparkle' => $osparkle, 'osparkle' => $osparkle,
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'title' => template_escape($item['title']), 'title' => $title_e,
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock, 'lock' => $lock,
'location' => template_escape($location), 'location' => $location_e,
'indent' => $indent, 'indent' => $indent,
'shiny' => $shiny, 'shiny' => $shiny,
'owner_url' => $owner_url, 'owner_url' => $owner_url,
'owner_photo' => $owner_photo, 'owner_photo' => $owner_photo,
'owner_name' => template_escape($owner_name), 'owner_name' => $owner_name_e,
'plink' => get_plink($item), 'plink' => get_plink($item),
'edpost' => $edpost, 'edpost' => $edpost,
'isstarred' => $isstarred, 'isstarred' => $isstarred,

View file

@ -143,16 +143,23 @@ function directory_content(&$a) {
$tpl = get_markup_template('directory_item.tpl'); $tpl = get_markup_template('directory_item.tpl');
if($a->theme['template_engine'] === 'internal') {
$location_e = template_escape($location);
}
else {
$location_e = $location;
}
$entry = replace_macros($tpl,array( $entry = replace_macros($tpl,array(
'$id' => $rr['id'], '$id' => $rr['id'],
'$profile-link' => $profile_link, '$profile_link' => $profile_link,
'$photo' => $a->get_cached_avatar_image($rr[$photo]), '$photo' => $a->get_cached_avatar_image($rr[$photo]),
'$alt-text' => $rr['name'], '$alt_text' => $rr['name'],
'$name' => $rr['name'], '$name' => $rr['name'],
'$details' => $pdesc . $details, '$details' => $pdesc . $details,
'$page-type' => $page_type, '$page_type' => $page_type,
'$profile' => $profile, '$profile' => $profile,
'$location' => template_escape($location), '$location' => $location_e,
'$gender' => $gender, '$gender' => $gender,
'$pdesc' => $pdesc, '$pdesc' => $pdesc,
'$marital' => $marital, '$marital' => $marital,

View file

@ -16,7 +16,7 @@ function display_content(&$a, $update = 0) {
$o = ''; $o = '';
$a->page['htmlhead'] .= get_markup_template('display-head.tpl'); $a->page['htmlhead'] .= replace_macros(get_markup_template('display-head.tpl'), array());
if($update) { if($update) {

View file

@ -55,9 +55,17 @@ function fbrowser_content($a){
global $a; global $a;
$types = Photo::supportedTypes(); $types = Photo::supportedTypes();
$ext = $types[$rr['type']]; $ext = $types[$rr['type']];
if($a->theme['template_engine'] === 'internal') {
$filename_e = template_escape($rr['filename']);
}
else {
$filename_e = $rr['filename'];
}
return array( return array(
$a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.' .$ext, $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.' .$ext,
template_escape($rr['filename']), $filename_e,
$a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.'. $ext $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.'. $ext
); );
} }
@ -83,7 +91,15 @@ function fbrowser_content($a){
function files2($rr){ global $a; function files2($rr){ global $a;
list($m1,$m2) = explode("/",$rr['filetype']); list($m1,$m2) = explode("/",$rr['filetype']);
$filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip"); $filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip");
return array( $a->get_baseurl() . '/attach/' . $rr['id'], template_escape($rr['filename']), $a->get_baseurl() . '/images/icons/16/' . $filetype . '.png');
if($a->theme['template_engine'] === 'internal') {
$filename_e = template_escape($rr['filename']);
}
else {
$filename_e = $rr['filename'];
}
return array( $a->get_baseurl() . '/attach/' . $rr['id'], $filename_e, $a->get_baseurl() . '/images/icons/16/' . $filetype . '.png');
} }
$files = array_map("files2", $files); $files = array_map("files2", $files);
//echo "<pre>"; var_dump($files); killme(); //echo "<pre>"; var_dump($files); killme();

View file

@ -25,6 +25,12 @@ function filer_content(&$a) {
$filetags = file_tag_file_to_list($filetags,'file'); $filetags = file_tag_file_to_list($filetags,'file');
$filetags = explode(",", $filetags); $filetags = explode(",", $filetags);
$tpl = get_markup_template("filer_dialog.tpl"); $tpl = get_markup_template("filer_dialog.tpl");
$includes = array(
'$field_combobox' => 'field_combobox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o = replace_macros($tpl, array( $o = replace_macros($tpl, array(
'$field' => array('term', t("Save to Folder:"), '', '', $filetags, t('- select -')), '$field' => array('term', t("Save to Folder:"), '', '', $filetags, t('- select -')),
'$submit' => t('Save'), '$submit' => t('Save'),

View file

@ -82,7 +82,16 @@ function group_content(&$a) {
$switchtotext = 400; $switchtotext = 400;
$tpl = get_markup_template('group_edit.tpl'); $tpl = get_markup_template('group_edit.tpl');
$context = array('$submit' => t('Submit'));
$includes = array(
'$field_input' => 'field_input.tpl',
'$groupeditortpl' => 'groupeditor.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$context = $includes + array(
'$submit' => t('Submit'),
);
if(($a->argc == 2) && ($a->argv[1] === 'new')) { if(($a->argc == 2) && ($a->argv[1] === 'new')) {
@ -217,15 +226,16 @@ function group_content(&$a) {
} }
} }
$context['$groupeditor'] = $groupeditor;
$context['$desc'] = t('Click on a contact to add or remove.'); $context['$desc'] = t('Click on a contact to add or remove.');
if($change) { if($change) {
$context['$groupeditor'] = $groupeditor;
$tpl = get_markup_template('groupeditor.tpl'); $tpl = get_markup_template('groupeditor.tpl');
echo replace_macros($tpl, $context); echo replace_macros($tpl, $context);
killme(); killme();
} }
$context['$groupedit_info'] = $groupeditor;
return replace_macros($tpl, $context); return replace_macros($tpl, $context);
} }

View file

@ -14,10 +14,18 @@ function hostxrd_init(&$a) {
set_config('system','site_pubkey', $res['pubkey']); set_config('system','site_pubkey', $res['pubkey']);
} }
$tpl = file_get_contents('view/xrd_host.tpl'); //$tpl = file_get_contents('view/xrd_host.tpl');
echo str_replace(array( /*echo str_replace(array(
'$zhost','$zroot','$domain','$zot_post','$bigkey'),array($a->get_hostname(),z_root(),z_path(),z_root() . '/post', salmon_key(get_config('system','site_pubkey'))),$tpl); '$zhost','$zroot','$domain','$zot_post','$bigkey'),array($a->get_hostname(),z_root(),z_path(),z_root() . '/post', salmon_key(get_config('system','site_pubkey'))),$tpl);*/
$tpl = get_markup_template('xrd_host.tpl');
echo replace_macros($tpl, array(
'$zhost' => $a->get_hostname(),
'$zroot' => z_root(),
'$domain' => z_path(),
'$zot_post' => z_root() . '/post',
'$bigkey' => salmon_key(get_config('system','site_pubkey')),
));
session_write_close(); session_write_close();
exit(); exit();
} }

View file

@ -220,7 +220,14 @@ function install_content(&$a) {
$tpl = get_markup_template('install_db.tpl'); $tpl = get_markup_template('install_db.tpl');
$o .= replace_macros($tpl, array(
$includes = array(
'$field_input' => 'field_input.tpl',
'$field_password' => 'field_password.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$title' => $install_title, '$title' => $install_title,
'$pass' => t('Database connection'), '$pass' => t('Database connection'),
'$info_01' => t('In order to install Friendica we need to know how to connect to your database.'), '$info_01' => t('In order to install Friendica we need to know how to connect to your database.'),
@ -260,7 +267,13 @@ function install_content(&$a) {
$timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles'); $timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles');
$tpl = get_markup_template('install_settings.tpl'); $tpl = get_markup_template('install_settings.tpl');
$o .= replace_macros($tpl, array(
$includes = array(
'$field_input' => 'field_input.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$title' => $install_title, '$title' => $install_title,
'$pass' => t('Site settings'), '$pass' => t('Site settings'),

View file

@ -282,23 +282,25 @@ function message_content(&$a) {
$tpl = get_markup_template('prv_message.tpl'); $tpl = get_markup_template('prv_message.tpl');
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'), '$reply' => array(
'$to' => t('To:'), 'header' => t('Send Private Message'),
'$showinputs' => 'true', 'to' => t('To:'),
'$prefill' => $prefill, 'showinputs' => 'true',
'$autocomp' => $autocomp, 'prefill' => $prefill,
'$preid' => $preid, 'autocomp' => $autocomp,
'$subject' => t('Subject:'), 'preid' => $preid,
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''), 'subject' => t('Subject:'),
'$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''), 'subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
'$readonly' => '', 'text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
'$yourmessage' => t('Your message:'), 'readonly' => '',
'$select' => $select, 'yourmessage' => t('Your message:'),
'$parent' => '', 'select' => $select,
'$upload' => t('Upload photo'), 'parent' => '',
'$insert' => t('Insert web link'), 'upload' => t('Upload photo'),
'$wait' => t('Please wait'), 'insert' => t('Insert web link'),
'$submit' => t('Submit') 'wait' => t('Please wait'),
'submit' => t('Submit')
)
)); ));
return $o; return $o;
@ -346,6 +348,17 @@ function message_content(&$a) {
else { else {
$partecipants = sprintf( t("%s and You"), $rr['from-name']); $partecipants = sprintf( t("%s and You"), $rr['from-name']);
} }
if($a->theme['template_engine'] === 'internal') {
$subject_e = template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
$body_e = template_escape($rr['body']);
$to_name_e = template_escape($rr['name']);
}
else {
$subject_e = (($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>');
$body_e = $rr['body'];
$to_name_e = $rr['name'];
}
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$id' => $rr['id'], '$id' => $rr['id'],
@ -353,10 +366,10 @@ function message_content(&$a) {
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']), '$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']),
'$sparkle' => ' sparkle', '$sparkle' => ' sparkle',
'$from_photo' => (($rr['thumb']) ? $rr['thumb'] : $rr['from-photo']), '$from_photo' => (($rr['thumb']) ? $rr['thumb'] : $rr['from-photo']),
'$subject' => template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>')), '$subject' => $subject_e,
'$delete' => t('Delete conversation'), '$delete' => t('Delete conversation'),
'$body' => template_escape($rr['body']), '$body' => $body_e,
'$to_name' => template_escape($rr['name']), '$to_name' => $to_name_e,
'$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')), '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')),
'$ago' => relative_date($rr['mailcreated']), '$ago' => relative_date($rr['mailcreated']),
'$seen' => $rr['mailseen'], '$seen' => $rr['mailseen'],
@ -371,6 +384,10 @@ function message_content(&$a) {
$o .= $header; $o .= $header;
$plaintext = true;
if( local_user() && feature_enabled(local_user(),'richtext') )
$plaintext = false;
$r = q("SELECT `mail`.*, `contact`.`name`, `contact`.`url`, `contact`.`thumb` $r = q("SELECT `mail`.*, `contact`.`name`, `contact`.`url`, `contact`.`thumb`
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id` FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = %d AND `mail`.`id` = %d LIMIT 1", WHERE `mail`.`uid` = %d AND `mail`.`id` = %d LIMIT 1",
@ -408,14 +425,18 @@ function message_content(&$a) {
$tpl = get_markup_template('msg-header.tpl'); $tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array( $a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$nickname' => $a->user['nickname'], '$nickname' => $a->user['nickname'],
'$baseurl' => $a->get_baseurl(true) '$linkurl' => t('Please enter a link URL:')
)); ));
$tpl = get_markup_template('msg-end.tpl'); $tpl = get_markup_template('msg-end.tpl');
$a->page['end'] .= replace_macros($tpl, array( $a->page['end'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$nickname' => $a->user['nickname'], '$nickname' => $a->user['nickname'],
'$baseurl' => $a->get_baseurl(true) '$linkurl' => t('Please enter a link URL:')
)); ));
@ -440,16 +461,29 @@ function message_content(&$a) {
if($extracted['images']) if($extracted['images'])
$message['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $message['contact-id']); $message['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $message['contact-id']);
if($a->theme['template_engine'] === 'internal') {
$from_name_e = template_escape($message['from-name']);
$subject_e = template_escape($message['title']);
$body_e = template_escape(smilies(bbcode($message['body'])));
$to_name_e = template_escape($message['name']);
}
else {
$from_name_e = $message['from-name'];
$subject_e = $message['title'];
$body_e = smilies(bbcode($message['body']));
$to_name_e = $message['name'];
}
$mails[] = array( $mails[] = array(
'id' => $message['id'], 'id' => $message['id'],
'from_name' => template_escape($message['from-name']), 'from_name' => $from_name_e,
'from_url' => $from_url, 'from_url' => $from_url,
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'from_photo' => $message['from-photo'], 'from_photo' => $message['from-photo'],
'subject' => template_escape($message['title']), 'subject' => $subject_e,
'body' => template_escape(smilies(bbcode($message['body']))), 'body' => $body_e,
'delete' => t('Delete message'), 'delete' => t('Delete message'),
'to_name' => template_escape($message['name']), 'to_name' => $to_name_e,
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'), 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
'ago' => relative_date($message['created']), 'ago' => relative_date($message['created']),
); );
@ -462,7 +496,21 @@ function message_content(&$a) {
$parent = '<input type="hidden" name="replyto" value="' . $message['parent-uri'] . '" />'; $parent = '<input type="hidden" name="replyto" value="' . $message['parent-uri'] . '" />';
$tpl = get_markup_template('mail_display.tpl'); $tpl = get_markup_template('mail_display.tpl');
$o = replace_macros($tpl, array(
$includes = array(
'$mail_conv' => 'mail_conv.tpl',
'$prv_message' => 'prv_message.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
if($a->theme['template_engine'] === 'internal') {
$subjtxt_e = template_escape($message['title']);
}
else {
$subjtxt_e = $message['title'];
}
$o = replace_macros($tpl, $includes + array(
'$thread_id' => $a->argv[1], '$thread_id' => $a->argv[1],
'$thread_subject' => $message['title'], '$thread_subject' => $message['title'],
'$thread_seen' => $seen, '$thread_seen' => $seen,
@ -472,20 +520,22 @@ function message_content(&$a) {
'$mails' => $mails, '$mails' => $mails,
// reply // reply
'$header' => t('Send Reply'), '$reply_info' => array(
'$to' => t('To:'), 'header' => t('Send Reply'),
'$showinputs' => '', 'to' => t('To:'),
'$subject' => t('Subject:'), 'showinputs' => '',
'$subjtxt' => template_escape($message['title']), 'subject' => t('Subject:'),
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ', 'subjtxt' => $subjtxt_e,
'$yourmessage' => t('Your message:'), 'readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
'$text' => '', 'yourmessage' => t('Your message:'),
'$select' => $select, 'text' => '',
'$parent' => $parent, 'select' => $select,
'$upload' => t('Upload photo'), 'parent' => $parent,
'$insert' => t('Insert web link'), 'upload' => t('Upload photo'),
'$submit' => t('Submit'), 'insert' => t('Insert web link'),
'$wait' => t('Please wait') 'submit' => t('Submit'),
'wait' => t('Please wait'),
),
)); ));

View file

@ -53,8 +53,15 @@ function nogroup_content(&$a) {
); );
} }
} }
$tpl = get_markup_template("nogroup-template.tpl"); $tpl = get_markup_template("nogroup-template.tpl");
$o .= replace_macros($tpl,array(
$includes = array(
'$contact_template' => 'contact_template.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$header' => t('Contacts who are not members of a group'), '$header' => t('Contacts who are not members of a group'),
'$contacts' => $contacts, '$contacts' => $contacts,
'$paginate' => paginate($a), '$paginate' => paginate($a),

View file

@ -144,7 +144,13 @@ function notifications_content(&$a) {
if($rr['fid']) { if($rr['fid']) {
$return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : '')); $return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
$notif_content .= replace_macros($sugg,array(
$includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$notif_content .= replace_macros($sugg,$includes + array(
'$str_notifytype' => t('Notification type: '), '$str_notifytype' => t('Notification type: '),
'$notify_type' => t('Friend Suggestion'), '$notify_type' => t('Friend Suggestion'),
'$intro_id' => $rr['intro_id'], '$intro_id' => $rr['intro_id'],
@ -161,7 +167,7 @@ function notifications_content(&$a) {
'$note' => $rr['note'], '$note' => $rr['note'],
'$request' => $rr['frequest'] . '?addr=' . $return_addr, '$request' => $rr['frequest'] . '?addr=' . $return_addr,
'$ignore' => t('Ignore'), '$ignore' => t('Ignore'),
'$discard' => t('Discard') '$discard' => t('Discard'),
)); ));
@ -190,7 +196,12 @@ function notifications_content(&$a) {
)); ));
} }
$notif_content .= replace_macros($tpl,array( $includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$notif_content .= replace_macros($tpl,$includes + array(
'$str_notifytype' => t('Notification type: '), '$str_notifytype' => t('Notification type: '),
'$notify_type' => (($rr['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')), '$notify_type' => (($rr['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')),
'$dfrn_text' => $dfrn_text, '$dfrn_text' => $dfrn_text,
@ -207,7 +218,7 @@ function notifications_content(&$a) {
'$approve' => t('Approve'), '$approve' => t('Approve'),
'$note' => $rr['note'], '$note' => $rr['note'],
'$ignore' => t('Ignore'), '$ignore' => t('Ignore'),
'$discard' => t('Discard') '$discard' => t('Discard'),
)); ));
} }
@ -215,9 +226,14 @@ function notifications_content(&$a) {
else else
info( t('No introductions.') . EOL); info( t('No introductions.') . EOL);
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('Notifications'), '$notif_header' => t('Notifications'),
'$tabs' => $tabs, '$tabs_data' => $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
@ -301,9 +317,14 @@ function notifications_content(&$a) {
$notif_content = t('No more network notifications.'); $notif_content = t('No more network notifications.');
} }
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('Network Notifications'), '$notif_header' => t('Network Notifications'),
'$tabs' => $tabs, '$tabs_data' => $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
@ -331,9 +352,14 @@ function notifications_content(&$a) {
$notif_content .= t('No more system notifications.'); $notif_content .= t('No more system notifications.');
} }
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('System Notifications'), '$notif_header' => t('System Notifications'),
'$tabs' => $tabs, '$tabs_data' => $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
@ -426,9 +452,14 @@ function notifications_content(&$a) {
$notif_content = t('No more personal notifications.'); $notif_content = t('No more personal notifications.');
} }
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('Personal Notifications'), '$notif_header' => t('Personal Notifications'),
'$tabs' => $tabs, '$tabs_data' => $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
@ -507,9 +538,14 @@ function notifications_content(&$a) {
$notif_content = t('No more home notifications.'); $notif_content = t('No more home notifications.');
} }
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('Home Notifications'), '$notif_header' => t('Home Notifications'),
'$tabs' => $tabs, '$tabs_data' => $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
} }

View file

@ -61,13 +61,18 @@ function notify_content(&$a) {
$notif_content .= t('No more system notifications.'); $notif_content .= t('No more system notifications.');
} }
$o .= replace_macros($notif_tpl,array( $includes = array(
'$common_tabs' => 'common_tabs.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($notif_tpl,$includes + array(
'$notif_header' => t('System Notifications'), '$notif_header' => t('System Notifications'),
'$tabs' => '', // $tabs, '$tabs_data' => '', // $tabs,
'$notif_content' => $notif_content, '$notif_content' => $notif_content,
)); ));
return $o; return $o;
} }

View file

@ -1039,6 +1039,16 @@ function photos_content(&$a) {
$tpl = get_markup_template('photos_upload.tpl'); $tpl = get_markup_template('photos_upload.tpl');
if($a->theme['template_engine'] === 'internal') {
$albumselect_e = template_escape($albumselect);
$aclselect_e = (($visitor) ? '' : template_escape(populate_acl($a->user, $celeb)));
}
else {
$albumselect_e = $albumselect;
$aclselect_e = (($visitor) ? '' : populate_acl($a->user, $celeb));
}
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$pagename' => t('Upload Photos'), '$pagename' => t('Upload Photos'),
'$sessid' => session_id(), '$sessid' => session_id(),
@ -1047,9 +1057,9 @@ function photos_content(&$a) {
'$newalbum' => t('New album name: '), '$newalbum' => t('New album name: '),
'$existalbumtext' => t('or existing album name: '), '$existalbumtext' => t('or existing album name: '),
'$nosharetext' => t('Do not show a status post for this upload'), '$nosharetext' => t('Do not show a status post for this upload'),
'$albumselect' => template_escape($albumselect), '$albumselect' => $albumselect_e,
'$permissions' => t('Permissions'), '$permissions' => t('Permissions'),
'$aclselect' => (($visitor) ? '' : template_escape(populate_acl($a->user, $celeb))), '$aclselect' => $aclselect_e,
'$uploader' => $ret['addon_text'], '$uploader' => $ret['addon_text'],
'$default' => (($ret['default_upload']) ? $default_upload : ''), '$default' => (($ret['default_upload']) ? $default_upload : ''),
'$uploadurl' => $ret['post_url'] '$uploadurl' => $ret['post_url']
@ -1092,10 +1102,18 @@ function photos_content(&$a) {
if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) { if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
if($can_post) { if($can_post) {
$edit_tpl = get_markup_template('album_edit.tpl'); $edit_tpl = get_markup_template('album_edit.tpl');
if($a->theme['template_engine'] === 'internal') {
$album_e = template_escape($album);
}
else {
$album_e = $album;
}
$o .= replace_macros($edit_tpl,array( $o .= replace_macros($edit_tpl,array(
'$nametext' => t('New album name: '), '$nametext' => t('New album name: '),
'$nickname' => $a->data['user']['nickname'], '$nickname' => $a->data['user']['nickname'],
'$album' => template_escape($album), '$album' => $album_e,
'$hexalbum' => bin2hex($album), '$hexalbum' => bin2hex($album),
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$dropsubmit' => t('Delete Album') '$dropsubmit' => t('Delete Album')
@ -1135,6 +1153,15 @@ function photos_content(&$a) {
$ext = $phototypes[$rr['type']]; $ext = $phototypes[$rr['type']];
if($a->theme['template_engine'] === 'internal') {
$imgalt_e = template_escape($rr['filename']);
$desc_e = template_escape($rr['desc']);
}
else {
$imgalt_e = $rr['filename'];
$desc_e = $rr['desc'];
}
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$id' => $rr['id'], '$id' => $rr['id'],
'$twist' => ' ' . $twist . rand(2,4), '$twist' => ' ' . $twist . rand(2,4),
@ -1142,8 +1169,8 @@ function photos_content(&$a) {
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''), . (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''),
'$phototitle' => t('View Photo'), '$phototitle' => t('View Photo'),
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext, '$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext,
'$imgalt' => template_escape($rr['filename']), '$imgalt' => $imgalt_e,
'$desc'=> template_escape($rr['desc']) '$desc'=> $desc_e
)); ));
} }
@ -1344,20 +1371,32 @@ function photos_content(&$a) {
$edit = Null; $edit = Null;
if(($cmd === 'edit') && ($can_post)) { if(($cmd === 'edit') && ($can_post)) {
$edit_tpl = get_markup_template('photo_edit.tpl'); $edit_tpl = get_markup_template('photo_edit.tpl');
if($a->theme['template_engine'] === 'internal') {
$album_e = template_escape($ph[0]['album']);
$caption_e = template_escape($ph[0]['desc']);
$aclselect_e = template_escape(populate_acl($ph[0]));
}
else {
$album_e = $ph[0]['album'];
$caption_e = $ph[0]['desc'];
$aclselect_e = populate_acl($ph[0]);
}
$edit = replace_macros($edit_tpl, array( $edit = replace_macros($edit_tpl, array(
'$id' => $ph[0]['id'], '$id' => $ph[0]['id'],
'$rotatecw' => t('Rotate CW (right)'), '$rotatecw' => t('Rotate CW (right)'),
'$rotateccw' => t('Rotate CCW (left)'), '$rotateccw' => t('Rotate CCW (left)'),
'$album' => template_escape($ph[0]['album']), '$album' => $album_e,
'$newalbum' => t('New album name'), '$newalbum' => t('New album name'),
'$nickname' => $a->data['user']['nickname'], '$nickname' => $a->data['user']['nickname'],
'$resource_id' => $ph[0]['resource-id'], '$resource_id' => $ph[0]['resource-id'],
'$capt_label' => t('Caption'), '$capt_label' => t('Caption'),
'$caption' => template_escape($ph[0]['desc']), '$caption' => $caption_e,
'$tag_label' => t('Add a Tag'), '$tag_label' => t('Add a Tag'),
'$tags' => $link_item['tag'], '$tags' => $link_item['tag'],
'$permissions' => t('Permissions'), '$permissions' => t('Permissions'),
'$aclselect' => template_escape(populate_acl($ph[0])), '$aclselect' => $aclselect_e,
'$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'), '$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
'$item_id' => ((count($linked_items)) ? $link_item['id'] : 0), '$item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -1488,14 +1527,25 @@ function photos_content(&$a) {
$drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete'))); $drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
if($a->theme['template_engine'] === 'internal') {
$name_e = template_escape($profile_name);
$title_e = template_escape($item['title']);
$body_e = template_escape(bbcode($item['body']));
}
else {
$name_e = $profile_name;
$title_e = $item['title'];
$body_e = bbcode($item['body']);
}
$comments .= replace_macros($template,array( $comments .= replace_macros($template,array(
'$id' => $item['item_id'], '$id' => $item['item_id'],
'$profile_url' => $profile_link, '$profile_url' => $profile_link,
'$name' => template_escape($profile_name), '$name' => $name_e,
'$thumb' => $profile_avatar, '$thumb' => $profile_avatar,
'$sparkle' => $sparkle, '$sparkle' => $sparkle,
'$title' => template_escape($item['title']), '$title' => $title_e,
'$body' => template_escape(bbcode($item['body'])), '$body' => $body_e,
'$ago' => relative_date($item['created']), '$ago' => relative_date($item['created']),
'$indent' => (($item['parent'] != $item['item_id']) ? ' comment' : ''), '$indent' => (($item['parent'] != $item['item_id']) ? ' comment' : ''),
'$drop' => $drop, '$drop' => $drop,
@ -1531,20 +1581,34 @@ function photos_content(&$a) {
} }
$photo_tpl = get_markup_template('photo_view.tpl'); $photo_tpl = get_markup_template('photo_view.tpl');
if($a->theme['template_engine'] === 'internal') {
$album_e = array($album_link,template_escape($ph[0]['album']));
$tags_e = template_escape($tags);
$like_e = template_escape($like);
$dislike_e = template_escape($dislike);
}
else {
$album_e = array($album_link,$ph[0]['album']);
$tags_e = $tags;
$like_e = $like;
$dislike_e = $dislike;
}
$o .= replace_macros($photo_tpl, array( $o .= replace_macros($photo_tpl, array(
'$id' => $ph[0]['id'], '$id' => $ph[0]['id'],
'$album' => array($album_link,template_escape($ph[0]['album'])), '$album' => $album_e,
'$tools' => $tools, '$tools' => $tools,
'$lock' => $lock, '$lock' => $lock,
'$photo' => $photo, '$photo' => $photo,
'$prevlink' => $prevlink, '$prevlink' => $prevlink,
'$nextlink' => $nextlink, '$nextlink' => $nextlink,
'$desc' => $ph[0]['desc'], '$desc' => $ph[0]['desc'],
'$tags' => template_escape($tags), '$tags' => $tags_e,
'$edit' => $edit, '$edit' => $edit,
'$likebuttons' => $likebuttons, '$likebuttons' => $likebuttons,
'$like' => template_escape($like), '$like' => $like_e,
'$dislike' => template_escape($dislike), '$dislike' => $dikslike_e,
'$comments' => $comments, '$comments' => $comments,
'$paginate' => $paginate, '$paginate' => $paginate,
)); ));
@ -1588,16 +1652,25 @@ function photos_content(&$a) {
$twist = 'rotright'; $twist = 'rotright';
$ext = $phototypes[$rr['type']]; $ext = $phototypes[$rr['type']];
if($a->theme['template_engine'] === 'internal') {
$alt_e = template_escape($rr['filename']);
$name_e = template_escape($rr['album']);
}
else {
$alt_e = $rr['filename'];
$name_e = $rr['album'];
}
$photos[] = array( $photos[] = array(
'id' => $rr['id'], 'id' => $rr['id'],
'twist' => ' ' . $twist . rand(2,4), 'twist' => ' ' . $twist . rand(2,4),
'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'], 'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'],
'title' => t('View Photo'), 'title' => t('View Photo'),
'src' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . ((($rr['scale']) == 6) ? 4 : $rr['scale']) . '.' . $ext, 'src' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . ((($rr['scale']) == 6) ? 4 : $rr['scale']) . '.' . $ext,
'alt' => template_escape($rr['filename']), 'alt' => $alt_e,
'album' => array( 'album' => array(
'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']), 'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']),
'name' => template_escape($rr['album']), 'name' => $name_e,
'alt' => t('View Album'), 'alt' => t('View Album'),
), ),
@ -1606,7 +1679,13 @@ function photos_content(&$a) {
} }
$tpl = get_markup_template('photos_recent.tpl'); $tpl = get_markup_template('photos_recent.tpl');
$o .= replace_macros($tpl,array(
$includes = array(
'$photo_top' => 'photo_top.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl,$includes + array(
'$title' => t('Recent Photos'), '$title' => t('Recent Photos'),
'$can_post' => $can_post, '$can_post' => $can_post,
'$upload' => array(t('Upload New Photos'), $a->get_baseurl().'/photos/'.$a->data['user']['nickname'].'/upload'), '$upload' => array(t('Upload New Photos'), $a->get_baseurl().'/photos/'.$a->data['user']['nickname'].'/upload'),

View file

@ -147,7 +147,13 @@ function poco_init(&$a) {
if($format === 'xml') { if($format === 'xml') {
header('Content-type: text/xml'); header('Content-type: text/xml');
echo replace_macros(get_markup_template('poco_xml.tpl'),array_xmlify(array('$response' => $ret)));
$includes = array(
'$poco_entry_xml' => 'poco_entry_xml.tpl'
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
echo replace_macros(get_markup_template('poco_xml.tpl'),array_xmlify($includes + array('$response' => $ret)));
http_status_exit(500); http_status_exit(500);
} }
if($format === 'json') { if($format === 'json') {
@ -159,4 +165,4 @@ function poco_init(&$a) {
http_status_exit(500); http_status_exit(500);
} }

View file

@ -33,6 +33,7 @@ function profile_init(&$a) {
auto_redir($a, $which); auto_redir($a, $which);
} }
$a->theme["template_engine"] = 'internal'; // reset the template engine to the default in case the user's theme doesn't specify one
profile_load($a,$which,$profile); profile_load($a,$which,$profile);
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);

View file

@ -313,8 +313,8 @@ function profile_photo_crop_ui_head(&$a, $ph){
$a->config['imagecrop'] = $hash; $a->config['imagecrop'] = $hash;
$a->config['imagecrop_resolution'] = $smallest; $a->config['imagecrop_resolution'] = $smallest;
$a->config['imagecrop_ext'] = $ph->getExt(); $a->config['imagecrop_ext'] = $ph->getExt();
$a->page['htmlhead'] .= get_markup_template("crophead.tpl"); $a->page['htmlhead'] .= replace_macros(get_markup_template("crophead.tpl"), array());
$a->page['end'] .= get_markup_template("cropend.tpl"); $a->page['end'] .= replace_macros(get_markup_template("cropend.tpl"), array());
return; return;
}} }}

View file

@ -554,7 +554,13 @@ function settings_content(&$a) {
if(($a->argc > 2) && ($a->argv[2] === 'add')) { if(($a->argc > 2) && ($a->argv[2] === 'add')) {
$tpl = get_markup_template("settings_oauth_edit.tpl"); $tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
$includes = array(
'$field_input' => 'field_input.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$form_security_token' => get_form_security_token("settings_oauth"), '$form_security_token' => get_form_security_token("settings_oauth"),
'$title' => t('Add application'), '$title' => t('Add application'),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -580,7 +586,13 @@ function settings_content(&$a) {
$app = $r[0]; $app = $r[0];
$tpl = get_markup_template("settings_oauth_edit.tpl"); $tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
$includes = array(
'$field_input' => 'field_input.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$form_security_token' => get_form_security_token("settings_oauth"), '$form_security_token' => get_form_security_token("settings_oauth"),
'$title' => t('Add application'), '$title' => t('Add application'),
'$submit' => t('Update'), '$submit' => t('Update'),
@ -663,12 +675,17 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_features.tpl"); $tpl = get_markup_template("settings_features.tpl");
$o .= replace_macros($tpl, array(
$includes = array(
'$field_yesno' => 'field_yesno.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$form_security_token' => get_form_security_token("settings_features"), '$form_security_token' => get_form_security_token("settings_features"),
'$title' => t('Additional Features'), '$title' => t('Additional Features'),
'$features' => $arr, '$features' => $arr,
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$field_yesno' => 'field_yesno.tpl',
)); ));
return $o; return $o;
} }
@ -715,7 +732,17 @@ function settings_content(&$a) {
$mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : ''); $mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : '');
} }
$o .= replace_macros($tpl, array(
$includes = array(
'$field_checkbox' => 'field_checkbox.tpl',
'$field_input' => 'field_input.tpl',
'$field_select' => 'field_select.tpl',
'$field_custom' => 'field_custom.tpl',
'$field_password' => 'field_password.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$form_security_token' => get_form_security_token("settings_connectors"), '$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'), '$title' => t('Connector Settings'),
@ -805,7 +832,15 @@ function settings_content(&$a) {
} }
$tpl = get_markup_template("settings_display.tpl"); $tpl = get_markup_template("settings_display.tpl");
$o = replace_macros($tpl, array(
$includes = array(
'$field_themeselect' => 'field_themeselect.tpl',
'$field_checkbox' => 'field_checkbox.tpl',
'$field_input' => 'field_input.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o = replace_macros($tpl, $includes + array(
'$ptitle' => t('Display Settings'), '$ptitle' => t('Display Settings'),
'$form_security_token' => get_form_security_token("settings_display"), '$form_security_token' => get_form_security_token("settings_display"),
'$submit' => t('Submit'), '$submit' => t('Submit'),
@ -891,7 +926,13 @@ function settings_content(&$a) {
$pageset_tpl = get_markup_template('pagetypes.tpl'); $pageset_tpl = get_markup_template('pagetypes.tpl');
$pagetype = replace_macros($pageset_tpl,array(
$includes = array(
'$field_radio' => 'field_radio.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$pagetype = replace_macros($pageset_tpl,$includes + array(
'$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL,
t('This account is a normal personal profile'), t('This account is a normal personal profile'),
($a->user['page-flags'] == PAGE_NORMAL)), ($a->user['page-flags'] == PAGE_NORMAL)),
@ -1012,7 +1053,17 @@ function settings_content(&$a) {
require_once('include/group.php'); require_once('include/group.php');
$group_select = mini_group_select(local_user(),$a->user['def_gid']); $group_select = mini_group_select(local_user(),$a->user['def_gid']);
$o .= replace_macros($stpl,array( $includes = array(
'$field_password' => 'field_password.tpl',
'$field_input' => 'field_input.tpl',
'$field_custom' => 'field_custom.tpl',
'$field_checkbox' => 'field_checkbox.tpl',
'$field_yesno' => 'field_yesno.tpl',
'$field_intcheckbox' => 'field_intcheckbox.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($stpl,$includes + array(
'$ptitle' => t('Account Settings'), '$ptitle' => t('Account Settings'),
'$submit' => t('Submit'), '$submit' => t('Submit'),

View file

@ -60,13 +60,19 @@ function uimport_content(&$a) {
$tpl = get_markup_template("uimport.tpl"); $tpl = get_markup_template("uimport.tpl");
return replace_macros($tpl, array(
$includes = array(
'$field_custom' => 'field_custom.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
return replace_macros($tpl, $includes + array(
'$regbutt' => t('Import'), '$regbutt' => t('Import'),
'$import' => array( '$import' => array(
'title' => t("Move account"), 'title' => t("Move account"),
'text' => t("You can import an account from another Friendica server. <br> 'intro' => t("You can import an account from another Friendica server."),
You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here.<br> 'instruct' => t("You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."),
<b>This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from diaspora"), 'warn' => t("This feature is experimental. We can't import contacts from the OStatus network (statusnet/identi.ca) or from Diaspora"),
'field' => array('accountfile', t('Account file'),'<input id="id_accountfile" name="accountfile" type="file">', t('To export your accont, go to "Settings->Export your porsonal data" and select "Export account"')), 'field' => array('accountfile', t('Account file'),'<input id="id_accountfile" name="accountfile" type="file">', t('To export your accont, go to "Settings->Export your porsonal data" and select "Export account"')),
), ),
)); ));

View file

@ -72,7 +72,13 @@ function viewcontacts_content(&$a) {
$tpl = get_markup_template("viewcontact_template.tpl"); $tpl = get_markup_template("viewcontact_template.tpl");
$o .= replace_macros($tpl, array(
$includes = array(
'$contact_template' => 'contact_template.tpl',
);
$includes = set_template_includes($a->theme['template_engine'], $includes);
$o .= replace_macros($tpl, $includes + array(
'$title' => t('View Contacts'), '$title' => t('View Contacts'),
'$contacts' => $contacts, '$contacts' => $contacts,
'$paginate' => paginate($a), '$paginate' => paginate($a),

View file

@ -28,7 +28,8 @@ function xrd_init(&$a) {
header("Content-type: text/xml"); header("Content-type: text/xml");
if(get_config('system','diaspora_enabled')) { if(get_config('system','diaspora_enabled')) {
$tpl = file_get_contents('view/xrd_diaspora.tpl'); //$tpl = file_get_contents('view/xrd_diaspora.tpl');
$tpl = get_markup_template('xrd_diaspora.tpl');
$dspr = replace_macros($tpl,array( $dspr = replace_macros($tpl,array(
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$dspr_guid' => $r[0]['guid'], '$dspr_guid' => $r[0]['guid'],
@ -38,7 +39,8 @@ function xrd_init(&$a) {
else else
$dspr = ''; $dspr = '';
$tpl = file_get_contents('view/xrd_person.tpl'); //$tpl = file_get_contents('view/xrd_person.tpl');
$tpl = get_markup_template('xrd_person.tpl');
$o = replace_macros($tpl, array( $o = replace_macros($tpl, array(
'$nick' => $r[0]['nickname'], '$nick' => $r[0]['nickname'],

198
mods/friendica-to-smarty-tpl.py Executable file
View file

@ -0,0 +1,198 @@
#!/usr/bin/python
#
# Script to convert Friendica internal template files into Smarty template files
# Copyright 2012 Zach Prezkuta
# Licensed under GPL v3
import os, re, string
ldelim = '{{'
rdelim = '}}'
def fToSmarty(matches):
match = matches.group(0)
if match == '$j':
return match
match = string.replace(match, '[', '')
match = string.replace(match, ']', '')
ldel = ldelim
rdel = rdelim
if match.find("'") > -1:
match = string.replace(match, "'", '')
ldel = "'" + ldel
rdel = rdel + "'"
elif match.find('"') > -1:
match = string.replace(match, '"', '')
ldel = '"' + ldel
rdel = rdel + '"'
return ldel + match + rdel
def fix_element(element):
# Much of the positioning here is important, e.g. if you do element.find('if ') before you do
# element.find('endif'), then you may get some multiply-replaced delimiters
if element.find('endif') > -1:
element = ldelim + '/if' + rdelim
return element
if element.find('if ') > -1:
element = string.replace(element, '{{ if', ldelim + 'if')
element = string.replace(element, '{{if', ldelim + 'if')
element = string.replace(element, ' }}', rdelim)
element = string.replace(element, '}}', rdelim)
return element
if element.find('else') > -1:
element = ldelim + 'else' + rdelim
return element
if element.find('endfor') > -1:
element = ldelim + '/foreach' + rdelim
return element
if element.find('for ') > -1:
element = string.replace(element, '{{ for ', ldelim + 'foreach ')
element = string.replace(element, '{{for ', ldelim + 'foreach ')
element = string.replace(element, ' }}', rdelim)
element = string.replace(element, '}}', rdelim)
return element
if element.find('endinc') > -1:
element = ''
return element
if element.find('inc ') > -1:
parts = element.split(' ')
element = ldelim + 'include file="'
# We need to find the file name. It'll either be in parts[1] if the element was written as {{ inc file.tpl }}
# or it'll be in parts[2] if the element was written as {{inc file.tpl}}
if parts[0].find('inc') > -1:
first = 0
else:
first = 1
if parts[first+1][0] == '$':
# This takes care of elements where the filename is a variable, e.g. {{ inc $file }}
element += 'file:' + ldelim + parts[first+1].rstrip('}') + rdelim
else:
# This takes care of elements where the filename is a path, e.g. {{ inc file.tpl }}
element += parts[first+1].rstrip('}')
element += '"'
if len(parts) > first + 1 and parts[first+2] == 'with':
# Take care of variable substitutions, e.g. {{ inc file.tpl with $var=this_var }}
element += ' ' + parts[first+3].rstrip('}')[1:]
element += rdelim
return element
def convert(filename, tofilename, php_tpl):
for line in filename:
newline = ''
st_pos = 0
brack_pos = line.find('{{')
if php_tpl:
# If php_tpl is True, this script will only convert variables in quotes, like '$variable'
# or "$variable". This is for .tpl files that produce PHP scripts, where you don't want
# all the PHP variables converted into Smarty variables
pattern1 = re.compile(r"""
([\'\"]\$\[[a-zA-Z]\w*
(\.
(\d+|[a-zA-Z][\w-]*)
)*
(\|[\w\$:\.]*)*
\][\'\"])
""", re.VERBOSE)
pattern2 = re.compile(r"""
([\'\"]\$[a-zA-Z]\w*
(\.
(\d+|[a-zA-Z][\w-]*)
)*
(\|[\w\$:\.]*)*
[\'\"])
""", re.VERBOSE)
else:
# Compile the pattern for bracket-style variables, e.g. $[variable.key|filter:arg1:arg2|filter2:arg1:arg2]
# Note that dashes are only allowed in array keys if the key doesn't start
# with a number, e.g. $[variable.key-id] is ok but $[variable.12-id] isn't
#
# Doesn't currently process the argument position key 'x', i.e. filter:arg1:x:arg2 doesn't get
# changed to arg1|filter:variable:arg2 like Smarty requires
#
# Filter arguments can be variables, e.g. $variable, but currently can't have array keys with dashes
# like filter:$variable.key-name
pattern1 = re.compile(r"""
(\$\[[a-zA-Z]\w*
(\.
(\d+|[a-zA-Z][\w-]*)
)*
(\|[\w\$:\.]*)*
\])
""", re.VERBOSE)
# Compile the pattern for normal style variables, e.g. $variable.key
pattern2 = re.compile(r"""
(\$[a-zA-Z]\w*
(\.
(\d+|[a-zA-Z][\w-]*)
)*
(\|[\w\$:\.]*)*
)
""", re.VERBOSE)
while brack_pos > -1:
if brack_pos > st_pos:
line_segment = line[st_pos:brack_pos]
line_segment = pattern2.sub(fToSmarty, line_segment)
newline += pattern1.sub(fToSmarty, line_segment)
end_brack_pos = line.find('}}', brack_pos)
if end_brack_pos < 0:
print "Error: no matching bracket found"
newline += fix_element(line[brack_pos:end_brack_pos + 2])
st_pos = end_brack_pos + 2
brack_pos = line.find('{{', st_pos)
line_segment = line[st_pos:]
line_segment = pattern2.sub(fToSmarty, line_segment)
newline += pattern1.sub(fToSmarty, line_segment)
newline = newline.replace("{#", ldelim + "*")
newline = newline.replace("#}", "*" + rdelim)
tofilename.write(newline)
path = raw_input('Path to template folder to convert: ')
if path[-1:] != '/':
path = path + '/'
outpath = path + 'smarty3/'
if not os.path.exists(outpath):
os.makedirs(outpath)
files = os.listdir(path)
for a_file in files:
if a_file == 'htconfig.tpl':
php_tpl = True
else:
php_tpl = False
filename = os.path.join(path,a_file)
ext = a_file.split('.')[-1]
if os.path.isfile(filename) and ext == 'tpl':
with open(filename, 'r') as f:
newfilename = os.path.join(outpath,a_file)
with open(newfilename, 'w') as outf:
print "Converting " + filename + " to " + newfilename
convert(f, outf, php_tpl)

View file

@ -216,6 +216,23 @@ class Item extends BaseObject {
list($categories, $folders) = get_cats_and_terms($item); list($categories, $folders) = get_cats_and_terms($item);
if($a->theme['template_engine'] === 'internal') {
$body_e = template_escape($body);
$text_e = strip_tags(template_escape($body));
$name_e = template_escape($profile_name);
$title_e = template_escape($item['title']);
$location_e = template_escape($location);
$owner_name_e = template_escape($this->get_owner_name());
}
else {
$body_e = $body;
$text_e = strip_tags($body);
$name_e = $profile_name;
$title_e = $item['title'];
$location_e = $location;
$owner_name_e = $this->get_owner_name();
}
$tmp_item = array( $tmp_item = array(
'template' => $this->get_template(), 'template' => $this->get_template(),
@ -229,8 +246,8 @@ class Item extends BaseObject {
'has_folders' => ((count($folders)) ? 'true' : ''), 'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories, 'categories' => $categories,
'folders' => $folders, 'folders' => $folders,
'body' => template_escape($body), 'body' => $body_e,
'text' => strip_tags(template_escape($body)), 'text' => $text_e,
'id' => $this->get_id(), 'id' => $this->get_id(),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $this->get_owner_name(), ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $this->get_owner_name(), ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])),
@ -240,20 +257,20 @@ class Item extends BaseObject {
'vwall' => t('via Wall-To-Wall:'), 'vwall' => t('via Wall-To-Wall:'),
'profile_url' => $profile_link, 'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item), 'item_photo_menu' => item_photo_menu($item),
'name' => template_escape($profile_name), 'name' => $name_e,
'thumb' => $profile_avatar, 'thumb' => $profile_avatar,
'osparkle' => $osparkle, 'osparkle' => $osparkle,
'sparkle' => $sparkle, 'sparkle' => $sparkle,
'title' => template_escape($item['title']), 'title' => $title_e,
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock, 'lock' => $lock,
'location' => template_escape($location), 'location' => $location_e,
'indent' => $indent, 'indent' => $indent,
'shiny' => $shiny, 'shiny' => $shiny,
'owner_url' => $this->get_owner_url(), 'owner_url' => $this->get_owner_url(),
'owner_photo' => $this->get_owner_photo(), 'owner_photo' => $this->get_owner_photo(),
'owner_name' => template_escape($this->get_owner_name()), 'owner_name' => $owner_name_e,
'plink' => get_plink($item), 'plink' => get_plink($item),
'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''), 'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
'isstarred' => $isstarred, 'isstarred' => $isstarred,
@ -268,6 +285,7 @@ class Item extends BaseObject {
'comment' => $this->get_comment_box($indent), 'comment' => $this->get_comment_box($indent),
'previewing' => ($conv->is_preview() ? ' preview ' : ''), 'previewing' => ($conv->is_preview() ? ' preview ' : ''),
'wait' => t('Please wait'), 'wait' => t('Please wait'),
'remove' => t('remove'),
'thread_level' => $thread_level 'thread_level' => $thread_level
); );
@ -467,11 +485,20 @@ class Item extends BaseObject {
* Set template * Set template
*/ */
private function set_template($name) { private function set_template($name) {
$a = get_app();
if(!x($this->available_templates, $name)) { if(!x($this->available_templates, $name)) {
logger('[ERROR] Item::set_template : Template not available ("'. $name .'").', LOGGER_DEBUG); logger('[ERROR] Item::set_template : Template not available ("'. $name .'").', LOGGER_DEBUG);
return false; return false;
} }
$this->template = $this->available_templates[$name];
if($a->theme['template_engine'] === 'smarty3') {
$template_file = get_template_file($a, 'smarty3/' . $this->available_templates[$name]);
}
else {
$template_file = $this->available_templates[$name];
}
$this->template = $template_file;
} }
/** /**

View file

@ -4,9 +4,9 @@
<form action="$baseurl/admin/logs" method="post"> <form action="$baseurl/admin/logs" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'> <input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_checkbox.tpl with $field=$debugging }}{{ endinc }} {{ inc $field_checkbox with $field=$debugging }}{{ endinc }}
{{ inc field_input.tpl with $field=$logfile }}{{ endinc }} {{ inc $field_input with $field=$logfile }}{{ endinc }}
{{ inc field_select.tpl with $field=$loglevel }}{{ endinc }} {{ inc $field_select with $field=$loglevel }}{{ endinc }}
<div class="submit"><input type="submit" name="page_logs" value="$submit" /></div> <div class="submit"><input type="submit" name="page_logs" value="$submit" /></div>

View file

@ -84,10 +84,10 @@
<h3>Your friendica installation is not writable by web server.</h3> <h3>Your friendica installation is not writable by web server.</h3>
{{ if $canftp }} {{ if $canftp }}
<p>You can try to update via FTP</p> <p>You can try to update via FTP</p>
{{ inc field_input.tpl with $field=$ftphost }}{{ endinc }} {{ inc $field_input with $field=$ftphost }}{{ endinc }}
{{ inc field_input.tpl with $field=$ftppath }}{{ endinc }} {{ inc $field_input with $field=$ftppath }}{{ endinc }}
{{ inc field_input.tpl with $field=$ftpuser }}{{ endinc }} {{ inc $field_input with $field=$ftpuser }}{{ endinc }}
{{ inc field_password.tpl with $field=$ftppwd }}{{ endinc }} {{ inc $field_password with $field=$ftppwd }}{{ endinc }}
<div class="submit"><input type="submit" name="remoteupdate" value="$submit" /></div> <div class="submit"><input type="submit" name="remoteupdate" value="$submit" /></div>
{{ endif }} {{ endif }}
{{ endif }} {{ endif }}

View file

@ -41,55 +41,55 @@
<form action="$baseurl/admin/site" method="post"> <form action="$baseurl/admin/site" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'> <input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_input.tpl with $field=$sitename }}{{ endinc }} {{ inc $field_input with $field=$sitename }}{{ endinc }}
{{ inc field_textarea.tpl with $field=$banner }}{{ endinc }} {{ inc $field_textarea with $field=$banner }}{{ endinc }}
{{ inc field_select.tpl with $field=$language }}{{ endinc }} {{ inc $field_select with $field=$language }}{{ endinc }}
{{ inc field_select.tpl with $field=$theme }}{{ endinc }} {{ inc $field_select with $field=$theme }}{{ endinc }}
{{ inc field_select.tpl with $field=$theme_mobile }}{{ endinc }} {{ inc $field_select with $field=$theme_mobile }}{{ endinc }}
{{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }} {{ inc $field_select with $field=$ssl_policy }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
<h3>$registration</h3> <h3>$registration</h3>
{{ inc field_input.tpl with $field=$register_text }}{{ endinc }} {{ inc $field_input with $field=$register_text }}{{ endinc }}
{{ inc field_select.tpl with $field=$register_policy }}{{ endinc }} {{ inc $field_select with $field=$register_policy }}{{ endinc }}
{{ inc field_input.tpl with $field=$daily_registrations }}{{ endinc }} {{ inc $field_input with $field=$daily_registrations }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }} {{ inc $field_checkbox with $field=$no_multi_reg }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }} {{ inc $field_checkbox with $field=$no_openid }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }} {{ inc $field_checkbox with $field=$no_regfullname }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
<h3>$upload</h3> <h3>$upload</h3>
{{ inc field_input.tpl with $field=$maximagesize }}{{ endinc }} {{ inc $field_input with $field=$maximagesize }}{{ endinc }}
{{ inc field_input.tpl with $field=$maximagelength }}{{ endinc }} {{ inc $field_input with $field=$maximagelength }}{{ endinc }}
{{ inc field_input.tpl with $field=$jpegimagequality }}{{ endinc }} {{ inc $field_input with $field=$jpegimagequality }}{{ endinc }}
<h3>$corporate</h3> <h3>$corporate</h3>
{{ inc field_input.tpl with $field=$allowed_sites }}{{ endinc }} {{ inc $field_input with $field=$allowed_sites }}{{ endinc }}
{{ inc field_input.tpl with $field=$allowed_email }}{{ endinc }} {{ inc $field_input with $field=$allowed_email }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$block_public }}{{ endinc }} {{ inc $field_checkbox with $field=$block_public }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }} {{ inc $field_checkbox with $field=$force_publish }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }} {{ inc $field_checkbox with $field=$no_community_page }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$ostatus_disabled }}{{ endinc }} {{ inc $field_checkbox with $field=$ostatus_disabled }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }} {{ inc $field_checkbox with $field=$diaspora_enabled }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }} {{ inc $field_checkbox with $field=$dfrn_only }}{{ endinc }}
{{ inc field_input.tpl with $field=$global_directory }}{{ endinc }} {{ inc $field_input with $field=$global_directory }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }} {{ inc $field_checkbox with $field=$thread_allow }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }} {{ inc $field_checkbox with $field=$newuser_private }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
<h3>$advanced</h3> <h3>$advanced</h3>
{{ inc field_checkbox.tpl with $field=$no_utf }}{{ endinc }} {{ inc $field_checkbox with $field=$no_utf }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$verifyssl }}{{ endinc }} {{ inc $field_checkbox with $field=$verifyssl }}{{ endinc }}
{{ inc field_input.tpl with $field=$proxy }}{{ endinc }} {{ inc $field_input with $field=$proxy }}{{ endinc }}
{{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }} {{ inc $field_input with $field=$proxyuser }}{{ endinc }}
{{ inc field_input.tpl with $field=$timeout }}{{ endinc }} {{ inc $field_input with $field=$timeout }}{{ endinc }}
{{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }} {{ inc $field_input with $field=$delivery_interval }}{{ endinc }}
{{ inc field_input.tpl with $field=$poll_interval }}{{ endinc }} {{ inc $field_input with $field=$poll_interval }}{{ endinc }}
{{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }} {{ inc $field_input with $field=$maxloadavg }}{{ endinc }}
{{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }} {{ inc $field_input with $field=$abandon_days }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View file

@ -1,5 +1,7 @@
<!-- TEMPLATE APPEARS UNUSED -->
<users type="array"> <users type="array">
{{for $users as $user }} {{for $users as $u }}
{{inc api_user_xml.tpl }}{{endinc}} {{inc $api_user_xml with $user=$u }}{{endinc}}
{{endfor}} {{endfor}}
</users> </users>

View file

@ -10,7 +10,7 @@
<in_reply_to_screen_name>$status.in_reply_to_screen_name</in_reply_to_screen_name> <in_reply_to_screen_name>$status.in_reply_to_screen_name</in_reply_to_screen_name>
<geo>$status.geo</geo> <geo>$status.geo</geo>
<favorited>$status.favorited</favorited> <favorited>$status.favorited</favorited>
{{ inc api_user_xml.tpl with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html> {{ inc $api_user_xml with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html>
<statusnet:conversation_id>$status.statusnet_conversation_id</statusnet:conversation_id> <statusnet:conversation_id>$status.statusnet_conversation_id</statusnet:conversation_id>
<url>$status.url</url> <url>$status.url</url>
<coordinates>$status.coordinates</coordinates> <coordinates>$status.coordinates</coordinates>

View file

@ -0,0 +1,18 @@
Apreciat/da {{$username}},
'{{$from}}' ha comentat un element/conversació que estàs seguint.
-----
{{$body}}
-----
Accedeix a {{$siteurl}} per a veure la conversa completa:
{{$display}}
{{$sitename}}

View file

@ -0,0 +1,13 @@
Apreciat/da {{$myname}},
Tens un nou seguidor en {{$sitename}} - '{{$requestor}}'.
Pots visitar el seu perfil en {{$url}}.
Iniciï sessió en el seu lloc per a aprovar o rebutjar/cancelar la sol·licitud.
{{$siteurl}}
{{$sitename}}

View file

@ -0,0 +1,19 @@
Apreciat/da {{$username}},
Grans noticies... '{{$fn}}' a '{{$dfrn_url}}' ha acceptat la teva sol·licitud de connexió en '{{$sitename}}'.
Ara sous amics mutus i podreu intercanviar actualizacions de estatus, fotos, i correu electrónic
sense cap restricció.
Visita la teva pàgina de 'Contactes' en {{$sitename}} si desitja realizar qualsevol canvi en aquesta relació.
{{$siteurl}}
[Per exemple, pots crear un perfil independent amb informació que no esta disponible al públic en general
- i assignar drets de visualització a '{{$fn}}'].
{{$sitename}}

View file

@ -0,0 +1,68 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '{{$dbhost}}';
$db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '{{$urlpath}}';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '{{$timezone}}';
// What is your site name?
$a->config['sitename'] = "La Meva Xarxa d'Amics";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '{{$adminmail}}';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 200000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '{{$phpath}}';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;
// default system theme
$a->config['system']['theme'] = 'duepuntozero';

View file

@ -0,0 +1,21 @@
Apreciat/da {{$username}},
'{{$fn}}' en '{{$dfrn_url}}' ha acceptat la teva petició
connexió a '{{$sitename}}'.
'{{$fn}}' ha optat per acceptar-te com a "fan", que restringeix certes
formes de comunicació, com missatges privats i algunes interaccions
amb el perfil. Si ets una "celebritat" o una pàgina de comunitat,
aquests ajustos s'aplican automàticament
'{{$fn}}' pot optar per extendre aixó en una relació més permisiva
en el futur.
Començaràs a rebre les actualizacions públiques de estatus de '{{$fn}}',
que apareixeran a la teva pàgina "Xarxa" en
{{$siteurl}}
{{$sitename}}

View file

@ -0,0 +1,35 @@
Apreciat/da {{$username}},
S'ha rebut una sol·licitud en {{$sitename}} recentment per restablir
la teva contrasenya. Per confirmar aquesta sol·licitud, per favor seleccioni l'enllaç de
verificació sota o copia-ho i pega-ho en la barra d'adreces del teu navegador.
Si NO has sol·licitat aquest canvi, per favor NO segueixis l'enllaç indicat i ignora
i/o elimina aquest missatge.
La teva contrasenya no es canviarà tret que puguem verificar que ets la teva qui
va emetre aquesta sol·licitud.
Segueix aquest enllaç per verificar la teva identitat:
{{$reset_link}}
A continuació rebràs un missatge amb la nova contrasenya.
Després de accedir, podràs canviar la contrasenya del teu compte a la pàgina de
configuració.
Les dades d'accés són els següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Salutacions,
L'administració de {{$sitename}}

View file

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Mensaje de Friendica</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='{{$siteurl}}/images/friendica-32.png'><span style="padding:7px;">Friendica</span></td></tr>
<tr><td style="padding-top:22px;" colspan="2">Has rebut un nou missatge privat de '{{$from}}' en {{$siteName}}.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="font-weight:bold;padding-bottom:5px;">{{$title}}</td></tr>
<tr><td style="padding-right:22px;">{{$htmlversion}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Accedeix a <a href="{{$siteurl}}">{{$siteurl}}</a> per a llegir i respondre als teus missatges privats.</td></tr>
<tr><td></td><td>{{$siteName}}</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,9 @@
Has rebut un nou missatge privat de '{{$from}}' en {{$siteName}}.
{{$title}}
{{$textversion}}
Accedeix a {{$siteurl}} per a llegir i respondre als teus missatges privats.
{{$siteName}}

View file

@ -0,0 +1,19 @@
Apreciat/da {{$username}},
La teva contrasenya ha estat modificada com has sol·licitat. Pren nota d'aquesta informació
(o canvía immediatament la contrasenya amb quelcom que recordis).
Les teves dades d'accés son les següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Contrasenya: {{$new_password}}
Després d'accedir pots canviar la contrasenya des de la pàgina de configuració del teu perfil.
{{$sitename}}

View file

@ -0,0 +1,22 @@
Apreciat/da {{$username}},
Gràcies per registrar-te en {{$sitename}}. El teu compte ha estat creat.
Les dades d'accés són les següents:
Lloc: {{$siteurl}}
Nom: {{$email}}
Contrasenya: {{$password}}
Després d'accedir pots canviar la teva contrasenya a la pàgina de "Configuració".
Pren un moment per revisar les altres configuracions del compte en aquesta pàgina.
Gràcies i benvingut/da {{$sitename}}.

View file

@ -0,0 +1,23 @@
S'ha rebut la sol·licitud de registre d'un nou usuari en
{{$sitename}} que requereix la teva aprovació.
Les dades d'accés són els següents:
Nom Complet: {{$username}}
Lloc: {{$siteurl}}
Nom: {{$email}}
Per aprovar aquesta sol·licitud, visita el següent enllaç:
{{$siteurl}}/regmod/allow/{{$hash}}
Per denegar la sol·licitud i eliminar el compte, per favor visita:
{{$siteurl}}/regmod/deny/{{$hash}}
Gràcies.

View file

@ -0,0 +1,13 @@
Apreciat/da {{$myname}},
Acabes de rebre una sol·licitud de connexió de '{{$requestor}}' en {{$sitename}}.
Pots visitar el seu perfil en {{$url}}.
Accedeix al teu lloc per a veure la presentació completa i acceptar o ignorar/cancel·lar la sol·licitud.
{{$siteurl}}
{{$sitename}}

View file

@ -0,0 +1,18 @@
Apreciat/da {{$username}},
'{{$from}}' ha escrit quelcom en el mur del teu perfil.
-----
{{$body}}
-----
Accedeix a {{$siteurl}} per a veure o esborrar l'element:
{{$display}}
{{$sitename}}

View file

@ -65,7 +65,7 @@
{{ endif }} {{ endif }}
<div id="contact-edit-end" ></div> <div id="contact-edit-end" ></div>
{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}} {{inc $field_checkbox with $field=$hidden }}{{endinc}}
<div id="contact-edit-info-wrapper"> <div id="contact-edit-info-wrapper">
<h4>$lbl_info1</h4> <h4>$lbl_info1</h4>

View file

@ -14,8 +14,8 @@
$tabs $tabs
{{ for $contacts as $contact }} {{ for $contacts as $c }}
{{ inc contact_template.tpl }}{{ endinc }} {{ inc $contact_template with $contact=$c }}{{ endinc }}
{{ endfor }} {{ endfor }}
<div id="contact-edit-end"></div> <div id="contact-edit-end"></div>

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
-----
{{$body}}
-----
Přihlaste se na {{$siteurl}} pro zobrazení kompletní konverzace:
{{$display}}
Díky,
{{$sitename}} administrátor

View file

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica zpráva</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$from}} okomentoval položku/konverzaci, kterou následujete.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="padding-bottom:5px;"></td></tr>
<tr><td style="padding-right:22px;">{{$body}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Přihlaste se na <a href="{{$display}}">pro zobrazení kompletní konverzace</a>.</td></tr>
<tr><td></td><td>Díky,</td></tr>
<tr><td></td><td>{{$sitename}} administrátor</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
'{{$from}}' okommentoval položku/konverzaci, kterou následujete.
-----
{{$body}}
-----
Přihlaste se na {{$siteurl}} pro zobrazení kompletní konverzace:
{{$display}}
Díky,
{{$sitename}} administrátor

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
Máte nového následovatele na {{$sitename}} - '{{$requestor}}'.
Můžete si prohlédnout jeho/její profil na {{$url}}.
Přihlaste se na váš server k odsouhlasení nebo ignorování/zrušení žádosti.
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,17 @@
Milý/Milá {{$username}},
Skvělé zprávy... '{{$fn}}' na '{{$dfrn_url}}' odsouhlasil Váš požadavek na spojení na '{{$sitename}}'.
Jste nyní přátelé a můžete si vyměňovat aktualizace statusu, fotek a e-mailů bez omezení.
Pokud budete chtít tento vztah jakkoliv upravit, navštivte Vaši stránku "Kontakty" na {{$sitename}}.
{{$siteurl}}
(Nyní můžete například vytvořit separátní profil s informacemi, které nebudou viditelné veřejně, a nastavit právo pro zobrazení tohoto profilu pro '{{$fn}}').
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,73 @@
<?php
// Nastavte následující pro Vaši instalaci MySQL
// Zkopírujte nebo přejmenujte tento soubor na .htconfig.php
$db_host = '{{$dbhost}}';
$db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}';
// Pokud používáte podadresár z vaší domény, budete zde potřebovat zadat
// relativní cestu (od kořene vaší domény).
// Například pokud je URL adresa vaší instance 'http://priklad.cz/adresar/podadresar',
// nastavte $a->path na 'adresar/podadresar'.
$a->path = '{{$urlpath}}';
// Vyberte platnou defaultní časovou zónu. Pokud si nejste jistí, použijte use "Europe/Prague".
// Toto nastavení lze změnit i později a používá se pouze pro časové značky anonymních čtenářů.
$default_timezone = '{{$timezone}}';
// Jak se jmenuje Váš web?
$a->config['sitename'] = "Moje síť přátel";
// Nastavení defaultního jazyka webu
$a->config['system']['language'] = 'cs';
// Vaše možnosti jsou REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Ujistěte se, že jste si vytvořili Váš osobníúčet dříve, než nastavíte
// REGISTER_CLOSED. 'register_text' (pokud je nastaven) se bude zobrazovat jako první text na
// registrační stránce. REGISTER_APPROVE vyžaduje aby byl nastaven 'admin_email'
// na e-mailovou adresu již existující registrované osoby, která může autorizovat
// a/nebo schvalovat/odmítat žádosti o registraci.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '{{$adminmail}}';
// Maximální velikost importované zprávy, 0 je neomezeno
$a->config['max_import_size'] = 200000;
// maximální velikost nahrávaných fotografií
$a->config['system']['maximagesize'] = 800000;
// cesta k PHP command line processor
$a->config['php_path'] = '{{$phpath}}';
// URL adresy globálního adresáře.
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - také zvaný jako pubsubhubbub URL. Tímto zajistíte doručování veřejných přízpěvků stejně rychle jako těch soukromých
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) je defaultně povolen.
// Šifrování bude zajištěno pouze pokud je toto nastaveno na true a
// PHP mcrypt extension jsou nainstalována na obou systémech
$a->config['system']['rino_encrypt'] = true;
// defaultní systémové grafické téma
$a->config['system']['theme'] = 'duepuntozero';

View file

@ -0,0 +1,17 @@
Milý/Milá {{$username}},
'{{$fn}}' na '{{$dfrn_url}}' odsouhlasil Váš požadavek na spojení na '{{$sitename}}'.
'{{$fn}}' Vás označil za svého "fanouška", což jistým způsobem omezuje komunikaci (například v oblasti soukromých zpráv a některých profilových interakcí. Pokud je toto celebritní nebo komunitní stránka, bylo toto nastavení byla přijato automaticky.
'{{$fn}}' může v budoucnu rozšířit toto spojení na oboustranné nebo jinak méně restriktivní.
Nyní začnete dostávat veřejné aktualizace statusu od '{{$fn}}', které se objeví ve Vaší stránce "Síť" na webu
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,23 @@
Milý/Milá {{$username}},
Na webu {{$sitename}} byl zaregistrován požadavek na znovunastavení hesla k Vašemu účtu. Pro potvrzení této žádosti prosím klikněte na potvrzovací odkaz níže, nebo si tento odkaz zkopírujte do adresního řádku prohlížeče.
Pokud jste o znovunastavení hesla NEŽÁDALI, prosím NEKLIKEJTE na tento odkaz a ignorujte tento e-mail nebo ho rovnou smažte.
Vaše heslo nebude změněno, dokud nebudeme mít potvrzení, že jste o tento požadavek zažádali právě Vy.
Klikněte na tento odkaz pro prověření Vaší identity:
{{$reset_link}}
Poté obdržíte další zprávu obsahující nové heslo.
Následně si toto heslo můžete změnit z vašeho účtu na stránce Nastavení.
Přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica Zpráva</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$from}} Vám poslal(a) novou soukromou zprávu na {{$siteName}}.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="font-weight:bold;padding-bottom:5px;">{{$title}}</td></tr>
<tr><td style="padding-right:22px;">{{$htmlversion}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Přihlaste se na <a href="{{$siteurl}}">{{$siteurl}}<a/> pro čtení a zaslání odpovědí na Vaše soukromé zprávy.</td></tr>
<tr><td></td><td>Díky,</td></tr>
<tr><td></td><td>{{$siteName}} administrátor</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,10 @@
{{$from}} Vám poslal(a) novou soukromou zprávu na {{$siteName}}.
{{$title}}
{{$textversion}}
Přihlaste se na {{$siteurl}} pro čtení a zaslání odpovědí na Vaše soukromé zprávy.
Díky,
{{$siteName}} administrátor

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
Vaše heslo bylo na Vaši žádost změněno. Prosím zaznamenejte si tuto informaci (nebo si Vaše heslo změňte na nějaké, které si budete pamatovat).
Vaše přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Heslo: {{$new_password}}
Toto heslo si můžete změnit z vašeho účtu na stránce Nastavení poté, co se přihlásíte.
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,23 @@
Milý/milá {{$username}},
Díky za registraci na {{$sitename}}. Váš účet byl vytvořen.
Vaše přihlašovací údaje jsou tato:
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Heslo: {{$password}}
Toto heslo si můžete změnit z vašeho účtu na stránce "Nastavení" poté, co se přihlásíte.
Věnujte prosím chvíli revizi dalších nastavení Vašeho účtu na této stránce.
Můžete také přidat některé základní informace do Vašeho defaultního profilu (na stránce "Profily"), čímž umožníte jiným lidem Vás snadněji nalézt.
Doporučujeme nastavit celé jméno, přidat profilové foto, přidat nějaká profilová "klíčová slova" (což je velmi užitečné pro hledání nových přátel) a zemi, ve které žijete. Nemusíte zadávat víc informací.
Plně respektujeme Vaše právo na soukromí a žádná z výše uvedených položek není povinná.
Pokud jste nový a neznáte na tomto webu nikoho jiného, zadáním těchto položek můžete získat nové a zajímavé přátele.
Díky a vítejte na {{$sitename}}.
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,22 @@
Na webu {{$sitename}} byla vytvořena nová uživatelská registrace, která vyžaduje Vaše schválení.
Přihlašovací údaje jsou tato:
Celé jméno: {{$username}}
Adresa webu: {{$siteurl}}
Přihlašovací jméno: {{$email}}
Pro odsouhlasení tohoto požadavku prosím klikněte na následující odkaz:
{{$siteurl}}/regmod/allow/{{$hash}}
Pro zamítnutí žádosti a odstranění účtu prosím klikněte na tento odkaz:
{{$siteurl}}/regmod/deny/{{$hash}}
Díky.

View file

@ -0,0 +1,15 @@
Milý/Milá {{$username}},
Právě jste obdržel/obdržela požadavek na spojení na webu {{$sitename}}
od '{{$requestor}}'.
Můžete navštívit jeho/její profil na následujícím odkazu {{$url}}.
Přihlaste se na Váš web k zobrazení kompletní žádosti a odsouhlaste nebo ignorujte/zrušte tuto žádost.
{{$siteurl}}
S pozdravem,
{{$sitename}} administrátor

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
'{{$from}}' obohatil Vaši profilovou zeď.
-----
{{$body}}
-----
Přihlaste se na {{$siteurl}} k zobrazení nebo smazání této položky:
{{$display}}
Díky,
{{$sitename}} administrátor

View file

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica zpráva</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$from}} obohatil Vaši profilovou zeď.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="padding-right:22px;">{{$body}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Přihlaste se na <a href="{{$siteurl}}">{{$siteurl}}</a> k <a href="{{$display}}">zobrazení nebo smazání této položky.</a></td></tr>
<tr><td></td><td>Díky,</td></tr>
<tr><td></td><td>{{$sitename}} administrátor</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,14 @@
Milý/Milá {{$username}},
'{{$from}}' obohatil Vaši profilovou zeď.
-----
{{$body}}
-----
Přihlaste se na {{$siteurl}} k zobrazení nebo smazání této položky:
{{$display}}
Díky,
{{$sitename}} administrátor

View file

@ -0,0 +1,17 @@
Hallo {{$username}},
'{{$from}}' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
-----
{{$body}}
-----
Um die gesamte Konversation zu sehen melde dich bitte bei {{$siteurl}} an:
{{$display}}
Danke für die Aufmerksamkeit
{{$sitename}} Administrator

View file

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica Nachricht</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$from}} hat einen Beitrag kommentiert dem du auch folgst.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="padding-bottom:5px;"></td></tr>
<tr><td style="padding-right:22px;">{{$body}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich an um <a href="{{$display}}">die komplette Unterhaltung anzuzeigen</a>.</td></tr>
<tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
<tr><td></td><td>{{$sitename}} Administrator</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,16 @@
Hallo {{$username}},
'{{$from}}' hat einen Pinnwandeintrag kommentiert dem du auch folgst.
-----
{{$body}}
-----
Um die gesamte Konversation zu sehen melde dich bitte bei {{$siteurl}} an:
{{$display}}
Danke fŸr die Aufmerksamkeit
{{$sitename}} Administrator

View file

@ -0,0 +1,14 @@
Hallo {{$myname}},
Du hast einen neuen Anhänger auf {{$sitename}} - '{{$requestor}}'.
Du kannst das Profil unter {{$url}} besuchen.
Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
{{$siteurl}}
beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,22 @@
Hallo {{$username}},
Großartige Neuigkeiten... '{{$fn}}' auf '{{$dfrn_url}}' hat
deine Kontaktanfrage auf '{{$sitename}}' bestätigt.
Ihr seid nun beidseitige Freunde und könnt Statusmitteilungen, Bilder und Emails
ohne Einschränkungen austauschen.
Rufe deine 'Kontakte' Seite auf {{$sitename}} auf, wenn du
Änderungen an diesem Kontakt vornehmen willst.
{{$siteurl}}
[Du könntest z.B. ein spezielles Profil anlegen, das Informationen enthält,
die nicht für die breite Öffentlichkeit sichtbar sein sollen und es für '{{$fn}}' zum Betrachten freigeben].
Beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,68 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '{{$dbhost}}';
$db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '{{$urlpath}}';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '{{$timezone}}';
// What is your site name?
$a->config['sitename'] = "My Friend Network";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '{{$adminmail}}';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 200000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '{{$phpath}}';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;
// default system theme
$a->config['system']['theme'] = 'duepuntozero';

View file

@ -0,0 +1,22 @@
Hallo {{$username}},
'{{$fn}}' auf '{{$dfrn_url}}' hat deine Verbindungsanfrage
auf '{{$sitename}}' akzeptiert.
'{{$fn}}' hat entschieden Dich als "Fan" zu akzeptieren, was zu einigen
Einschränkungen bei der Kommunikation führt - wie zB das Schreiben von privaten Nachrichten und einige Profil
Interaktionen. Sollte dies ein Promi-Konto oder eine Forum-Seite sein, werden die Einstellungen
automatisch angewandt.
'{{$fn}}' kann wählen, ob die Freundschaft in eine beidseitige oder alles erlaubende
Beziehung in der Zukunft erweitert wird.
Du empfängst ab sofort die öffentlichen Beiträge von '{{$fn}}',
auf deiner "Netzwerk" Seite.
{{$siteurl}}
Beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,32 @@
Hallo {{$username}},
Auf {{$sitename}} wurde eine Anfrage zum Zurücksetzen deines
Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
weiter unten oder kopiere ihn in die Adressleiste deines Browsers.
Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
bitte diese Mail und den Link.
Dein Passwort wird nicht geändert werden solange wir nicht überprüfen
konnten, dass du die Anfrage gestellt hast.
Folge diesem Link um deine Identität zu verifizieren:
{{$reset_link}}
Du wirst eine weitere Email erhalten mit dem neuen Passwort.
Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
Die Login-Details sind die folgenden:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica Nachricht</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$fromi}} hat dir eine private Nachricht auf {{$siteName}} gesendet.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="font-weight:bold;padding-bottom:5px;">{{$title}}</td></tr>
<tr><td style="padding-right:22px;">{{$htmlversion}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich auf <a href="{{$siteurl}}/message">{{$siteurl}}/message</a> an um die Nachricht zu bearbeiten.</td></tr>
<tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
<tr><td></td><td>{{$siteName}} Administrator</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,11 @@
Du hast eine neue private Nachricht von '{{$from}}' auf '{{$siteName}}' erhhalten.
{{$title}}
{{$textversion}}
Bitte melde dich unter {{$siteurl}} an um deine privaten Nachrichte zu lesen und zu
beantworten.
Viele Gr٤e,
{{$siteName}} Administrator

View file

@ -0,0 +1,20 @@
Hallo {{$username}},
Dein Passwort wurde wie gewünscht geändert. Bitte bewahre diese
Informationen in deinen Unterlagen auf (oder ändere dein Passwort sofort
in etwas, was du dir merken kannst).
Deine Login Daten wurden wie folgt geändert:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Passwort: {{$new_password}}
Du kannst dein Passwort unter deinen Account-Einstellungen ändern, wenn du angemeldet bist.
Beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,34 @@
Hallo {{$username}},
Danke für deine Anmeldung auf {{$sitename}}. Dein Account wurde angelegt.
Hier die Login Details:
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Passwort: {{$password}}
Du kannst und solltest das Passwort in den "Einstellungen" zu deinem Account ändern,
nachdem du dich erstmalig eingeloggt hast.
Bitte nimm dir einige Augenblicke Zeit, um die anderen Einstellungen auf der Seite kennenzulernen und zu überprüfen.
Eventuell möchtest du außerdem einige grundlegende Informationen in deinem Standardprofil (auf der "Profile" Seite) eintragen,
damit andere Leute dich einfacher finden können.
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profilbild hochzuladen,
sowie ein paar "Profil-Schlüsselwörter" einzutragen (um leichter Menschen mit gleichen Interessen zu finden) - und
vielleicht auch in welchen Land du lebst; falls du nicht konkreter
werden möchtest.
Wir respektieren dein Recht auf Privatsphäre und keine dieser Angaben ist notwendig.
Wenn du ganz neu bei Friendica bist und niemanden kennst, werden sie dir aber helfen
ein paar neue und interessante Freunde zu finden.
Danke und willkommen auf {{$sitename}}.
Beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,25 @@
Eine Neuanmeldung auf {{$sitename}} benötigt
deine Aufmerksamkeit.
Die Login-Einzelheiten sind die folgenden:
Kompletter Name: {{$username}}
Adresse der Seite: {{$siteurl}}
Login Name: {{$email}}
Um die Anfrage zu bestätigen besuche bitte:
{{$siteurl}}/regmod/allow/{{$hash}}
Um die Anfrage abzulehnen und den Account zu löschen besuche bitte:
{{$siteurl}}/regmod/deny/{{$hash}}
Danke!

View file

@ -0,0 +1,17 @@
Hallo {{$myname}},
du hast eine Kontaktanfrage von '{{$requestor}}' auf {{$sitename}}
erhalten.
Du kannst sein/ihr Profil unter {{$url}} finden.
Bitte melde dich an um die komplette Vorstellung einzusehen
und die Anfrage zu bestätigen oder zu ignorieren oder abzulehnen.
{{$siteurl}}
Beste Grüße,
{{$sitename}} Administrator

View file

@ -0,0 +1,11 @@
Hi,
ich bin {{$sitename}}.
Die friendica Entwickler haben jüngst Update {{$update}} veröffentlicht,
aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.
Das sollte schnellst möglichst behoben werden und ich kann das nicht alleine machen.
Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein.
Die Fehlermeldung lautet '{{$error}}'.
Tut mir Leid!
Deine friendica Instanz auf {{$siteurl}}

View file

@ -0,0 +1,18 @@
Hallo {{$username}},
'{{$from}}' hat etwas auf deiner Profilwand gepostet.
-----
{{$body}}
-----
Bitte melde dich unter {{$siteurl}} an um den Eintrag anzusehen oder zu löschen.
{{$display}}
Besten Dank!
{{$sitename}} Administrator

View file

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendica Nachricht</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#084769; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px; float:left;" src='{{$siteurl}}/images/friendica-32.png'><div style="padding:7px; margin-left: 5px; float:left; font-size:18px;letter-spacing:1px;">Friendica</div><div style="clear: both;"></div></td></tr>
<tr><td style="padding-top:22px;" colspan="2">{{$from}} hat etwas auf deine Pinnwand gepostet.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="{{$url}}"><img style="border:0px;width:48px;height:48px;" src="{{$thumb}}"></a></td>
<td style="padding-top:22px;"><a href="{{$url}}">{{$from}}</a></td></tr>
<tr><td style="padding-right:22px;">{{$body}}</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Bitte melde dich auf <a href="{{$siteurl}}">{{$siteurl}}</a> an um <a href="{{$display}}">den Eintrag anzusehen oder ihn zu l&ouml;schen</a>.</td></tr>
<tr><td></td><td>Beste Gr&uuml;&szlig;e,</td></tr>
<tr><td></td><td>{{$sitename}} Administrator</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,18 @@
Hallo {{$username}},
'{{$from}}' hat etwas auf deiner Pinnwand gepostet.
-----
{{$body}}
-----
Bitte melde dich auf {{$siteurl}} an um den Beitrag anzusehen oder ihn zu löschen:
{{$display}}
Besten Dank!
{{$sitename}} Administrator

View file

@ -2,7 +2,7 @@
<div class="directory-item lframe" id="directory-item-$id" > <div class="directory-item lframe" id="directory-item-$id" >
<div class="contact-photo-wrapper" id="directory-photo-wrapper-$id" > <div class="contact-photo-wrapper" id="directory-photo-wrapper-$id" >
<div class="contact-photo" id="directory-photo-$id" > <div class="contact-photo" id="directory-photo-$id" >
<a href="$profile-link" class="directory-profile-link" id="directory-profile-link-$id" ><img class="directory-photo-img" src="$photo" alt="$alt-text" title="$alt-text" /></a> <a href="$profile_link" class="directory-profile-link" id="directory-profile-link-$id" ><img class="directory-photo-img" src="$photo" alt="$alt_text" title="$alt_text" /></a>
</div> </div>
</div> </div>

View file

@ -0,0 +1,14 @@
Dear {{$myname}},
You have a new follower at {{$sitename}} - '{{$requestor}}'.
You may visit their profile at {{$url}}.
Please login to your site to approve or ignore/cancel the request.
{{$siteurl}}
Regards,
{{$sitename}} administrator

View file

@ -0,0 +1,22 @@
Dear {{$username}},
Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
your connection request at '{{$sitename}}'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at {{$sitename}} if you wish to make
any changes to this relationship.
{{$siteurl}}
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '{{$fn}}'].
Sincerely,
{{$sitename}} Administrator

View file

@ -0,0 +1,71 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '{{$dbhost}}';
$db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '{{$urlpath}}';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '{{$timezone}}';
// What is your site name?
$a->config['sitename'] = "My Friend Network";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '{{$adminmail}}';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 200000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '{{$phpath}}';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;
// default system theme
$a->config['system']['theme'] = 'duepuntozero';
// By default allow pseudonyms
$a->config['system']['no_regfullname'] = true;

View file

@ -0,0 +1,22 @@
Dear {{$username}},
'{{$fn}}' at '{{$dfrn_url}}' has accepted
your connection request at '{{$sitename}}'.
'{{$fn}}' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'{{$fn}}' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '{{$fn}}',
which will appear on your 'Network' page at
{{$siteurl}}
Sincerely,
{{$sitename}} Administrator

View file

@ -0,0 +1,32 @@
Dear {{$username}},
A request was recently received at {{$sitename}} to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.
Follow this link to verify your identity:
{{$reset_link}}
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Sincerely,
{{$sitename}} Administrator

View file

@ -0,0 +1,20 @@
Dear {{$username}},
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
Your login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$new_password}}
You may change that password from your account settings page after logging in.
Sincerely,
{{$sitename}} Administrator

View file

@ -0,0 +1,34 @@
Dear {{$username}},
Thank you for registering at {{$sitename}}. Your account has been created.
The login details are as follows:
Site Location: {{$siteurl}}
Login Name: {{$email}}
Password: {{$password}}
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
You may also wish to add some basic information to your default profile
(on the "Profiles" page) so that other people can easily find you.
We recommend setting your full name, adding a profile photo,
adding some profile "keywords" (very useful in making new friends) - and
perhaps what country you live in; if you do not wish to be more specific
than that.
We fully respect your right to privacy, and none of these items are necessary.
If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to {{$sitename}}.
Sincerely,
{{$sitename}} Administrator

View file

@ -0,0 +1,26 @@
A new user registration request was received at {{$sitename}} which requires
your approval.
The login details are as follows:
Full Name: {{$username}}
Site Location: {{$siteurl}}
Login Name: {{$email}}
To approve this request please visit the following link:
{{$siteurl}}/regmod/allow/{{$hash}}
To deny the request and remove the account, please visit:
{{$siteurl}}/regmod/deny/{{$hash}}
Thank you.

View file

@ -0,0 +1,17 @@
Dear {{$myname}},
You have just received a connection request at {{$sitename}}
from '{{$requestor}}'.
You may visit their profile at {{$url}}.
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
{{$siteurl}}
Regards,
{{$sitename}} administrator

View file

@ -0,0 +1,11 @@
Hey,
I'm {{$sitename}};
The friendica developers released update {{$update}} recently,
but when I tried to install it, something went terribly wrong.
This needs to be fixed soon and I can't do it alone. Please contact a
friendica developer if you can not help me on your own. My database might be invalid.
The error message is '{{$error}}'.
I'm sorry,
your friendica server at {{$siteurl}}

View file

@ -0,0 +1,14 @@
Kara {{$myname}},
Vi havas novan abonanton ĉe {{$sitename}} - '{{$requestor}}'.
Vi povas viziti ilian profilon ĉe {{$url}}.
Bonvolu ensaluti en vian retejon por aprobi au malaprobi/nuligi la peton.
{{$siteurl}}
Salutoj,
[{{$sitename}}] administranto

View file

@ -0,0 +1,22 @@
Kara {{$username}},
Boegaj novaĵoj.... '{{$fn}}' ĉe '{{$dfrn_url}}' aprobis
vian kontaktpeton ĉe '{{$sitename}}'.
Vi nun estas reciprokaj amikoj kaj povas interŝanĝi afiŝojn, bildojn kaj mesaĝojn
senkatene.
Bonvolu viziti vian 'Kontaktoj' paĝon ĉe {{$sitename}} se vi volas
ŝangi la rilaton.
{{$siteurl}}
[Ekzempe, vi eble volas krei disiĝintan profilon kun informoj kiu ne
haveblas al la komuna publiko - kaj rajtigi '{{$fn}}' al ĝi]'
Salutoj,
{{$sitename}} administranto

View file

@ -0,0 +1,22 @@
Kara {{$username}},
'{{$fn}}' ĉe '{{$dfrn_url}}' akceptis
vian kontaktpeton ĉe '{{$sitename}}'.
'{{$fn}}' elektis vin kiel "admiranto", kio malpermesas
kelkajn komunikilojn - ekzemple privataj mesaĝoj kaj kelkaj profilrilataj
agoj. Se tio estas konto de komunumo aŭ de eminentulo, tiaj agordoj
aŭtomate aktiviĝis.
'{{$fn}}' eblas konverti la rilaton al ambaŭdirekta rilato
aŭ apliki pli da permesoj.
Vi ekricevos publikajn afiŝojn de '{{$fn}}',
kiuj aperos sur via 'Reto' paĝo ĉe
{{$siteurl}}
Salutoj,
{{$sitename}} administranto

View file

@ -0,0 +1,32 @@
Kara {{$username}},
{{$sitename}} ricevis peton por rekomencigi vian pasvorton.
Por konfirmi la peton, bonvolu klaki la sekvantan konfirmligilon
aŭ alglui ĝin en la adreskampo de via retumilo.
Se vi NE petis tiun ŝanĝon, bonvolu NE KLAKU la
sekvantan ligilon kaj ignoru aŭ forvisu ĉi-mesaĝon.
Ni ne ŝanĝu vian pasvorton se ni ne povas kontroli ĉu estas vi
kiu petis la ŝanĝon.
Sekvu ĉi tion ligilon por konfirmi vian identecon:
{{$reset_link}}
Poste, vi ricevos mesaĝon enhavonte la novan pasvorton.
Vi eblas ŝangi la pasvorton ĉe viaj kontdoagordoj paĝo post ensaluti.
La akreditaĵoj estas:
Retejo:»{{$siteurl}}
Salutnomo:»{{$email}}
Salutoj,
{{$sitename}} administranto

View file

@ -0,0 +1,20 @@
Kara {{$username}},
Via pasvorto estas ŝanĝita laŭ via peto. Bonvolu konservi ĉi tiun
informon (aŭ tuj ŝanĝu vian pasvorton al
iu kiun vi povas memori).
Jen viaj legitimaĵoj:
Retejo:»{{$siteurl}}
Salutnomo:»{{$email}}
Pasvorto:»{{$new_password}}
Vi eblas ŝanĝi la pasvorton ĉe la paĝo Agordoj -> Konto kiam vi estas ensalutita.
Salutoj,
{{$sitename}} administranto

View file

@ -0,0 +1,34 @@
Kara {{$username}},
Dankon pro via registrado ĉe {{$sitename}}. Vian konton estas kreita.
Jen viaj legitimaĵoj:
Retejo:»{{$siteurl}}
Salutnomo:»{{$email}}
Pasvorto:»{{$password}}
Vi eblas ŝanĝi la pasvorton ĉe la paĝo Agordoj -> Konto kiam vi estas
ensalutita.
Bonvolu preni kelkajn momentoj por kontroli la aliajn kontaktagordojn.
Eble vi volas aldoni kelkajn bazajn informojn al via profilo
(ĉe la paĝo "Profiloj"), tial vi troveblas al aliaj uzantoj.
Ni rekomendas agordi vian plenan noman, aldoni profilbildon,
kaj aldojo kelkajn ŝlosilvortojn (tre utila por trovi novajn amikojn) - kaj
eble en kiu lando vi loĝas, se vi ne volas pli specifa
ol tio.
Ni tute respektas vian privatecon, kaj neniu de tiuj agordoj necesas.
Se vi novas kaj ne konas iun ĉi tie, ili eble helpas
vin trovi novajn kaj interesajn amikojn.
Dankon kaj bonvenon ĉe {{$sitename}}.
Salutoj,
{{$sitename}} administranto

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