mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 21:15:14 +00:00
implement Smarty3
This commit is contained in:
parent
61b8ea9e1a
commit
a0d19ffb72
250 changed files with 6959 additions and 282 deletions
129
boot.php
129
boot.php
|
@ -488,17 +488,36 @@ if(! class_exists('App')) {
|
|||
|
||||
// Allow themes to control internal parameters
|
||||
// by changing App values in theme.php
|
||||
//
|
||||
// Possibly should make these part of the plugin
|
||||
// system, but it seems like overkill to invoke
|
||||
// all the plugin machinery just to change a couple
|
||||
// of values
|
||||
|
||||
public $sourcename = '';
|
||||
public $videowidth = 425;
|
||||
public $videoheight = 350;
|
||||
public $force_max_items = 0;
|
||||
public $theme_thread_allow = true;
|
||||
|
||||
// An array for all theme-controllable parameters
|
||||
// Mostly unimplemented yet. Only options 'template_engine' and
|
||||
// beyond are used.
|
||||
|
||||
private $theme = array(
|
||||
'sourcename' => '',
|
||||
'videowidth' => 425,
|
||||
'videoheight' => 350,
|
||||
'force_max_items' => 0,
|
||||
'thread_allow' => true,
|
||||
'stylesheet' => '',
|
||||
'template_engine' => 'internal',
|
||||
);
|
||||
|
||||
private $ldelim = array(
|
||||
'internal' => '',
|
||||
'smarty3' => '{{'
|
||||
);
|
||||
private $rdelim = array(
|
||||
'internal' => '',
|
||||
'smarty3' => '}}'
|
||||
);
|
||||
|
||||
private $scheme;
|
||||
private $hostname;
|
||||
private $baseurl;
|
||||
|
@ -753,9 +772,29 @@ if(! class_exists('App')) {
|
|||
|
||||
}
|
||||
|
||||
function init_pagehead() {
|
||||
$this->page['title'] = $this->config['sitename'];
|
||||
$this->page['htmlhead'] = get_markup_template('head.tpl');
|
||||
function build_pagehead() {
|
||||
|
||||
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
|
||||
if($interval < 10000)
|
||||
$interval = 40000;
|
||||
|
||||
$this->page['title'] = $this->config['system']['sitename'];
|
||||
|
||||
|
||||
/* put the head template at the beginning of page['htmlhead']
|
||||
* since the code added by the modules frequently depends on it
|
||||
* being first
|
||||
*/
|
||||
$tpl = get_markup_template('head.tpl');
|
||||
$this->page['htmlhead'] = replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$local_user' => local_user(),
|
||||
'$generator' => FRIENDICA_PLATFORM . ' ' . FRIENDICA_VERSION,
|
||||
'$update_interval' => $interval,
|
||||
'$head_css' => head_get_css(),
|
||||
'$head_js' => head_get_js(),
|
||||
'$js_strings' => js_strings()
|
||||
)) . $this->page['htmlhead'];
|
||||
}
|
||||
|
||||
function set_curl_code($code) {
|
||||
|
@ -797,6 +836,32 @@ if(! class_exists('App')) {
|
|||
return $this->cached_profile_image[$avatar_image];
|
||||
}
|
||||
|
||||
function get_template_engine() {
|
||||
return $this->theme['template_engine'];
|
||||
}
|
||||
|
||||
function set_template_engine($engine = 'internal') {
|
||||
|
||||
$this->theme['template_engine'] = 'internal';
|
||||
|
||||
switch($engine) {
|
||||
case 'smarty3':
|
||||
if(is_writable('view/tpl/smarty3/'))
|
||||
$this->theme['template_engine'] = 'smarty3';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function get_template_ldelim($engine = 'internal') {
|
||||
return $this->ldelim[$engine];
|
||||
}
|
||||
|
||||
function get_template_rdelim($engine = 'internal') {
|
||||
return $this->rdelim[$engine];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1264,20 +1329,26 @@ function profile_load(&$a, $nickname, $profile = 0) {
|
|||
|
||||
$_SESSION['theme'] = $a->profile['channel_theme'];
|
||||
|
||||
/**
|
||||
* load/reload current theme info
|
||||
*/
|
||||
/**
|
||||
* load/reload current theme info
|
||||
*/
|
||||
|
||||
$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
|
||||
if (file_exists($theme_info_file)){
|
||||
require_once($theme_info_file);
|
||||
}
|
||||
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
|
||||
|
||||
$block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
||||
|
||||
$a->set_widget('profile',profile_sidebar($a->profile, $block));
|
||||
return;
|
||||
$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
|
||||
if (file_exists($theme_info_file)){
|
||||
require_once($theme_info_file);
|
||||
}
|
||||
|
||||
return;
|
||||
}}
|
||||
|
||||
function profile_aside(&$a) {
|
||||
|
||||
$block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
||||
|
||||
$a->set_widget('profile',profile_sidebar($a->profile, $block));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1969,23 +2040,7 @@ function construct_page(&$a) {
|
|||
|
||||
head_add_js('mod_' . $a->module . '.js');
|
||||
|
||||
|
||||
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
|
||||
if($interval < 10000)
|
||||
$interval = 40000;
|
||||
|
||||
$a->page['title'] = $a->config['system']['sitename'];
|
||||
|
||||
|
||||
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$local_user' => local_user(),
|
||||
'$generator' => FRIENDICA_PLATFORM . ' ' . FRIENDICA_VERSION,
|
||||
'$update_interval' => $interval,
|
||||
'$head_css' => head_get_css(),
|
||||
'$head_js' => head_get_js(),
|
||||
'$js_strings' => js_strings()
|
||||
));
|
||||
$a->build_pagehead();
|
||||
|
||||
$arr = $a->get_widgets();
|
||||
if(count($arr)) {
|
||||
|
@ -2022,4 +2077,4 @@ function construct_page(&$a) {
|
|||
);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -204,13 +204,28 @@ class Item extends BaseObject {
|
|||
|
||||
$body = prepare_body($item,true);
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$body_e = 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;
|
||||
$name_e = $profile_name;
|
||||
$title_e = $item['title'];
|
||||
$location_e = $location;
|
||||
$owner_name_e = $this->get_owner_name();
|
||||
}
|
||||
|
||||
$tmp_item = array(
|
||||
'template' => $this->get_template(),
|
||||
|
||||
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
|
||||
'tags' => $tags,
|
||||
'body' => $body,
|
||||
'text' => strip_tags(template_escape($body)),
|
||||
'body' => $body_e,
|
||||
'text' => strip_tags($body_e),
|
||||
'id' => $this->get_id(),
|
||||
'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'])),
|
||||
|
@ -219,19 +234,19 @@ class Item extends BaseObject {
|
|||
'vwall' => t('via Wall-To-Wall:'),
|
||||
'profile_url' => $profile_link,
|
||||
'item_photo_menu' => item_photo_menu($item),
|
||||
'name' => template_escape($profile_name),
|
||||
'name' => $name_e,
|
||||
'thumb' => $profile_avatar,
|
||||
'osparkle' => $osparkle,
|
||||
'sparkle' => $sparkle,
|
||||
'title' => template_escape($item['title']),
|
||||
'title' => $title_e,
|
||||
'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'])),
|
||||
'lock' => $lock,
|
||||
'location' => template_escape($location),
|
||||
'location' => $location_e,
|
||||
'indent' => $indent,
|
||||
'owner_url' => $this->get_owner_url(),
|
||||
'owner_photo' => $this->get_owner_photo(),
|
||||
'owner_name' => template_escape($this->get_owner_name()),
|
||||
'owner_name' => $owner_name_e,
|
||||
|
||||
// Item toolbar buttons
|
||||
'like' => $like,
|
||||
|
|
|
@ -344,7 +344,6 @@ function visible_activity($item) {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* "Render" a conversation or list of items for HTML display.
|
||||
* There are two major forms of display:
|
||||
|
@ -886,7 +885,7 @@ function status_editor($a,$x,$popup=false) {
|
|||
|
||||
$o = '';
|
||||
|
||||
$geotag = (($x['allow_location']) ? get_markup_template('jot_geotag.tpl') : '');
|
||||
$geotag = (($x['allow_location']) ? replace_macros(get_markup_template('jot_geotag.tpl'), array()) : '');
|
||||
|
||||
$plaintext = true;
|
||||
if(feature_enabled(local_user(),'richtext'))
|
||||
|
|
|
@ -58,4 +58,4 @@ function get_features() {
|
|||
|
||||
call_hooks('get_features',$arr);
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
|
|
43
include/friendica_smarty.php
Normal file
43
include/friendica_smarty.php
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
require_once("library/Smarty/libs/Smarty.class.php");
|
||||
|
||||
class FriendicaSmarty extends Smarty {
|
||||
|
||||
public $filename;
|
||||
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
|
||||
$a = get_app();
|
||||
$theme = current_theme();
|
||||
|
||||
// setTemplateDir can be set to an array, which Smarty will parse in order.
|
||||
// The order is thus very important here
|
||||
$template_dirs = array('theme' => "view/theme/$theme/smarty3/");
|
||||
if( x($a->theme_info,"extends") )
|
||||
$template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/smarty3/");
|
||||
$template_dirs = $template_dirs + array('base' => 'view/smarty3/');
|
||||
$this->setTemplateDir($template_dirs);
|
||||
|
||||
$this->setCompileDir('view/smarty3/compiled/');
|
||||
$this->setConfigDir('view/smarty3/config/');
|
||||
$this->setCacheDir('view/smarty3/cache/');
|
||||
|
||||
$this->left_delimiter = $a->get_template_ldelim('smarty3');
|
||||
$this->right_delimiter = $a->get_template_rdelim('smarty3');
|
||||
|
||||
// Don't report errors so verbosely
|
||||
$this->error_reporting = E_ALL & ~E_NOTICE;
|
||||
}
|
||||
|
||||
function parsed($template = '') {
|
||||
if($template) {
|
||||
return $this->fetch('string:' . $template);
|
||||
}
|
||||
return $this->fetch('file:' . $this->filename);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -465,37 +465,40 @@ function format_js_if_exists($source) {
|
|||
}
|
||||
|
||||
|
||||
function theme_include($file) {
|
||||
function theme_include($file, $root = '') {
|
||||
|
||||
global $t; // use builtin template processor
|
||||
$a = get_app();
|
||||
|
||||
$paths = array(
|
||||
'view/theme/$theme/$ext/$file',
|
||||
'view/theme/$theme/$file',
|
||||
'view/theme/$parent/$ext/$file',
|
||||
'view/theme/$parent/$file',
|
||||
'view/$ext/$file',
|
||||
'view/$file'
|
||||
);
|
||||
// Make sure $root ends with a slash / if it's not blank
|
||||
if($root !== '' && $root[strlen($root)-1] !== '/')
|
||||
$root = $root . '/';
|
||||
|
||||
$theme_info = get_app()->theme_info;
|
||||
$theme_info = $a->theme_info;
|
||||
|
||||
if(array_key_exists('extends',$theme_info))
|
||||
$parent = $theme_info['extends'];
|
||||
else
|
||||
$parent = 'NOPATH';
|
||||
|
||||
$theme = current_theme();
|
||||
|
||||
$ext = substr($file,strrpos($file,'.')+1);
|
||||
|
||||
$paths = array(
|
||||
"{$root}view/theme/$theme/$ext/$file",
|
||||
"{$root}view/theme/$theme/$file",
|
||||
"{$root}view/theme/$parent/$ext/$file",
|
||||
"{$root}view/theme/$parent/$file",
|
||||
"{$root}view/$ext/$file",
|
||||
"{$root}view/$file"
|
||||
);
|
||||
|
||||
foreach($paths as $p) {
|
||||
$f = $t->replace($p,array(
|
||||
'$theme' => current_theme(),
|
||||
'$ext' => substr($file,strrpos($file,'.')+1),
|
||||
'$parent' => $parent,
|
||||
'$file' => $file
|
||||
));
|
||||
if(strstr($f,'NOPATH'))
|
||||
// strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php)
|
||||
if(strpos($p,'NOPATH') !== false)
|
||||
continue;
|
||||
if(file_exists($f))
|
||||
return $f;
|
||||
if(file_exists($p))
|
||||
return $p;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
@ -509,19 +512,38 @@ function get_intltext_template($s) {
|
|||
if(! isset($a->language))
|
||||
$a->language = 'en';
|
||||
|
||||
if(file_exists("view/{$a->language}/$s"))
|
||||
return file_get_contents("view/{$a->language}/$s");
|
||||
elseif(file_exists("view/en/$s"))
|
||||
return file_get_contents("view/en/$s");
|
||||
$engine = '';
|
||||
if($a->get_template_engine() === 'smarty3')
|
||||
$engine = "/smarty3";
|
||||
|
||||
if(file_exists("view/{$a->language}$engine/$s"))
|
||||
return file_get_contents("view/{$a->language}$engine/$s");
|
||||
elseif(file_exists("view/en$engine/$s"))
|
||||
return file_get_contents("view/en$engine/$s");
|
||||
else
|
||||
return file_get_contents("view/$s");
|
||||
return file_get_contents("view/tpl/$engine/$s");
|
||||
}}
|
||||
|
||||
if(! function_exists('get_markup_template')) {
|
||||
function get_markup_template($s) {
|
||||
function get_markup_template($s, $root = '') {
|
||||
|
||||
$x = theme_include($s);
|
||||
if($x)
|
||||
return file_get_contents($x);
|
||||
$a = get_app();
|
||||
|
||||
$template_eng = $a->get_template_engine();
|
||||
if($template_eng === 'internal') {
|
||||
$template_file = theme_include($s, $root);
|
||||
if($template_file)
|
||||
return file_get_contents($template_file);
|
||||
}
|
||||
else {
|
||||
$template_file = theme_include("$template_eng/$s", $root);
|
||||
|
||||
if($template_file) {
|
||||
$template = new FriendicaSmarty();
|
||||
$template->filename = $template_file;
|
||||
|
||||
return $template;
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
|
|
|
@ -13,15 +13,32 @@ require_once("include/template_processor.php");
|
|||
if(! function_exists('replace_macros')) {
|
||||
function replace_macros($s,$r) {
|
||||
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->get_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->page['debug'] .= "$tt <br>\n";
|
||||
return $output;
|
||||
}}
|
||||
|
||||
|
||||
|
|
22
index.php
22
index.php
|
@ -96,13 +96,6 @@ if((x($_GET,'zid')) && (! $install)) {
|
|||
if((x($_SESSION,'authenticated')) || (x($_POST,'auth-params')) || ($a->module === 'login'))
|
||||
require("auth.php");
|
||||
|
||||
/*
|
||||
* Create the page head after setting the language
|
||||
* and getting any auth credentials
|
||||
*/
|
||||
|
||||
$a->init_pagehead();
|
||||
|
||||
|
||||
if(! x($_SESSION,'sysmsg'))
|
||||
$_SESSION['sysmsg'] = array();
|
||||
|
@ -280,18 +273,28 @@ if($a->module_loaded) {
|
|||
|
||||
|
||||
if(! $a->error) {
|
||||
// If a theme has defined an _aside() function, run that first
|
||||
//
|
||||
// If the theme function doesn't exist, see if this theme extends another,
|
||||
// and see if that other theme has an _aside() function--if it does, run it
|
||||
//
|
||||
// If $aside_default is not False after the theme _aside() function, run the
|
||||
// module's _aside() function too
|
||||
//
|
||||
// This gives themes more control over how the left sidebar looks
|
||||
|
||||
$aside_default = true;
|
||||
call_hooks($a->module . '_mod_aside',$placeholder);
|
||||
if(function_exists(str_replace('-','_',current_theme()) . '_' . $a->module . '_aside')) {
|
||||
$func = str_replace('-','_',current_theme()) . '_' . $a->module . '_aside';
|
||||
$aside_default = $func($a);
|
||||
}
|
||||
elseif(x($a->theme_info,"extends") && $aside_default
|
||||
elseif($aside_default && x($a->theme_info,"extends")
|
||||
&& (function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_' . $a->module . '_aside'))) {
|
||||
$func = str_replace('-','_',$a->theme_info["extends"]) . '_' . $a->module . '_aside';
|
||||
$aside_default = $func($a);
|
||||
}
|
||||
elseif(function_exists($a->module . '_aside') && $aside_default) {
|
||||
if($aside_default && function_exists($a->module . '_aside')) {
|
||||
$func = $a->module . '_aside';
|
||||
$func($a);
|
||||
}
|
||||
|
@ -329,7 +332,6 @@ if(stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
|
|||
|
||||
call_hooks('page_end', $a->page['content']);
|
||||
|
||||
|
||||
construct_page($a);
|
||||
|
||||
session_write_close();
|
||||
|
|
|
@ -610,7 +610,7 @@ function admin_page_users(&$a){
|
|||
t('Community/Celebrity Account'),
|
||||
t('Automatic Friend Account')
|
||||
);
|
||||
$e['page-flags'] = $accounts[$e['page-flags']];
|
||||
$e['page_flags'] = $accounts[$e['page-flags']];
|
||||
$e['register_date'] = relative_date($e['register_date']);
|
||||
$e['login_date'] = relative_date($e['login_date']);
|
||||
$e['lastitem_date'] = relative_date($e['lastitem_date']);
|
||||
|
|
|
@ -2,16 +2,6 @@
|
|||
|
||||
function channel_init(&$a) {
|
||||
|
||||
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function channel_aside(&$a) {
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
if(argc() > 1)
|
||||
$which = argv(1);
|
||||
else {
|
||||
|
@ -28,10 +18,24 @@ function channel_aside(&$a) {
|
|||
$profile = argv(1);
|
||||
}
|
||||
|
||||
$cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : '');
|
||||
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
|
||||
|
||||
// Run profile_load() here to make sure the theme is set before
|
||||
// we start loading content
|
||||
profile_load($a,$which,$profile);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function channel_aside(&$a) {
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
profile_aside($a);
|
||||
|
||||
$cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : '');
|
||||
|
||||
$a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$a->profile['profile_uid'],true));
|
||||
$a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$cat));
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ function display_content(&$a) {
|
|||
|
||||
$o = '<div id="live-display"></div>' . "\r\n";
|
||||
|
||||
$a->page['htmlhead'] .= get_markup_template('display-head.tpl');
|
||||
$a->page['htmlhead'] .= replace_macros(get_markup_template('display-head.tpl'), array());
|
||||
|
||||
|
||||
if(argc() > 1)
|
||||
|
@ -60,6 +60,7 @@ function display_content(&$a) {
|
|||
|
||||
// $nick = (($a->argc > 1) ? $a->argv[1] : '');
|
||||
// profile_load($a,$nick);
|
||||
// profile_aside($a);
|
||||
|
||||
// $item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
||||
|
||||
|
|
|
@ -55,9 +55,17 @@ function fbrowser_content($a){
|
|||
global $a;
|
||||
$types = Photo::supportedTypes();
|
||||
$ext = $types[$rr['type']];
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$filename_e = template_escape($rr['filename']);
|
||||
}
|
||||
else {
|
||||
$filename_e = $rr['filename'];
|
||||
}
|
||||
|
||||
return array(
|
||||
$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
|
||||
);
|
||||
}
|
||||
|
@ -70,6 +78,7 @@ function fbrowser_content($a){
|
|||
'$path' => $path,
|
||||
'$folders' => $albums,
|
||||
'$files' =>$files,
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
|
||||
|
||||
|
@ -83,7 +92,15 @@ function fbrowser_content($a){
|
|||
function files2($rr){ global $a;
|
||||
list($m1,$m2) = explode("/",$rr['filetype']);
|
||||
$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);
|
||||
//echo "<pre>"; var_dump($files); killme();
|
||||
|
@ -96,6 +113,7 @@ function fbrowser_content($a){
|
|||
'$path' => array( array($a->get_baseurl()."/fbrowser/image/", t("Files")) ),
|
||||
'$folders' => false,
|
||||
'$files' =>$files,
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
|
||||
}
|
||||
|
|
|
@ -48,3 +48,6 @@ function hcard_init(&$a) {
|
|||
|
||||
}
|
||||
|
||||
function hcard_aside(&$a) {
|
||||
profile_aside($a);
|
||||
}
|
||||
|
|
|
@ -14,10 +14,15 @@ function hostxrd_init(&$a) {
|
|||
set_config('system','site_pubkey', $res['pubkey']);
|
||||
}
|
||||
|
||||
$tpl = file_get_contents('view/xrd_host.tpl');
|
||||
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);
|
||||
$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();
|
||||
exit();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -362,6 +362,19 @@ function message_content(&$a) {
|
|||
$rr['to'] = find_xchan_in_array($rr['to_xchan'],$c);
|
||||
$rr['seen'] = (($rr['mail_flags'] & MAIL_SEEN) ? 1 : "");
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$from_name_e = template_escape($rr['from']['xchan_name']);
|
||||
$subject_e = template_escape((($rr['seen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
|
||||
$body_e = template_escape($rr['body']);
|
||||
$to_name_e = template_escape($rr['to']['xchan_name']);
|
||||
}
|
||||
else {
|
||||
$from_name_e = $rr['from']['xchan_name'];
|
||||
$subject_e = (($rr['seen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>');
|
||||
$body_e = $rr['body'];
|
||||
$to_name_e = $rr['to']['xchan_name'];
|
||||
}
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$id' => $rr['id'],
|
||||
'$from_name' => template_escape($rr['from']['xchan_name']),
|
||||
|
@ -385,6 +398,10 @@ function message_content(&$a) {
|
|||
|
||||
$o .= $header;
|
||||
|
||||
$plaintext = true;
|
||||
if( local_user() && feature_enabled(local_user(),'richtext') )
|
||||
$plaintext = false;
|
||||
|
||||
$r = q("SELECT parent_uri from mail WHERE channel_id = %d and id = %d limit 1",
|
||||
intval(local_user()),
|
||||
intval(argv(1))
|
||||
|
@ -433,6 +450,8 @@ function message_content(&$a) {
|
|||
$a->page['htmlhead'] .= replace_macros($tpl, array(
|
||||
'$nickname' => $channel['channel_addr'],
|
||||
'$baseurl' => $a->get_baseurl(true)
|
||||
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
|
||||
'$linkurl' => t('Please enter a link URL:')
|
||||
));
|
||||
|
||||
|
||||
|
@ -451,16 +470,29 @@ logger('message: ' . print_r($message,true));
|
|||
// if($extracted['images'])
|
||||
// $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']['xchan_name']);
|
||||
$subject_e = template_escape($message['title']);
|
||||
$body_e = template_escape(smilies(bbcode($message['body'])));
|
||||
$to_name_e = template_escape($message['to']['xchan_name']);
|
||||
}
|
||||
else {
|
||||
$from_name_e = $message['from']['xchan_name'];
|
||||
$subject_e = $message['title'];
|
||||
$body_e = smilies(bbcode($message['body']));
|
||||
$to_name_e = $message['to']['xchan_name'];
|
||||
}
|
||||
|
||||
$mails[] = array(
|
||||
'id' => $message['id'],
|
||||
'from_name' => template_escape($message['from']['xchan_name']),
|
||||
'from_name' => $from_name_e,
|
||||
'from_url' => z_root() . '/chanview/?f=&hash=' . $message['from_xchan'],
|
||||
'from_photo' => $message['from']['xchan_photo_m'],
|
||||
'to_name' => template_escape($message['to']['xchan_name']),
|
||||
'to_name' => $to_name_e,
|
||||
'to_url' => z_root() . '/chanview/?f=&hash=' . $message['to_xchan'],
|
||||
'to_photo' => $message['to']['xchan_photo_m'],
|
||||
'subject' => template_escape($message['title']),
|
||||
'body' => template_escape(smilies(bbcode($message['body']))),
|
||||
'subject' => $subject_e,
|
||||
'body' => $body_e,
|
||||
'delete' => t('Delete message'),
|
||||
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
|
||||
);
|
||||
|
@ -476,6 +508,13 @@ logger('message: ' . print_r($message,true));
|
|||
$select = $message[$recp]['xchan_name'] . '<input type="hidden" name="messageto" value="' . $message[$recp]['xchan_hash'] . '" />';
|
||||
$parent = '<input type="hidden" name="replyto" value="' . $message['parent_uri'] . '" />';
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$subjtxt_e = template_escape($message['title']);
|
||||
}
|
||||
else {
|
||||
$subjtxt_e = $message['title'];
|
||||
}
|
||||
|
||||
$tpl = get_markup_template('mail_display.tpl');
|
||||
$o = replace_macros($tpl, array(
|
||||
'$thread_id' => $a->argv[1],
|
||||
|
@ -491,7 +530,7 @@ logger('message: ' . print_r($message,true));
|
|||
'$to' => t('To:'),
|
||||
'$showinputs' => '',
|
||||
'$subject' => t('Subject:'),
|
||||
'$subjtxt' => template_escape($message['title']),
|
||||
'$subjtxt' => $subjtxt_e,
|
||||
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
|
||||
'$yourmessage' => t('Your message:'),
|
||||
'$text' => '',
|
||||
|
|
105
mod/photos.php
105
mod/photos.php
|
@ -1063,6 +1063,15 @@ function photos_content(&$a) {
|
|||
}
|
||||
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
$tpl = get_markup_template('photos_upload.tpl');
|
||||
$o .= replace_macros($tpl,array(
|
||||
'$pagename' => t('Upload Photos'),
|
||||
|
@ -1072,9 +1081,9 @@ function photos_content(&$a) {
|
|||
'$newalbum' => t('New album name: '),
|
||||
'$existalbumtext' => t('or existing album name: '),
|
||||
'$nosharetext' => t('Do not show a status post for this upload'),
|
||||
'$albumselect' => template_escape($albumselect),
|
||||
'$albumselect' => $albumselect_e,
|
||||
'$permissions' => t('Permissions'),
|
||||
'$aclselect' => (($visitor) ? '' : template_escape(populate_acl($a->user, $celeb))),
|
||||
'$aclselect' => $aclselect_e,
|
||||
'$uploader' => $ret['addon_text'],
|
||||
'$default' => (($ret['default_upload']) ? $default_upload : ''),
|
||||
'$uploadurl' => $ret['post_url']
|
||||
|
@ -1116,11 +1125,18 @@ function photos_content(&$a) {
|
|||
if($cmd === 'edit') {
|
||||
if(($album !== t('Profile Photos')) && ($album !== 'Contact Photos') && ($album !== t('Contact Photos'))) {
|
||||
if($can_post) {
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$album_e = template_escape($album);
|
||||
}
|
||||
else {
|
||||
$album_e = $album;
|
||||
}
|
||||
|
||||
$edit_tpl = get_markup_template('album_edit.tpl');
|
||||
$o .= replace_macros($edit_tpl,array(
|
||||
'$nametext' => t('New album name: '),
|
||||
'$nickname' => $a->data['channel']['channel_address'],
|
||||
'$album' => template_escape($album),
|
||||
'$album' => $album_e,
|
||||
'$hexalbum' => bin2hex($album),
|
||||
'$submit' => t('Submit'),
|
||||
'$dropsubmit' => t('Delete Album')
|
||||
|
@ -1160,6 +1176,15 @@ function photos_content(&$a) {
|
|||
|
||||
$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(
|
||||
'$id' => $rr['id'],
|
||||
'$twist' => ' ' . $twist . rand(2,4),
|
||||
|
@ -1167,8 +1192,8 @@ function photos_content(&$a) {
|
|||
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''),
|
||||
'$phototitle' => t('View Photo'),
|
||||
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
|
||||
'$imgalt' => template_escape($rr['filename']),
|
||||
'$desc'=> template_escape($rr['desc'])
|
||||
'$imgalt' => $imgalt_e,
|
||||
'$desc'=> $desc_e
|
||||
));
|
||||
|
||||
}
|
||||
|
@ -1365,21 +1390,32 @@ function photos_content(&$a) {
|
|||
|
||||
$edit = Null;
|
||||
if(($cmd === 'edit') && ($can_post)) {
|
||||
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_tpl = get_markup_template('photo_edit.tpl');
|
||||
$edit = replace_macros($edit_tpl, array(
|
||||
'$id' => $ph[0]['id'],
|
||||
'$rotatecw' => t('Rotate CW (right)'),
|
||||
'$rotateccw' => t('Rotate CCW (left)'),
|
||||
'$album' => template_escape($ph[0]['album']),
|
||||
'$album' => $album_e,
|
||||
'$newalbum' => t('New album name'),
|
||||
'$nickname' => $a->data['channel']['channel_address'],
|
||||
'$resource_id' => $ph[0]['resource_id'],
|
||||
'$capt_label' => t('Caption'),
|
||||
'$caption' => template_escape($ph[0]['desc']),
|
||||
'$caption' => $caption_e,
|
||||
'$tag_label' => t('Add a Tag'),
|
||||
'$tags' => $link_item['tag'],
|
||||
'$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'),
|
||||
'$item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
|
||||
'$submit' => t('Submit'),
|
||||
|
@ -1516,14 +1552,25 @@ function photos_content(&$a) {
|
|||
$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(
|
||||
'$id' => $item['item_id'],
|
||||
'$profile_url' => $profile_link,
|
||||
'$name' => template_escape($profile_name),
|
||||
'$name' => $name_e,
|
||||
'$thumb' => $profile_avatar,
|
||||
'$sparkle' => $sparkle,
|
||||
'$title' => template_escape($item['title']),
|
||||
'$body' => template_escape(bbcode($item['body'])),
|
||||
'$title' => $title_e,
|
||||
'$body' => $body_e,
|
||||
'$ago' => relative_date($item['created']),
|
||||
'$indent' => (($item['parent'] != $item['item_id']) ? ' comment' : ''),
|
||||
'$drop' => $drop,
|
||||
|
@ -1535,21 +1582,34 @@ function photos_content(&$a) {
|
|||
$paginate = paginate($a);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
$photo_tpl = get_markup_template('photo_view.tpl');
|
||||
$o .= replace_macros($photo_tpl, array(
|
||||
'$id' => $ph[0]['id'],
|
||||
'$album' => array($album_link,template_escape($ph[0]['album'])),
|
||||
'$album' => $album_e,
|
||||
'$tools' => $tools,
|
||||
'$lock' => $lock,
|
||||
'$photo' => $photo,
|
||||
'$prevlink' => $prevlink,
|
||||
'$nextlink' => $nextlink,
|
||||
'$desc' => $ph[0]['desc'],
|
||||
'$tags' => template_escape($tags),
|
||||
'$tags' => $tags_e,
|
||||
'$edit' => $edit,
|
||||
'$likebuttons' => $likebuttons,
|
||||
'$like' => template_escape($like),
|
||||
'$dislike' => template_escape($dislike),
|
||||
'$like' => $like_e,
|
||||
'$dislike' => $dislike_e,
|
||||
'$comments' => $comments,
|
||||
'$paginate' => $paginate,
|
||||
));
|
||||
|
@ -1593,16 +1653,25 @@ function photos_content(&$a) {
|
|||
$twist = 'rotright';
|
||||
$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(
|
||||
'id' => $rr['id'],
|
||||
'twist' => ' ' . $twist . rand(2,4),
|
||||
'link' => $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id'],
|
||||
'title' => t('View Photo'),
|
||||
'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(
|
||||
'link' => $a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/album/' . bin2hex($rr['album']),
|
||||
'name' => template_escape($rr['album']),
|
||||
'name' => $name_e,
|
||||
'alt' => t('View Album'),
|
||||
),
|
||||
|
||||
|
@ -1611,7 +1680,7 @@ function photos_content(&$a) {
|
|||
}
|
||||
|
||||
$tpl = get_markup_template('photos_recent.tpl');
|
||||
$o .= replace_macros($tpl,array(
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$title' => t('Recent Photos'),
|
||||
'$can_post' => $can_post,
|
||||
'$upload' => array(t('Upload New Photos'), $a->get_baseurl().'/photos/'.$a->data['channel']['channel_address'].'/upload'),
|
||||
|
|
|
@ -2,16 +2,6 @@
|
|||
|
||||
function profile_init(&$a) {
|
||||
|
||||
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function profile_aside(&$a) {
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
if(argc() > 1)
|
||||
$which = argv(1);
|
||||
else {
|
||||
|
@ -28,6 +18,7 @@ function profile_aside(&$a) {
|
|||
$profile = argv(1);
|
||||
}
|
||||
|
||||
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
|
||||
|
||||
$x = q("select channel_id as profile_uid from channel where channel_address = '%s' limit 1",
|
||||
dbesc(argv(1))
|
||||
|
@ -37,13 +28,33 @@ function profile_aside(&$a) {
|
|||
$channel_display = get_pconfig($a->profile['profile_uid'],'system','channel_format');
|
||||
if(! $channel_display)
|
||||
profile_load($a,$which,$profile);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function profile_aside(&$a) {
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
$x = q("select channel_id as profile_uid from channel where channel_address = '%s' limit 1",
|
||||
dbesc(argv(1))
|
||||
);
|
||||
if($x) {
|
||||
$channel_display = get_pconfig($a->profile['profile_uid'],'system','channel_format');
|
||||
if(! $channel_display)
|
||||
profile_aside($a);
|
||||
|
||||
if($channel_display === 'full')
|
||||
$a->page['template'] = 'full';
|
||||
else {
|
||||
$cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : '');
|
||||
$a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$a->profile['profile_uid'],true));
|
||||
$a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$cat));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,6 +14,16 @@ function profile_photo_init(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function profile_photo_init(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
||||
profile_aside($a);
|
||||
}
|
||||
|
||||
|
||||
function profile_photo_post(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
|
@ -318,7 +328,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
|
|||
$a->config['imagecrop'] = $hash;
|
||||
$a->config['imagecrop_resolution'] = $smallest;
|
||||
$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());
|
||||
return;
|
||||
}}
|
||||
|
||||
|
|
278
mod/profiles.php
278
mod/profiles.php
|
@ -1,6 +1,162 @@
|
|||
<?php
|
||||
|
||||
|
||||
function profiles_init(&$a) {
|
||||
|
||||
nav_set_selected('profiles');
|
||||
|
||||
if(! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(1) === "drop") && intval(argv(2))) {
|
||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is_default` = 0 LIMIT 1",
|
||||
intval($a->argv[2]),
|
||||
intval(local_user())
|
||||
);
|
||||
if(! count($r)) {
|
||||
notice( t('Profile not found.') . EOL);
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
$profile_guid = $r['profile_guid'];
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
|
||||
|
||||
// move every contact using this profile as their default to the user default
|
||||
|
||||
$r = q("UPDATE abook SET abook_profile = (SELECT profile_guid AS FROM profile WHERE is_default = 1 AND uid = %d LIMIT 1) WHERE abook_profile = '%s' AND abook_channel = %d ",
|
||||
intval(local_user()),
|
||||
dbesc($profile_guid),
|
||||
intval(local_user())
|
||||
);
|
||||
$r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval(argv(2)),
|
||||
intval(local_user())
|
||||
);
|
||||
if($r)
|
||||
info( t('Profile deleted.') . EOL);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if((argc() > 1) && (argv(1) === 'new')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
|
||||
|
||||
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
|
||||
intval(local_user()));
|
||||
$num_profiles = count($r0);
|
||||
|
||||
$name = t('Profile-') . ($num_profiles + 1);
|
||||
|
||||
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is_default` = 1 LIMIT 1",
|
||||
intval(local_user()));
|
||||
|
||||
$r2 = q("INSERT INTO `profile` (`aid`, `uid` , `profile_guid`, `profile_name` , `name`, `photo`, `thumb`)
|
||||
VALUES ( %d, '%s', '%s', '%s', '%s' )",
|
||||
intval(get_account_id()),
|
||||
intval(local_user()),
|
||||
dbesc(random_string()),
|
||||
dbesc($name),
|
||||
dbesc($r1[0]['name']),
|
||||
dbesc($r1[0]['photo']),
|
||||
dbesc($r1[0]['thumb'])
|
||||
);
|
||||
|
||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile_name` = '%s' LIMIT 1",
|
||||
intval(local_user()),
|
||||
dbesc($name)
|
||||
);
|
||||
|
||||
info( t('New profile created.') . EOL);
|
||||
if(count($r3) == 1)
|
||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(1) === 'clone')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
|
||||
|
||||
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
|
||||
intval(local_user()));
|
||||
$num_profiles = count($r0);
|
||||
|
||||
$name = t('Profile-') . ($num_profiles + 1);
|
||||
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||
intval(local_user()),
|
||||
intval($a->argv[2])
|
||||
);
|
||||
if(! count($r1)) {
|
||||
notice( t('Profile unavailable to clone.') . EOL);
|
||||
$a->error = 404;
|
||||
return;
|
||||
}
|
||||
unset($r1[0]['id']);
|
||||
$r1[0]['is_default'] = 0;
|
||||
$r1[0]['publish'] = 0;
|
||||
$r1[0]['profile_name'] = dbesc($name);
|
||||
$r1[0]['profile_guid'] = dbesc(random_string());
|
||||
|
||||
dbesc_array($r1[0]);
|
||||
|
||||
$r2 = dbq("INSERT INTO `profile` (`"
|
||||
. implode("`, `", array_keys($r1[0]))
|
||||
. "`) VALUES ('"
|
||||
. implode("', '", array_values($r1[0]))
|
||||
. "')" );
|
||||
|
||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile_name` = '%s' LIMIT 1",
|
||||
intval(local_user()),
|
||||
dbesc($name)
|
||||
);
|
||||
info( t('New profile created.') . EOL);
|
||||
if(count($r3) == 1)
|
||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
// Run profile_load() here to make sure the theme is set before
|
||||
// we start loading content
|
||||
if((argc() > 1) && (intval(argv(1)))) {
|
||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($a->argv[1]),
|
||||
intval(local_user())
|
||||
);
|
||||
if(! count($r)) {
|
||||
notice( t('Profile not found.') . EOL);
|
||||
$a->error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
$chan = $a->get_channel();
|
||||
|
||||
profile_load($a,$chan['channel_address'],$r[0]['id']);
|
||||
}
|
||||
}
|
||||
|
||||
function profiles_aside(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 1) && (intval(argv(1)))) {
|
||||
profile_aside($a);
|
||||
}
|
||||
}
|
||||
|
||||
function profiles_post(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
|
@ -307,130 +463,12 @@ function profiles_post(&$a) {
|
|||
function profiles_content(&$a) {
|
||||
|
||||
$o = '';
|
||||
nav_set_selected('profiles');
|
||||
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(1) === "drop") && intval(argv(2))) {
|
||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is_default` = 0 LIMIT 1",
|
||||
intval($a->argv[2]),
|
||||
intval(local_user())
|
||||
);
|
||||
if(! count($r)) {
|
||||
notice( t('Profile not found.') . EOL);
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
$profile_guid = $r['profile_guid'];
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
|
||||
|
||||
// move every contact using this profile as their default to the user default
|
||||
|
||||
$r = q("UPDATE abook SET abook_profile = (SELECT profile_guid AS FROM profile WHERE is_default = 1 AND uid = %d LIMIT 1) WHERE abook_profile = '%s' AND abook_channel = %d ",
|
||||
intval(local_user()),
|
||||
dbesc($profile_guid),
|
||||
intval(local_user())
|
||||
);
|
||||
$r = q("DELETE FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval(argv(2)),
|
||||
intval(local_user())
|
||||
);
|
||||
if($r)
|
||||
info( t('Profile deleted.') . EOL);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if((argc() > 1) && (argv(1) === 'new')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
|
||||
|
||||
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
|
||||
intval(local_user()));
|
||||
$num_profiles = count($r0);
|
||||
|
||||
$name = t('Profile-') . ($num_profiles + 1);
|
||||
|
||||
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is_default` = 1 LIMIT 1",
|
||||
intval(local_user()));
|
||||
|
||||
$r2 = q("INSERT INTO `profile` (`aid`, `uid` , `profile_guid`, `profile_name` , `name`, `photo`, `thumb`)
|
||||
VALUES ( %d, '%s', '%s', '%s', '%s' )",
|
||||
intval(get_account_id()),
|
||||
intval(local_user()),
|
||||
dbesc(random_string()),
|
||||
dbesc($name),
|
||||
dbesc($r1[0]['name']),
|
||||
dbesc($r1[0]['photo']),
|
||||
dbesc($r1[0]['thumb'])
|
||||
);
|
||||
|
||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile_name` = '%s' LIMIT 1",
|
||||
intval(local_user()),
|
||||
dbesc($name)
|
||||
);
|
||||
|
||||
info( t('New profile created.') . EOL);
|
||||
if(count($r3) == 1)
|
||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(1) === 'clone')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
|
||||
|
||||
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
|
||||
intval(local_user()));
|
||||
$num_profiles = count($r0);
|
||||
|
||||
$name = t('Profile-') . ($num_profiles + 1);
|
||||
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||
intval(local_user()),
|
||||
intval($a->argv[2])
|
||||
);
|
||||
if(! count($r1)) {
|
||||
notice( t('Profile unavailable to clone.') . EOL);
|
||||
return;
|
||||
}
|
||||
unset($r1[0]['id']);
|
||||
$r1[0]['is_default'] = 0;
|
||||
$r1[0]['publish'] = 0;
|
||||
$r1[0]['profile_name'] = dbesc($name);
|
||||
$r1[0]['profile_guid'] = dbesc(random_string());
|
||||
|
||||
dbesc_array($r1[0]);
|
||||
|
||||
$r2 = dbq("INSERT INTO `profile` (`"
|
||||
. implode("`, `", array_keys($r1[0]))
|
||||
. "`) VALUES ('"
|
||||
. implode("', '", array_values($r1[0]))
|
||||
. "')" );
|
||||
|
||||
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile_name` = '%s' LIMIT 1",
|
||||
intval(local_user()),
|
||||
dbesc($name)
|
||||
);
|
||||
info( t('New profile created.') . EOL);
|
||||
if(count($r3) == 1)
|
||||
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
|
||||
|
||||
goaway($a->get_baseurl(true) . '/profiles');
|
||||
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
if((argc() > 1) && (intval(argv(1)))) {
|
||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($a->argv[1]),
|
||||
|
@ -441,10 +479,6 @@ function profiles_content(&$a) {
|
|||
return;
|
||||
}
|
||||
|
||||
$chan = $a->get_channel();
|
||||
|
||||
profile_load($a,$chan['channel_address'],$r[0]['id']);
|
||||
|
||||
require_once('include/profile_selectors.php');
|
||||
|
||||
|
||||
|
|
|
@ -13,6 +13,15 @@ function profperm_init(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function profperm_aside(&$a) {
|
||||
|
||||
if(! local_user())
|
||||
return;
|
||||
|
||||
profile_aside($a);
|
||||
}
|
||||
|
||||
|
||||
function profperm_content(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
|
|
|
@ -11,6 +11,16 @@ function viewcontacts_init(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function viewcontacts_aside(&$a) {
|
||||
|
||||
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||
return;
|
||||
}
|
||||
|
||||
profile_aside($a);
|
||||
}
|
||||
|
||||
|
||||
function viewcontacts_content(&$a) {
|
||||
|
||||
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||
|
|
|
@ -29,7 +29,7 @@ function xrd_init(&$a) {
|
|||
|
||||
$dspr = '';
|
||||
|
||||
$tpl = file_get_contents('view/xrd_person.tpl');
|
||||
$tpl = get_markup_template('view/xrd_person.tpl');
|
||||
|
||||
$o = replace_macros($tpl, array(
|
||||
'$nick' => $r[0]['nickname'],
|
||||
|
|
198
mods/friendica-to-smarty-tpl.py
Executable file
198
mods/friendica-to-smarty-tpl.py
Executable 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 += 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)
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ function fancyred_form(&$a, $font_size, $line_height, $colour) {
|
|||
'dark' => 'dark',
|
||||
);
|
||||
|
||||
$t = file_get_contents( dirname(__file__). "/../tpl/theme_settings.tpl" );
|
||||
$t = get_markup_template('theme_settings.tpl');
|
||||
$o .= replace_macros($t, array(
|
||||
'$submit' => t('Submit'),
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
function fancyred_init(&$a) {
|
||||
$a->set_template_engine('smarty3');
|
||||
// head_add_js('redbasic.js');
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ function redbasic_form(&$a, $font_size, $line_height, $colour) {
|
|||
'dark' => 'dark',
|
||||
);
|
||||
|
||||
$t = file_get_contents( dirname(__file__). "/../tpl/theme_settings.tpl" );
|
||||
$t = get_markup_template('theme_settings.tpl');
|
||||
$o .= replace_macros($t, array(
|
||||
'$submit' => t('Submit'),
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
function redbasic_init(&$a) {
|
||||
$a->set_template_engine('smarty3');
|
||||
// head_add_js('redbasic.js');
|
||||
}
|
||||
|
|
10
view/theme/redbasic/tpl/smarty3/lang_selector.tpl
Normal file
10
view/theme/redbasic/tpl/smarty3/lang_selector.tpl
Normal file
|
@ -0,0 +1,10 @@
|
|||
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
|
||||
<div id="language-selector" style="display: none;" >
|
||||
<form action="#" method="post" >
|
||||
<select name="system_language" onchange="this.form.submit();" >
|
||||
{{foreach $langs.0 as $v=>$l}}
|
||||
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
61
view/theme/redbasic/tpl/smarty3/moderated_comment.tpl
Normal file
61
view/theme/redbasic/tpl/smarty3/moderated_comment.tpl
Normal file
|
@ -0,0 +1,61 @@
|
|||
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-{{$id}}" style="display: block;">
|
||||
<form class="comment-edit-form" id="comment-edit-form-{{$id}}" action="item" method="post" onsubmit="post_comment({{$id}}); return false;">
|
||||
<input type="hidden" name="type" value="{{$type}}" />
|
||||
<input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
|
||||
<input type="hidden" name="parent" value="{{$parent}}" />
|
||||
<input type="hidden" name="return" value="{{$return_path}}" />
|
||||
<input type="hidden" name="jsreload" value="{{$jsreload}}" />
|
||||
<input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
|
||||
|
||||
<div class="comment-edit-photo" id="comment-edit-photo-{{$id}}" >
|
||||
<a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
|
||||
</div>
|
||||
<div class="comment-edit-photo-end"></div>
|
||||
<div id="mod-cmnt-wrap-{{$id}}" class="mod-cmnt-wrap" style="display:none">
|
||||
<div id="mod-cmnt-name-lbl-{{$id}}" class="mod-cmnt-name-lbl">{{$lbl_modname}}</div>
|
||||
<input type="text" id="mod-cmnt-name-{{$id}}" class="mod-cmnt-name" name="mod-cmnt-name" value="{{$modname}}" />
|
||||
<div id="mod-cmnt-email-lbl-{{$id}}" class="mod-cmnt-email-lbl">{{$lbl_modemail}}</div>
|
||||
<input type="text" id="mod-cmnt-email-{{$id}}" class="mod-cmnt-email" name="mod-cmnt-email" value="{{$modemail}}" />
|
||||
<div id="mod-cmnt-url-lbl-{{$id}}" class="mod-cmnt-url-lbl">{{$lbl_modurl}}</div>
|
||||
<input type="text" id="mod-cmnt-url-{{$id}}" class="mod-cmnt-url" name="mod-cmnt-url" value="{{$modurl}}" />
|
||||
</div>
|
||||
<ul class="comment-edit-bb-{{$id}}">
|
||||
<li><a class="editicon boldbb shadow"
|
||||
style="cursor: pointer;" title="{{$edbold}}"
|
||||
onclick="insertFormatting('{{$comment}}','b', {{$id}});"></a></li>
|
||||
<li><a class="editicon italicbb shadow"
|
||||
style="cursor: pointer;" title="{{$editalic}}"
|
||||
onclick="insertFormatting('{{$comment}}','i', {{$id}});"></a></li>
|
||||
<li><a class="editicon underlinebb shadow"
|
||||
style="cursor: pointer;" title="{{$eduline}}"
|
||||
onclick="insertFormatting('{{$comment}}','u', {{$id}});"></a></li>
|
||||
<li><a class="editicon quotebb shadow"
|
||||
style="cursor: pointer;" title="{{$edquote}}"
|
||||
onclick="insertFormatting('{{$comment}}','quote', {{$id}});"></a></li>
|
||||
<li><a class="editicon codebb shadow"
|
||||
style="cursor: pointer;" title="{{$edcode}}"
|
||||
onclick="insertFormatting('{{$comment}}','code', {{$id}});"></a></li>
|
||||
<li><a class="editicon imagebb shadow"
|
||||
style="cursor: pointer;" title="{{$edimg}}"
|
||||
onclick="insertFormatting('{{$comment}}','img', {{$id}});"></a></li>
|
||||
<li><a class="editicon urlbb shadow"
|
||||
style="cursor: pointer;" title="{{$edurl}}"
|
||||
onclick="insertFormatting('{{$comment}}','url', {{$id}});"></a></li>
|
||||
<li><a class="editicon videobb shadow"
|
||||
style="cursor: pointer;" title="{{$edvideo}}"
|
||||
onclick="insertFormatting('{{$comment}}','video', {{$id}});"></a></li>
|
||||
</ul>
|
||||
<div class="comment-edit-bb-end"></div>
|
||||
<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,{{$id}});cmtBbOpen({{$id}});" onBlur="commentClose(this,{{$id}});" >{{$comment}}</textarea>
|
||||
|
||||
<div class="comment-edit-text-end"></div>
|
||||
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
|
||||
<input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
|
||||
<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>
|
||||
<div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
|
||||
</div>
|
||||
|
||||
<div class="comment-edit-end"></div>
|
||||
</form>
|
||||
|
||||
</div>
|
51
view/theme/redbasic/tpl/smarty3/profile_vcard.tpl
Normal file
51
view/theme/redbasic/tpl/smarty3/profile_vcard.tpl
Normal file
|
@ -0,0 +1,51 @@
|
|||
<div class="vcard">
|
||||
|
||||
<div class="fn label">{{$profile.name}}</div>
|
||||
|
||||
|
||||
|
||||
{{if $pdesc}}<div class="title">{{$profile.pdesc}}</div>{{/if}}
|
||||
<div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
|
||||
|
||||
|
||||
|
||||
{{if $location}}
|
||||
<dl class="location"><dt class="location-label">{{$location}}</dt>
|
||||
<dd class="adr">
|
||||
{{if $profile.address}}<div class="street-address">{{$profile.address}}</div>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region">{{$profile.region}}</span>
|
||||
<span class="postal-code">{{$profile.postal-code}}</span>
|
||||
</span>
|
||||
{{if $profile.country-name}}<span class="country-name">{{$profile.country-name}}</span>{{/if}}
|
||||
</dd>
|
||||
</dl>
|
||||
{{/if}}
|
||||
|
||||
{{if $gender}}<dl class="mf"><dt class="gender-label">{{$gender}}</dt> <dd class="x-gender">{{$profile.gender}}</dd></dl>{{/if}}
|
||||
|
||||
{{if $profile.pubkey}}<div class="key" style="display:none;">{{$profile.pubkey}}</div>{{/if}}
|
||||
|
||||
{{if $marital}}<dl class="marital"><dt class="marital-label"><span class="heart">♥</span>{{$marital}}</dt><dd class="marital-text">{{$profile.marital}}</dd></dl>{{/if}}
|
||||
|
||||
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" >{{$profile.homepage}}</a></dd></dl>{{/if}}
|
||||
|
||||
{{include file="diaspora_vcard.tpl"}}
|
||||
|
||||
<div id="profile-vcard-break"></div>
|
||||
<div id="profile-extra-links">
|
||||
<ul>
|
||||
{{if $connect}}
|
||||
<li><a id="dfrn-request-link" href="dfrn_request/{{$profile.nickname}}">{{$connect}}</a></li>
|
||||
{{/if}}
|
||||
{{if $wallmessage}}
|
||||
<li><a id="wallmessage-link" href="wallmessage/{{$profile.nickname}}">{{$wallmessage}}</a></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{$contact_block}}
|
||||
|
||||
|
39
view/theme/redbasic/tpl/smarty3/prv_message.tpl
Normal file
39
view/theme/redbasic/tpl/smarty3/prv_message.tpl
Normal file
|
@ -0,0 +1,39 @@
|
|||
|
||||
<h3>{{$header}}</h3>
|
||||
|
||||
<div id="prvmail-wrapper" >
|
||||
<form id="prvmail-form" action="message" method="post" >
|
||||
|
||||
{{$parent}}
|
||||
|
||||
<div id="prvmail-to-label">{{$to}}</div>
|
||||
|
||||
{{if $showinputs}}
|
||||
<input type="text" id="recip" name="messagerecip" value="{{$prefill}}" maxlength="255" size="64" tabindex="10" />
|
||||
<input type="hidden" id="recip-complete" name="messageto" value="{{$preid}}">
|
||||
{{else}}
|
||||
{{$select}}
|
||||
{{/if}}
|
||||
|
||||
<div id="prvmail-subject-label">{{$subject}}</div>
|
||||
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
|
||||
|
||||
<div id="prvmail-message-label">{{$yourmessage}}</div>
|
||||
<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
|
||||
|
||||
|
||||
<div id="prvmail-submit-wrapper" >
|
||||
<input type="submit" id="prvmail-submit" name="submit" value="Submit" tabindex="13" />
|
||||
<div id="prvmail-upload-wrapper" >
|
||||
<div id="prvmail-upload" class="icon border camera" title="{{$upload}}" ></div>
|
||||
</div>
|
||||
<div id="prvmail-link-wrapper" >
|
||||
<div id="prvmail-link" class="icon border link" title="{{$insert}}" onclick="jotGetLink();" ></div>
|
||||
</div>
|
||||
<div id="prvmail-rotator-wrapper" >
|
||||
<img id="prvmail-rotator" src="images/rotator.gif" alt="{{$wait}}" title="{{$wait}}" style="display: none;" />
|
||||
</div>
|
||||
</div>
|
||||
<div id="prvmail-end"></div>
|
||||
</form>
|
||||
</div>
|
|
@ -70,7 +70,7 @@
|
|||
<td class='register_date'>$u.register_date</td>
|
||||
<td class='login_date'>$u.login_date</td>
|
||||
<td class='lastitem_date'>$u.lastitem_date</td>
|
||||
<td class='login_date'>$u.page-flags</td>
|
||||
<td class='login_date'>$u.page_flags</td>
|
||||
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
|
||||
<td class="tools">
|
||||
<a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="directory-item lframe" id="directory-item-$id" >
|
||||
<div class="contact-photo-wrapper" id="directory-photo-wrapper-$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>
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mceActionPanel">
|
||||
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
|
||||
<input type="button" id="cancel" name="cancel" value="$cancel" onclick="tinyMCEPopup.close();" />
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<form action="$baseurl/index.php?q=setup" method="post">
|
||||
<table>
|
||||
{{ for $checks as $check }}
|
||||
<tr><td>$check.title </td><td><span class="icon s22 {{if $check.status}}on{{else}}{{if$check.required}}off{{else}}yellow{{endif}}{{endif}}"></td><td>{{if $check.required}}(required){{endif}}</td></tr>
|
||||
<tr><td>$check.title </td><td><span class="icon s22 {{if $check.status}}on{{else}}{{if $check.required}}off{{else}}yellow{{endif}}{{endif}}"></td><td>{{if $check.required}}(required){{endif}}</td></tr>
|
||||
{{if $check.help }}
|
||||
<tr><td colspan="3"><blockquote>$check.help</blockquote></td></tr>
|
||||
{{endif}}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div class="notif-item">
|
||||
<a href="{$item_link}" target="friendica-notifications"><img src="{$item_image}" class="notif-image">{$item_text} <span class="notif-when">{$item_when}</span></a>
|
||||
</div>
|
||||
<a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
|
||||
</div>
|
||||
|
|
1
view/tpl/smarty3/404.tpl
Normal file
1
view/tpl/smarty3/404.tpl
Normal file
|
@ -0,0 +1 @@
|
|||
<h1>{{$message}}</h1>
|
45
view/tpl/smarty3/abook_edit.tpl
Normal file
45
view/tpl/smarty3/abook_edit.tpl
Normal file
|
@ -0,0 +1,45 @@
|
|||
|
||||
<h2>{{$header}}</h2>
|
||||
|
||||
|
||||
<div id="connection-flag-tabs">
|
||||
{{$tabs}}
|
||||
</div>
|
||||
|
||||
<div id="contact-edit-wrapper">
|
||||
<br />
|
||||
<h3>Slide to adjust your degree of friendship</h3>
|
||||
|
||||
{{$slide}}
|
||||
|
||||
|
||||
|
||||
<h3>Permissions</h3>
|
||||
|
||||
<form action="connections/{{$contact_id}}" method="post" >
|
||||
<input type="hidden" name="contact_id" value="{{$contact_id}}">
|
||||
<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
|
||||
|
||||
<br />
|
||||
<b>Quick Links:</b>
|
||||
<a href="" style="background-color: #CCC; padding: 3px; border-radius: 5px; margin-left: 15px;">Full Sharing</a><a href="" style="background-color: #CCC; padding: 3px; border-radius: 5px; margin-left: 15px;">Cautious Sharing</a><a href="" style="background-color: #CCC; padding: 3px; border-radius: 5px; margin-left: 15px;">Follow Only</a><br />
|
||||
<br />
|
||||
|
||||
<div id="abook-advanced" class="fakelink" onclick="openClose('abook-advanced-panel');">Advanced Permissions</div>
|
||||
|
||||
<div id="abook-advanced-panel" style="display: none;">
|
||||
|
||||
<span class="abook-them">{{$them}}</span><span class="abook-me">{{$me}}</span>
|
||||
<br />
|
||||
<br />
|
||||
{{foreach $perms as $prm}}
|
||||
{{include file="field_acheckbox.tpl" field=$prm}}
|
||||
{{/foreach}}
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit}}" />
|
||||
|
||||
</form>
|
||||
</div>
|
28
view/tpl/smarty3/acl_selector.tpl
Normal file
28
view/tpl/smarty3/acl_selector.tpl
Normal file
|
@ -0,0 +1,28 @@
|
|||
<div id="acl-wrapper">
|
||||
<input id="acl-search">
|
||||
<a href="#" id="acl-showall">{{$showall}}</a>
|
||||
<div id="acl-list">
|
||||
<div id="acl-list-content">
|
||||
</div>
|
||||
</div>
|
||||
<span id="acl-fields"></span>
|
||||
</div>
|
||||
|
||||
<div class="acl-list-item" rel="acl-template" style="display:none">
|
||||
<img src="{0}"><p>{1}</p>
|
||||
<a href="#" class='acl-button-show'>{{$show}}</a>
|
||||
<a href="#" class='acl-button-hide'>{{$hide}}</a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
setTimeout( function () {
|
||||
if(typeof acl=="undefined"){
|
||||
acl = new ACL(
|
||||
baseurl+"/acl",
|
||||
[ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ]
|
||||
);
|
||||
}
|
||||
}, 5000 );
|
||||
});
|
||||
</script>
|
42
view/tpl/smarty3/admin_aside.tpl
Normal file
42
view/tpl/smarty3/admin_aside.tpl
Normal file
|
@ -0,0 +1,42 @@
|
|||
<script>
|
||||
// update pending count //
|
||||
$(function(){
|
||||
|
||||
$("nav").bind('nav-update', function(e,data){
|
||||
var elm = $('#pending-update');
|
||||
var register = $(data).find('register').text();
|
||||
if (register=="0") { reigster=""; elm.hide();} else { elm.show(); }
|
||||
elm.html(register);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<h4><a href="{{$admurl}}">{{$admtxt}}</a></h4>
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin link button {{$admin.site.2}}'><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
|
||||
<li class='admin link button {{$admin.users.2}}'><a href='{{$admin.users.0}}'>{{$admin.users.1}}</a><span id='pending-update' title='{{$h_pending}}'></span></li>
|
||||
<li class='admin link button {{$admin.plugins.2}}'><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
|
||||
<li class='admin link button {{$admin.themes.2}}'><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
|
||||
<li class='admin link button {{$admin.dbsync.2}}'><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
|
||||
</ul>
|
||||
|
||||
{{if $admin.update}}
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin link button {{$admin.update.2}}'><a href='{{$admin.update.0}}'>{{$admin.update.1}}</a></li>
|
||||
<li class='admin link button {{$admin.update.2}}'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
|
||||
{{if $admin.plugins_admin}}<h4>{{$plugadmtxt}}</h4>{{/if}}
|
||||
<ul class='admin linklist'>
|
||||
{{foreach $admin.plugins_admin as $l}}
|
||||
<li class='admin link button {{$l.2}}'><a href='{{$l.0}}'>{{$l.1}}</a></li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>{{$logtxt}}</h4>
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin link button {{$admin.logs.2}}'><a href='{{$admin.logs.0}}'>{{$admin.logs.1}}</a></li>
|
||||
</ul>
|
||||
|
19
view/tpl/smarty3/admin_logs.tpl
Normal file
19
view/tpl/smarty3/admin_logs.tpl
Normal file
|
@ -0,0 +1,19 @@
|
|||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<form action="{{$baseurl}}/admin/logs" method="post">
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
|
||||
{{include file="field_checkbox.tpl" field=$debugging}}
|
||||
{{include file="field_input.tpl" field=$logfile}}
|
||||
{{include file="field_select.tpl" field=$loglevel}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_logs" value="{{$submit}}" /></div>
|
||||
|
||||
</form>
|
||||
|
||||
<h3>{{$logname}}</h3>
|
||||
<div style="width:100%; height:400px; overflow: auto; "><pre>{{$data}}</pre></div>
|
||||
<!-- <iframe src='{{$baseurl}}/{{$logname}}' style="width:100%; height:400px"></iframe> -->
|
||||
<!-- <div class="submit"><input type="submit" name="page_logs_clear_log" value="{{$clear}}" /></div> -->
|
||||
</div>
|
15
view/tpl/smarty3/admin_plugins.tpl
Normal file
15
view/tpl/smarty3/admin_plugins.tpl
Normal file
|
@ -0,0 +1,15 @@
|
|||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<ul id='pluginslist'>
|
||||
{{foreach $plugins as $p}}
|
||||
<li class='plugin {{$p.1}}'>
|
||||
<a class='toggleplugin' href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}?a=t&t={{$form_security_token}}' title="{{if $p.1==on}}Disable{{else}}Enable{{/if}}" ><span class='icon {{$p.1}}'></span></a>
|
||||
<a href='{{$baseurl}}/admin/{{$function}}/{{$p.0}}'><span class='name'>{{$p.2.name}}</span></a> - <span class="version">{{$p.2.version}}</span>
|
||||
{{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}}
|
||||
|
||||
<div class='desc'>{{$p.2.description}}</div>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
</div>
|
36
view/tpl/smarty3/admin_plugins_details.tpl
Normal file
36
view/tpl/smarty3/admin_plugins_details.tpl
Normal file
|
@ -0,0 +1,36 @@
|
|||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<p><span class='toggleplugin icon {{$status}}'></span> {{$info.name}} - {{$info.version}} : <a href="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/?a=t&t={{$form_security_token}}">{{$action}}</a></p>
|
||||
<p>{{$info.description}}</p>
|
||||
|
||||
<p class="author">{{$str_author}}
|
||||
{{foreach $info.author as $a}}
|
||||
{{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
|
||||
{{/foreach}}
|
||||
</p>
|
||||
|
||||
<p class="maintainer">{{$str_maintainer}}
|
||||
{{foreach $info.maintainer as $a}}
|
||||
{{if $a.link}}<a href="{{$a.link}}">{{$a.name}}</a>{{else}}{{$a.name}}{{/if}},
|
||||
{{/foreach}}
|
||||
</p>
|
||||
|
||||
{{if $screenshot}}
|
||||
<a href="{{$screenshot.0}}" class='screenshot'><img src="{{$screenshot.0}}" alt="{{$screenshot.1}}" /></a>
|
||||
{{/if}}
|
||||
|
||||
{{if $admin_form}}
|
||||
<h3>{{$settings}}</h3>
|
||||
<form method="post" action="{{$baseurl}}/admin/{{$function}}/{{$plugin}}/">
|
||||
{{$admin_form}}
|
||||
</form>
|
||||
{{/if}}
|
||||
|
||||
{{if $readme}}
|
||||
<h3>Readme</h3>
|
||||
<div id="plugin_readme">
|
||||
{{$readme}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
98
view/tpl/smarty3/admin_remoteupdate.tpl
Normal file
98
view/tpl/smarty3/admin_remoteupdate.tpl
Normal file
|
@ -0,0 +1,98 @@
|
|||
<script src="js/jquery.htmlstream.js"></script>
|
||||
<script>
|
||||
/* ajax updater */
|
||||
function updateEnd(data){
|
||||
//$("#updatepopup .panel_text").html(data);
|
||||
$("#remoteupdate_form").find("input").removeAttr('disabled');
|
||||
$(".panel_action_close").fadeIn()
|
||||
}
|
||||
function updateOn(data){
|
||||
|
||||
var patt=/§([^§]*)§/g;
|
||||
var matches = data.match(patt);
|
||||
$(matches).each(function(id,data){
|
||||
data = data.replace(/§/g,"");
|
||||
d = data.split("@");
|
||||
console.log(d);
|
||||
elm = $("#updatepopup .panel_text #"+d[0]);
|
||||
html = "<div id='"+d[0]+"' class='progress'>"+d[1]+"<span>"+d[2]+"</span></div>";
|
||||
if (elm.length==0){
|
||||
$("#updatepopup .panel_text").append(html);
|
||||
} else {
|
||||
$(elm).replaceWith(html);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$("#remoteupdate_form").submit(function(){
|
||||
var data={};
|
||||
$(this).find("input").each(function(i, e){
|
||||
name = $(e).attr('name');
|
||||
value = $(e).val();
|
||||
e.disabled = true;
|
||||
data[name]=value;
|
||||
});
|
||||
|
||||
$("#updatepopup .panel_text").html("");
|
||||
$("#updatepopup").show();
|
||||
$("#updatepopup .panel").hide().slideDown(500);
|
||||
$(".panel_action_close").hide().click(function(){
|
||||
$("#updatepopup .panel").slideUp(500, function(){
|
||||
$("#updatepopup").hide();
|
||||
});
|
||||
});
|
||||
|
||||
$.post(
|
||||
$(this).attr('action'),
|
||||
data,
|
||||
updateEnd,
|
||||
'text',
|
||||
updateOn
|
||||
);
|
||||
|
||||
|
||||
return false;
|
||||
})
|
||||
});
|
||||
</script>
|
||||
<div id="updatepopup" class="popup">
|
||||
<div class="background"></div>
|
||||
<div class="panel">
|
||||
<div class="panel_in">
|
||||
<h1>Friendica Update</h1>
|
||||
<div class="panel_text"></div>
|
||||
<div class="panel_actions">
|
||||
<input type="button" value="{{$close}}" class="panel_action_close">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="adminpage">
|
||||
<dl> <dt>Your version:</dt><dd>{{$localversion}}</dd> </dl>
|
||||
{{if $needupdate}}
|
||||
<dl> <dt>New version:</dt><dd>{{$remoteversion}}</dd> </dl>
|
||||
|
||||
<form id="remoteupdate_form" method="POST" action="{{$baseurl}}/admin/update">
|
||||
<input type="hidden" name="{{$remotefile.0}}" value="{{$remotefile.2}}">
|
||||
|
||||
{{if $canwrite}}
|
||||
<div class="submit"><input type="submit" name="remoteupdate" value="{{$submit}}" /></div>
|
||||
{{else}}
|
||||
<h3>Your friendica installation is not writable by web server.</h3>
|
||||
{{if $canftp}}
|
||||
<p>You can try to update via FTP</p>
|
||||
{{include file="field_input.tpl" field=$ftphost}}
|
||||
{{include file="field_input.tpl" field=$ftppath}}
|
||||
{{include file="field_input.tpl" field=$ftpuser}}
|
||||
{{include file="field_password.tpl" field=$ftppwd}}
|
||||
<div class="submit"><input type="submit" name="remoteupdate" value="{{$submit}}" /></div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</form>
|
||||
{{else}}
|
||||
<h4>No updates</h4>
|
||||
{{/if}}
|
||||
</div>
|
82
view/tpl/smarty3/admin_site.tpl
Normal file
82
view/tpl/smarty3/admin_site.tpl
Normal file
|
@ -0,0 +1,82 @@
|
|||
<script>
|
||||
$(function(){
|
||||
|
||||
$("#cnftheme").fancybox({
|
||||
width: 800,
|
||||
autoDimensions: false,
|
||||
onStart: function(){
|
||||
var theme = $("#id_theme :selected").val();
|
||||
$("#cnftheme").attr('href',"{{$baseurl}}/admin/themes/"+theme);
|
||||
},
|
||||
onComplete: function(){
|
||||
$("div#fancybox-content form").submit(function(e){
|
||||
var url = $(this).attr('action');
|
||||
// can't get .serialize() to work...
|
||||
var data={};
|
||||
$(this).find("input").each(function(){
|
||||
data[$(this).attr('name')] = $(this).val();
|
||||
});
|
||||
$(this).find("select").each(function(){
|
||||
data[$(this).attr('name')] = $(this).children(":selected").val();
|
||||
});
|
||||
console.log(":)", url, data);
|
||||
|
||||
$.post(url, data, function(data) {
|
||||
if(timer) clearTimeout(timer);
|
||||
NavUpdate();
|
||||
$.fancybox.close();
|
||||
})
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<form action="{{$baseurl}}/admin/site" method="post">
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
|
||||
{{include file="field_input.tpl" field=$sitename}}
|
||||
{{include file="field_textarea.tpl" field=$banner}}
|
||||
{{include file="field_select.tpl" field=$language}}
|
||||
{{include file="field_select.tpl" field=$theme}}
|
||||
{{include file="field_select.tpl" field=$ssl_policy}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||
|
||||
<h3>{{$registration}}</h3>
|
||||
{{include file="field_input.tpl" field=$register_text}}
|
||||
{{include file="field_select.tpl" field=$register_policy}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||
|
||||
<h3>{{$upload}}</h3>
|
||||
{{include file="field_input.tpl" field=$maximagesize}}
|
||||
|
||||
<h3>{{$corporate}}</h3>
|
||||
{{include file="field_input.tpl" field=$allowed_sites}}
|
||||
{{include file="field_input.tpl" field=$allowed_email}}
|
||||
{{include file="field_checkbox.tpl" field=$block_public}}
|
||||
{{include file="field_checkbox.tpl" field=$force_publish}}
|
||||
{{include file="field_checkbox.tpl" field=$no_community_page}}
|
||||
{{include file="field_input.tpl" field=$global_directory}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||
|
||||
<h3>{{$advanced}}</h3>
|
||||
{{include file="field_input.tpl" field=$proxy}}
|
||||
{{include file="field_input.tpl" field=$proxyuser}}
|
||||
{{include file="field_input.tpl" field=$timeout}}
|
||||
{{include file="field_input.tpl" field=$delivery_interval}}
|
||||
{{include file="field_input.tpl" field=$poll_interval}}
|
||||
{{include file="field_input.tpl" field=$maxloadavg}}
|
||||
{{include file="field_input.tpl" field=$abandon_days}}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||
|
||||
</form>
|
||||
</div>
|
40
view/tpl/smarty3/admin_summary.tpl
Normal file
40
view/tpl/smarty3/admin_summary.tpl
Normal file
|
@ -0,0 +1,40 @@
|
|||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<dl>
|
||||
<dt>{{$queues.label}}</dt>
|
||||
<dd>{{$queues.deliverq}} - {{$queues.queue}}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>{{$pending.0}}</dt>
|
||||
<dd>{{$pending.1}}</dt>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>{{$users.0}}</dt>
|
||||
<dd>{{$users.1}}</dd>
|
||||
</dl>
|
||||
{{foreach $accounts as $p}}
|
||||
<dl>
|
||||
<dt>{{$p.0}}</dt>
|
||||
<dd>{{if $p.1}}{{$p.1}}{{else}}0{{/if}}</dd>
|
||||
</dl>
|
||||
{{/foreach}}
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>{{$plugins.0}}</dt>
|
||||
|
||||
{{foreach $plugins.1 as $p}}
|
||||
<dd>{{$p}}</dd>
|
||||
{{/foreach}}
|
||||
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>{{$version.0}}</dt>
|
||||
<dd>{{$version.1}} - {{$build}}</dt>
|
||||
</dl>
|
||||
|
||||
|
||||
</div>
|
89
view/tpl/smarty3/admin_users.tpl
Normal file
89
view/tpl/smarty3/admin_users.tpl
Normal file
|
@ -0,0 +1,89 @@
|
|||
<script>
|
||||
function confirm_delete(uname){
|
||||
return confirm( "{{$confirm_delete}}".format(uname));
|
||||
}
|
||||
function confirm_delete_multi(){
|
||||
return confirm("{{$confirm_delete_multi}}");
|
||||
}
|
||||
function selectall(cls){
|
||||
$("."+cls).attr('checked','checked');
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<div id='adminpage'>
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
<form action="{{$baseurl}}/admin/users" method="post">
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
|
||||
<h3>{{$h_pending}}</h3>
|
||||
{{if $pending}}
|
||||
<table id='pending'>
|
||||
<thead>
|
||||
<tr>
|
||||
{{foreach $th_pending as $th}}<th>{{$th}}</th>{{/foreach}}
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{foreach $pending as $u}}
|
||||
<tr>
|
||||
<td class="created">{{$u.created}}</td>
|
||||
<td class="name">{{$u.name}}</td>
|
||||
<td class="email">{{$u.email}}</td>
|
||||
<td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}" /></td>
|
||||
<td class="tools">
|
||||
<a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title='{{$approve}}'><span class='icon like'></span></a>
|
||||
<a href="{{$baseurl}}/regmod/deny/{{$u.hash}}" title='{{$deny}}'><span class='icon dislike'></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">{{$select_all}}</a></div>
|
||||
<div class="submit"><input type="submit" name="page_users_deny" value="{{$deny}}"/> <input type="submit" name="page_users_approve" value="{{$approve}}" /></div>
|
||||
{{else}}
|
||||
<p>{{$no_pending}}</p>
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>{{$h_users}}</h3>
|
||||
{{if $users}}
|
||||
<table id='users'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
{{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{foreach $users as $u}}
|
||||
<tr>
|
||||
<td><img src="{{$u.micro}}" alt="{{$u.nickname}}" title="{{$u.nickname}}"></td>
|
||||
<td class='name'><a href="{{$u.url}}" title="{{$u.nickname}}" >{{$u.name}}</a></td>
|
||||
<td class='email'>{{$u.email}}</td>
|
||||
<td class='register_date'>{{$u.register_date}}</td>
|
||||
<td class='login_date'>{{$u.login_date}}</td>
|
||||
<td class='lastitem_date'>{{$u.lastitem_date}}</td>
|
||||
<td class='login_date'>{{$u.page_flags}}</td>
|
||||
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
|
||||
<td class="tools">
|
||||
<a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
|
||||
<a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
|
||||
<div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_users_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
|
||||
{{else}}
|
||||
NO USERS?!?
|
||||
{{/if}}
|
||||
</form>
|
||||
</div>
|
15
view/tpl/smarty3/album_edit.tpl
Normal file
15
view/tpl/smarty3/album_edit.tpl
Normal file
|
@ -0,0 +1,15 @@
|
|||
<div id="photo-album-edit-wrapper">
|
||||
<form name="photo-album-edit-form" id="photo-album-edit-form" action="photos/{{$nickname}}/album/{{$hexalbum}}" method="post" >
|
||||
|
||||
|
||||
<label id="photo-album-edit-name-label" for="photo-album-edit-name" >{{$nametext}}</label>
|
||||
<input type="text" size="64" name="albumname" value="{{$album}}" >
|
||||
|
||||
<div id="photo-album-edit-name-end"></div>
|
||||
|
||||
<input id="photo-album-edit-submit" type="submit" name="submit" value="{{$submit}}" />
|
||||
<input id="photo-album-edit-drop" type="submit" name="dropalbum" value="{{$dropsubmit}}" onclick="return confirmDelete();" />
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div id="photo-album-edit-end" ></div>
|
66
view/tpl/smarty3/api_config_xml.tpl
Normal file
66
view/tpl/smarty3/api_config_xml.tpl
Normal file
|
@ -0,0 +1,66 @@
|
|||
<config>
|
||||
<site>
|
||||
<name>{{$config.site.name}}</name>
|
||||
<server>{{$config.site.server}}</server>
|
||||
<theme>default</theme>
|
||||
<path></path>
|
||||
<logo>{{$config.site.logo}}</logo>
|
||||
|
||||
<fancy>true</fancy>
|
||||
<language>en</language>
|
||||
<email>{{$config.site.email}}</email>
|
||||
<broughtby></broughtby>
|
||||
<broughtbyurl></broughtbyurl>
|
||||
<timezone>UTC</timezone>
|
||||
<closed>{{$config.site.closed}}</closed>
|
||||
|
||||
<inviteonly>false</inviteonly>
|
||||
<private>{{$config.site.private}}</private>
|
||||
<textlimit>{{$config.site.textlimit}}</textlimit>
|
||||
<ssl>{{$config.site.ssl}}</ssl>
|
||||
<sslserver>{{$config.site.sslserver}}</sslserver>
|
||||
<shorturllength>30</shorturllength>
|
||||
|
||||
</site>
|
||||
<license>
|
||||
<type>cc</type>
|
||||
<owner></owner>
|
||||
<url>http://creativecommons.org/licenses/by/3.0/</url>
|
||||
<title>Creative Commons Attribution 3.0</title>
|
||||
<image>http://i.creativecommons.org/l/by/3.0/80x15.png</image>
|
||||
|
||||
</license>
|
||||
<nickname>
|
||||
<featured></featured>
|
||||
</nickname>
|
||||
<profile>
|
||||
<biolimit></biolimit>
|
||||
</profile>
|
||||
<group>
|
||||
<desclimit></desclimit>
|
||||
</group>
|
||||
<notice>
|
||||
|
||||
<contentlimit></contentlimit>
|
||||
</notice>
|
||||
<throttle>
|
||||
<enabled>false</enabled>
|
||||
<count>20</count>
|
||||
<timespan>600</timespan>
|
||||
</throttle>
|
||||
<xmpp>
|
||||
|
||||
<enabled>false</enabled>
|
||||
<server>INVALID SERVER</server>
|
||||
<port>5222</port>
|
||||
<user>update</user>
|
||||
</xmpp>
|
||||
<integration>
|
||||
<source>StatusNet</source>
|
||||
|
||||
</integration>
|
||||
<attachments>
|
||||
<uploads>false</uploads>
|
||||
<file_quota>0</file_quota>
|
||||
</attachments>
|
||||
</config>
|
5
view/tpl/smarty3/api_friends_xml.tpl
Normal file
5
view/tpl/smarty3/api_friends_xml.tpl
Normal file
|
@ -0,0 +1,5 @@
|
|||
<users type="array">
|
||||
{{foreach $users as $user}}
|
||||
{{include file="api_user_xml.tpl"}}
|
||||
{{/foreach}}
|
||||
</users>
|
6
view/tpl/smarty3/api_ratelimit_xml.tpl
Normal file
6
view/tpl/smarty3/api_ratelimit_xml.tpl
Normal file
|
@ -0,0 +1,6 @@
|
|||
<hash>
|
||||
<remaining-hits type="integer">{{$hash.remaining_hits}}</remaining-hits>
|
||||
<hourly-limit type="integer">{{$hash.hourly_limit}}</hourly-limit>
|
||||
<reset-time type="datetime">{{$hash.reset_time}}</reset-time>
|
||||
<reset_time_in_seconds type="integer">{{$hash.resettime_in_seconds}}</reset_time_in_seconds>
|
||||
</hash>
|
46
view/tpl/smarty3/api_status_xml.tpl
Normal file
46
view/tpl/smarty3/api_status_xml.tpl
Normal file
|
@ -0,0 +1,46 @@
|
|||
<status>{{if $status}}
|
||||
<created_at>{{$status.created_at}}</created_at>
|
||||
<id>{{$status.id}}</id>
|
||||
<text>{{$status.text}}</text>
|
||||
<source>{{$status.source}}</source>
|
||||
<truncated>{{$status.truncated}}</truncated>
|
||||
<in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
|
||||
<in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
|
||||
<favorited>{{$status.favorited}}</favorited>
|
||||
<in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
|
||||
<geo>{{$status.geo}}</geo>
|
||||
<coordinates>{{$status.coordinates}}</coordinates>
|
||||
<place>{{$status.place}}</place>
|
||||
<contributors>{{$status.contributors}}</contributors>
|
||||
<user>
|
||||
<id>{{$status.user.id}}</id>
|
||||
<name>{{$status.user.name}}</name>
|
||||
<screen_name>{{$status.user.screen_name}}</screen_name>
|
||||
<location>{{$status.user.location}}</location>
|
||||
<description>{{$status.user.description}}</description>
|
||||
<profile_image_url>{{$status.user.profile_image_url}}</profile_image_url>
|
||||
<url>{{$status.user.url}}</url>
|
||||
<protected>{{$status.user.protected}}</protected>
|
||||
<followers_count>{{$status.user.followers}}</followers_count>
|
||||
<profile_background_color>{{$status.user.profile_background_color}}</profile_background_color>
|
||||
<profile_text_color>{{$status.user.profile_text_color}}</profile_text_color>
|
||||
<profile_link_color>{{$status.user.profile_link_color}}</profile_link_color>
|
||||
<profile_sidebar_fill_color>{{$status.user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
|
||||
<profile_sidebar_border_color>{{$status.user.profile_sidebar_border_color}}</profile_sidebar_border_color>
|
||||
<friends_count>{{$status.user.friends_count}}</friends_count>
|
||||
<created_at>{{$status.user.created_at}}</created_at>
|
||||
<favourites_count>{{$status.user.favourites_count}}</favourites_count>
|
||||
<utc_offset>{{$status.user.utc_offset}}</utc_offset>
|
||||
<time_zone>{{$status.user.time_zone}}</time_zone>
|
||||
<profile_background_image_url>{{$status.user.profile_background_image_url}}</profile_background_image_url>
|
||||
<profile_background_tile>{{$status.user.profile_background_tile}}</profile_background_tile>
|
||||
<profile_use_background_image>{{$status.user.profile_use_background_image}}</profile_use_background_image>
|
||||
<notifications></notifications>
|
||||
<geo_enabled>{{$status.user.geo_enabled}}</geo_enabled>
|
||||
<verified>{{$status.user.verified}}</verified>
|
||||
<following></following>
|
||||
<statuses_count>{{$status.user.statuses_count}}</statuses_count>
|
||||
<lang>{{$status.user.lang}}</lang>
|
||||
<contributors_enabled>{{$status.user.contributors_enabled}}</contributors_enabled>
|
||||
</user>
|
||||
{{/if}}</status>
|
1
view/tpl/smarty3/api_test_xml.tpl
Normal file
1
view/tpl/smarty3/api_test_xml.tpl
Normal file
|
@ -0,0 +1 @@
|
|||
<ok>{{$ok}}</ok>
|
90
view/tpl/smarty3/api_timeline_atom.tpl
Normal file
90
view/tpl/smarty3/api_timeline_atom.tpl
Normal file
|
@ -0,0 +1,90 @@
|
|||
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
|
||||
<generator uri="http://status.net" version="0.9.7">StatusNet</generator>
|
||||
<id>{{$rss.self}}</id>
|
||||
<title>Friendika</title>
|
||||
<subtitle>Friendika API feed</subtitle>
|
||||
<logo>{{$rss.logo}}</logo>
|
||||
<updated>{{$rss.atom_updated}}</updated>
|
||||
<link type="text/html" rel="alternate" href="{{$rss.alternate}}"/>
|
||||
<link type="application/atom+xml" rel="self" href="{{$rss.self}}"/>
|
||||
|
||||
|
||||
<author>
|
||||
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
|
||||
<uri>{{$user.url}}</uri>
|
||||
<name>{{$user.name}}</name>
|
||||
<link rel="alternate" type="text/html" href="{{$user.url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
|
||||
<georss:point></georss:point>
|
||||
<poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
|
||||
<poco:displayName>{{$user.name}}</poco:displayName>
|
||||
<poco:urls>
|
||||
<poco:type>homepage</poco:type>
|
||||
<poco:value>{{$user.url}}</poco:value>
|
||||
<poco:primary>true</poco:primary>
|
||||
</poco:urls>
|
||||
<statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
|
||||
</author>
|
||||
|
||||
<!--Deprecation warning: activity:subject is present only for backward compatibility. It will be removed in the next version of StatusNet.-->
|
||||
<activity:subject>
|
||||
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
|
||||
<id>{{$user.contact_url}}</id>
|
||||
<title>{{$user.name}}</title>
|
||||
<link rel="alternate" type="text/html" href="{{$user.url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="106" media:height="106" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$user.profile_image_url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="{{$user.profile_image_url}}"/>
|
||||
<poco:preferredUsername>{{$user.screen_name}}</poco:preferredUsername>
|
||||
<poco:displayName>{{$user.name}}</poco:displayName>
|
||||
<poco:urls>
|
||||
<poco:type>homepage</poco:type>
|
||||
<poco:value>{{$user.url}}</poco:value>
|
||||
<poco:primary>true</poco:primary>
|
||||
</poco:urls>
|
||||
<statusnet:profile_info local_id="{{$user.id}}"></statusnet:profile_info>
|
||||
</activity:subject>
|
||||
|
||||
|
||||
{{foreach $statuses as $status}}
|
||||
<entry>
|
||||
<activity:obj_type>{{$status.objecttype}}</activity:obj_type>
|
||||
<id>{{$status.message_id}}</id>
|
||||
<title>{{$status.text}}</title>
|
||||
<content type="html">{{$status.statusnet_html}}</content>
|
||||
<link rel="alternate" type="text/html" href="{{$status.url}}"/>
|
||||
<activity:verb>{{$status.verb}}</activity:verb>
|
||||
<published>{{$status.published}}</published>
|
||||
<updated>{{$status.updated}}</updated>
|
||||
|
||||
<link rel="self" type="application/atom+xml" href="{{$status.self}}"/>
|
||||
<link rel="edit" type="application/atom+xml" href="{{$status.edit}}"/>
|
||||
<statusnet:notice_info local_id="{{$status.id}}" source="{{$status.source}}" >
|
||||
</statusnet:notice_info>
|
||||
|
||||
<author>
|
||||
<activity:obj_type>http://activitystrea.ms/schema/1.0/person</activity:obj_type>
|
||||
<uri>{{$status.user.url}}</uri>
|
||||
<name>{{$status.user.name}}</name>
|
||||
<link rel="alternate" type="text/html" href="{{$status.user.url}}"/>
|
||||
<link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="{{$status.user.profile_image_url}}"/>
|
||||
|
||||
<georss:point/>
|
||||
<poco:preferredUsername>{{$status.user.screen_name}}</poco:preferredUsername>
|
||||
<poco:displayName>{{$status.user.name}}</poco:displayName>
|
||||
<poco:address/>
|
||||
<poco:urls>
|
||||
<poco:type>homepage</poco:type>
|
||||
<poco:value>{{$status.user.url}}</poco:value>
|
||||
<poco:primary>true</poco:primary>
|
||||
</poco:urls>
|
||||
</author>
|
||||
<link rel="ostatus:conversation" type="text/html" href="{{$status.url}}"/>
|
||||
|
||||
</entry>
|
||||
{{/foreach}}
|
||||
</feed>
|
26
view/tpl/smarty3/api_timeline_rss.tpl
Normal file
26
view/tpl/smarty3/api_timeline_rss.tpl
Normal file
|
@ -0,0 +1,26 @@
|
|||
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:twitter="http://api.twitter.com">
|
||||
<channel>
|
||||
<title>Friendika</title>
|
||||
<link>{{$rss.alternate}}</link>
|
||||
<atom:link type="application/rss+xml" rel="self" href="{{$rss.self}}"/>
|
||||
<description>Friendika timeline</description>
|
||||
<language>{{$rss.language}}</language>
|
||||
<ttl>40</ttl>
|
||||
<image>
|
||||
<link>{{$user.link}}</link>
|
||||
<title>{{$user.name}}'s items</title>
|
||||
<url>{{$user.profile_image_url}}</url>
|
||||
</image>
|
||||
|
||||
{{foreach $statuses as $status}}
|
||||
<item>
|
||||
<title>{{$status.user.name}}: {{$status.text}}</title>
|
||||
<description>{{$status.text}}</description>
|
||||
<pubDate>{{$status.created_at}}</pubDate>
|
||||
<guid>{{$status.url}}</guid>
|
||||
<link>{{$status.url}}</link>
|
||||
<twitter:source>{{$status.source}}</twitter:source>
|
||||
</item>
|
||||
{{/foreach}}
|
||||
</channel>
|
||||
</rss>
|
20
view/tpl/smarty3/api_timeline_xml.tpl
Normal file
20
view/tpl/smarty3/api_timeline_xml.tpl
Normal file
|
@ -0,0 +1,20 @@
|
|||
<statuses type="array" xmlns:statusnet="http://status.net/schema/api/1/">
|
||||
{{foreach $statuses as $status}} <status>
|
||||
<text>{{$status.text}}</text>
|
||||
<truncated>{{$status.truncated}}</truncated>
|
||||
<created_at>{{$status.created_at}}</created_at>
|
||||
<in_reply_to_status_id>{{$status.in_reply_to_status_id}}</in_reply_to_status_id>
|
||||
<source>{{$status.source}}</source>
|
||||
<id>{{$status.id}}</id>
|
||||
<in_reply_to_user_id>{{$status.in_reply_to_user_id}}</in_reply_to_user_id>
|
||||
<in_reply_to_screen_name>{{$status.in_reply_to_screen_name}}</in_reply_to_screen_name>
|
||||
<geo>{{$status.geo}}</geo>
|
||||
<favorited>{{$status.favorited}}</favorited>
|
||||
{{include file="api_user_xml.tpl" user=$status.user}} <statusnet:html>{{$status.statusnet_html}}</statusnet:html>
|
||||
<statusnet:conversation_id>{{$status.statusnet_conversation_id}}</statusnet:conversation_id>
|
||||
<url>{{$status.url}}</url>
|
||||
<coordinates>{{$status.coordinates}}</coordinates>
|
||||
<place>{{$status.place}}</place>
|
||||
<contributors>{{$status.contributors}}</contributors>
|
||||
</status>
|
||||
{{/foreach}}</statuses>
|
46
view/tpl/smarty3/api_user_xml.tpl
Normal file
46
view/tpl/smarty3/api_user_xml.tpl
Normal file
|
@ -0,0 +1,46 @@
|
|||
<user>
|
||||
<id>{{$user.id}}</id>
|
||||
<name>{{$user.name}}</name>
|
||||
<screen_name>{{$user.screen_name}}</screen_name>
|
||||
<location>{{$user.location}}</location>
|
||||
<description>{{$user.description}}</description>
|
||||
<profile_image_url>{{$user.profile_image_url}}</profile_image_url>
|
||||
<url>{{$user.url}}</url>
|
||||
<protected>{{$user.protected}}</protected>
|
||||
<followers_count>{{$user.followers_count}}</followers_count>
|
||||
<friends_count>{{$user.friends_count}}</friends_count>
|
||||
<created_at>{{$user.created_at}}</created_at>
|
||||
<favourites_count>{{$user.favourites_count}}</favourites_count>
|
||||
<utc_offset>{{$user.utc_offset}}</utc_offset>
|
||||
<time_zone>{{$user.time_zone}}</time_zone>
|
||||
<statuses_count>{{$user.statuses_count}}</statuses_count>
|
||||
<following>{{$user.following}}</following>
|
||||
<profile_background_color>{{$user.profile_background_color}}</profile_background_color>
|
||||
<profile_text_color>{{$user.profile_text_color}}</profile_text_color>
|
||||
<profile_link_color>{{$user.profile_link_color}}</profile_link_color>
|
||||
<profile_sidebar_fill_color>{{$user.profile_sidebar_fill_color}}</profile_sidebar_fill_color>
|
||||
<profile_sidebar_border_color>{{$user.profile_sidebar_border_color}}</profile_sidebar_border_color>
|
||||
<profile_background_image_url>{{$user.profile_background_image_url}}</profile_background_image_url>
|
||||
<profile_background_tile>{{$user.profile_background_tile}}</profile_background_tile>
|
||||
<profile_use_background_image>{{$user.profile_use_background_image}}</profile_use_background_image>
|
||||
<notifications>{{$user.notifications}}</notifications>
|
||||
<geo_enabled>{{$user.geo_enabled}}</geo_enabled>
|
||||
<verified>{{$user.verified}}</verified>
|
||||
<lang>{{$user.lang}}</lang>
|
||||
<contributors_enabled>{{$user.contributors_enabled}}</contributors_enabled>
|
||||
<status>{{if $user.status}}
|
||||
<created_at>{{$user.status.created_at}}</created_at>
|
||||
<id>{{$user.status.id}}</id>
|
||||
<text>{{$user.status.text}}</text>
|
||||
<source>{{$user.status.source}}</source>
|
||||
<truncated>{{$user.status.truncated}}</truncated>
|
||||
<in_reply_to_status_id>{{$user.status.in_reply_to_status_id}}</in_reply_to_status_id>
|
||||
<in_reply_to_user_id>{{$user.status.in_reply_to_user_id}}</in_reply_to_user_id>
|
||||
<favorited>{{$user.status.favorited}}</favorited>
|
||||
<in_reply_to_screen_name>{{$user.status.in_reply_to_screen_name}}</in_reply_to_screen_name>
|
||||
<geo>{{$user.status.geo}}</geo>
|
||||
<coordinates>{{$user.status.coordinates}}</coordinates>
|
||||
<place>{{$user.status.place}}</place>
|
||||
<contributors>{{$user.status.contributors}}</contributors>
|
||||
{{/if}}</status>
|
||||
</user>
|
7
view/tpl/smarty3/apps.tpl
Normal file
7
view/tpl/smarty3/apps.tpl
Normal file
|
@ -0,0 +1,7 @@
|
|||
<h3>{{$title}}</h3>
|
||||
|
||||
<ul>
|
||||
{{foreach $apps as $ap}}
|
||||
<li>{{$ap}}</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
29
view/tpl/smarty3/atom_feed.tpl
Normal file
29
view/tpl/smarty3/atom_feed.tpl
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"
|
||||
xmlns:thr="http://purl.org/syndication/thread/1.0"
|
||||
xmlns:at="http://purl.org/atompub/tombstones/1.0"
|
||||
xmlns:media="http://purl.org/syndication/atommedia"
|
||||
xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
|
||||
xmlns:as="http://activitystrea.ms/spec/1.0/"
|
||||
xmlns:georss="http://www.georss.org/georss"
|
||||
xmlns:poco="http://portablecontacts.net/spec/1.0"
|
||||
xmlns:ostatus="http://ostatus.org/schema/1.0"
|
||||
xmlns:statusnet="http://status.net/schema/api/1/" >
|
||||
|
||||
<id>{{$feed_id}}</id>
|
||||
<title>{{$feed_title}}</title>
|
||||
<generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
|
||||
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
|
||||
{{$hub}}
|
||||
{{$salmon}}
|
||||
{{$community}}
|
||||
|
||||
<updated>{{$feed_updated}}</updated>
|
||||
|
||||
<dfrn:owner>
|
||||
<name dfrn:updated="{{$namdate}}" >{{$name}}</name>
|
||||
<uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
|
||||
<link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
|
||||
<link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
|
||||
{{$birthday}}
|
||||
</dfrn:owner>
|
29
view/tpl/smarty3/atom_feed_dfrn.tpl
Normal file
29
view/tpl/smarty3/atom_feed_dfrn.tpl
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"
|
||||
xmlns:thr="http://purl.org/syndication/thread/1.0"
|
||||
xmlns:at="http://purl.org/atompub/tombstones/1.0"
|
||||
xmlns:media="http://purl.org/syndication/atommedia"
|
||||
xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0"
|
||||
xmlns:as="http://activitystrea.ms/spec/1.0/"
|
||||
xmlns:georss="http://www.georss.org/georss"
|
||||
xmlns:poco="http://portablecontacts.net/spec/1.0"
|
||||
xmlns:ostatus="http://ostatus.org/schema/1.0"
|
||||
xmlns:statusnet="http://status.net/schema/api/1/" >
|
||||
|
||||
<id>{{$feed_id}}</id>
|
||||
<title>{{$feed_title}}</title>
|
||||
<generator uri="http://friendica.com" version="{{$version}}">Friendica</generator>
|
||||
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
|
||||
{{$hub}}
|
||||
{{$salmon}}
|
||||
{{$community}}
|
||||
|
||||
<updated>{{$feed_updated}}</updated>
|
||||
|
||||
<author>
|
||||
<name dfrn:updated="{{$namdate}}" >{{$name}}</name>
|
||||
<uri dfrn:updated="{{$uridate}}" >{{$profile_page}}</uri>
|
||||
<link rel="photo" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
|
||||
<link rel="avatar" type="image/jpeg" dfrn:updated="{{$picdate}}" media:width="175" media:height="175" href="{{$photo}}" />
|
||||
{{$birthday}}
|
||||
</author>
|
17
view/tpl/smarty3/atom_mail.tpl
Normal file
17
view/tpl/smarty3/atom_mail.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
|
||||
<dfrn:mail>
|
||||
|
||||
<dfrn:sender>
|
||||
<dfrn:name>{{$name}}</dfrn:name>
|
||||
<dfrn:uri>{{$profile_page}}</dfrn:uri>
|
||||
<dfrn:avatar>{{$thumb}}</dfrn:avatar>
|
||||
</dfrn:sender>
|
||||
|
||||
<dfrn:id>{{$item_id}}</dfrn:id>
|
||||
<dfrn:in-reply-to>{{$parent_id}}</dfrn:in-reply-to>
|
||||
<dfrn:sentdate>{{$created}}</dfrn:sentdate>
|
||||
<dfrn:subject>{{$subject}}</dfrn:subject>
|
||||
<dfrn:content>{{$content}}</dfrn:content>
|
||||
|
||||
</dfrn:mail>
|
||||
|
11
view/tpl/smarty3/atom_suggest.tpl
Normal file
11
view/tpl/smarty3/atom_suggest.tpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
|
||||
<dfrn:suggest>
|
||||
|
||||
<dfrn:url>{{$url}}</dfrn:url>
|
||||
<dfrn:name>{{$name}}</dfrn:name>
|
||||
<dfrn:photo>{{$photo}}</dfrn:photo>
|
||||
<dfrn:request>{{$request}}</dfrn:request>
|
||||
<dfrn:note>{{$note}}</dfrn:note>
|
||||
|
||||
</dfrn:suggest>
|
||||
|
37
view/tpl/smarty3/auto_request.tpl
Normal file
37
view/tpl/smarty3/auto_request.tpl
Normal file
|
@ -0,0 +1,37 @@
|
|||
|
||||
<h1>{{$header}}</h1>
|
||||
|
||||
<p id="dfrn-request-intro">
|
||||
{{$page_desc}}<br />
|
||||
<ul id="dfrn-request-networks">
|
||||
<li><a href="http://friendica.com" title="{{$friendica}}">{{$friendica}}</a></li>
|
||||
<li><a href="http://joindiaspora.com" title="{{$diaspora}}">{{$diaspora}}</a> {{$diasnote}}</li>
|
||||
<li><a href="http://ostatus.org" title="{{$public_net}}" >{{$statusnet}}</a></li>
|
||||
{{if $emailnet}}<li>{{$emailnet}}</li>{{/if}}
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
{{$invite_desc}}
|
||||
</p>
|
||||
<p>
|
||||
{{$desc}}
|
||||
</p>
|
||||
|
||||
<form action="dfrn_request/{{$nickname}}" method="post" />
|
||||
|
||||
<div id="dfrn-request-url-wrapper" >
|
||||
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
||||
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||
<div id="dfrn-request-url-end"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="dfrn-request-info-wrapper" >
|
||||
|
||||
</div>
|
||||
|
||||
<div id="dfrn-request-submit-wrapper">
|
||||
<input type="submit" name="submit" id="dfrn-request-submit-button" value="{{$submit}}" />
|
||||
<input type="submit" name="cancel" id="dfrn-request-cancel-button" value="{{$cancel}}" />
|
||||
</div>
|
||||
</form>
|
10
view/tpl/smarty3/birthdays_reminder.tpl
Normal file
10
view/tpl/smarty3/birthdays_reminder.tpl
Normal file
|
@ -0,0 +1,10 @@
|
|||
{{if $count}}
|
||||
<div id="birthday-notice" class="birthday-notice fakelink {{$classtoday}}" onclick="openClose('birthday-wrapper');">{{$event_reminders}} ({{$count}})</div>
|
||||
<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">{{$event_title}}</div>
|
||||
<div id="birthday-title-end"></div>
|
||||
{{foreach $events as $event}}
|
||||
<div class="birthday-list" id="birthday-{{$event.id}}"></a> <a href="{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
12
view/tpl/smarty3/categories_widget.tpl
Normal file
12
view/tpl/smarty3/categories_widget.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<div id="categories-sidebar" class="widget">
|
||||
<h3>{{$title}}</h3>
|
||||
<div id="categories-sidebar-desc">{{$desc}}</div>
|
||||
|
||||
<ul class="categories-ul">
|
||||
<li class="tool"><a href="{{$base}}" class="categories-link categories-all{{if $sel_all}} categories-selected{{/if}}">{{$all}}</a></li>
|
||||
{{foreach $terms as $term}}
|
||||
<li class="tool"><a href="{{$base}}?f=&cat={{$term.name}}" class="categories-link{{if $term.selected}} categories-selected{{/if}}">{{$term.name}}</a></li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
|
||||
</div>
|
12
view/tpl/smarty3/channel.tpl
Normal file
12
view/tpl/smarty3/channel.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<div class="channel-selection">
|
||||
{{if $channel.default_links}}
|
||||
{{if $channel.default}}
|
||||
<div class="channel-selection-default default">{{$msg_default}}</div>
|
||||
{{else}}
|
||||
<div class="channel-selection-default"><a href="manage/{{$channel.channel_id}}/default">{{$msg_make_default}}</a></div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<a href="{{$channel.link}}" class="channel-selection-photo-link" title="{{$channel.channel_name}}"><img class="channel-photo" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" /></a>
|
||||
<a href="{{$channel.link}}" class="channel-selection-name-link" title="{{$channel.channel_name}}"><div class="channel-name">{{$channel.channel_name}}</div></a>
|
||||
</div>
|
||||
<div class="channel-selection-end"></div>
|
22
view/tpl/smarty3/channels.tpl
Normal file
22
view/tpl/smarty3/channels.tpl
Normal file
|
@ -0,0 +1,22 @@
|
|||
<h3>{{$header}}</h3>
|
||||
|
||||
|
||||
{{if $links}}
|
||||
{{foreach $links as $l}}
|
||||
<a class="channels-links" href="{{$l.0}}" title="{{$l.1}}">{{$l.2}}</a>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
{{if $selected}}
|
||||
<div id="channels-selected">{{$msg_selected}}</div>
|
||||
{{include file="channel.tpl" channel=$selected}}
|
||||
<div class="channels-end selected"></div>
|
||||
{{/if}}
|
||||
|
||||
<div id="channels-desc" class="descriptive-text">{{$desc}}</div>
|
||||
|
||||
{{foreach $all_channels as $chn}}
|
||||
{{include file="channel.tpl" channel=$chn}}
|
||||
{{/foreach}}
|
||||
|
||||
<div class="channels-end all"></div>
|
68
view/tpl/smarty3/comment_item.tpl
Normal file
68
view/tpl/smarty3/comment_item.tpl
Normal file
|
@ -0,0 +1,68 @@
|
|||
{{if $threaded}}
|
||||
<div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
|
||||
{{else}}
|
||||
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-{{$id}}" style="display: block;">
|
||||
{{/if}}
|
||||
<form class="comment-edit-form" style="display: block;" id="comment-edit-form-{{$id}}" action="item" method="post" onsubmit="post_comment({{$id}}); return false;">
|
||||
<input type="hidden" name="type" value="{{$type}}" />
|
||||
<input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
|
||||
<input type="hidden" name="parent" value="{{$parent}}" />
|
||||
<input type="hidden" name="return" value="{{$return_path}}" />
|
||||
<input type="hidden" name="jsreload" value="{{$jsreload}}" />
|
||||
<input type="hidden" name="preview" id="comment-preview-inp-{{$id}}" value="0" />
|
||||
<input type="hidden" name="post_id_random" value="{{$rand_num}}" />
|
||||
|
||||
<div class="comment-edit-photo" id="comment-edit-photo-{{$id}}" >
|
||||
<a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
|
||||
</div>
|
||||
<div class="comment-edit-photo-end"></div>
|
||||
<ul class="comment-edit-bb-{{$id}}">
|
||||
<li><a class="editicon boldbb shadow"
|
||||
style="cursor: pointer;" title="{{$edbold}}"
|
||||
onclick="insertFormatting('{{$comment}}','b', {{$id}});"></a></li>
|
||||
<li><a class="editicon italicbb shadow"
|
||||
style="cursor: pointer;" title="{{$editalic}}"
|
||||
onclick="insertFormatting('{{$comment}}','i', {{$id}});"></a></li>
|
||||
<li><a class="editicon underlinebb shadow"
|
||||
style="cursor: pointer;" title="{{$eduline}}"
|
||||
onclick="insertFormatting('{{$comment}}','u', {{$id}});"></a></li>
|
||||
<li><a class="editicon quotebb shadow"
|
||||
style="cursor: pointer;" title="{{$edquote}}"
|
||||
onclick="insertFormatting('{{$comment}}','quote', {{$id}});"></a></li>
|
||||
<li><a class="editicon codebb shadow"
|
||||
style="cursor: pointer;" title="{{$edcode}}"
|
||||
onclick="insertFormatting('{{$comment}}','code', {{$id}});"></a></li>
|
||||
<li><a class="editicon imagebb shadow"
|
||||
style="cursor: pointer;" title="{{$edimg}}"
|
||||
onclick="insertFormatting('{{$comment}}','img', {{$id}});"></a></li>
|
||||
<li><a class="editicon urlbb shadow"
|
||||
style="cursor: pointer;" title="{{$edurl}}"
|
||||
onclick="insertFormatting('{{$comment}}','url', {{$id}});"></a></li>
|
||||
<li><a class="editicon videobb shadow"
|
||||
style="cursor: pointer;" title="{{$edvideo}}"
|
||||
onclick="insertFormatting('{{$comment}}','video', {{$id}});"></a></li>
|
||||
</ul>
|
||||
<div class="comment-edit-bb-end"></div>
|
||||
<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,{{$id}});cmtBbOpen(this, {{$id}});" onBlur="commentClose(this,{{$id}});cmtBbClose(this,{{$id}});" >{{$comment}}</textarea>
|
||||
{{if $qcomment}}
|
||||
<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});" >
|
||||
<option value=""></option>
|
||||
{{foreach $qcomment as $qc}}
|
||||
<option value="{{$qc}}">{{$qc}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
{{/if}}
|
||||
|
||||
<div class="comment-edit-text-end"></div>
|
||||
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
|
||||
<input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
|
||||
{{if $preview}}
|
||||
<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>
|
||||
<div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="comment-edit-end"></div>
|
||||
</form>
|
||||
|
||||
</div>
|
12
view/tpl/smarty3/common_friends.tpl
Normal file
12
view/tpl/smarty3/common_friends.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<div class="profile-match-wrapper">
|
||||
<div class="profile-match-photo">
|
||||
<a href="{{$url}}">
|
||||
<img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="profile-match-break"></div>
|
||||
<div class="profile-match-name">
|
||||
<a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
|
||||
</div>
|
||||
<div class="profile-match-end"></div>
|
||||
</div>
|
5
view/tpl/smarty3/common_tabs.tpl
Normal file
5
view/tpl/smarty3/common_tabs.tpl
Normal file
|
@ -0,0 +1,5 @@
|
|||
<ul class="tabs">
|
||||
{{foreach $tabs as $tab}}
|
||||
<li {{if $tab.id}}id="{{$tab.id}}"{{/if}}><a href="{{$tab.url}}" class="tab button {{$tab.sel}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}>{{$tab.label}}</a></li>
|
||||
{{/foreach}}
|
||||
</ul>
|
12
view/tpl/smarty3/contact_block.tpl
Normal file
12
view/tpl/smarty3/contact_block.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<div id="contact-block">
|
||||
<h4 class="contact-block-h4">{{$contacts}}</h4>
|
||||
{{if $micropro}}
|
||||
<a class="allcontact-link" href="viewcontacts/{{$nickname}}">{{$viewcontacts}}</a>
|
||||
<div class='contact-block-content'>
|
||||
{{foreach $micropro as $m}}
|
||||
{{$m}}
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="clear"></div>
|
89
view/tpl/smarty3/contact_edit.tpl
Normal file
89
view/tpl/smarty3/contact_edit.tpl
Normal file
|
@ -0,0 +1,89 @@
|
|||
|
||||
<h2>{{$header}}</h2>
|
||||
|
||||
<div id="contact-edit-wrapper" >
|
||||
|
||||
{{$tab_str}}
|
||||
|
||||
<div id="contact-edit-drop-link" >
|
||||
<a href="contacts/{{$contact_id}}/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="{{$delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);"></a>
|
||||
</div>
|
||||
|
||||
<div id="contact-edit-drop-link-end"></div>
|
||||
|
||||
|
||||
<div id="contact-edit-nav-wrapper" >
|
||||
<div id="contact-edit-links">
|
||||
<ul>
|
||||
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
|
||||
<li><div id="contact-edit-nettype">{{$nettype}}</div></li>
|
||||
{{if $lost_contact}}
|
||||
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
|
||||
{{/if}}
|
||||
{{if $insecure}}
|
||||
<li><div id="insecure-message">{{$insecure}}</div></li>
|
||||
{{/if}}
|
||||
{{if $blocked}}
|
||||
<li><div id="block-message">{{$blocked}}</div></li>
|
||||
{{/if}}
|
||||
{{if $ignored}}
|
||||
<li><div id="ignore-message">{{$ignored}}</div></li>
|
||||
{{/if}}
|
||||
{{if $archived}}
|
||||
<li><div id="archive-message">{{$archived}}</div></li>
|
||||
{{/if}}
|
||||
|
||||
<li> </li>
|
||||
|
||||
{{if $common_text}}
|
||||
<li><div id="contact-edit-common"><a href="{{$common_link}}">{{$common_text}}</a></div></li>
|
||||
{{/if}}
|
||||
{{if $all_friends}}
|
||||
<li><div id="contact-edit-allfriends"><a href="allfriends/{{$contact_id}}">{{$all_friends}}</a></div></li>
|
||||
{{/if}}
|
||||
|
||||
|
||||
<li><a href="network/?cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li>
|
||||
{{if $lblsuggest}}
|
||||
<li><a href="fsuggest/{{$contact_id}}" id="contact-edit-suggest">{{$lblsuggest}}</a></li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="contact-edit-nav-end"></div>
|
||||
|
||||
|
||||
<form action="contacts/{{$contact_id}}" method="post" >
|
||||
<input type="hidden" name="contact_id" value="{{$contact_id}}">
|
||||
<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
|
||||
|
||||
{{if $poll_enabled}}
|
||||
<div id="contact-edit-poll-wrapper">
|
||||
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
|
||||
<span id="contact-edit-poll-text">{{$updpub}}</span> {{$poll_interval}} <span id="contact-edit-update-now" class="button"><a href="contacts/{{$contact_id}}/update" >{{$udnow}}</a></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div id="contact-edit-end" ></div>
|
||||
|
||||
{{include file="field_checkbox.tpl" field=$hidden}}
|
||||
|
||||
<div id="contact-edit-info-wrapper">
|
||||
<h4>{{$lbl_info1}}</h4>
|
||||
<textarea id="contact-edit-info" rows="8" cols="60" name="info">{{$info}}</textarea>
|
||||
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit}}" />
|
||||
</div>
|
||||
<div id="contact-edit-info-end"></div>
|
||||
|
||||
|
||||
<div id="contact-edit-profile-select-text">
|
||||
<h4>{{$lbl_vis1}}</h4>
|
||||
<p>{{$lbl_vis2}}</p>
|
||||
</div>
|
||||
{{$profile_select}}
|
||||
<div id="contact-edit-profile-select-end"></div>
|
||||
|
||||
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit}}" />
|
||||
|
||||
</form>
|
||||
</div>
|
30
view/tpl/smarty3/contact_head.tpl
Normal file
30
view/tpl/smarty3/contact_head.tpl
Normal file
|
@ -0,0 +1,30 @@
|
|||
<script language="javascript" type="text/javascript"
|
||||
src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
tinyMCE.init({
|
||||
theme : "advanced",
|
||||
mode : "{{$editselect}}",
|
||||
elements: "contact-edit-info",
|
||||
plugins : "bbcode",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "center",
|
||||
theme_advanced_styles : "blockquote,code",
|
||||
gecko_spellcheck : true,
|
||||
entity_encoding : "raw",
|
||||
add_unload_trigger : false,
|
||||
remove_linebreaks : false,
|
||||
force_p_newlines : false,
|
||||
force_br_newlines : true,
|
||||
forced_root_block : '',
|
||||
content_css: "{{$baseurl}}/view/custom_tinymce.css"
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
4
view/tpl/smarty3/contact_slider.tpl
Normal file
4
view/tpl/smarty3/contact_slider.tpl
Normal file
|
@ -0,0 +1,4 @@
|
|||
<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="{{$val}}" /></div>
|
||||
<script>
|
||||
$("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['{{$me}}', '|', '{{$intimate}}', '|', '{{$friends}}', '|', '{{$oldfriends}}', '|', '{{$acquaintances}}', '|', '{{$world}}' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
|
||||
</script>
|
17
view/tpl/smarty3/contact_template.tpl
Normal file
17
view/tpl/smarty3/contact_template.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
|
||||
<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
|
||||
<div class="contact-entry-photo-wrapper" >
|
||||
<div class="contact-entry-photo mframe" id="contact-entry-photo-{{$contact.id}}"
|
||||
onmouseover="if (typeof t{{$contact.id}} != 'undefined') clearTimeout(t{{$contact.id}}); openMenu('contact-photo-menu-button-{{$contact.id}}')"
|
||||
onmouseout="t{{$contact.id}}=setTimeout('closeMenu(\'contact-photo-menu-button-{{$contact.id}}\'); closeMenu(\'contact-photo-menu-{{$contact.id}}\');',200)" >
|
||||
|
||||
<a href="{{$contact.edit}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="contact-entry-photo-end" ></div>
|
||||
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
|
||||
|
||||
<div class="contact-entry-end" ></div>
|
||||
</div>
|
26
view/tpl/smarty3/contacts-template.tpl
Normal file
26
view/tpl/smarty3/contacts-template.tpl
Normal file
|
@ -0,0 +1,26 @@
|
|||
<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
|
||||
|
||||
{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
|
||||
|
||||
<div id="contacts-search-wrapper">
|
||||
<form id="contacts-search-form" action="{{$cmd}}" method="get" >
|
||||
<span class="contacts-search-desc">{{$desc}}</span>
|
||||
<input type="text" name="search" id="contacts-search" class="search-input" onfocus="this.select();" value="{{$search}}" />
|
||||
<input type="submit" name="submit" id="contacts-search-submit" value="{{$submit}}" />
|
||||
</form>
|
||||
</div>
|
||||
<div id="contacts-search-end"></div>
|
||||
|
||||
{{$tabs}}
|
||||
|
||||
|
||||
{{foreach $contacts as $contact}}
|
||||
{{include file="contact_template.tpl"}}
|
||||
{{/foreach}}
|
||||
<div id="contact-edit-end"></div>
|
||||
|
||||
{{$paginate}}
|
||||
|
||||
|
||||
|
||||
|
2
view/tpl/smarty3/content.tpl
Normal file
2
view/tpl/smarty3/content.tpl
Normal file
|
@ -0,0 +1,2 @@
|
|||
<div id="content-begin"></div>
|
||||
<div id="content-end"></div>
|
17
view/tpl/smarty3/conv.tpl
Normal file
17
view/tpl/smarty3/conv.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
{{foreach $threads as $thread}}
|
||||
<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
|
||||
{{foreach $thread.items as $item}}
|
||||
{{if $item.comment_firstcollapsed}}
|
||||
<div class="hide-comments-outer">
|
||||
<span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
|
||||
</div>
|
||||
<div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
|
||||
{{/if}}
|
||||
{{if $item.comment_lastcollapsed}}</div>{{/if}}
|
||||
|
||||
{{include file="{{$item.template}}"}}
|
||||
|
||||
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/foreach}}
|
11
view/tpl/smarty3/conv_frame.tpl
Normal file
11
view/tpl/smarty3/conv_frame.tpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
<div id="threads-begin"></div>
|
||||
<div id="threads-end"></div>
|
||||
<div id="conversation-end"></div>
|
||||
|
||||
{{if $dropping}}
|
||||
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
|
||||
<div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
|
||||
<div id="item-delete-selected-desc" >{{$dropping}}</div>
|
||||
</div>
|
||||
<div id="item-delete-selected-end"></div>
|
||||
{{/if}}
|
121
view/tpl/smarty3/conv_item.tpl
Normal file
121
view/tpl/smarty3/conv_item.tpl
Normal file
|
@ -0,0 +1,121 @@
|
|||
{{if $item.comment_firstcollapsed}}
|
||||
<div class="hide-comments-outer">
|
||||
<span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span> <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink" onclick="showHideComments({{$item.id}});">{{$item.hide_text}}</span>
|
||||
</div>
|
||||
<div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
|
||||
{{/if}}
|
||||
<div id="thread-wrapper-{{$item.id}}" class="thread-wrapper {{$item.toplevel}}">
|
||||
<a name="{{$item.id}}" ></a>
|
||||
<div class="wall-item-outside-wrapper {{$item.indent}}{{$item.previewing}}{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-outside-wrapper-{{$item.id}}" >
|
||||
<div class="wall-item-content-wrapper {{$item.indent}}" id="wall-item-content-wrapper-{{$item.id}}" >
|
||||
<div class="wall-item-info{{if $item.owner_url}} wallwall{{/if}}" id="wall-item-info-{{$item.id}}">
|
||||
{{if $item.owner_url}}
|
||||
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
|
||||
<a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="wall-item-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
|
||||
<img src="{{$item.owner_photo}}" class="wall-item-photo{{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.owner_name}}" /></a>
|
||||
</div>
|
||||
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="{{$item.wall}}" /></div>
|
||||
{{/if}}
|
||||
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"
|
||||
onmouseover="if (typeof t{{$item.id}} != 'undefined') clearTimeout(t{{$item.id}}); openMenu('wall-item-photo-menu-button-{{$item.id}}')"
|
||||
onmouseout="t{{$item.id}}=setTimeout('closeMenu(\'wall-item-photo-menu-button-{{$item.id}}\'); closeMenu(\'wall-item-photo-menu-{{$item.id}}\');',200)">
|
||||
<a href="{{$item.profile_url}}" target="redir" title="{{$item.linktitle}}" class="wall-item-photo-link" id="wall-item-photo-link-{{$item.id}}">
|
||||
<img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" style="height: 80px; width: 80px;" alt="{{$item.name}}" /></a>
|
||||
<span onclick="openClose('wall-item-photo-menu-{{$item.id}}');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-{{$item.id}}">menu</span>
|
||||
<div class="wall-item-photo-menu" id="wall-item-photo-menu-{{$item.id}}">
|
||||
<ul>
|
||||
{{$item.item_photo_menu}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wall-item-photo-end"></div>
|
||||
<div class="wall-item-wrapper" id="wall-item-wrapper-{{$item.id}}" >
|
||||
{{if $item.lock}}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="{{$item.lock}}" onclick="lockview(event,{{$item.id}});" /></div>
|
||||
{{else}}<div class="wall-item-lock"></div>{{/if}}
|
||||
<div class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-author">
|
||||
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.to}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}{{/if}}<br />
|
||||
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}">{{$item.ago}}</div>
|
||||
</div>
|
||||
<div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
|
||||
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
|
||||
<div class="wall-item-title-end"></div>
|
||||
<div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
|
||||
<div class="body-tag">
|
||||
{{foreach $item.tags as $tag}}
|
||||
<span class='tag'>{{$tag}}</span>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{if $item.has_cats}}
|
||||
<div class="categorytags"><span>{{$item.txt_cats}} {{foreach $item.categories as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{if $item.has_folders}}
|
||||
<div class="filesavetags"><span>{{$item.txt_folders}} {{foreach $item.folders as $cat}}{{$cat.name}} <a href="{{$cat.removeurl}}" title="{{$remove}}">[{{$remove}}]</a> {{if $cat.last}}{{else}}, {{/if}}{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
|
||||
{{if $item.like}}
|
||||
<a href="#" class="icon like item-tool" title="{{$item.like.0}}" onclick="dolike({{$item.id}},'like'); return false"></a>
|
||||
{{/if}}
|
||||
{{if $item.dislike}}
|
||||
<a href="#" class="icon dislike item-tool" title="{{$item.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false"></a>
|
||||
{{/if}}
|
||||
{{if $item.share}}
|
||||
<a href="#" class="icon recycle item-tool" title="{{$item.share.0}}" onclick="jotShare({{$item.id}}); return false"></a>
|
||||
{{/if}}
|
||||
{{if $item.plink}}
|
||||
<a href="{{$item.plink.href}}" title="{{$item.plink.title}}" target="external-link" class="icon item-tool remote-link{{$item.sparkle}}"></a>
|
||||
{{/if}}
|
||||
{{if $item.edpost}}
|
||||
<a class="editpost icon pencil item-tool" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
|
||||
{{/if}}
|
||||
{{if $item.star}}
|
||||
<a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon item-tool {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></a>
|
||||
{{/if}}
|
||||
{{if $item.tagger}}
|
||||
<a href="#" id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="tag-item icon item-tool tagged" title="{{$item.tagger.tagit}}"></a>
|
||||
{{/if}}
|
||||
{{if $item.filer}}
|
||||
<a href="#" id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon item-tool" title="{{$item.filer}}"></a>
|
||||
{{/if}}
|
||||
<img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
|
||||
|
||||
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
|
||||
{{if $item.drop.dropping}}<a href="item/drop/{{$item.id}}" onclick="return confirmDelete();" class="icon drophide" title="{{$item.drop.delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{/if}}
|
||||
</div>
|
||||
{{if $item.drop.pagedrop}}<input type="checkbox" onclick="checkboxhighlight(this);" title="{{$item.drop.select}}" class="item-select" name="itemselected[]" value="{{$item.id}}" />{{/if}}
|
||||
<div class="wall-item-delete-end"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-wrapper-end"></div>
|
||||
<div class="wall-item-like {{$item.indent}}" id="wall-item-like-{{$item.id}}">{{$item.showlike}}</div>
|
||||
<div class="wall-item-dislike {{$item.indent}}" id="wall-item-dislike-{{$item.id}}">{{$item.showdislike}}</div>
|
||||
|
||||
{{if $item.threaded}}
|
||||
{{if $item.comment}}
|
||||
<div class="wall-item-comment-wrapper {{$item.indent}}" >
|
||||
{{$item.comment}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
|
||||
</div>
|
||||
{{foreach $item.children as $item}}
|
||||
{{include file="{{$item.template}}"}}
|
||||
{{/foreach}}
|
||||
|
||||
{{if $item.flatten}}
|
||||
<div class="wall-item-comment-wrapper" >
|
||||
{{$item.comment}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{if $item.comment_lastcollapsed}}</div>{{/if}}
|
28
view/tpl/smarty3/conversation.tpl
Normal file
28
view/tpl/smarty3/conversation.tpl
Normal file
|
@ -0,0 +1,28 @@
|
|||
<div id="threads-begin"></div>
|
||||
{{foreach $threads as $thread}}
|
||||
<div id="thread-wrapper-{{$thread.id}}" class="thread-wrapper">
|
||||
{{foreach $thread.items as $item}}
|
||||
{{if $item.comment_firstcollapsed}}
|
||||
<div class="hide-comments-outer">
|
||||
<span id="hide-comments-total-{{$thread.id}}" class="hide-comments-total">{{$thread.num_comments}}</span> <span id="hide-comments-{{$thread.id}}" class="hide-comments fakelink" onclick="showHideComments({{$thread.id}});">{{$thread.hide_text}}</span>
|
||||
</div>
|
||||
<div id="collapsed-comments-{{$thread.id}}" class="collapsed-comments" style="display: none;">
|
||||
{{/if}}
|
||||
{{if $item.comment_lastcollapsed}}</div>{{/if}}
|
||||
|
||||
{{include file="{{$item.template}}"}}
|
||||
|
||||
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/foreach}}
|
||||
<div id="threads-end"></div>
|
||||
<div id="conversation-end"></div>
|
||||
|
||||
{{if $dropping}}
|
||||
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
|
||||
<div id="item-delete-selected-icon" class="icon drophide" title="{{$dropping}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
|
||||
<div id="item-delete-selected-desc" >{{$dropping}}</div>
|
||||
</div>
|
||||
<div id="item-delete-selected-end"></div>
|
||||
{{/if}}
|
46
view/tpl/smarty3/crepair.tpl
Normal file
46
view/tpl/smarty3/crepair.tpl
Normal file
|
@ -0,0 +1,46 @@
|
|||
|
||||
<form id="crepair-form" action="crepair/{{$contact_id}}" method="post" >
|
||||
|
||||
<h4>{{$contact_name}}</h4>
|
||||
|
||||
<label id="crepair-name-label" class="crepair-label" for="crepair-name">{{$label_name}}</label>
|
||||
<input type="text" id="crepair-name" class="crepair-input" name="name" value="{{$contact_name}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-nick-label" class="crepair-label" for="crepair-nick">{{$label_nick}}</label>
|
||||
<input type="text" id="crepair-nick" class="crepair-input" name="nick" value="{{$contact_nick}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-attag-label" class="crepair-label" for="crepair-attag">{{$label_attag}}</label>
|
||||
<input type="text" id="crepair-attag" class="crepair-input" name="attag" value="{{$contact_attag}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-url-label" class="crepair-label" for="crepair-url">{{$label_url}}</label>
|
||||
<input type="text" id="crepair-url" class="crepair-input" name="url" value="{{$contact_url}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-request-label" class="crepair-label" for="crepair-request">{{$label_request}}</label>
|
||||
<input type="text" id="crepair-request" class="crepair-input" name="request" value="{{$request}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-confirm-label" class="crepair-label" for="crepair-confirm">{{$label_confirm}}</label>
|
||||
<input type="text" id="crepair-confirm" class="crepair-input" name="confirm" value="{{$confirm}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-notify-label" class="crepair-label" for="crepair-notify">{{$label_notify}}</label>
|
||||
<input type="text" id="crepair-notify" class="crepair-input" name="notify" value="{{$notify}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-poll-label" class="crepair-label" for="crepair-poll">{{$label_poll}}</label>
|
||||
<input type="text" id="crepair-poll" class="crepair-input" name="poll" value="{{$poll}}" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<label id="crepair-photo-label" class="crepair-label" for="crepair-photo">{{$label_photo}}</label>
|
||||
<input type="text" id="crepair-photo" class="crepair-input" name="photo" value="" />
|
||||
<div class="clear"></div>
|
||||
|
||||
<input type="submit" name="submit" value="{{$lbl_submit}}" />
|
||||
|
||||
</form>
|
||||
|
||||
|
58
view/tpl/smarty3/cropbody.tpl
Normal file
58
view/tpl/smarty3/cropbody.tpl
Normal file
|
@ -0,0 +1,58 @@
|
|||
<h1>{{$title}}</h1>
|
||||
<p id="cropimage-desc">
|
||||
{{$desc}}
|
||||
</p>
|
||||
<div id="cropimage-wrapper">
|
||||
<img src="{{$image_url}}" id="croppa" class="imgCrop" alt="{{$title}}" />
|
||||
</div>
|
||||
<div id="cropimage-preview-wrapper" >
|
||||
<div id="previewWrap" ></div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
|
||||
function onEndCrop( coords, dimensions ) {
|
||||
$( 'x1' ).value = coords.x1;
|
||||
$( 'y1' ).value = coords.y1;
|
||||
$( 'x2' ).value = coords.x2;
|
||||
$( 'y2' ).value = coords.y2;
|
||||
$( 'width' ).value = dimensions.width;
|
||||
$( 'height' ).value = dimensions.height;
|
||||
}
|
||||
|
||||
Event.observe( window, 'load', function() {
|
||||
new Cropper.ImgWithPreview(
|
||||
'croppa',
|
||||
{
|
||||
previewWrap: 'previewWrap',
|
||||
minWidth: 175,
|
||||
minHeight: 175,
|
||||
maxWidth: 640,
|
||||
maxHeight: 640,
|
||||
ratioDim: { x: 100, y:100 },
|
||||
displayOnInit: true,
|
||||
onEndCrop: onEndCrop
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
|
||||
<form action="profile_photo/{{$resource}}" id="crop-image-form" method="post" />
|
||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
||||
|
||||
<input type='hidden' name='profile' value='{{$profile}}'>
|
||||
<input type="hidden" name="cropfinal" value="1" />
|
||||
<input type="hidden" name="xstart" id="x1" />
|
||||
<input type="hidden" name="ystart" id="y1" />
|
||||
<input type="hidden" name="xfinal" id="x2" />
|
||||
<input type="hidden" name="yfinal" id="y2" />
|
||||
<input type="hidden" name="height" id="height" />
|
||||
<input type="hidden" name="width" id="width" />
|
||||
|
||||
<div id="crop-image-submit-wrapper" >
|
||||
<input type="submit" name="submit" value="{{$done}}" />
|
||||
</div>
|
||||
|
||||
</form>
|
4
view/tpl/smarty3/crophead.tpl
Normal file
4
view/tpl/smarty3/crophead.tpl
Normal file
|
@ -0,0 +1,4 @@
|
|||
<script type="text/javascript" src="library/cropper/lib/prototype.js" language="javascript"></script>
|
||||
<script type="text/javascript" src="library/cropper/lib/scriptaculous.js?load=effects,builder,dragdrop" language="javascript"></script>
|
||||
<script type="text/javascript" src="library/cropper/cropper.js" language="javascript"></script>
|
||||
<link rel="stylesheet" href="library/cropper/cropper.css" type="text/css" />
|
57
view/tpl/smarty3/delegate.tpl
Normal file
57
view/tpl/smarty3/delegate.tpl
Normal file
|
@ -0,0 +1,57 @@
|
|||
<h3>{{$header}}</h3>
|
||||
|
||||
<div id="delegate-desc" class="delegate-desc">{{$desc}}</div>
|
||||
|
||||
{{if $managers}}
|
||||
<h3>{{$head_managers}}</h3>
|
||||
|
||||
{{foreach $managers as $x}}
|
||||
|
||||
<div class="contact-block-div">
|
||||
<a class="contact-block-link" href="#" >
|
||||
<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{/foreach}}
|
||||
<div class="clear"></div>
|
||||
<hr />
|
||||
{{/if}}
|
||||
|
||||
|
||||
<h3>{{$head_delegates}}</h3>
|
||||
|
||||
{{if $delegates}}
|
||||
{{foreach $delegates as $x}}
|
||||
|
||||
<div class="contact-block-div">
|
||||
<a class="contact-block-link" href="{{$base}}/delegate/remove/{{$x.uid}}" >
|
||||
<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{/foreach}}
|
||||
<div class="clear"></div>
|
||||
{{else}}
|
||||
{{$none}}
|
||||
{{/if}}
|
||||
<hr />
|
||||
|
||||
|
||||
<h3>{{$head_potentials}}</h3>
|
||||
{{if $potentials}}
|
||||
{{foreach $potentials as $x}}
|
||||
|
||||
<div class="contact-block-div">
|
||||
<a class="contact-block-link" href="{{$base}}/delegate/add/{{$x.uid}}" >
|
||||
<img class="contact-block-img" src="{{$base}}/photo/thumb/{{$x.uid}}" title="{{$x.username}} ({{$x.nickname}})" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{/foreach}}
|
||||
<div class="clear"></div>
|
||||
{{else}}
|
||||
{{$none}}
|
||||
{{/if}}
|
||||
<hr />
|
||||
|
21
view/tpl/smarty3/dfrn_req_confirm.tpl
Normal file
21
view/tpl/smarty3/dfrn_req_confirm.tpl
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
<p id="dfrn-request-homecoming" >
|
||||
{{$welcome}}
|
||||
<br />
|
||||
{{$please}}
|
||||
|
||||
</p>
|
||||
<form id="dfrn-request-homecoming-form" action="dfrn_request/{{$nickname}}" method="post">
|
||||
<input type="hidden" name="dfrn_url" value="{{$dfrn_url}}" />
|
||||
<input type="hidden" name="confirm_key" value="{{$confirm_key}}" />
|
||||
<input type="hidden" name="localconfirm" value="1" />
|
||||
{{$aes_allow}}
|
||||
|
||||
<label id="dfrn-request-homecoming-hide-label" for="dfrn-request-homecoming-hide">{{$hidethem}}</label>
|
||||
<input type="checkbox" name="hidden-contact" value="1" {{if $hidechecked}}checked="checked" {{/if}} />
|
||||
|
||||
|
||||
<div id="dfrn-request-homecoming-submit-wrapper" >
|
||||
<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="{{$submit}}" />
|
||||
</div>
|
||||
</form>
|
59
view/tpl/smarty3/dfrn_request.tpl
Normal file
59
view/tpl/smarty3/dfrn_request.tpl
Normal file
|
@ -0,0 +1,59 @@
|
|||
|
||||
<h1>{{$header}}</h1>
|
||||
|
||||
<p id="dfrn-request-intro">
|
||||
{{$page_desc}}<br />
|
||||
{{$invite_desc}}
|
||||
</p>
|
||||
<p>
|
||||
{{$desc}}
|
||||
</p>
|
||||
|
||||
<form action="dfrn_request/{{$nickname}}" method="post" />
|
||||
|
||||
<div id="dfrn-request-url-wrapper" >
|
||||
<label id="dfrn-url-label" for="dfrn-url" >{{$your_address}}</label>
|
||||
<input type="text" name="dfrn_url" id="dfrn-url" size="32" value="{{$myaddr}}" />
|
||||
<div id="dfrn-request-url-end"></div>
|
||||
</div>
|
||||
|
||||
<p id="dfrn-request-options">
|
||||
{{$pls_answer}}
|
||||
</p>
|
||||
|
||||
<div id="dfrn-request-info-wrapper" >
|
||||
|
||||
|
||||
<p id="doiknowyou">
|
||||
{{$does_know}}
|
||||
</p>
|
||||
|
||||
<div id="dfrn-request-know-yes-wrapper">
|
||||
<label id="dfrn-request-knowyou-yes-label" for="dfrn-request-knowyouyes">{{$yes}}</label>
|
||||
<input type="radio" name="knowyou" id="knowyouyes" value="1" />
|
||||
|
||||
<div id="dfrn-request-knowyou-break" ></div>
|
||||
</div>
|
||||
<div id="dfrn-request-know-no-wrapper">
|
||||
<label id="dfrn-request-knowyou-no-label" for="dfrn-request-knowyouno">{{$no}}</label>
|
||||
<input type="radio" name="knowyou" id="knowyouno" value="0" checked="checked" />
|
||||
|
||||
<div id="dfrn-request-knowyou-end"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<p id="dfrn-request-message-desc">
|
||||
{{$add_note}}
|
||||
</p>
|
||||
<div id="dfrn-request-message-wrapper">
|
||||
<textarea name="dfrn-request-message" rows="4" cols="64" ></textarea>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div id="dfrn-request-submit-wrapper">
|
||||
<input type="submit" name="submit" id="dfrn-request-submit-button" value="{{$submit}}" />
|
||||
<input type="submit" name="cancel" id="dfrn-request-cancel-button" value="{{$cancel}}" />
|
||||
</div>
|
||||
</form>
|
8
view/tpl/smarty3/diasp_dec_hdr.tpl
Normal file
8
view/tpl/smarty3/diasp_dec_hdr.tpl
Normal file
|
@ -0,0 +1,8 @@
|
|||
<decrypted_hdeader>
|
||||
<iv>{{$inner_iv}}</iv>
|
||||
<aes_key>{{$inner_key}}</aes_key>
|
||||
<author>
|
||||
<name>{{$author_name}}</name>
|
||||
<uri>{{$author_uri}}</uri>
|
||||
</author>
|
||||
</decrypted_header>
|
11
view/tpl/smarty3/diaspora_comment.tpl
Normal file
11
view/tpl/smarty3/diaspora_comment.tpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
<XML>
|
||||
<post>
|
||||
<comment>
|
||||
<guid>{{$guid}}</guid>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<text>{{$body}}</text>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</comment>
|
||||
</post>
|
||||
</XML>
|
12
view/tpl/smarty3/diaspora_comment_relay.tpl
Normal file
12
view/tpl/smarty3/diaspora_comment_relay.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<XML>
|
||||
<post>
|
||||
<comment>
|
||||
<guid>{{$guid}}</guid>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<parent_author_signature>{{$parentsig}}</parent_author_signature>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<text>{{$body}}</text>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</comment>
|
||||
</post>
|
||||
</XML>
|
29
view/tpl/smarty3/diaspora_conversation.tpl
Normal file
29
view/tpl/smarty3/diaspora_conversation.tpl
Normal file
|
@ -0,0 +1,29 @@
|
|||
<XML>
|
||||
<post>
|
||||
<conversation>
|
||||
<guid>{{$conv.guid}}</guid>
|
||||
<subject>{{$conv.subject}}</subject>
|
||||
<created_at>{{$conv.created_at}}</created_at>
|
||||
|
||||
{{foreach $conv.messages as $msg}}
|
||||
|
||||
<message>
|
||||
<guid>{{$msg.guid}}</guid>
|
||||
<parent_guid>{{$msg.parent_guid}}</parent_guid>
|
||||
{{if $msg.parent_author_signature}}
|
||||
<parent_author_signature>{{$msg.parent_author_signature}}</parent_author_signature>
|
||||
{{/if}}
|
||||
<author_signature>{{$msg.author_signature}}</author_signature>
|
||||
<text>{{$msg.text}}</text>
|
||||
<created_at>{{$msg.created_at}}</created_at>
|
||||
<diaspora_handle>{{$msg.diaspora_handle}}</diaspora_handle>
|
||||
<conversation_guid>{{$msg.conversation_guid}}</conversation_guid>
|
||||
</message>
|
||||
|
||||
{{/foreach}}
|
||||
|
||||
<diaspora_handle>{{$conv.diaspora_handle}}</diaspora_handle>
|
||||
<participant_handles>{{$conv.participant_handles}}</participant_handles>
|
||||
</conversation>
|
||||
</post>
|
||||
</XML>
|
12
view/tpl/smarty3/diaspora_like.tpl
Normal file
12
view/tpl/smarty3/diaspora_like.tpl
Normal file
|
@ -0,0 +1,12 @@
|
|||
<XML>
|
||||
<post>
|
||||
<like>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<guid>{{$guid}}</guid>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<positive>{{$positive}}</positive>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</like>
|
||||
</post>
|
||||
</XML>
|
13
view/tpl/smarty3/diaspora_like_relay.tpl
Normal file
13
view/tpl/smarty3/diaspora_like_relay.tpl
Normal file
|
@ -0,0 +1,13 @@
|
|||
<XML>
|
||||
<post>
|
||||
<like>
|
||||
<guid>{{$guid}}</guid>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<parent_author_signature>{{$parentsig}}</parent_author_signature>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<positive>{{$positive}}</positive>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</like>
|
||||
</post>
|
||||
</XML>
|
13
view/tpl/smarty3/diaspora_message.tpl
Normal file
13
view/tpl/smarty3/diaspora_message.tpl
Normal file
|
@ -0,0 +1,13 @@
|
|||
<XML>
|
||||
<post>
|
||||
<message>
|
||||
<guid>{{$msg.guid}}</guid>
|
||||
<parent_guid>{{$msg.parent_guid}}</parent_guid>
|
||||
<author_signature>{{$msg.author_signature}}</author_signature>
|
||||
<text>{{$msg.text}}</text>
|
||||
<created_at>{{$msg.created_at}}</created_at>
|
||||
<diaspora_handle>{{$msg.diaspora_handle}}</diaspora_handle>
|
||||
<conversation_guid>{{$msg.conversation_guid}}</conversation_guid>
|
||||
</message>
|
||||
</post>
|
||||
</XML>
|
13
view/tpl/smarty3/diaspora_photo.tpl
Normal file
13
view/tpl/smarty3/diaspora_photo.tpl
Normal file
|
@ -0,0 +1,13 @@
|
|||
<XML>
|
||||
<post>
|
||||
<photo>
|
||||
<remote_photo_path>{{$path}}</remote_photo_path>
|
||||
<remote_photo_name>{{$filename}}</remote_photo_name>
|
||||
<status_message_guid>{{$msg_guid}}</status_message_guid>
|
||||
<guid>{{$guid}}</guid>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<public>{{$public}}</public>
|
||||
<created_at>{{$created_at}}</created_at>
|
||||
</photo>
|
||||
</post>
|
||||
</XML>
|
11
view/tpl/smarty3/diaspora_post.tpl
Normal file
11
view/tpl/smarty3/diaspora_post.tpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
<XML>
|
||||
<post>
|
||||
<status_message>
|
||||
<raw_message>{{$body}}</raw_message>
|
||||
<guid>{{$guid}}</guid>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<public>{{$public}}</public>
|
||||
<created_at>{{$created}}</created_at>
|
||||
</status_message>
|
||||
</post>
|
||||
</XML>
|
16
view/tpl/smarty3/diaspora_profile.tpl
Normal file
16
view/tpl/smarty3/diaspora_profile.tpl
Normal file
|
@ -0,0 +1,16 @@
|
|||
<XML>
|
||||
<post><profile>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<first_name>{{$first}}</first_name>
|
||||
<last_name>{{$last}}</last_name>
|
||||
<image_url>{{$large}}</image_url>
|
||||
<image_url_small>{{$small}}</image_url_small>
|
||||
<image_url_medium>{{$medium}}</image_url_medium>
|
||||
<birthday>{{$dob}}</birthday>
|
||||
<gender>{{$gender}}</gender>
|
||||
<bio>{{$about}}</bio>
|
||||
<location>{{$location}}</location>
|
||||
<searchable>{{$searchable}}</searchable>
|
||||
<tag_string>{{$tags}}</tag_string>
|
||||
</profile></post>
|
||||
</XML>
|
10
view/tpl/smarty3/diaspora_relay_retraction.tpl
Normal file
10
view/tpl/smarty3/diaspora_relay_retraction.tpl
Normal file
|
@ -0,0 +1,10 @@
|
|||
<XML>
|
||||
<post>
|
||||
<relayable_retraction>
|
||||
<target_type>{{$type}}</target_type>
|
||||
<target_guid>{{$guid}}</target_guid>
|
||||
<target_author_signature>{{$signature}}</target_author_signature>
|
||||
<sender_handle>{{$handle}}</sender_handle>
|
||||
</relayable_retraction>
|
||||
</post>
|
||||
</XML>
|
11
view/tpl/smarty3/diaspora_relayable_retraction.tpl
Normal file
11
view/tpl/smarty3/diaspora_relayable_retraction.tpl
Normal file
|
@ -0,0 +1,11 @@
|
|||
<XML>
|
||||
<post>
|
||||
<relayable_retraction>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<target_guid>{{$guid}}</target_guid>
|
||||
<parent_author_signature>{{$parentsig}}</parent_author_signature>
|
||||
<target_author_signature>{{$authorsig}}</target_author_signature>
|
||||
<sender_handle>{{$handle}}</sender_handle>
|
||||
</relayable_retraction>
|
||||
</post>
|
||||
</XML>
|
9
view/tpl/smarty3/diaspora_retract.tpl
Normal file
9
view/tpl/smarty3/diaspora_retract.tpl
Normal file
|
@ -0,0 +1,9 @@
|
|||
<XML>
|
||||
<post>
|
||||
<retraction>
|
||||
<post_guid>{{$guid}}</post_guid>
|
||||
<type>{{$type}}</type>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</retraction>
|
||||
</post>
|
||||
</XML>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue