Decaf mobile: an (almost) Javascript-free theme
30
boot.php
|
@ -1935,6 +1935,36 @@ function build_querystring($params, $name=null) {
|
|||
return $ret;
|
||||
}
|
||||
|
||||
function explode_querystring($query) {
|
||||
$arg_st = strpos($query, '?');
|
||||
if($arg_st !== false) {
|
||||
$base = substr($query, 0, $arg_st);
|
||||
$arg_st += 1;
|
||||
}
|
||||
else {
|
||||
$base = '';
|
||||
$arg_st = 0;
|
||||
}
|
||||
|
||||
$args = explode('&', substr($query, $arg_st));
|
||||
foreach($args as $k=>$arg) {
|
||||
if($arg === '')
|
||||
unset($args[$k]);
|
||||
}
|
||||
$args = array_values($args);
|
||||
|
||||
if(!$base) {
|
||||
$base = $args[0];
|
||||
unset($args[0]);
|
||||
$args = array_values($args);
|
||||
}
|
||||
|
||||
return array(
|
||||
'base' => $base,
|
||||
'args' => $args,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the complete URL of the current page, e.g.: http(s)://something.com/network
|
||||
*
|
||||
|
|
|
@ -222,13 +222,13 @@ function contact_photo_menu($contact) {
|
|||
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
|
||||
|
||||
$menu = Array(
|
||||
t("Poke") => $poke_link,
|
||||
t("View Status") => $status_link,
|
||||
t("View Profile") => $profile_link,
|
||||
t("View Photos") => $photos_link,
|
||||
t("Network Posts") => $posts_link,
|
||||
t("Edit Contact") => $contact_url,
|
||||
t("Send PM") => $pm_url,
|
||||
'poke' => array(t("Poke"), $poke_link),
|
||||
'status' => array(t("View Status"), $status_link),
|
||||
'profile' => array(t("View Profile"), $profile_link),
|
||||
'photos' => array(t("View Photos"), $photos_link),
|
||||
'network' => array(t("Network Posts"), $posts_link),
|
||||
'edit' => array(t("Edit Contact"), $contact_url),
|
||||
'pm' => array(t("Send PM"), $pm_url),
|
||||
);
|
||||
|
||||
|
||||
|
@ -236,7 +236,7 @@ function contact_photo_menu($contact) {
|
|||
|
||||
call_hooks('contact_photo_menu', $args);
|
||||
|
||||
$o = "";
|
||||
/* $o = "";
|
||||
foreach($menu as $k=>$v){
|
||||
if ($v!="") {
|
||||
if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact')))
|
||||
|
@ -245,7 +245,16 @@ function contact_photo_menu($contact) {
|
|||
$o .= "<li><a href=\"$v\">$k</a></li>\n";
|
||||
}
|
||||
}
|
||||
return $o;
|
||||
return $o;*/
|
||||
foreach($menu as $k=>$v){
|
||||
if ($v[1]!="") {
|
||||
if(($v[0] !== t("Network Posts")) && ($v[0] !== t("Send PM")) && ($v[0] !== t('Edit Contact')))
|
||||
$menu[$k][2] = 1;
|
||||
else
|
||||
$menu[$k][2] = 0;
|
||||
}
|
||||
}
|
||||
return $menu;
|
||||
}}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once("include/contact_selectors.php");
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -243,9 +246,7 @@ function prune_deadguys($arr) {
|
|||
}
|
||||
|
||||
|
||||
|
||||
function populate_acl($user = null,$celeb = false) {
|
||||
|
||||
function get_acl_permissions($user = null) {
|
||||
$allow_cid = $allow_gid = $deny_cid = $deny_gid = false;
|
||||
|
||||
if(is_array($user)) {
|
||||
|
@ -265,6 +266,19 @@ function populate_acl($user = null,$celeb = false) {
|
|||
|
||||
$allow_cid = prune_deadguys($allow_cid);
|
||||
|
||||
return array(
|
||||
'allow_cid' => $allow_cid,
|
||||
'allow_gid' => $allow_gid,
|
||||
'deny_cid' => $deny_cid,
|
||||
'deny_gid' => $deny_gid,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function populate_acl($user = null,$celeb = false) {
|
||||
|
||||
$perms = get_acl_permissions($user);
|
||||
|
||||
// We shouldn't need to prune deadguys from the block list. Either way they can't get the message.
|
||||
// Also no point enumerating groups and checking them, that will take place on delivery.
|
||||
|
||||
|
@ -311,10 +325,10 @@ function populate_acl($user = null,$celeb = false) {
|
|||
'$showall'=> t("Visible to everybody"),
|
||||
'$show' => t("show"),
|
||||
'$hide' => t("don't show"),
|
||||
'$allowcid' => json_encode($allow_cid),
|
||||
'$allowgid' => json_encode($allow_gid),
|
||||
'$denycid' => json_encode($deny_cid),
|
||||
'$denygid' => json_encode($deny_gid),
|
||||
'$allowcid' => json_encode($perms['allow_cid']),
|
||||
'$allowgid' => json_encode($perms['allow_gid']),
|
||||
'$denycid' => json_encode($perms['deny_cid']),
|
||||
'$denygid' => json_encode($perms['deny_gid']),
|
||||
));
|
||||
|
||||
|
||||
|
@ -322,3 +336,238 @@ function populate_acl($user = null,$celeb = false) {
|
|||
|
||||
}
|
||||
|
||||
function construct_acl_data(&$a, $user) {
|
||||
|
||||
// Get group and contact information for html ACL selector
|
||||
$acl_data = acl_lookup(&$a, 'html');
|
||||
|
||||
$user_defaults = get_acl_permissions($user);
|
||||
|
||||
if($acl_data['groups']) {
|
||||
foreach($acl_data['groups'] as $key=>$group) {
|
||||
// Add a "selected" flag to groups that are posted to by default
|
||||
if($user_defaults['allow_gid'] &&
|
||||
in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) )
|
||||
$acl_data['groups'][$key]['selected'] = 1;
|
||||
else
|
||||
$acl_data['groups'][$key]['selected'] = 0;
|
||||
}
|
||||
}
|
||||
if($acl_data['contacts']) {
|
||||
foreach($acl_data['contacts'] as $key=>$contact) {
|
||||
// Add a "selected" flag to groups that are posted to by default
|
||||
if($user_defaults['allow_cid'] &&
|
||||
in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) )
|
||||
$acl_data['contacts'][$key]['selected'] = 1;
|
||||
else
|
||||
$acl_data['contacts'][$key]['selected'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return $acl_data;
|
||||
|
||||
}
|
||||
|
||||
function acl_lookup(&$a, $out_type = 'json') {
|
||||
|
||||
if(!local_user())
|
||||
return "";
|
||||
|
||||
|
||||
$start = (x($_REQUEST,'start')?$_REQUEST['start']:0);
|
||||
$count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
|
||||
$search = (x($_REQUEST,'search')?$_REQUEST['search']:"");
|
||||
$type = (x($_REQUEST,'type')?$_REQUEST['type']:"");
|
||||
|
||||
|
||||
// For use with jquery.autocomplete for private mail completion
|
||||
|
||||
if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
|
||||
if(! $type)
|
||||
$type = 'm';
|
||||
$search = $_REQUEST['query'];
|
||||
}
|
||||
|
||||
|
||||
if ($search!=""){
|
||||
$sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'";
|
||||
$sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')";
|
||||
} else {
|
||||
$sql_extra = $sql_extra2 = "";
|
||||
}
|
||||
|
||||
// count groups and contacts
|
||||
if ($type=='' || $type=='g'){
|
||||
$r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra",
|
||||
intval(local_user())
|
||||
);
|
||||
$group_count = (int)$r[0]['g'];
|
||||
} else {
|
||||
$group_count = 0;
|
||||
}
|
||||
|
||||
if ($type=='' || $type=='c'){
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `notify` != '' $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
}
|
||||
elseif ($type == 'm') {
|
||||
|
||||
// autocomplete for Private Messages
|
||||
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `network` IN ('%s','%s','%s') $sql_extra2" ,
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_DFRN),
|
||||
dbesc(NETWORK_ZOT),
|
||||
dbesc(NETWORK_DIASPORA)
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
|
||||
}
|
||||
elseif ($type == 'a') {
|
||||
|
||||
// autocomplete for Contacts
|
||||
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `pending` = 0 $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
|
||||
} else {
|
||||
$contact_count = 0;
|
||||
}
|
||||
|
||||
$tot = $group_count+$contact_count;
|
||||
|
||||
$groups = array();
|
||||
$contacts = array();
|
||||
|
||||
if ($type=='' || $type=='g'){
|
||||
|
||||
$r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') as uids
|
||||
FROM `group`,`group_member`
|
||||
WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d
|
||||
AND `group_member`.`gid`=`group`.`id`
|
||||
$sql_extra
|
||||
GROUP BY `group`.`id`
|
||||
ORDER BY `group`.`name`
|
||||
LIMIT %d,%d",
|
||||
intval(local_user()),
|
||||
intval($start),
|
||||
intval($count)
|
||||
);
|
||||
|
||||
foreach($r as $g){
|
||||
// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']);
|
||||
$groups[] = array(
|
||||
"type" => "g",
|
||||
"photo" => "images/twopeople.png",
|
||||
"name" => $g['name'],
|
||||
"id" => intval($g['id']),
|
||||
"uids" => array_map("intval", explode(",",$g['uids'])),
|
||||
"link" => ''
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($type=='' || $type=='c'){
|
||||
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
);
|
||||
}
|
||||
elseif($type == 'm') {
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `network` IN ('%s','%s','%s')
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_DFRN),
|
||||
dbesc(NETWORK_ZOT),
|
||||
dbesc(NETWORK_DIASPORA)
|
||||
);
|
||||
}
|
||||
elseif($type == 'a') {
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `pending` = 0
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
);
|
||||
}
|
||||
else
|
||||
$r = array();
|
||||
|
||||
|
||||
if($type == 'm' || $type == 'a') {
|
||||
$x = array();
|
||||
$x['query'] = $search;
|
||||
$x['photos'] = array();
|
||||
$x['links'] = array();
|
||||
$x['suggestions'] = array();
|
||||
$x['data'] = array();
|
||||
if(count($r)) {
|
||||
foreach($r as $g) {
|
||||
$x['photos'][] = $g['micro'];
|
||||
$x['links'][] = $g['url'];
|
||||
$x['suggestions'][] = $g['name'];
|
||||
$x['data'][] = intval($g['id']);
|
||||
}
|
||||
}
|
||||
echo json_encode($x);
|
||||
killme();
|
||||
}
|
||||
|
||||
if(count($r)) {
|
||||
foreach($r as $g){
|
||||
$contacts[] = array(
|
||||
"type" => "c",
|
||||
"photo" => $g['micro'],
|
||||
"name" => $g['name'],
|
||||
"id" => intval($g['id']),
|
||||
"network" => $g['network'],
|
||||
"link" => $g['url'],
|
||||
"nick" => ($g['attag']) ? $g['attag'] : $g['nick'],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$items = array_merge($groups, $contacts);
|
||||
|
||||
|
||||
if($out_type === 'html') {
|
||||
$o = array(
|
||||
'tot' => $tot,
|
||||
'start' => $start,
|
||||
'count' => $count,
|
||||
'groups' => $groups,
|
||||
'contacts' => $contacts,
|
||||
);
|
||||
return $o;
|
||||
}
|
||||
|
||||
$o = array(
|
||||
'tot' => $tot,
|
||||
'start' => $start,
|
||||
'count' => $count,
|
||||
'items' => $items,
|
||||
);
|
||||
|
||||
echo json_encode($o);
|
||||
|
||||
killme();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once("include/bbcode.php");
|
||||
require_once("include/acl_selectors.php");
|
||||
|
||||
|
||||
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
|
||||
|
@ -704,6 +705,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
|
||||
$o = replace_macros($page_template, array(
|
||||
'$baseurl' => $a->get_baseurl($ssl_state),
|
||||
'$return_path' => $a->query_string,
|
||||
'$live_update' => $live_update_div,
|
||||
'$remove' => t('remove'),
|
||||
'$mode' => $mode,
|
||||
|
@ -908,7 +910,7 @@ function format_like($cnt,$arr,$type,$id) {
|
|||
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
|
||||
}
|
||||
$str = (($type === 'like') ? sprintf( t('%s like this.'), $str) : sprintf( t('%s don\'t like this.'), $str));
|
||||
$o .= "\t" . '<div id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
|
||||
$o .= "\t" . '<div class="wall-item-' . $type . '-expanded" id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
|
||||
}
|
||||
return $o;
|
||||
}}
|
||||
|
@ -962,8 +964,6 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
|
|||
));
|
||||
|
||||
|
||||
$tpl = get_markup_template("jot.tpl");
|
||||
|
||||
$jotplugins = '';
|
||||
$jotnets = '';
|
||||
|
||||
|
@ -994,10 +994,31 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
|
|||
if($notes_cid)
|
||||
$jotnets .= '<input type="hidden" name="contact_allow[]" value="' . $notes_cid .'" />';
|
||||
|
||||
|
||||
// Private/public post links for the non-JS ACL form
|
||||
$private_post = 1;
|
||||
if($_REQUEST['public'])
|
||||
$private_post = 0;
|
||||
|
||||
$query_str = $a->query_string;
|
||||
if(strpos($query_str, 'public=1') !== false)
|
||||
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
||||
|
||||
// I think $a->query_string may never have ? in it, but I could be wrong
|
||||
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
||||
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
||||
if(strpos($query_str, '?') === false)
|
||||
$public_post_link = '?public=1';
|
||||
else
|
||||
$public_post_link = '&public=1';
|
||||
|
||||
|
||||
|
||||
// $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
|
||||
$tpl = get_markup_template("jot.tpl");
|
||||
|
||||
$o .= replace_macros($tpl,array(
|
||||
'$return_path' => $a->query_string,
|
||||
'$return_path' => $query_str,
|
||||
'$action' => $a->get_baseurl(true) . '/item',
|
||||
'$share' => (x($x,'button') ? $x['button'] : t('Share')),
|
||||
'$upload' => t('Upload photo'),
|
||||
|
@ -1033,14 +1054,22 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
|
|||
'$jotnets' => $jotnets,
|
||||
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
|
||||
'$lockstate' => $x['lockstate'],
|
||||
'$acl' => $x['acl'],
|
||||
'$bang' => $x['bang'],
|
||||
'$profile_uid' => $x['profile_uid'],
|
||||
'$preview' => ((feature_enabled($x['profile_uid'],'preview')) ? t('Preview') : ''),
|
||||
'$jotplugins' => $jotplugins,
|
||||
'$sourceapp' => t($a->sourcename),
|
||||
'$cancel' => t('Cancel'),
|
||||
'$rand_num' => random_digits(12)
|
||||
'$rand_num' => random_digits(12),
|
||||
|
||||
// ACL permissions box
|
||||
'$acl' => $x['acl'],
|
||||
'$acl_data' => $x['acl_data'],
|
||||
'$group_perms' => t('Post to Groups'),
|
||||
'$contact_perms' => t('Post to Contacts'),
|
||||
'$private' => t('Private post'),
|
||||
'$is_private' => $private_post,
|
||||
'$public_link' => $public_post_link,
|
||||
));
|
||||
|
||||
|
||||
|
|
|
@ -3874,6 +3874,34 @@ function drop_item($id,$interactive = true) {
|
|||
|
||||
if((local_user() == $item['uid']) || ($cid) || (! $interactive)) {
|
||||
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
// <form> can't take arguments in its "action" parameter
|
||||
// so add any arguments as hidden inputs
|
||||
$query = explode_querystring($a->query_string);
|
||||
$inputs = array();
|
||||
foreach($query['args'] as $arg) {
|
||||
if(strpos($arg, 'confirm=') === false) {
|
||||
$arg_parts = explode('=', $arg);
|
||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
return replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'get',
|
||||
'$message' => t('Do you really want to delete this item?'),
|
||||
'$extra_inputs' => $inputs,
|
||||
'$confirm' => t('Yes'),
|
||||
'$confirm_url' => $query['base'],
|
||||
'$confirm_name' => 'confirmed',
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
}
|
||||
// Now check how the user responded to the confirmation query
|
||||
if($_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
|
||||
}
|
||||
|
||||
logger('delete item: ' . $item['id'], LOGGER_DEBUG);
|
||||
// delete the item
|
||||
|
||||
|
|
|
@ -8,8 +8,6 @@ function nav(&$a) {
|
|||
*
|
||||
*/
|
||||
|
||||
$ssl_state = ((local_user()) ? true : false);
|
||||
|
||||
if(!(x($a->page,'nav')))
|
||||
$a->page['nav'] = '';
|
||||
|
||||
|
@ -19,6 +17,35 @@ function nav(&$a) {
|
|||
|
||||
$a->page['nav'] .= '<div id="panel" style="display: none;"></div>' ;
|
||||
|
||||
$nav_info = nav_info($a);
|
||||
|
||||
/**
|
||||
* Build the page
|
||||
*/
|
||||
|
||||
$tpl = get_markup_template('nav.tpl');
|
||||
|
||||
$a->page['nav'] .= replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$langselector' => lang_selector(),
|
||||
'$sitelocation' => $nav_info['sitelocation'],
|
||||
'$nav' => $nav_info['nav'],
|
||||
'$banner' => $nav_info['banner'],
|
||||
'$emptynotifications' => t('Nothing new here'),
|
||||
'$userinfo' => $nav_info['userinfo'],
|
||||
'$sel' => $a->nav_sel,
|
||||
'$apps' => $a->apps,
|
||||
'$clear_notifs' => t('Clear notifications')
|
||||
));
|
||||
|
||||
call_hooks('page_header', $a->page['nav']);
|
||||
}
|
||||
|
||||
|
||||
function nav_info(&$a) {
|
||||
|
||||
$ssl_state = ((local_user()) ? true : false);
|
||||
|
||||
/**
|
||||
*
|
||||
* Our network is distributed, and as you visit friends some of the
|
||||
|
@ -152,6 +179,9 @@ function nav(&$a) {
|
|||
}
|
||||
|
||||
|
||||
$nav['navigation'] = array('navigation/', t('Navigation'), "", t('Site map'));
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Provide a banner/logo/whatever
|
||||
|
@ -164,23 +194,15 @@ function nav(&$a) {
|
|||
$banner .= '<a href="http://friendica.com"><img id="logo-img" src="images/friendica-32.png" alt="logo" /></a><span id="logo-text"><a href="http://friendica.com">Friendica</a></span>';
|
||||
|
||||
|
||||
$tpl = get_markup_template('nav.tpl');
|
||||
|
||||
$a->page['nav'] .= replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$langselector' => lang_selector(),
|
||||
'$sitelocation' => $sitelocation,
|
||||
'$nav' => $nav,
|
||||
'$banner' => $banner,
|
||||
'$emptynotifications' => t('Nothing new here'),
|
||||
'$userinfo' => $userinfo,
|
||||
'$sel' => $a->nav_sel,
|
||||
'$apps' => $a->apps,
|
||||
));
|
||||
|
||||
call_hooks('page_header', $a->page['nav']);
|
||||
return array(
|
||||
'sitelocation' => $sitelocation,
|
||||
'nav' => $nav,
|
||||
'banner' => $banner,
|
||||
'userinfo' => $userinfo,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set a menu item in navbar as selected
|
||||
*
|
||||
|
|
|
@ -259,15 +259,15 @@ class Template {
|
|||
public function replace($s, $r) {
|
||||
$this->r = $r;
|
||||
|
||||
// remove comments block
|
||||
$s = preg_replace('/{#(.*?\s*?)*?#}/', "", $s);
|
||||
|
||||
$s = $this->_build_nodes($s);
|
||||
|
||||
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
|
||||
if ($s == Null)
|
||||
$this->_preg_error();
|
||||
|
||||
// remove comments block
|
||||
$s = preg_replace('/{#[^#]*#}/', "", $s);
|
||||
|
||||
// replace strings recursively (limit to 10 loops)
|
||||
$os = "";
|
||||
$count = 0;
|
||||
|
|
188
mod/acl.php
|
@ -4,193 +4,7 @@
|
|||
require_once("include/acl_selectors.php");
|
||||
|
||||
function acl_init(&$a){
|
||||
if(!local_user())
|
||||
return "";
|
||||
|
||||
|
||||
$start = (x($_REQUEST,'start')?$_REQUEST['start']:0);
|
||||
$count = (x($_REQUEST,'count')?$_REQUEST['count']:100);
|
||||
$search = (x($_REQUEST,'search')?$_REQUEST['search']:"");
|
||||
$type = (x($_REQUEST,'type')?$_REQUEST['type']:"");
|
||||
|
||||
|
||||
// For use with jquery.autocomplete for private mail completion
|
||||
|
||||
if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
|
||||
if(! $type)
|
||||
$type = 'm';
|
||||
$search = $_REQUEST['query'];
|
||||
}
|
||||
|
||||
|
||||
if ($search!=""){
|
||||
$sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'";
|
||||
$sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')";
|
||||
} else {
|
||||
$sql_extra = $sql_extra2 = "";
|
||||
}
|
||||
|
||||
// count groups and contacts
|
||||
if ($type=='' || $type=='g'){
|
||||
$r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra",
|
||||
intval(local_user())
|
||||
);
|
||||
$group_count = (int)$r[0]['g'];
|
||||
} else {
|
||||
$group_count = 0;
|
||||
}
|
||||
|
||||
if ($type=='' || $type=='c'){
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `notify` != '' $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
}
|
||||
elseif ($type == 'm') {
|
||||
|
||||
// autocomplete for Private Messages
|
||||
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `network` IN ('%s','%s','%s') $sql_extra2" ,
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_DFRN),
|
||||
dbesc(NETWORK_ZOT),
|
||||
dbesc(NETWORK_DIASPORA)
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
|
||||
}
|
||||
elseif ($type == 'a') {
|
||||
|
||||
// autocomplete for Contacts
|
||||
|
||||
$r = q("SELECT COUNT(`id`) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `pending` = 0 $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
|
||||
} else {
|
||||
$contact_count = 0;
|
||||
}
|
||||
|
||||
$tot = $group_count+$contact_count;
|
||||
|
||||
$groups = array();
|
||||
$contacts = array();
|
||||
|
||||
if ($type=='' || $type=='g'){
|
||||
|
||||
$r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') as uids
|
||||
FROM `group`,`group_member`
|
||||
WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d
|
||||
AND `group_member`.`gid`=`group`.`id`
|
||||
$sql_extra
|
||||
GROUP BY `group`.`id`
|
||||
ORDER BY `group`.`name`
|
||||
LIMIT %d,%d",
|
||||
intval(local_user()),
|
||||
intval($start),
|
||||
intval($count)
|
||||
);
|
||||
|
||||
foreach($r as $g){
|
||||
// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']);
|
||||
$groups[] = array(
|
||||
"type" => "g",
|
||||
"photo" => "images/twopeople.png",
|
||||
"name" => $g['name'],
|
||||
"id" => intval($g['id']),
|
||||
"uids" => array_map("intval", explode(",",$g['uids'])),
|
||||
"link" => ''
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($type=='' || $type=='c'){
|
||||
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
);
|
||||
}
|
||||
elseif($type == 'm') {
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
AND `network` IN ('%s','%s','%s')
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_DFRN),
|
||||
dbesc(NETWORK_ZOT),
|
||||
dbesc(NETWORK_DIASPORA)
|
||||
);
|
||||
}
|
||||
elseif($type == 'a') {
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `pending` = 0
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
);
|
||||
}
|
||||
else
|
||||
$r = array();
|
||||
|
||||
|
||||
if($type == 'm' || $type == 'a') {
|
||||
$x = array();
|
||||
$x['query'] = $search;
|
||||
$x['photos'] = array();
|
||||
$x['links'] = array();
|
||||
$x['suggestions'] = array();
|
||||
$x['data'] = array();
|
||||
if(count($r)) {
|
||||
foreach($r as $g) {
|
||||
$x['photos'][] = $g['micro'];
|
||||
$x['links'][] = $g['url'];
|
||||
$x['suggestions'][] = $g['name'];
|
||||
$x['data'][] = intval($g['id']);
|
||||
}
|
||||
}
|
||||
echo json_encode($x);
|
||||
killme();
|
||||
}
|
||||
|
||||
if(count($r)) {
|
||||
foreach($r as $g){
|
||||
$contacts[] = array(
|
||||
"type" => "c",
|
||||
"photo" => $g['micro'],
|
||||
"name" => $g['name'],
|
||||
"id" => intval($g['id']),
|
||||
"network" => $g['network'],
|
||||
"link" => $g['url'],
|
||||
"nick" => ($g['attag']) ? $g['attag'] : $g['nick'],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$items = array_merge($groups, $contacts);
|
||||
|
||||
$o = array(
|
||||
'tot' => $tot,
|
||||
'start' => $start,
|
||||
'count' => $count,
|
||||
'items' => $items,
|
||||
);
|
||||
|
||||
echo json_encode($o);
|
||||
|
||||
killme();
|
||||
acl_lookup($a);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -225,6 +225,36 @@ function contacts_content(&$a) {
|
|||
|
||||
if($cmd === 'drop') {
|
||||
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
// <form> can't take arguments in its "action" parameter
|
||||
// so add any arguments as hidden inputs
|
||||
$query = explode_querystring($a->query_string);
|
||||
$inputs = array();
|
||||
foreach($query['args'] as $arg) {
|
||||
if(strpos($arg, 'confirm=') === false) {
|
||||
$arg_parts = explode('=', $arg);
|
||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
$a->page['aside'] = '';
|
||||
return replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'get',
|
||||
'$message' => t('Do you really want to delete this contact?'),
|
||||
'$extra_inputs' => $inputs,
|
||||
'$confirm' => t('Yes'),
|
||||
'$confirm_url' => $query['base'],
|
||||
'$confirm_name' => 'confirmed',
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
}
|
||||
// Now check how the user responded to the confirmation query
|
||||
if($_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
|
||||
}
|
||||
|
||||
require_once('include/Contact.php');
|
||||
|
||||
terminate_friendship($a->user,$a->contact,$orig_record[0]);
|
||||
|
@ -239,6 +269,10 @@ function contacts_content(&$a) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$_SESSION['return_url'] = $a->query_string;
|
||||
|
||||
if((x($a->data,'contact')) && (is_array($a->data['contact']))) {
|
||||
|
||||
$contact_id = $a->data['contact']['id'];
|
||||
|
@ -405,8 +439,6 @@ function contacts_content(&$a) {
|
|||
$ignored = false;
|
||||
$all = false;
|
||||
|
||||
$_SESSION['return_url'] = $a->query_string;
|
||||
|
||||
if(($a->argc == 2) && ($a->argv[1] === 'all')) {
|
||||
$sql_extra = '';
|
||||
$all = true;
|
||||
|
|
|
@ -112,8 +112,9 @@ function display_content(&$a, $update = 0) {
|
|||
'acl' => populate_acl($a->user, $celeb),
|
||||
'bang' => '',
|
||||
'visitor' => 'block',
|
||||
'profile_uid' => local_user()
|
||||
);
|
||||
'profile_uid' => local_user(),
|
||||
'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
|
||||
);
|
||||
$o .= status_editor($a,$x,0,true);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,16 +85,19 @@ function editpost_content(&$a) {
|
|||
}
|
||||
}
|
||||
|
||||
if($mail_enabled) {
|
||||
// I don't think there's any need for the $jotnets when editing the post,
|
||||
// and including them makes it difficult for the JS-free theme, so let's
|
||||
// disable them
|
||||
/* if($mail_enabled) {
|
||||
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
|
||||
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> '
|
||||
. t("Post to Email") . '</div>';
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
call_hooks('jot_tool', $jotplugins);
|
||||
call_hooks('jot_networks', $jotnets);
|
||||
//call_hooks('jot_networks', $jotnets);
|
||||
|
||||
|
||||
//$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
|
||||
|
|
|
@ -923,10 +923,12 @@ function item_content(&$a) {
|
|||
|
||||
require_once('include/security.php');
|
||||
|
||||
$o = '';
|
||||
if(($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) {
|
||||
require_once('include/items.php');
|
||||
drop_item($a->argv[2]);
|
||||
$o = drop_item($a->argv[2]);
|
||||
}
|
||||
return $o;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
28
mod/like.php
|
@ -105,6 +105,10 @@ function like_content(&$a) {
|
|||
}
|
||||
|
||||
|
||||
// See if we've been passed a return path to redirect to
|
||||
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
||||
|
||||
|
||||
$r = q("SELECT * FROM `item` WHERE `verb` = '%s' AND `deleted` = 0
|
||||
AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1",
|
||||
dbesc($activity),
|
||||
|
@ -137,7 +141,9 @@ function like_content(&$a) {
|
|||
// proc_run('php',"include/notifier.php","like","$post_id"); // $post_id isn't defined here!
|
||||
$like_item_id = $like_item['id'];
|
||||
proc_run('php',"include/notifier.php","like","$like_item_id");
|
||||
return;
|
||||
|
||||
like_content_return($a->get_baseurl(), $return_path);
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
$uri = item_new_uri($a->get_hostname(),$owner_uid);
|
||||
|
@ -221,11 +227,29 @@ EOT;
|
|||
|
||||
proc_run('php',"include/notifier.php","like","$post_id");
|
||||
|
||||
killme();
|
||||
like_content_return($a->get_baseurl(), $return_path);
|
||||
killme(); // NOTREACHED
|
||||
// return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
// Decide how to return. If we were called with a 'return' argument,
|
||||
// then redirect back to the calling page. If not, just quietly end
|
||||
|
||||
function like_content_return($baseurl, $return_path) {
|
||||
|
||||
if($return_path) {
|
||||
$rand = '_=' . time();
|
||||
if(strpos($return_path, '?')) $rand = "&$rand";
|
||||
else $rand = "?$rand";
|
||||
|
||||
goaway($baseurl . "/" . $return_path . $rand);
|
||||
}
|
||||
|
||||
killme();
|
||||
}
|
||||
|
||||
|
||||
function store_diaspora_like_retract_sig($activity, $item, $like_item, $contact) {
|
||||
// Note that we can only create a signature for a user of the local server. We don't have
|
||||
// a key for remote users. That is ok, because if a remote user is "unlike"ing a post, it
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once("include/text.php");
|
||||
|
||||
|
||||
function manage_post(&$a) {
|
||||
|
||||
|
@ -68,6 +70,10 @@ function manage_post(&$a) {
|
|||
unset($_SESSION['return_url']);
|
||||
if(x($_SESSION,'submanage'))
|
||||
unset($_SESSION['submanage']);
|
||||
if(x($_SESSION,'sysmsg'))
|
||||
unset($_SESSION['sysmsg']);
|
||||
if(x($_SESSION,'sysmsg_info'))
|
||||
unset($_SESSION['sysmsg_info']);
|
||||
|
||||
require_once('include/security.php');
|
||||
authenticate_success($r[0],true,true);
|
||||
|
@ -91,27 +97,18 @@ function manage_content(&$a) {
|
|||
return;
|
||||
}
|
||||
|
||||
$o = '<h3>' . t('Manage Identities and/or Pages') . '</h3>';
|
||||
|
||||
|
||||
$o .= '<div id="identity-manage-desc">' . t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions') . '</div>';
|
||||
|
||||
$o .= '<div id="identity-manage-choose">' . t('Select an identity to manage: ') . '</div>';
|
||||
|
||||
$o .= '<div id="identity-selector-wrapper">' . "\r\n";
|
||||
$o .= '<form action="manage" method="post" >' . "\r\n";
|
||||
$o .= '<select name="identity" size="4" onchange="this.form.submit();" >' . "\r\n";
|
||||
|
||||
foreach($a->identities as $rr) {
|
||||
$selected = (($rr['nickname'] === $a->user['nickname']) ? ' selected="selected" ' : '');
|
||||
$o .= '<option ' . $selected . 'value="' . $rr['uid'] . '">' . $rr['username'] . ' (' . $rr['nickname'] . ')</option>' . "\r\n";
|
||||
$identities = $a->identities;
|
||||
foreach($identities as $key=>$id) {
|
||||
$identities[$key]['selected'] = (($id['nickname'] === $a->user['nickname']) ? ' selected="selected" ' : '');
|
||||
}
|
||||
|
||||
$o .= '</select>' . "\r\n";
|
||||
$o .= '<div id="identity-select-break"></div>' . "\r\n";
|
||||
|
||||
// $o .= '<input id="identity-submit" type="submit" name="submit" value="' . t('Submit') . '" />';
|
||||
$o .= '</div></form>' . "\r\n";
|
||||
$o = replace_macros(get_markup_template('manage.tpl'), array(
|
||||
'$title' => t('Manage Identities and/or Pages'),
|
||||
'$desc' => t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'),
|
||||
'$choose' => t('Select an identity to manage: '),
|
||||
'$identities' => $identities,
|
||||
'$submit' => t('Submit'),
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
|
|
|
@ -82,6 +82,8 @@ function message_post(&$a) {
|
|||
$a->argc = 2;
|
||||
$a->argv[1] = 'new';
|
||||
}
|
||||
else
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
|
||||
}
|
||||
|
||||
|
@ -185,6 +187,36 @@ function message_content(&$a) {
|
|||
if(($a->argc == 3) && ($a->argv[1] === 'drop' || $a->argv[1] === 'dropconv')) {
|
||||
if(! intval($a->argv[2]))
|
||||
return;
|
||||
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
// <form> can't take arguments in its "action" parameter
|
||||
// so add any arguments as hidden inputs
|
||||
$query = explode_querystring($a->query_string);
|
||||
$inputs = array();
|
||||
foreach($query['args'] as $arg) {
|
||||
if(strpos($arg, 'confirm=') === false) {
|
||||
$arg_parts = explode('=', $arg);
|
||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
//$a->page['aside'] = '';
|
||||
return replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'get',
|
||||
'$message' => t('Do you really want to delete this message?'),
|
||||
'$extra_inputs' => $inputs,
|
||||
'$confirm' => t('Yes'),
|
||||
'$confirm_url' => $query['base'],
|
||||
'$confirm_name' => 'confirmed',
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
}
|
||||
// Now check how the user responded to the confirmation query
|
||||
if($_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
}
|
||||
|
||||
$cmd = $a->argv[1];
|
||||
if($cmd === 'drop') {
|
||||
$r = q("DELETE FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
|
@ -194,7 +226,8 @@ function message_content(&$a) {
|
|||
if($r) {
|
||||
info( t('Message deleted.') . EOL );
|
||||
}
|
||||
goaway($a->get_baseurl(true) . '/message' );
|
||||
//goaway($a->get_baseurl(true) . '/message' );
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
}
|
||||
else {
|
||||
$r = q("SELECT `parent-uri`,`convid` FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
|
@ -224,7 +257,8 @@ function message_content(&$a) {
|
|||
if($r)
|
||||
info( t('Conversation removed.') . EOL );
|
||||
}
|
||||
goaway($a->get_baseurl(true) . '/message' );
|
||||
//goaway($a->get_baseurl(true) . '/message' );
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -304,6 +338,9 @@ function message_content(&$a) {
|
|||
return $o;
|
||||
}
|
||||
|
||||
|
||||
$_SESSION['return_url'] = $a->query_string;
|
||||
|
||||
if($a->argc == 1) {
|
||||
|
||||
// list messages
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
require_once("include/nav.php");
|
||||
|
||||
function navigation_content(&$a) {
|
||||
|
||||
$nav_info = nav_info($a);
|
||||
|
||||
/**
|
||||
* Build the page
|
||||
*/
|
||||
|
||||
$tpl = get_markup_template('navigation.tpl');
|
||||
return replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$langselector' => lang_selector(),
|
||||
'$sitelocation' => $nav_info['sitelocation'],
|
||||
'$nav' => $nav_info['nav'],
|
||||
'$banner' => $nav_info['banner'],
|
||||
'$emptynotifications' => t('Nothing new here'),
|
||||
'$userinfo' => $nav_info['userinfo'],
|
||||
'$sel' => $a->nav_sel,
|
||||
'$apps' => $a->apps,
|
||||
'$clear_notifs' => t('Clear notifications')
|
||||
));
|
||||
|
||||
}
|
|
@ -560,10 +560,12 @@ function network_content(&$a, $update = 0) {
|
|||
'default_location' => $a->user['default-location'],
|
||||
'nickname' => $a->user['nickname'],
|
||||
'lockstate' => ((($group) || ($cid) || ($nets) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'),
|
||||
'default_perms' => get_acl_permissions($a->user),
|
||||
'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), $celeb),
|
||||
'bang' => (($group || $cid || $nets) ? '!' : ''),
|
||||
'visitor' => 'block',
|
||||
'profile_uid' => local_user()
|
||||
'profile_uid' => local_user(),
|
||||
'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
|
||||
);
|
||||
|
||||
$o .= status_editor($a,$x);
|
||||
|
|
|
@ -60,8 +60,8 @@ function notes_content(&$a,$update = false) {
|
|||
'bang' => '',
|
||||
'visitor' => 'block',
|
||||
'profile_uid' => local_user(),
|
||||
'button' => t('Save')
|
||||
|
||||
'button' => t('Save'),
|
||||
'acl_data' => '',
|
||||
);
|
||||
|
||||
$o .= status_editor($a,$x,$a->contact['id']);
|
||||
|
|
125
mod/photos.php
|
@ -166,6 +166,11 @@ function photos_post(&$a) {
|
|||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
// Check if the user has responded to a delete confirmation query
|
||||
if($_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
|
||||
}
|
||||
|
||||
$newalbum = notags(trim($_POST['albumname']));
|
||||
if($newalbum != $album) {
|
||||
q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d",
|
||||
|
@ -181,6 +186,25 @@ function photos_post(&$a) {
|
|||
|
||||
if($_POST['dropalbum'] == t('Delete Album')) {
|
||||
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
$drop_url = $a->query_string;
|
||||
$extra_inputs = array(
|
||||
array('name' => 'albumname', 'value' => $_POST['albumname']),
|
||||
);
|
||||
$a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'post',
|
||||
'$message' => t('Do you really want to delete this photo album and all its photos?'),
|
||||
'$extra_inputs' => $extra_inputs,
|
||||
'$confirm' => t('Delete Album'),
|
||||
'$confirm_url' => $drop_url,
|
||||
'$confirm_name' => 'dropalbum', // Needed so that confirmation will bring us back into this if statement
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
$a->error = 1; // Set $a->error so the other module functions don't execute
|
||||
return;
|
||||
}
|
||||
|
||||
$res = array();
|
||||
|
||||
// get the list of photos we are about to delete
|
||||
|
@ -242,10 +266,32 @@ function photos_post(&$a) {
|
|||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
// Check if the user has responded to a delete confirmation query for a single photo
|
||||
if(($a->argc > 2) && $_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
|
||||
}
|
||||
|
||||
if(($a->argc > 2) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) {
|
||||
|
||||
// same as above but remove single photo
|
||||
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
$drop_url = $a->query_string;
|
||||
$a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'post',
|
||||
'$message' => t('Do you really want to delete this photo?'),
|
||||
'$extra_inputs' => array(),
|
||||
'$confirm' => t('Delete Photo'),
|
||||
'$confirm_url' => $drop_url,
|
||||
'$confirm_name' => 'delete', // Needed so that confirmation will bring us back into this if statement
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
$a->error = 1; // Set $a->error so the other module functions don't execute
|
||||
return;
|
||||
}
|
||||
|
||||
if($visitor) {
|
||||
$r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1",
|
||||
intval($visitor),
|
||||
|
@ -284,7 +330,7 @@ function photos_post(&$a) {
|
|||
}
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
|
||||
goaway($a->get_baseurl() . '/photos/' . $a->data['user']['nickname']);
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
@ -1024,8 +1070,10 @@ function photos_content(&$a) {
|
|||
|
||||
call_hooks('photo_upload_form',$ret);
|
||||
|
||||
$default_upload = '<input id="photos-upload-choose" type="file" name="userfile" /> <div class="photos-upload-submit-wrapper" >
|
||||
<input type="submit" name="submit" value="' . t('Submit') . '" id="photos-upload-submit" /> </div>';
|
||||
$default_upload_box = replace_macros(get_markup_template('photos_default_uploader_box.tpl'), array());
|
||||
$default_upload_submit = replace_macros(get_markup_template('photos_default_uploader_submit.tpl'), array(
|
||||
'$submit' => t('Submit'),
|
||||
));
|
||||
|
||||
$usage_message = '';
|
||||
$limit = service_class_fetch($a->data['user']['uid'],'photo_upload_limit');
|
||||
|
@ -1038,6 +1086,25 @@ function photos_content(&$a) {
|
|||
}
|
||||
|
||||
|
||||
// Private/public post links for the non-JS ACL form
|
||||
$private_post = 1;
|
||||
if($_REQUEST['public'])
|
||||
$private_post = 0;
|
||||
|
||||
$query_str = $a->query_string;
|
||||
if(strpos($query_str, 'public=1') !== false)
|
||||
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
||||
|
||||
// I think $a->query_string may never have ? in it, but I could be wrong
|
||||
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
||||
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
||||
if(strpos($query_str, '?') === false)
|
||||
$public_post_link = '?public=1';
|
||||
else
|
||||
$public_post_link = '&public=1';
|
||||
|
||||
|
||||
|
||||
$tpl = get_markup_template('photos_upload.tpl');
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
|
@ -1060,9 +1127,20 @@ function photos_content(&$a) {
|
|||
'$albumselect' => $albumselect_e,
|
||||
'$permissions' => t('Permissions'),
|
||||
'$aclselect' => $aclselect_e,
|
||||
'$uploader' => $ret['addon_text'],
|
||||
'$default' => (($ret['default_upload']) ? $default_upload : ''),
|
||||
'$uploadurl' => $ret['post_url']
|
||||
'$alt_uploader' => $ret['addon_text'],
|
||||
'$default_upload_box' => (($ret['default_upload']) ? $default_upload_box : ''),
|
||||
'$default_upload_submit' => (($ret['default_upload']) ? $default_upload_submit : ''),
|
||||
'$uploadurl' => $ret['post_url'],
|
||||
|
||||
// ACL permissions box
|
||||
'$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
|
||||
'$group_perms' => t('Show to Groups'),
|
||||
'$contact_perms' => t('Show to Contacts'),
|
||||
'$private' => t('Private Photo'),
|
||||
'$public' => t('Public Photo'),
|
||||
'$is_private' => $private_post,
|
||||
'$return_path' => $query_str,
|
||||
'$public_link' => $public_post_link,
|
||||
|
||||
));
|
||||
|
||||
|
@ -1372,6 +1450,24 @@ function photos_content(&$a) {
|
|||
if(($cmd === 'edit') && ($can_post)) {
|
||||
$edit_tpl = get_markup_template('photo_edit.tpl');
|
||||
|
||||
// Private/public post links for the non-JS ACL form
|
||||
$private_post = 1;
|
||||
if($_REQUEST['public'])
|
||||
$private_post = 0;
|
||||
|
||||
$query_str = $a->query_string;
|
||||
if(strpos($query_str, 'public=1') !== false)
|
||||
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
||||
|
||||
// I think $a->query_string may never have ? in it, but I could be wrong
|
||||
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
||||
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
||||
if(strpos($query_str, '?') === false)
|
||||
$public_post_link = '?public=1';
|
||||
else
|
||||
$public_post_link = '&public=1';
|
||||
|
||||
|
||||
if($a->theme['template_engine'] === 'internal') {
|
||||
$album_e = template_escape($ph[0]['album']);
|
||||
$caption_e = template_escape($ph[0]['desc']);
|
||||
|
@ -1400,7 +1496,17 @@ function photos_content(&$a) {
|
|||
'$help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
|
||||
'$item_id' => ((count($linked_items)) ? $link_item['id'] : 0),
|
||||
'$submit' => t('Submit'),
|
||||
'$delete' => t('Delete Photo')
|
||||
'$delete' => t('Delete Photo'),
|
||||
|
||||
// ACL permissions box
|
||||
'$acl_data' => construct_acl_data($a, $ph[0]), // For non-Javascript ACL selector
|
||||
'$group_perms' => t('Show to Groups'),
|
||||
'$contact_perms' => t('Show to Contacts'),
|
||||
'$private' => t('Private photo'),
|
||||
'$public' => t('Public photo'),
|
||||
'$is_private' => $private_post,
|
||||
'$return_path' => $query_str,
|
||||
'$public_link' => $public_post_link,
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -1418,9 +1524,10 @@ function photos_content(&$a) {
|
|||
$likebuttons = replace_macros($like_tpl,array(
|
||||
'$id' => $link_item['id'],
|
||||
'$likethis' => t("I like this \x28toggle\x29"),
|
||||
'$nolike' => t("I don't like this \x28toggle\x29"),
|
||||
'$nolike' => (feature_enabled(local_user(), 'dislike') ? t("I don't like this \x28toggle\x29") : ''),
|
||||
'$share' => t('Share'),
|
||||
'$wait' => t('Please wait')
|
||||
'$wait' => t('Please wait'),
|
||||
'$return_path' => $a->query_string,
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -198,7 +198,8 @@ function profile_content(&$a, $update = 0) {
|
|||
'acl' => (($is_owner) ? populate_acl($a->user, $celeb) : ''),
|
||||
'bang' => '',
|
||||
'visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'),
|
||||
'profile_uid' => $a->profile['profile_uid']
|
||||
'profile_uid' => $a->profile['profile_uid'],
|
||||
'acl_data' => ( $is_owner ? construct_acl_data($a, $a->user) : '' ), // For non-Javascript ACL selector
|
||||
);
|
||||
|
||||
$o .= status_editor($a,$x);
|
||||
|
|
|
@ -1012,6 +1012,25 @@ function settings_content(&$a) {
|
|||
require_once('include/group.php');
|
||||
$group_select = mini_group_select(local_user(),$a->user['def_gid']);
|
||||
|
||||
|
||||
// Private/public post links for the non-JS ACL form
|
||||
$private_post = 1;
|
||||
if($_REQUEST['public'])
|
||||
$private_post = 0;
|
||||
|
||||
$query_str = $a->query_string;
|
||||
if(strpos($query_str, 'public=1') !== false)
|
||||
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
||||
|
||||
// I think $a->query_string may never have ? in it, but I could be wrong
|
||||
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
||||
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
||||
if(strpos($query_str, '?') === false)
|
||||
$public_post_link = '?public=1';
|
||||
else
|
||||
$public_post_link = '&public=1';
|
||||
|
||||
|
||||
$o .= replace_macros($stpl, array(
|
||||
'$ptitle' => t('Account Settings'),
|
||||
|
||||
|
@ -1046,6 +1065,17 @@ function settings_content(&$a) {
|
|||
'$blockwall'=> $blockwall, // array('blockwall', t('Allow friends to post to your profile page:'), !$blockwall, ''),
|
||||
'$blocktags'=> $blocktags, // array('blocktags', t('Allow friends to tag your posts:'), !$blocktags, ''),
|
||||
|
||||
// ACL permissions box
|
||||
'$acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
|
||||
'$group_perms' => t('Show to Groups'),
|
||||
'$contact_perms' => t('Show to Contacts'),
|
||||
'$private' => t('Default Private Post'),
|
||||
'$public' => t('Default Public Post'),
|
||||
'$is_private' => $private_post,
|
||||
'$return_path' => $query_str,
|
||||
'$public_link' => $public_post_link,
|
||||
'$settings_perms' => t('Default Permissions for New Posts'),
|
||||
|
||||
'$group_select' => $group_select,
|
||||
|
||||
|
||||
|
|
|
@ -28,6 +28,16 @@ function starred_init(&$a) {
|
|||
intval($message_id)
|
||||
);
|
||||
|
||||
// See if we've been passed a return path to redirect to
|
||||
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
||||
if($return_path) {
|
||||
$rand = '_=' . time();
|
||||
if(strpos($return_path, '?')) $rand = "&$rand";
|
||||
else $rand = "?$rand";
|
||||
|
||||
goaway($a->get_baseurl() . "/" . $return_path . $rand);
|
||||
}
|
||||
|
||||
// the json doesn't really matter, it will either be 0 or 1
|
||||
|
||||
echo json_encode($starred);
|
||||
|
|
|
@ -9,10 +9,38 @@ function suggest_init(&$a) {
|
|||
return;
|
||||
|
||||
if(x($_GET,'ignore') && intval($_GET['ignore'])) {
|
||||
q("insert into gcign ( uid, gcid ) values ( %d, %d ) ",
|
||||
intval(local_user()),
|
||||
intval($_GET['ignore'])
|
||||
);
|
||||
// Check if we should do HTML-based delete confirmation
|
||||
if($_REQUEST['confirm']) {
|
||||
// <form> can't take arguments in its "action" parameter
|
||||
// so add any arguments as hidden inputs
|
||||
$query = explode_querystring($a->query_string);
|
||||
$inputs = array();
|
||||
foreach($query['args'] as $arg) {
|
||||
if(strpos($arg, 'confirm=') === false) {
|
||||
$arg_parts = explode('=', $arg);
|
||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
$a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), array(
|
||||
'$method' => 'get',
|
||||
'$message' => t('Do you really want to delete this suggestion?'),
|
||||
'$extra_inputs' => $inputs,
|
||||
'$confirm' => t('Yes'),
|
||||
'$confirm_url' => $query['base'],
|
||||
'$confirm_name' => 'confirmed',
|
||||
'$cancel' => t('Cancel'),
|
||||
));
|
||||
$a->error = 1; // Set $a->error so the other module functions don't execute
|
||||
return;
|
||||
}
|
||||
// Now check how the user responded to the confirmation query
|
||||
if(!$_REQUEST['canceled']) {
|
||||
q("insert into gcign ( uid, gcid ) values ( %d, %d ) ",
|
||||
intval(local_user()),
|
||||
intval($_GET['ignore'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -56,6 +84,7 @@ function suggest_content(&$a) {
|
|||
'$name' => $rr['name'],
|
||||
'$photo' => $rr['photo'],
|
||||
'$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'],
|
||||
'$ignid' => $rr['id'],
|
||||
'$conntxt' => t('Connect'),
|
||||
'$connlnk' => $connlnk,
|
||||
'$ignore' => t('Ignore/Hide')
|
||||
|
|
|
@ -588,7 +588,7 @@ class Item extends BaseObject {
|
|||
$qcomment = (($qc) ? explode("\n",$qc) : null);
|
||||
}
|
||||
$comment_box = replace_macros($template,array(
|
||||
'$return_path' => '',
|
||||
'$return_path' => $a->query_string,
|
||||
'$threaded' => $this->is_threaded(),
|
||||
// '$jsreload' => (($conv->get_mode() === 'display') ? $_SESSION['return_url'] : ''),
|
||||
'$jsreload' => '',
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<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="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" />
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<center>
|
||||
<form action="$confirm_url" id="confirm-form" method="$method">
|
||||
|
||||
<span id="confirm-message">$message</span>
|
||||
{{ for $extra_inputs as $input }}
|
||||
<input type="hidden" name="$input.name" value="$input.value" />
|
||||
{{ endfor }}
|
||||
|
||||
<input class="confirm-button" id="confirm-submit-button" type="submit" name="$confirm_name" value="$confirm" />
|
||||
<input class="confirm-button" id="confirm-cancel-button" type="submit" name="canceled" value="$cancel" />
|
||||
|
||||
</form>
|
||||
</center>
|
||||
|
|
@ -11,7 +11,13 @@
|
|||
<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">menu</span>
|
||||
<div class="contact-photo-menu" id="contact-photo-menu-$contact.id">
|
||||
<ul>
|
||||
$contact.photo_menu
|
||||
{{ for $contact.photo_menu as $c }}
|
||||
{{ if $c.2 }}
|
||||
<li><a target="redir" href="$c.1">$c.0</a></li>
|
||||
{{ else }}
|
||||
<li><a href="$c.1">$c.0</a></li>
|
||||
{{ endif }}
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ endif }}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
|
||||
<a href="#" class="icon like" title="$likethis" onclick="dolike($id,'like'); return false"></a>
|
||||
{{ if $nolike }}
|
||||
<a href="#" class="icon dislike" title="$nolike" onclick="dolike($id,'dislike'); return false"></a>
|
||||
{{ endif }}
|
||||
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<h3>$title</h3>
|
||||
<div id="identity-manage-desc">$desc</div>
|
||||
<div id="identity-manage-choose">$choose</div>
|
||||
<div id="identity-selector-wrapper">
|
||||
<form action="manage" method="post" >
|
||||
<select name="identity" size="4" onchange="this.form.submit();" >
|
||||
|
||||
{{ for $identities as $id }}
|
||||
<option $id.selected value="$id.uid">$id.username ($id.nickname)</option>
|
||||
{{ endfor }}
|
||||
|
||||
</select>
|
||||
<div id="identity-select-break"></div>
|
||||
|
||||
{#<!--<input id="identity-submit" type="submit" name="submit" value="$submit" />-->#}
|
||||
</div></form>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
{#
|
||||
# LOGIN/REGISTER
|
||||
#}
|
||||
<center>
|
||||
{# Use nested if's since the Friendica template engine doesn't support AND or OR in if statements #}
|
||||
{{ if $nav.login }}
|
||||
<div id="navigation-login-wrapper" >
|
||||
{{ else }}
|
||||
{{ if $nav.register }}
|
||||
<div id="navigation-login-wrapper" >
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
{{ if $nav.login }}<a id="navigation-login-link" class="navigation-link $nav.login.2" href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a><br/> {{ endif }}
|
||||
{{ if $nav.register }}<a id="navigation-register-link" class="navigation-link $nav.register.2 $sel.register" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a><br/>{{ endif }}
|
||||
{{ if $nav.login }}
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ if $nav.register }}
|
||||
</div>
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
|
||||
{#
|
||||
# NETWORK/HOME
|
||||
#}
|
||||
{{ if $nav.network }}
|
||||
<div id="navigation-network-wrapper" >
|
||||
{{ else }}
|
||||
{{ if $nav.home }}
|
||||
<div id="navigation-network-wrapper" >
|
||||
{{ else }}
|
||||
{{ if $nav.community }}
|
||||
<div id="navigation-network-wrapper" >
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
{{ if $nav.network }}
|
||||
<a id="navigation-network-link" class="navigation-link navigation-commlink $nav.network.2 $sel.network" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a><br/>
|
||||
<a class="navigation-link navigation-commlink" href="$nav.net_reset.0" title="$nav.net_reset.3">$nav.net_reset.1</a><br/>
|
||||
{{ endif }}
|
||||
{{ if $nav.home }}
|
||||
<a id="navigation-home-link" class="navigation-link navigation-commlink $nav.home.2 $sel.home" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a><br/>
|
||||
{{ endif }}
|
||||
{{ if $nav.community }}
|
||||
<a id="navigation-community-link" class="navigation-link navigation-commlink $nav.community.2 $sel.community" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a><br/>
|
||||
{{ endif }}
|
||||
{{ if $nav.network }}
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ if $nav.home }}
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ if $nav.community }}
|
||||
</div>
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
{{ endif }}
|
||||
|
||||
{#
|
||||
# PRIVATE MESSAGES
|
||||
#}
|
||||
{{ if $nav.messages }}
|
||||
<div id="navigation-messages-wrapper">
|
||||
<a id="navigation-messages-link" class="navigation-link navigation-commlink $nav.messages.2 $sel.messages" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a><br/>
|
||||
</div>
|
||||
{{ endif }}
|
||||
|
||||
|
||||
{#
|
||||
# CONTACTS
|
||||
#}
|
||||
<div id="navigation-contacts-wrapper">
|
||||
{{ if $nav.contacts }}<a id="navigation-contacts-link" class="navigation-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a><br/>{{ endif }}
|
||||
<a id="navigation-directory-link" class="navigation-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a><br/>
|
||||
{{ if $nav.introductions }}
|
||||
<a id="navigation-notify-link" class="navigation-link navigation-commlink $nav.introductions.2 $sel.introductions" href="$nav.introductions.0" title="$nav.introductions.3" >$nav.introductions.1</a><br/>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
{#
|
||||
# NOTIFICATIONS
|
||||
#}
|
||||
{{ if $nav.notifications }}
|
||||
<div id="navigation-notifications-wrapper">
|
||||
<a id="navigation-notifications-link" class="navigation-link navigation-commlink" href="$nav.notifications.0" rel="#navigation-notifications-menu" title="$nav.notifications.1">$nav.notifications.1</a><br/>
|
||||
</div>
|
||||
{{ endif }}
|
||||
|
||||
{#
|
||||
# MISCELLANEOUS
|
||||
#}
|
||||
<div id="navigation-misc-wrapper">
|
||||
{{ if $nav.settings }}<a id="navigation-settings-link" class="navigation-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a><br/>{{ endif }}
|
||||
{{ if $nav.manage }}<a id="navigation-manage-link" class="navigation-link navigation-commlink $nav.manage.2 $sel.manage" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a><br/>{{ endif }}
|
||||
{{ if $nav.profiles }}<a id="navigation-profiles-link" class="navigation-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a><br/>{{ endif }}
|
||||
{{ if $nav.admin }}<a id="navigation-admin-link" class="navigation-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a><br/>{{ endif }}
|
||||
<a id="navigation-search-link" class="navigation-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a><br/>
|
||||
{{ if $nav.apps }}<a id="navigation-apps-link" class="navigation-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a><br/>{{ endif }}
|
||||
{{ if $nav.help }} <a id="navigation-help-link" class="navigation-link $nav.help.2" target="friendica-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a><br/>{{ endif }}
|
||||
</div>
|
||||
|
||||
{{ if $nav.logout }}<a id="navigation-logout-link" class="navigation-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a><br/>{{ endif }}
|
||||
</center>
|
|
@ -0,0 +1 @@
|
|||
<input id="photos-upload-choose" type="file" name="userfile" />
|
|
@ -0,0 +1,3 @@
|
|||
<div class="photos-upload-submit-wrapper" >
|
||||
<input type="submit" name="submit" value="$submit" id="photos-upload-submit" />
|
||||
</div>
|
|
@ -39,9 +39,10 @@
|
|||
|
||||
<div id="photos-upload-spacer"></div>
|
||||
|
||||
$uploader
|
||||
$alt_uploader
|
||||
|
||||
$default
|
||||
$default_upload_box
|
||||
$default_upload_submit
|
||||
|
||||
<div class="photos-upload-end" ></div>
|
||||
</form>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="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" />
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<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="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" />
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
Photo album display?
|
||||
|
||||
- The "lock" icon for private items
|
||||
- change it to black?
|
||||
- when clicked, the popup window displays poorly
|
||||
|
||||
- Edit photo page: bottom buttons are off-center in Dolphin Mini
|
||||
|
||||
- BB code buttons for status updates
|
||||
|
||||
- Get "add contact" back on contacts page
|
||||
|
||||
- Allow creating a new private message
|
||||
|
||||
- Admin: access to more pages than summary?
|
||||
|
||||
- Find a way to show embedded videos at the normal size for tablets that can handle it
|
||||
|
||||
- Need to find a way to deal with freakin annoying elements that don't respect screen width limits.
|
||||
Specifically, need to find a way to keep them from forcing a horizontal scroll bar to show up and
|
||||
making the rest of the body text overflow the item's borders that is screen-width sensitive (it's
|
||||
annoying to have a 300px truncated code block on a 1024px wide screen). At least the following cause problems:
|
||||
- code blocks
|
||||
- blockquote blocks
|
||||
- #reallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongtags
|
||||
|
||||
- Needs to be faster!
|
||||
- Reduce DOM elements (~2400 for 10 items, ~8400 for 40 items)
|
||||
|
||||
|
||||
- Sometimes, when "Permission denied", wrong login page is shown
|
|
@ -0,0 +1,29 @@
|
|||
<a name="acl-wrapper-target"></a>
|
||||
<div id="acl-wrapper">
|
||||
<div id="acl-public-switch">
|
||||
<a href="$return_path#acl-wrapper-target" {{ if $is_private == 1 }}class="acl-public-switch-selected"{{ endif }} >$private</a>
|
||||
<a href="$return_path$public_link#acl-wrapper-target" {{ if $is_private == 0 }}class="acl-public-switch-selected"{{ endif }} >$public</a>
|
||||
</div>
|
||||
<div id="acl-list">
|
||||
<div id="acl-list-content">
|
||||
<div id="acl-html-groups" class="acl-html-select-wrapper">
|
||||
$group_perms<br />
|
||||
<select name="group_allow[]" multiple {{ if $is_private == 0 }}disabled{{ endif }} id="acl-html-group-select" class="acl-html-select" size=7>
|
||||
{{ for $acl_data.groups as $group }}
|
||||
<option value="$group.id" {{ if $is_private == 1 }}{{ if $group.selected }}selected{{ endif }}{{ endif }}>$group.name</option>
|
||||
{{ endfor }}
|
||||
</select>
|
||||
</div>
|
||||
<div id="acl-html-contacts" class="acl-html-select-wrapper">
|
||||
$contact_perms<br />
|
||||
<select name="contact_allow[]" multiple {{ if $is_private == 0 }}disabled{{ endif }} id="acl-html-contact-select" class="acl-html-select" size=7>
|
||||
{{ for $acl_data.contacts as $contact }}
|
||||
<option value="$contact.id" {{ if $is_private == 1 }}{{ if $contact.selected }}selected{{ endif }}{{ endif }}>$contact.name ($contact.networkName)</option>
|
||||
{{ endfor }}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span id="acl-fields"></span>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<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 data-src="{0}"><p>{1}</p>
|
||||
<a href="#" class='acl-button-show'>$show</a>
|
||||
<a href="#" class='acl-button-hide'>$hide</a>
|
||||
</div>
|
||||
|
||||
{#<!--<script>
|
||||
window.allowCID = $allowcid;
|
||||
window.allowGID = $allowgid;
|
||||
window.denyCID = $denycid;
|
||||
window.denyGID = $denygid;
|
||||
window.aclInit = "true";
|
||||
</script>-->#}
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
<h4><a href="$admurl">$admtxt</a></h4>
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin button $admin.site.2'><a href='$admin.site.0'>$admin.site.1</a></li>
|
||||
<li class='admin 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 button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
|
||||
<li class='admin button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
|
||||
<li class='admin 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 button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li>
|
||||
<li class='admin button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
|
||||
</ul>
|
||||
{{ endif }}
|
||||
|
||||
|
||||
{{ if $admin.plugins_admin }}<h4>$plugadmtxt</h4>{{ endif }}
|
||||
<ul class='admin linklist'>
|
||||
{{ for $admin.plugins_admin as $l }}
|
||||
<li class='admin button $l.2'><a href='$l.0'>$l.1</a></li>
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>$logtxt</h4>
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin button $admin.logs.2'><a href='$admin.logs.0'>$admin.logs.1</a></li>
|
||||
</ul>
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
|
||||
<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'>
|
||||
|
||||
{{ inc field_input.tpl with $field=$sitename }}{{ endinc }}
|
||||
{{ inc field_textarea.tpl with $field=$banner }}{{ endinc }}
|
||||
{{ inc field_select.tpl with $field=$language }}{{ endinc }}
|
||||
{{ inc field_select.tpl with $field=$theme }}{{ endinc }}
|
||||
{{ inc field_select.tpl with $field=$theme_mobile }}{{ endinc }}
|
||||
{{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||
|
||||
<h3>$registration</h3>
|
||||
{{ inc field_input.tpl with $field=$register_text }}{{ endinc }}
|
||||
{{ inc field_select.tpl with $field=$register_policy }}{{ endinc }}
|
||||
|
||||
{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||
|
||||
<h3>$upload</h3>
|
||||
{{ inc field_input.tpl with $field=$maximagesize }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$maximagelength }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$jpegimagequality }}{{ endinc }}
|
||||
|
||||
<h3>$corporate</h3>
|
||||
{{ inc field_input.tpl with $field=$allowed_sites }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$allowed_email }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$block_public }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$ostatus_disabled }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$global_directory }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||
|
||||
<h3>$advanced</h3>
|
||||
{{ inc field_checkbox.tpl with $field=$no_utf }}{{ endinc }}
|
||||
{{ inc field_checkbox.tpl with $field=$verifyssl }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$proxy }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$timeout }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$poll_interval }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$maxloadavg }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||
|
||||
</form>
|
||||
</div>
|
|
@ -0,0 +1,98 @@
|
|||
<script>
|
||||
function confirm_delete(uname){
|
||||
return confirm( "$confirm_delete".format(uname));
|
||||
}
|
||||
function confirm_delete_multi(){
|
||||
return confirm("$confirm_delete_multi");
|
||||
}
|
||||
{#/*function selectall(cls){
|
||||
$j("."+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>
|
||||
{{ for $th_pending as $th }}<th>$th</th>{{ endfor }}
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ for $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='tool like'></span></a>
|
||||
<a href="$baseurl/regmod/deny/$u.hash" title='$deny'><span class='tool dislike'></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
{{ endfor }}
|
||||
</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>
|
||||
{{ endif }}
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>$h_users</h3>
|
||||
{{ if $users }}
|
||||
<table id='users'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
{{ for $th_users as $th }}<th>$th</th>{{ endfor }}
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ for $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 {{ if $u.is_admin }}($siteadmin){{ endif }}</td>
|
||||
<td class="checkbox">
|
||||
{{ if $u.is_admin }}
|
||||
|
||||
{{ else }}
|
||||
<input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
|
||||
{{ endif }}
|
||||
<td class="tools">
|
||||
{{ if $u.is_admin }}
|
||||
|
||||
{{ else }}
|
||||
<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>
|
||||
<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>
|
||||
{{ endif }}
|
||||
</td>
|
||||
</tr>
|
||||
{{ endfor }}
|
||||
</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?!?
|
||||
{{ endif }}
|
||||
</form>
|
||||
</div>
|
|
@ -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" >
|
||||
<input id="photo-album-edit-form-confirm" type="hidden" name="confirm" value="1" />
|
||||
|
||||
<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(function(){remove('photo-album-edit-form-confirm');});" />
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div id="photo-album-edit-end" ></div>
|
After Width: | Height: | Size: 342 B |
|
@ -0,0 +1,12 @@
|
|||
{#<!--<div id="categories-sidebar" class="widget">
|
||||
<h3>$title</h3>
|
||||
<div id="nets-desc">$desc</div>
|
||||
|
||||
<ul class="categories-ul">
|
||||
<li class="tool"><a href="$base" class="categories-link categories-all{{ if $sel_all }} categories-selected{{ endif }}">$all</a></li>
|
||||
{{ for $terms as $term }}
|
||||
<li class="tool"><a href="$base?f=&category=$term.name" class="categories-link{{ if $term.selected }} categories-selected{{ endif }}">$term.name</a></li>
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
|
||||
</div>-->#}
|
|
@ -0,0 +1,79 @@
|
|||
{#<!-- <script>
|
||||
$(document).ready( function () {
|
||||
$(document).mouseup(function(e) {
|
||||
var container = $("#comment-edit-wrapper-$id");
|
||||
if( container.has(e.target).length === 0) {
|
||||
commentClose(document.getElementById('comment-edit-text-$id'),$id);
|
||||
cmtBbClose($id);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>-->#}
|
||||
|
||||
<div class="comment-wwedit-wrapper $indent" id="comment-edit-wrapper-$id" style="display: block;" >
|
||||
<a name="comment-wwedit-wrapper-pos"></a>
|
||||
<form class="comment-edit-form $indent" id="comment-edit-form-$id" action="item" method="post" >
|
||||
{#<!-- <span id="hide-commentbox-$id" class="hide-commentbox fakelink" onclick="showHideCommentBox($id);">$comment</span>
|
||||
<form class="comment-edit-form" style="display: none;" 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="source" value="$sourceapp" />
|
||||
<input type="hidden" name="profile_uid" value="$profile_uid" />
|
||||
<input type="hidden" name="parent" value="$parent" />
|
||||
<input type="hidden" name="return" value="$return_path#comment-wwedit-wrapper-pos" />
|
||||
<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 comment-edit-photo-link" id="comment-edit-photo-$id" 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($id);" onBlur="commentClose(this,$id);cmtBbClose($id);" >$comment</textarea>-->#}
|
||||
<textarea id="comment-edit-text-$id" class="comment-edit-text-full" name="body" ></textarea>
|
||||
{#<!--{{ if $qcomment }}
|
||||
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
|
||||
<option value=""></option>
|
||||
{{ for $qcomment as $qc }}
|
||||
<option value="$qc">$qc</option>
|
||||
{{ endfor }}
|
||||
</select>
|
||||
{{ endif }}-->#}
|
||||
|
||||
<div class="comment-edit-text-end"></div>
|
||||
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" >
|
||||
<input type="submit" 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="preview-link 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>
|
|
@ -0,0 +1,6 @@
|
|||
<ul class="tabs">
|
||||
{{ for $tabs as $tab }}
|
||||
<li id="$tab.id"><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
|
||||
{{ endfor }}
|
||||
<div id="tabs-end"></div>
|
||||
</ul>
|
|
@ -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'>
|
||||
{{ for $micropro as $m }}
|
||||
$m
|
||||
{{ endfor }}
|
||||
</div>
|
||||
{{ endif }}
|
||||
</div>
|
||||
<div class="clear"></div>-->#}
|
|
@ -0,0 +1,93 @@
|
|||
|
||||
<h2>$header</h2>
|
||||
|
||||
<div id="contact-edit-wrapper" >
|
||||
|
||||
$tab_str
|
||||
|
||||
<div id="contact-edit-drop-link-wrapper" >
|
||||
<a href="contacts/$contact_id/drop?confirm=1" class="icon drophide" id="contact-edit-drop-link" onclick="id=this.id;return confirmDelete(function(){changeHref(id, 'contacts/$contact_id/drop')});" title="$delete" {#onmouseover="imgbright(this);" onmouseout="imgdull(this);"#}></a>
|
||||
</div>
|
||||
|
||||
<div id="contact-edit-drop-link-end"></div>
|
||||
|
||||
<div class="vcard">
|
||||
<div class="fn">$name</div>
|
||||
<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="$photo" alt="$name" /></div>
|
||||
</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>
|
||||
{{ endif }}
|
||||
{{ if $insecure }}
|
||||
<li><div id="insecure-message">$insecure</div></li>
|
||||
{{ endif }}
|
||||
{{ if $blocked }}
|
||||
<li><div id="block-message">$blocked</div></li>
|
||||
{{ endif }}
|
||||
{{ if $ignored }}
|
||||
<li><div id="ignore-message">$ignored</div></li>
|
||||
{{ endif }}
|
||||
{{ if $archived }}
|
||||
<li><div id="archive-message">$archived</div></li>
|
||||
{{ endif }}
|
||||
|
||||
<li> </li>
|
||||
|
||||
{{ if $common_text }}
|
||||
<li><div id="contact-edit-common"><a href="$common_link">$common_text</a></div></li>
|
||||
{{ endif }}
|
||||
{{ if $all_friends }}
|
||||
<li><div id="contact-edit-allfriends"><a href="allfriends/$contact_id">$all_friends</a></div></li>
|
||||
{{ endif }}
|
||||
|
||||
|
||||
<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>
|
||||
{{ endif }}
|
||||
|
||||
</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">
|
||||
|
||||
{{ 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 $poll_interval</span> <span id="contact-edit-update-now" class="button"><a id="update_now_link" href="contacts/$contact_id/update" >$udnow</a></span>
|
||||
</div>
|
||||
{{ endif }}
|
||||
<div id="contact-edit-end" ></div>
|
||||
|
||||
{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
|
||||
|
||||
<div id="contact-edit-info-wrapper">
|
||||
<h4>$lbl_info1</h4>
|
||||
<textarea id="contact-edit-info" rows="8"{# cols="35"#} 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>
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
<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);"
|
||||
onmouseout="t$contact.id=setTimeout('closeMenu(\'contact-photo-menu-$contact.id\');',200)"#} >
|
||||
|
||||
{#<!-- <a href="$contact.url" title="$contact.img_hover" /><img src="$contact.thumb" $contact.sparkle alt="$contact.name" /></a>-->#}
|
||||
{#<!--<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">-->#}
|
||||
<a href="$contact.photo_menu.edit.1" title="$contact.photo_menu.edit.0">
|
||||
<img src="$contact.thumb" $contact.sparkle alt="$contact.name" />
|
||||
</a>
|
||||
{#<!--</span>-->#}
|
||||
|
||||
{#<!-- {{ if $contact.photo_menu }}
|
||||
<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">menu</span>
|
||||
<div class="contact-photo-menu" id="contact-photo-menu-$contact.id">
|
||||
<ul>
|
||||
{{ for $contact.photo_menu as $c }}
|
||||
{{ if $c.2 }}
|
||||
<li><a target="redir" href="$c.1">$c.0</a></li>
|
||||
{{ else }}
|
||||
<li><a href="$c.1">$c.0</a></li>
|
||||
{{ endif }}
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ endif }}-->#}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="contact-entry-photo-end" ></div>
|
||||
<div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div><br />
|
||||
{{ if $contact.alt_text }}<div class="contact-entry-details" id="contact-entry-rel-$contact.id" >$contact.alt_text</div>{{ endif }}
|
||||
<div class="contact-entry-network" id="contact-entry-network-$contact.id" >$contact.network</div>
|
||||
|
||||
<div class="contact-entry-end" ></div>
|
||||
</div>
|
|
@ -0,0 +1,4 @@
|
|||
{#<!--
|
||||
<script src="$baseurl/library/jquery_ac/friendica.complete.min.js" ></script>
|
||||
|
||||
-->#}
|
|
@ -0,0 +1,5 @@
|
|||
{#<!--
|
||||
<script>
|
||||
window.autocompleteType = 'contacts-head';
|
||||
</script>
|
||||
-->#}
|
|
@ -0,0 +1,28 @@
|
|||
<h1>$header{{ if $total }} ($total){{ endif }}</h1>
|
||||
|
||||
{{ if $finding }}<h4>$finding</h4>{{ endif }}
|
||||
|
||||
<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
|
||||
|
||||
|
||||
<div id="contacts-display-wrapper">
|
||||
{{ for $contacts as $contact }}
|
||||
{{ inc contact_template.tpl }}{{ endinc }}
|
||||
{{ endfor }}
|
||||
</div>
|
||||
<div id="contact-edit-end"></div>
|
||||
|
||||
$paginate
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
$follow_widget
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
$live_update
|
||||
|
||||
{{ for $threads as $thread }}
|
||||
<div id="tread-wrapper-$thread.id" class="tread-wrapper">
|
||||
{{ for $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;">
|
||||
{{endif}}
|
||||
{{if $item.comment_lastcollapsed}}</div>{{endif}}
|
||||
|
||||
{{ inc $item.template }}{{ endinc }}
|
||||
|
||||
|
||||
{{ endfor }}
|
||||
</div>
|
||||
{{ endfor }}
|
||||
|
||||
<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>
|
||||
{{ endif }}-->#}
|
|
@ -0,0 +1,27 @@
|
|||
<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>
|
||||
|
||||
<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="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>
|
|
@ -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>
|
||||
<script type="text/javascript" language="javascript">initCrop();</script>-->#}
|
|
@ -0,0 +1 @@
|
|||
<link rel="stylesheet" href="library/cropper/cropper.css" type="text/css" />
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html >
|
||||
<html>
|
||||
<head>
|
||||
<title><?php if(x($page,'title')) echo $page['title'] ?></title>
|
||||
<script>var baseurl="<?php echo $a->get_baseurl() ?>";</script>
|
||||
<?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
|
||||
</head>
|
||||
<body <?php if($a->module === 'home') echo 'onLoad="setTimeout(\'homeRedirect()\', 1500)"'?>>
|
||||
<?php if(x($page,'nav')) echo $page['nav']; ?>
|
||||
|
||||
<?php if( $a->module === 'home' ) { ?>
|
||||
<center>
|
||||
<div class="login-button">
|
||||
<a href="login" class="login-button-link"><img class="login-button-image" src="images/friendica-1600.png" title="Click to log in"></a>
|
||||
</div>
|
||||
</center>
|
||||
|
||||
<?php } elseif ( $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
|
||||
?>
|
||||
<div class='section-wrapper'>
|
||||
<section><?php if(x($page,'content')) echo $page['content']; ?>
|
||||
</section>
|
||||
</div>
|
||||
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
|
||||
|
||||
<?php } else { ?>
|
||||
<div class='main-container'>
|
||||
<!-- <div class='main-content-container'>-->
|
||||
<div class='section-wrapper'>
|
||||
<?php if( ($a->module === 'settings' || $a->module === 'message' || $a->module === 'profile') && x($page,'aside')) echo $page['aside']; ?>
|
||||
<section><?php if(x($page,'content')) echo $page['content']; ?>
|
||||
<div id="page-footer"></div>
|
||||
</section>
|
||||
</div>
|
||||
<right_aside><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></right_aside>
|
||||
<?php if( ($a->module === 'contacts') && x($page,'aside')) echo $page['aside']; ?>
|
||||
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if(x($page,'end')) echo $page['end']; ?>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{#<!--<script>
|
||||
window.autoCompleteType = 'display-head';
|
||||
</script>
|
||||
-->#}
|
After Width: | Height: | Size: 6.2 KiB |
|
@ -0,0 +1,24 @@
|
|||
<!--[if IE]>
|
||||
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
{#<!--<script type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce.js" ></script>
|
||||
<script type="text/javascript">
|
||||
tinyMCE.init({ mode : "none"});
|
||||
</script>-->#}
|
||||
{#<!--<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
|
||||
<script type="text/javascript">var $j = jQuery.noConflict();</script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/jquery.divgrow-1.3.1.f1.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/fk.autocomplete.js" ></script>-->#}
|
||||
{#<!--<script type="text/javascript" src="$baseurl/library/fancybox/jquery.fancybox-1.3.4.pack.js"></script>-->#}
|
||||
{#<!--<script type="text/javascript" src="$baseurl/library/tiptip/jquery.tipTip.minified.js"></script>-->#}
|
||||
{#<!--<script type="text/javascript" src="$baseurl/library/jgrowl/jquery.jgrowl_minimized.js"></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/acl.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/js/webtoolkit.base64.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/main.js" ></script>-->#}
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/theme.js"></script>
|
||||
|
||||
<!--<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/jquery.package.js" ></script>
|
||||
<script type="text/javascript">var $j = jQuery.noConflict();</script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/decaf-mobile/js/decaf-mobile.package.js" ></script>-->
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{#<!--<script language="javascript" type="text/javascript"
|
||||
src="$baseurl/library/fullcalendar/fullcalendar.min.js"></script>
|
||||
|
||||
-->#}
|
|
@ -0,0 +1,6 @@
|
|||
<link rel='stylesheet' type='text/css' href='$baseurl/library/fullcalendar/fullcalendar.css' />
|
||||
{#<!--
|
||||
<script language="javascript" type="text/javascript">
|
||||
window.aclType = 'event_head';
|
||||
</script>
|
||||
-->#}
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
<div class='field checkbox' id='div_id_$field.0'>
|
||||
<label id='label_id_$field.0' for='id_$field.0'>$field.1</label>
|
||||
<input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="checked"{{ endif }}><br />
|
||||
<span class='field_help' id='help_id_$field.0'>$field.3</span>
|
||||
</div>
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
<div class='field input' id='wrapper_$field.0'>
|
||||
<label for='id_$field.0'>$field.1</label><br />
|
||||
<input name='$field.0' id='id_$field.0' value="$field.2">
|
||||
<span class='field_help'>$field.3</span>
|
||||
</div>
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
<div class='field input openid' id='wrapper_$field.0'>
|
||||
<label for='id_$field.0'>$field.1</label><br />
|
||||
<input name='$field.0' id='id_$field.0' value="$field.2">
|
||||
<span class='field_help'>$field.3</span>
|
||||
</div>
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
<div class='field password' id='wrapper_$field.0'>
|
||||
<label for='id_$field.0'>$field.1</label><br />
|
||||
<input type='password' name='$field.0' id='id_$field.0' value="$field.2">
|
||||
<span class='field_help'>$field.3</span>
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
<div class='field select'>
|
||||
<label for='id_$field.0'>$field.1</label>
|
||||
<select name='$field.0' id='id_$field.0' {#{{ if $field.5 }}onchange="previewTheme(this);"{{ endif }}#} >
|
||||
{{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
|
||||
</select>
|
||||
<span class='field_help'>$field.3</span>
|
||||
<div id="theme-preview"></div>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
{#<!-- <div class='field yesno'>
|
||||
<label for='id_$field.0'>$field.1</label>
|
||||
<div class='onoff' id="id_$field.0_onoff">
|
||||
<input type="hidden" name='$field.0' id='id_$field.0' value="$field.2">
|
||||
<a href="#" class='off'>
|
||||
{{ if $field.4 }}$field.4.0{{ else }}OFF{{ endif }}
|
||||
</a>
|
||||
<a href="#" class='on'>
|
||||
{{ if $field.4 }}$field.4.1{{ else }}ON{{ endif }}
|
||||
</a>
|
||||
</div>
|
||||
<span class='field_help'>$field.3</span>
|
||||
</div>-->#}
|
||||
{{ inc field_checkbox.tpl }}{{ endinc }}
|
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 699 B |
|
@ -0,0 +1,12 @@
|
|||
<div class="widget{{ if $class }} $class{{ endif }}">
|
||||
{#<!-- {{if $title}}<h3>$title</h3>{{endif}}-->#}
|
||||
{{if $desc}}<div class="desc">$desc</div>{{endif}}
|
||||
|
||||
<ul class="tabs links-widget">
|
||||
{{ for $items as $item }}
|
||||
<li class="tool"><a href="$item.url" class="tab {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
|
||||
{{ endfor }}
|
||||
<div id="tabs-end"></div>
|
||||
</ul>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,9 @@
|
|||
<div class="group-delete-wrapper button" id="group-delete-wrapper-$id" >
|
||||
<a href="group/drop/$id?t=$form_security_token"
|
||||
onclick="return confirmDelete();"
|
||||
id="group-delete-icon-$id"
|
||||
class="icon drophide group-delete-icon"
|
||||
{#onmouseover="imgbright(this);"
|
||||
onmouseout="imgdull(this);"#} ></a>
|
||||
</div>
|
||||
<div class="group-delete-end"></div>
|
|
@ -0,0 +1,33 @@
|
|||
<div class="widget" id="group-sidebar">
|
||||
<h3>$title</h3>
|
||||
|
||||
<div id="sidebar-group-list">
|
||||
<ul id="sidebar-group-ul">
|
||||
{{ for $groups as $group }}
|
||||
<li class="sidebar-group-li">
|
||||
{{ if $group.cid }}
|
||||
<input type="checkbox"
|
||||
class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
|
||||
{#onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"#}
|
||||
{{ if $group.ismember }}checked="checked"{{ endif }}
|
||||
/>
|
||||
{{ endif }}
|
||||
{{ if $group.edit }}
|
||||
<a class="groupsideedit" href="$group.edit.href" title="$edittext"><span id="edit-sidebar-group-element-$group.id" class="group-edit-icon iconspacer small-pencil"></span></a>
|
||||
{{ endif }}
|
||||
<a id="sidebar-group-element-$group.id" class="sidebar-group-element {{ if $group.selected }}group-selected{{ endif }}" href="$group.href">$group.text</a>
|
||||
</li>
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
</div>
|
||||
<div id="sidebar-new-group">
|
||||
<a href="group/new">$createtext</a>
|
||||
</div>
|
||||
{{ if $ungrouped }}
|
||||
<div id="sidebar-ungrouped">
|
||||
<a href="nogroup">$ungrouped</a>
|
||||
</div>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
|
After Width: | Height: | Size: 383 B |
|
@ -0,0 +1,29 @@
|
|||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
{#<!--<meta content='width=device-width, minimum-scale=1 maximum-scale=1' name='viewport'>
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>-->#}
|
||||
<meta name="viewport" content="width=device-width; initial-scale = 1.0; maximum-scale=1.0; user-scalable=no" />
|
||||
{#<!--<meta name="viewport" content="width=100%; initial-scale=1; maximum-scale=1; minimum-scale=1; user-scalable=no;" />-->#}
|
||||
|
||||
<base href="$baseurl/" />
|
||||
<meta name="generator" content="$generator" />
|
||||
{#<!--<link rel="stylesheet" href="$baseurl/library/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="$baseurl/library/tiptip/tipTip.css" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="$baseurl/library/jgrowl/jquery.jgrowl.css" type="text/css" media="screen" />-->#}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
|
||||
|
||||
<link rel="shortcut icon" href="$baseurl/images/friendica-32.png" />
|
||||
<link rel="search"
|
||||
href="$baseurl/opensearch"
|
||||
type="application/opensearchdescription+xml"
|
||||
title="Search in Friendica" />
|
||||
|
||||
<script>
|
||||
window.delItem = "$delitem";
|
||||
{#/* window.commentEmptyText = "$comment";
|
||||
window.showMore = "$showmore";
|
||||
window.showFewer = "$showfewer";
|
||||
var updateInterval = $update_interval;
|
||||
var localUser = {{ if $local_user }}$local_user{{ else }}false{{ endif }};*/#}
|
||||
</script>
|
After Width: | Height: | Size: 562 B |
After Width: | Height: | Size: 475 B |
After Width: | Height: | Size: 282 B |
After Width: | Height: | Size: 306 B |
After Width: | Height: | Size: 574 B |
After Width: | Height: | Size: 530 B |
After Width: | Height: | Size: 488 B |
After Width: | Height: | Size: 813 B |
After Width: | Height: | Size: 568 B |
After Width: | Height: | Size: 480 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 416 B |
After Width: | Height: | Size: 321 B |
After Width: | Height: | Size: 305 B |
After Width: | Height: | Size: 266 B |
After Width: | Height: | Size: 219 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 398 B |
After Width: | Height: | Size: 520 B |
After Width: | Height: | Size: 1019 B |
After Width: | Height: | Size: 708 B |
After Width: | Height: | Size: 770 B |
After Width: | Height: | Size: 1.1 KiB |