$skip = 0;
foreach($r as &$rr) {
- if($rr['adjust'])
- $md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m');
- else
- $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m');
- $md .= "/#link-".$rr['id'];
+ $title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
- $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
- if(! $title)
- $title = t('[No description]');
+ if(strlen($title) > 35)
+ $title = substr($title,0,32) . '... ';
+
+ $description = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
+ if(! $description)
+ $description = t('[No description]');
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
}
$today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
-
- $rr['link'] = $md;
+
$rr['title'] = $title;
+ $rr['description'] = $desciption;
$rr['date'] = day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '');
$rr['startime'] = $strt;
$rr['today'] = $today;
unset($status["user"]["uid"]);
unset($status["user"]["self"]);
- // 'geo' => array('type' => 'Point',
- // 'coordinates' => array((float) $notice->lat,
- // (float) $notice->lon));
+ if ($item["coord"] != "") {
+ $coords = explode(' ',$item["coord"]);
+ if (count($coords) == 2) {
+ $status["geo"] = array('type' => 'Point',
+ 'coordinates' => array((float) $coords[0],
+ (float) $coords[1]));
+ }
+ }
$ret[] = $status;
};
return t('less than a second ago');
}
+ /*
$time_append = '';
if ($etime >= 86400) {
$time_append = ' ('.$localtime.')';
}
+ */
$a = array( 12 * 30 * 24 * 60 * 60 => array( t('year'), t('years')),
30 * 24 * 60 * 60 => array( t('month'), t('months')),
// translators - e.g. 22 hours ago, 1 minute ago
if(! $format)
$format = t('%1$d %2$s ago');
- return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1])).$time_append;
+ return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1]));
}
}
}}
if($params['type'] == NOTIFY_CONFIRM) {
if ($params['verb'] == ACTIVITY_FRIEND ){ // mutual connection
$subject = sprintf( t('[Friendica:Notify] Connection accepted'));
- $preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
+ $preamble = sprintf( t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
$itemlink,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$itemlink = $params['link'];
} else { // ACTIVITY_FOLLOW
$subject = sprintf( t('[Friendica:Notify] Connection accepted'));
- $preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
+ $preamble = sprintf( t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
$itemlink,
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
// default permissions - anonymous user
- $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
+ $sql_extra = " AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' ";
$r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
// Include answers to status.net posts in pubsub feeds
if($forpubsub) {
- $sql_post_table = "INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent` ";
- $visibility = sprintf("AND (`item`.`parent` = `item`.`id`) OR (`item`.`network` = '%s' AND `thread`.`network`='%s')",
- dbesc(NETWORK_DFRN), dbesc(NETWORK_OSTATUS));
+ $sql_post_table = "INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent`
+ LEFT JOIN `item` AS `thritem` ON `thritem`.`uri`=`item`.`thr-parent` AND `thritem`.`uid`=`item`.`uid`";
+ $visibility = sprintf("AND (`item`.`parent` = `item`.`id`) OR (`item`.`network` = '%s' AND ((`thread`.`network`='%s') OR (`thritem`.`network` = '%s')))",
+ dbesc(NETWORK_DFRN), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_OSTATUS));
$date_field = "`received`";
$sql_order = "`item`.`received` DESC";
} else {
$parent = $items[0];
+ $thr_parent = q("SELECT `network` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
+ dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
+
+ logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
+
// This is IMPORTANT!!!!
// We will only send a "notify owner to relay" or followup message if the referenced post
$target_item['deny_cid'].$target_item['deny_gid']) == 0))
$push_notify = true;
- $thr_parent = q("SELECT `network` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
- dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
-
- // If the thread parent is OStatus then do some magic to distribute the messages.
- // We have not only to look at the parent, since it could be a Friendica thread.
+ // We notify Friendica users in the thread when it is an OStatus thread.
+ // Hopefully this transfers the messages to the other Friendica servers. (Untested)
if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
- logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
$push_notify = true;
- // Send a salmon notification to every person we mentioned in the post
- $arr = explode(',',$target_item['tag']);
- foreach($arr as $x) {
- //logger('Checking tag '.$x, LOGGER_DEBUG);
- $matches = null;
- if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) {
- $probed_contact = probe_url($matches[1]);
- if ($probed_contact["notify"] != "") {
- logger('Notify mentioned user '.$probed_contact["url"].': '.$probed_contact["notify"]);
- $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
- }
- }
- }
-
- // We notify Friendica users in the thread when it is an OStatus thread.
- // Hopefully this transfers the messages to the other Friendica servers. (Untested)
if ($parent["network"] == NETWORK_OSTATUS) {
$r = q("SELECT `author-link` FROM `item` WHERE `parent` = %d AND `author-link` != '%s'",
intval($target_item["parent"]), dbesc($owner['url']));
}
}
}
-/*
- // Check if the recipient isn't in your contact list, try to slap it
- // Not sure if it is working or not.
- $r = q("SELECT `url` FROM `contact` WHERE `id` = %d", $parent['contact-id']);
- if (count($r)) {
-
- $thrparent = q("SELECT `author-link` FROM `item` WHERE `uri` = '%s'", dbesc($target_item["thr-parent"]));
- if (count($thrparent) AND (normalise_link($r[0]["url"]) != normalise_link($thrparent[0]["author-link"]))) {
- $probed_contact = probe_url($thrparent[0]["author-link"]);
- if ($probed_contact["notify"] != "") {
- logger('scrape data for slapper: '.print_r($probed_contact, true));
- $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
- }
- }
- }
-*/
+
if (count($url_recipients))
logger("url_recipients ".print_r($url_recipients,true));
}
$conversant_str = dbesc(implode(', ',$conversants));
}
+ // If the thread parent is OStatus then do some magic to distribute the messages.
+ // We have not only to look at the parent, since it could be a Friendica thread.
+ if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
+
+ // Send a salmon notification to every person we mentioned in the post
+ $arr = explode(',',$target_item['tag']);
+ foreach($arr as $x) {
+ //logger('Checking tag '.$x, LOGGER_DEBUG);
+ $matches = null;
+ if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) {
+ $probed_contact = probe_url($matches[1]);
+ if ($probed_contact["notify"] != "") {
+ logger('Notify mentioned user '.$probed_contact["url"].': '.$probed_contact["notify"]);
+ $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
+ }
+ }
+ }
+ }
+
$r = q("SELECT * FROM `contact` WHERE `id` IN ( $conversant_str ) AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0");
if(count($r))
$recipients_relocate = q("SELECT * FROM contact WHERE uid = %d AND self = 0 AND network = '%s'" , intval($uid), NETWORK_DFRN);
unset($photos);
} else {
+
+ $slap = atom_entry($target_item,'html',null,$owner,false);
+
if($followup) {
foreach($items as $item) { // there is only one item
if(! $item['parent'])
continue;
if($item['id'] == $item_id) {
logger('notifier: followup: item: ' . print_r($item,true), LOGGER_DATA);
- $slap = atom_entry($item,'html',null,$owner,false);
+ //$slap = atom_entry($item,'html',null,$owner,false);
$atom .= atom_entry($item,'text',null,$owner,false);
}
}
// send additional slaps to mentioned remote tags (@foo@example.com)
- if($slap && count($url_recipients) && ($followup || $top_level) && ($public_message || $push_notify) && (! $expire)) {
+ //if($slap && count($url_recipients) && ($followup || $top_level) && ($public_message || $push_notify) && (! $expire)) {
+ if($slap && count($url_recipients) && ($public_message || $push_notify) && (!$expire)) {
if(! get_config('system','dfrn_only')) {
foreach($url_recipients as $url) {
if($url) {
logger("Item was stored with id ".$item_id, LOGGER_DEBUG);
$item["id"] = $item_id;
- if (!isset($item["parent"]) OR ($item["parent"] == 0))
- $item["parent"] = $item_id;
-
if ($mention) {
$u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($item['uid']));
+ $r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($item_id));
notification(array(
'type' => NOTIFY_TAGSELF,
'to_email' => $u[0]["email"],
'uid' => $item["uid"],
'item' => $item,
- 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($item["id"])),
+ 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($item_id)),
'source_name' => $item["author-name"],
'source_link' => $item["author-link"],
'source_photo' => $item["author-avatar"],
'verb' => ACTIVITY_TAG,
'otype' => 'item',
- 'parent' => $item["parent"]
+ 'parent' => $r[0]["parent"]
));
}
}
function ostatus_completion($conversation_url, $uid, $item = array()) {
+ $a = get_app();
+
$item_stored = -1;
$conversation_url = ostatus_convert_href($conversation_url);
// If the thread shouldn't be completed then store the item and go away
if ((intval(get_config('system','ostatus_poll_interval')) == -2) AND (count($item) > 0)) {
+ //$arr["app"] .= " (OStatus-NoCompletion)";
$item_stored = item_store($item, true);
return($item_stored);
}
if (!sizeof($items)) {
if (count($item) > 0) {
+ //$arr["app"] .= " (OStatus-NoConvFetched)";
$item_stored = item_store($item, true);
if ($item_stored) {
$items = array_reverse($items);
+ $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND `self`", intval($uid));
+ $importer = $r[0];
+
foreach ($items as $single_conv) {
// Test - remove before flight
//$tempfile = tempnam(get_temppath(), "conversation");
//file_put_contents($tempfile, json_encode($single_conv));
+ $mention = false;
if (isset($single_conv->object->id))
$single_conv->id = $single_conv->object->id;
}
}
+ $parent_uri = $parent["uri"];
+
+ // "context" only seems to exist on older servers
if (isset($single_conv->context->inReplyTo->id)) {
- $parent_uri = $single_conv->context->inReplyTo->id;
+ $parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
+ intval($uid), dbesc($single_conv->context->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
+ if ($parent_exists)
+ $parent_uri = $single_conv->context->inReplyTo->id;
+ }
+ // This is the current way
+ if (isset($single_conv->object->inReplyTo->id)) {
$parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
- intval($uid), dbesc($parent_uri), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
- if (!$parent_exists) {
- logger("Parent ".$parent_uri." wasn't found here", LOGGER_DEBUG);
- $parent_uri = $parent["uri"];
- }
- } else
- $parent_uri = $parent["uri"];
+ intval($uid), dbesc($single_conv->object->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
+ if ($parent_exists)
+ $parent_uri = $single_conv->object->inReplyTo->id;
+ }
$message_exists = q("SELECT `id`, `parent`, `uri` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
intval($uid), dbesc($single_conv->id),
continue;
}
+ if (is_array($single_conv->to))
+ foreach($single_conv->to AS $to)
+ if ($importer["nurl"] == normalise_link($to->id))
+ $mention = true;
+
$actor = $single_conv->actor->id;
if (isset($single_conv->actor->url))
$actor = $single_conv->actor->url;
else
$arr["app"] = "OStatus";
- $arr["app"] .= " (Conversation)";
+ //$arr["app"] .= " (Conversation)";
$arr["object"] = json_encode($single_conv);
$arr["verb"] = $parent["verb"];
if (isset($item[$field]))
$arr[$field] = $item[$field];
- $arr["app"] .= " (OStatus)";
+ //$arr["app"] .= " (OStatus)";
}
$newitem = item_store($arr);
// Add the conversation entry (but don't fetch the whole conversation)
ostatus_store_conversation($newitem, $conversation_url);
+ if ($mention) {
+ $u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($uid));
+ $r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($newitem));
+
+ notification(array(
+ 'type' => NOTIFY_TAGSELF,
+ 'notify_flags' => $u[0]["notify-flags"],
+ 'language' => $u[0]["language"],
+ 'to_name' => $u[0]["username"],
+ 'to_email' => $u[0]["email"],
+ 'uid' => $uid,
+ 'item' => $arr,
+ 'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($newitem)),
+ 'source_name' => $arr["author-name"],
+ 'source_link' => $arr["author-link"],
+ 'source_photo' => $arr["author-avatar"],
+ 'verb' => ACTIVITY_TAG,
+ 'otype' => 'item',
+ 'parent' => $r[0]["parent"]
+ ));
+ }
+
// If the newly created item is the top item then change the parent settings of the thread
// This shouldn't happen anymore. This is supposed to be absolote.
if ($arr["uri"] == $first_id) {
}
if (($item_stored < 0) AND (count($item) > 0)) {
+ //$arr["app"] .= " (OStatus-NoConvFound)";
$item_stored = item_store($item, true);
if ($item_stored) {
logger("Uri ".$item["uri"]." wasn't found in conversation ".$conversation_url, LOGGER_DEBUG);
setupFieldRichtext();
/* popup menus */
- function close_last_popup_menu() {
- if(last_popup_menu) {
- last_popup_menu.hide();
- last_popup_button.removeClass("selected");
- last_popup_menu = null;
- last_popup_button = null;
- }
- }
+ function close_last_popup_menu() {
+ if(last_popup_menu) {
+ last_popup_menu.hide();
+ last_popup_button.removeClass("selected");
+ last_popup_menu = null;
+ last_popup_button = null;
+ }
+ }
$('a[rel^=#]').click(function(e){
e.preventDefault();
var parent = $(this).parent();
return false;
});
$('html').click(function() {
- close_last_popup_menu();
+ close_last_popup_menu();
});
// fancyboxes
nnm = $("#nav-notifications-menu");
nnm.html(notifications_all + notifications_mark);
//nnm.attr('popup','true');
+
+ var notification_lastitem = parseInt(localStorage.getItem("notification-lastitem"));
+ var notification_id = 0;
eNotif.children("note").each(function(){
e = $(this);
- text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
- html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
+ var text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
+ var seenclass = (e.attr('seen')==1)?"notify-seen":"notify-unseen";
+ var html = notifications_tpl.format(e.attr('href'),
+ e.attr('photo'), // {0}
+ text, // {1}
+ e.attr('date'), // {2}
+ seenclass, // {3}
+ new Date(e.attr('timestamp')*1000) // {4}
+ );
nnm.append(html);
+ });
+ $(eNotif.children("note").get().reverse()).each(function(){
+ e = $(this);
+ notification_id = parseInt(e.attr('timestamp'));
+ if (notification_lastitem!== null && notification_id > notification_lastitem) {
+ if (getNotificationPermission()==="granted") {
+ var notification = new Notification(document.title, {
+ body: e.text().replace('→ ','').format(e.attr('name')),
+ icon: e.attr('photo'),
+ });
+ notification['url'] = e.attr('href');
+ notification.addEventListener("click", function(ev){
+ window.location = ev.target.url;
+ });
+ }
+ }
- if(e.text().search('→') == 0) {
- var notification = new Notification(document.title, {
- body: e.text().replace('→ ',''),
- icon: e.attr('photo')
- });
-
- // TODO (yet unsupported by most browsers):
- // Implement notification.onclick()
-
- // notifyMarkAll();
- }
});
+ notification_lastitem = notification_id;
+ localStorage.setItem("notification-lastitem", notification_lastitem)
$("img[data-src]", nnm).each(function(i, el){
// Add src attribute for images with a data-src attribute
});
}
+
+// notification permission settings in localstorage
+// set by settings page
+function getNotificationPermission() {
+ if (window["Notification"] === undefined) {
+ return null;
+ }
+ if (Notification.permission === 'granted') {
+ var val = localStorage.getItem('notification-permissions');
+ if (val === null) return 'denied';
+ return val;
+ } else {
+ return Notification.permission;
+ }
+}
$nu_nickname = ( x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : '');
$nu_email = ( x($_POST, 'new_user_email') ? $_POST['new_user_email'] : '');
- check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
+ check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/users', 'admin_users');
if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
require_once('include/user.php');
intval($a->pager['itemspage'])
);
- function _setup_users($e){
- $a = get_app();
-
- $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
-
+ $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
+ $_setup_users = function ($e) use ($adminlist){
$accounts = Array(
t('Normal Account'),
t('Soapbox Account'),
$e['lastitem_date'] = relative_date($e['lastitem_date']);
//$e['is_admin'] = ($e['email'] === $a->config['admin_email']);
$e['is_admin'] = in_array($e['email'], $adminlist);
+ $e['is_deletable'] = (intval($e['uid']) != local_user());
$e['deleted'] = ($e['account_removed']?relative_date($e['account_expires_on']):False);
return $e;
- }
- $users = array_map("_setup_users", $users);
+ };
+ $users = array_map($_setup_users, $users);
// Get rid of dashes in key names, Smarty3 can't handle them
}
$a->page['aside'] = '';
- return replace_macros(get_markup_template('confirm.tpl'), array(
+
+ return replace_macros(get_markup_template('contact_drop_confirm.tpl'), array(
+ '$contact' => _contact_detail_for_template($orig_record[0]),
'$method' => 'get',
'$message' => t('Do you really want to delete this contact?'),
'$extra_inputs' => $inputs,
$contacts = array();
if(count($r)) {
-
foreach($r as $rr) {
-
- switch($rr['rel']) {
- case CONTACT_IS_FRIEND:
- $dir_icon = 'images/lrarrow.gif';
- $alt_text = t('Mutual Friendship');
- break;
- case CONTACT_IS_FOLLOWER;
- $dir_icon = 'images/larrow.gif';
- $alt_text = t('is a fan of yours');
- break;
- case CONTACT_IS_SHARING;
- $dir_icon = 'images/rarrow.gif';
- $alt_text = t('you are a fan of');
- break;
- default:
- break;
- }
- if(($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
- $url = "redir/{$rr['id']}";
- $sparkle = ' class="sparkle" ';
- }
- else {
- $url = $rr['url'];
- $sparkle = '';
- }
-
-
- $contacts[] = array(
- 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
- 'edit_hover' => t('Edit contact'),
- 'photo_menu' => contact_photo_menu($rr),
- 'id' => $rr['id'],
- 'alt_text' => $alt_text,
- 'dir_icon' => $dir_icon,
- 'thumb' => proxy_url($rr['thumb']),
- 'name' => $rr['name'],
- 'username' => $rr['name'],
- 'sparkle' => $sparkle,
- 'itemurl' => $rr['url'],
- 'url' => $url,
- 'network' => network_to_name($rr['network']),
- );
+ $contacts[] = _contact_detail_for_template($rr);
}
-
-
-
}
$tpl = get_markup_template("contacts-template.tpl");
return $o;
}
+
+function _contact_detail_for_template($rr){
+ switch($rr['rel']) {
+ case CONTACT_IS_FRIEND:
+ $dir_icon = 'images/lrarrow.gif';
+ $alt_text = t('Mutual Friendship');
+ break;
+ case CONTACT_IS_FOLLOWER;
+ $dir_icon = 'images/larrow.gif';
+ $alt_text = t('is a fan of yours');
+ break;
+ case CONTACT_IS_SHARING;
+ $dir_icon = 'images/rarrow.gif';
+ $alt_text = t('you are a fan of');
+ break;
+ default:
+ break;
+ }
+ if(($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
+ $url = "redir/{$rr['id']}";
+ $sparkle = ' class="sparkle" ';
+ }
+ else {
+ $url = $rr['url'];
+ $sparkle = '';
+ }
+
+
+ return array(
+ 'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
+ 'edit_hover' => t('Edit contact'),
+ 'photo_menu' => contact_photo_menu($rr),
+ 'id' => $rr['id'],
+ 'alt_text' => $alt_text,
+ 'dir_icon' => $dir_icon,
+ 'thumb' => proxy_url($rr['thumb']),
+ 'name' => $rr['name'],
+ 'username' => $rr['name'],
+ 'sparkle' => $sparkle,
+ 'itemurl' => $rr['url'],
+ 'url' => $url,
+ 'network' => network_to_name($rr['network']),
+ );
+
+}
\ No newline at end of file
// connect to db
$db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
- $tpl = get_intltext_template('htconfig.tpl');
+ $tpl = get_markup_template('htconfig.tpl');
$txt = replace_macros($tpl,array(
'$dbhost' => $dbhost,
'$dbuser' => $dbuser,
'$phpath' => $phpath,
'$adminmail' => $adminmail
));
+
$result = file_put_contents('.htconfig.php', $txt);
if(! $result) {
$a->data['txt'] = $txt;
}
-
+
$errors = load_database($db);
+
if($errors)
$a->data['db_failed'] = $errors;
return replace_macros($tpl, array(
'$title' => $install_title,
'$pass' => '',
- '$status' => t('Permission denied.'),
+ '$status' => t('Database already in use.'),
'$text' => '',
));
}
<?php
require_once("include/datetime.php");
require_once('include/bbcode.php');
-
+require_once("mod/proxy.php");
function ping_init(&$a) {
killme();
}
- $firehose = intval(get_pconfig(local_user(),'system','notify_full'));
-
- $z = ping_get_notifications(local_user());
+ $notifs = ping_get_notifications(local_user());
$sysnotify = 0; // we will update this in a moment
$tags = array();
}
-
- function xmlize($href, $name, $url, $photo, $date, $seen, $message){
- require_once("mod/proxy.php");
- $photo = proxy_url($photo);
-
- $message = html_entity_decode($message, ENT_COMPAT | ENT_HTML401, "UTF-8");
- $name = html_entity_decode($name, ENT_COMPAT | ENT_HTML401, "UTF-8");
+ /**
+ * return xml from notification array
+ *
+ * @param array $n Notification array:
+ * 'href' => notification link
+ * 'name' => subject name
+ * 'url' => subject url
+ * 'photo' => subject photo
+ * 'date' => notification date
+ * 'seen' => bool true/false
+ * 'message' => notification message. "{0}" will be replaced by subject name
+ **/
+ function xmlize($n){
+ $n['photo'] = proxy_url($n['photo']);
+
+ $n['message'] = html_entity_decode($n['message'], ENT_COMPAT | ENT_HTML401, "UTF-8");
+ $n['name'] = html_entity_decode($n['name'], ENT_COMPAT | ENT_HTML401, "UTF-8");
// Are the nofications calles from the regular process or via the friendica app?
$regularnotifications = (intval($_GET['uid']) AND intval($_GET['_']));
$a = get_app();
if ($a->is_friendica_app() OR !$regularnotifications)
- $message = str_replace("{0}", $name, $message);
+ $n['message'] = str_replace("{0}", $n['name'], $n['message']);
- $data = array('href' => &$href, 'name' => &$name, 'url'=>&$url, 'photo'=>&$photo, 'date'=>&$date, 'seen'=>&$seen, 'messsage'=>&$message);
- call_hooks('ping_xmlize', $data);
- $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" >%s</note>'."\n";
+ $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
+
+ call_hooks('ping_xmlize', $n);
+ $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" timestamp="%s" >%s</note>'."\n";
return sprintf ( $notsxml,
- xmlify($href), xmlify($name), xmlify($url), xmlify($photo), xmlify($date), xmlify($seen), xmlify($message)
+ xmlify($n['href']), xmlify($n['name']), xmlify($n['url']), xmlify($n['photo']),
+ xmlify(relative_date($n['date'])), xmlify($n['seen']), xmlify(strtotime($local_time)),
+ xmlify($n['message'])
);
}
<birthdays>$birthdays</birthdays>
<birthdays-today>$birthdays_today</birthdays-today>\r\n";
- $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
- if($firehose) {
- echo ' <notif count="'.$tot.'">';
- }
- else {
- if(count($z) && (! $sysnotify)) {
- foreach($z as $zz) {
- if($zz['seen'] == 0)
- $sysnotify ++;
- }
- }
-
- echo ' <notif count="'. ($sysnotify + $intro + $mail + $register) .'">';
-
- if ($intro>0){
- foreach ($intros as $i) {
- echo xmlize($a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), 'notify-unseen', "→ ".t("{0} wants to be your friend"));
- };
- }
- if ($mail>0){
- foreach ($mails as $i) {
- echo xmlize($a->get_baseurl().'/message/'.$i['id'], $i['from-name'], $i['from-url'], $i['from-photo'], relative_date($i['created']), 'notify-unseen',"→ ".t("{0} sent you a message"));
- };
- }
- if ($register>0){
- foreach ($regs as $i) {
- echo xmlize($a->get_baseurl().'/admin/users/', $i['name'], $i['url'], $i['micro'], relative_date($i['created']), 'notify-unseen', "→ ".t("{0} requested registration"));
- };
- }
-
- if(count($z)) {
- foreach($z as $zz) {
- echo xmlize($a->get_baseurl() . '/notify/view/' . $zz['id'], $zz['name'],$zz['url'],$zz['photo'],relative_date($zz['date']), ($zz['seen'] ? 'notify-seen' : 'notify-unseen'), ($zz['seen'] ? '' : '→ ') .strip_tags(bbcode($zz['msg'])));
- }
+ if(count($notifs) && (! $sysnotify)) {
+ foreach($notifs as $zz) {
+ if($zz['seen'] == 0)
+ $sysnotify ++;
}
}
- if($firehose) {
- if ($intro>0){
- foreach ($intros as $i) {
- echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), 'notify-unseen',t("{0} wants to be your friend") );
- };
- }
- if ($mail>0){
- foreach ($mails as $i) {
- echo xmlize( $a->get_baseurl().'/message/'.$i['id'], $i['from-name'], $i['from-url'], $i['from-photo'], relative_date($i['created']), 'notify-unseen',t("{0} sent you a message") );
- };
- }
- if ($register>0){
- foreach ($regs as $i) {
- echo xmlize( $a->get_baseurl().'/admin/users/', $i['name'], $i['url'], $i['micro'], relative_date($i['created']), 'notify-unseen',t("{0} requested registration") );
- };
- }
-
- if (count($comments)){
- foreach ($comments as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} commented %s's post"), $i['pname'] ) );
- };
- }
- if (count($likes)){
- foreach ($likes as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} liked %s's post"), $i['pname'] ) );
- };
+ echo ' <notif count="'. ($sysnotify + $intro + $mail + $register) .'">';
+
+ // merge all notification types in one array
+ if ($intro>0){
+ foreach ($intros as $i) {
+ $n = array(
+ 'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'],
+ 'name' => $i['name'],
+ 'url' => $i['url'],
+ 'photo' => $i['photo'],
+ 'date' => $i['datetime'],
+ 'seen' => false,
+ 'message' => t("{0} wants to be your friend"),
+ );
+ $notifs[] = $n;
}
- if (count($dislikes)){
- foreach ($dislikes as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} disliked %s's post"), $i['pname'] ) );
- };
- }
- if (count($friends)){
- foreach ($friends as $i) {
- echo xmlize($a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'],$i['author-name'],$i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} is now friends with %s"), $i['fname'] ) );
- };
+ }
+
+ if ($mail>0){
+ foreach ($mails as $i) {
+ $n = array(
+ 'href' => $a->get_baseurl().'/message/'.$i['id'],
+ 'name' => $i['from-name'],
+ 'url' => $i['from-url'],
+ 'photo' => $i['from-photo'],
+ 'date' => $i['created'],
+ 'seen' => false,
+ 'message' => t("{0} sent you a message"),
+ );
+ $notifs[] = $n;
}
- if (count($posts)){
- foreach ($posts as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} posted") ) );
- };
+ }
+
+ if ($register>0){
+ foreach ($regs as $i) {
+ $n = array(
+ 'href' => $a->get_baseurl().'/admin/users/',
+ 'name' => $i['name'],
+ 'url' => $i['url'],
+ 'photo' => $i['micro'],
+ 'date' => $i['created'],
+ 'seen' => false,
+ 'message' => t("{0} requested registration"),
+ );
+ $notifs[] = $n;
}
- if (count($tags)){
- foreach ($tags as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',sprintf( t("{0} tagged %s's post with #%s"), $i['pname'], $i['tname'] ) );
- };
+ }
+ // sort notifications by $[]['date']
+ $sort_function = function($a, $b) {
+ $adate = date($a['date']);
+ $bdate = date($b['date']);
+ if ($adate == $bdate) {
+ return 0;
}
+ return ($adate < $bdate) ? 1 : -1;
+ };
+ usort($notifs, $sort_function);
- if (count($cit)){
- foreach ($cit as $i) {
- echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), 'notify-unseen',t("{0} mentioned you in a post") );
- };
+ if(count($notifs)) {
+ foreach($notifs as $n) {
+ echo xmlize($n);
}
}
+
echo " </notif>";
}
echo " <sysmsgs>";
$offset = 0;
$seen = false;
$seensql = "NOT";
- $order = "";
+ $order = "DESC";
$quit = false;
$a = get_app();
$quit = true;
else
$offset += 50;
+
foreach ($r AS $notification) {
if (is_null($notification["visible"]))
if (is_null($notification["deleted"]))
$notification["deleted"] = 0;
- $notification["msg"] = strip_tags(bbcode($notification["msg"]));
+ $notification["message"] = strip_tags(bbcode($notification["msg"]));
$notification["name"] = strip_tags(bbcode($notification["name"]));
// Replace the name with {0} but ensure to make that only once
// The {0} is used later and prints the name in bold.
- $pos = strpos($notification["msg"],$notification['name']);
+ $pos = strpos($notification["message"],$notification['name']);
if ($pos !== false)
- $notification["msg"] = substr_replace($notification["msg"],"{0}",$pos,strlen($notification["name"]));
+ $notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"]));
+ $notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id'];
+
if ($notification["visible"] AND !$notification["spam"] AND
- !$notification["deleted"] AND !is_array($result[$notification["parent"]]))
+ !$notification["deleted"] AND !is_array($result[$notification["parent"]])) {
$result[$notification["parent"]] = $notification;
+ }
}
} while ((count($result) < 50) AND !$quit);
+
return($result);
}
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
- '$desktop_notifications' => t('Activate desktop notifications'),
- '$desktop_notifications_note' => t('Note: This is an experimental feature, as being not supported by each browser'),
- '$desktop_notifications_success_message' => t('You will now receive desktop notifications!'),
+ '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')),
'$email_textonly' => array('email_textonly', t('Text-only notification emails'),
get_pconfig(local_user(),'system','email_textonly'),
$a->strings["Photo:"] = "";
$a->strings["Please visit %s to approve or reject the suggestion."] = "";
$a->strings["[Friendica:Notify] Connection accepted"] = "";
-$a->strings["'%1\$s' has acepted your connection request at %2\$s"] = "";
+$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "";
$a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "";
$a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = "";
$a->strings["Please visit %s if you wish to make any changes to this relationship."] = "";
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Meva Xarxa d'Amics";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
+++ /dev/null
-
-<?php
-
-// Nastavte následující pro Vaši instalaci MySQL
-// Zkopírujte nebo přejmenujte tento soubor na .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// Pokud používáte podadresár z vaší domény, budete zde potřebovat zadat
-// relativní cestu (od kořene vaší domény).
-// Například pokud je URL adresa vaší instance 'http://priklad.cz/adresar/podadresar',
-// nastavte $a->path na 'adresar/podadresar'.
-
-$a->path = '{{$urlpath}}';
-
-// Vyberte platnou defaultní časovou zónu. Pokud si nejste jistí, použijte use "Europe/Prague".
-// Toto nastavení lze změnit i později a používá se pouze pro časové značky anonymních čtenářů.
-
-$default_timezone = '{{$timezone}}';
-
-// Jak se jmenuje Váš web?
-
-$a->config['sitename'] = "Moje síť přátel";
-
-// Nastavení defaultního jazyka webu
-
-$a->config['system']['language'] = 'cs';
-
-// Vaše možnosti jsou REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Ujistěte se, že jste si vytvořili Váš osobníúčet dříve, než nastavíte
-// REGISTER_CLOSED. 'register_text' (pokud je nastaven) se bude zobrazovat jako první text na
-// registrační stránce. REGISTER_APPROVE vyžaduje aby byl nastaven 'admin_email'
-// na e-mailovou adresu již existující registrované osoby, která může autorizovat
-// a/nebo schvalovat/odmítat žádosti o registraci.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximální velikost importované zprávy, 0 je neomezeno
-
-$a->config['max_import_size'] = 200000;
-
-// maximální velikost nahrávaných fotografií
-
-$a->config['system']['maximagesize'] = 800000;
-
-// cesta k PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// URL adresy globálního adresáře.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - také zvaný jako pubsubhubbub URL. Tímto zajistíte doručování veřejných přízpěvků stejně rychle jako těch soukromých
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) je defaultně povolen.
-// Šifrování bude zajištěno pouze pokud je toto nastaveno na true a
-// PHP mcrypt extension jsou nainstalována na obou systémech
-
-$a->config['system']['rino_encrypt'] = true;
-
-// defaultní systémové grafické téma
-
-$a->config['system']['theme'] = 'duepuntozero';
-
-
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
-// By default allow pseudonyms
-
-$a->config['system']['no_regfullname'] = true;
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Mia Rete di Amici";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
span.oembed, h4 {
margin: 0px 0px 0px 0px;
}
+
+/* fields help text */
+.field .field_help {
+ clear: left;
+}
+
+/* notifications unseen */
+.notify-unseen { background-color: #cceeFF; }
\ No newline at end of file
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '$dbhost';
-$db_user = '$dbuser';
-$db_pass = '$dbpass';
-$db_data = '$dbdata';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '$urlpath';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '$timezone';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Mia Rete di Amici";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '$adminmail';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '$phpath';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
+++ /dev/null
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '{{$urlpath}}';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
<td class='lastitem_date'>{{$u.lastitem_date}}</td>
<td class='login_date'>{{$u.page_flags}} {{if $u.is_admin}}({{$siteadmin}}){{/if}} {{if $u.account_expired}}({{$accountexpired}}){{/if}}</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>
- {{/if}}
+ {{if $u.is_deletable}}
+ <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
+ {{else}}
+
+ {{/if}}
<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}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
- <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
- {{/if}}
+ {{if $u.is_deletable}}
+ <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
+ <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
+ {{else}}
+
+ {{/if}}
</td>
</tr>
{{/foreach}}
<center>
<form action="{{$confirm_url}}" id="confirm-form" method="{{$method}}">
- <span id="confirm-message">{{$message}}</span>
+ <h3 id="confirm-message">{{$message}}</h3>
{{foreach $extra_inputs as $input}}
<input type="hidden" name="{{$input.name}}" value="{{$input.value|escape:'html'}}" />
{{/foreach}}
--- /dev/null
+<h1>{{"Drop contact"|t}}</h1>\r
+\r
+{{include file="contact_template.tpl" no_contacts_checkbox=True}}\r
+\r
+{{include file="confirm.tpl"}}\r
+\r
+\r
+<div class="clear"></div>
\ No newline at end of file
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
+ {{if !$no_contacts_checkbox}}
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
+ {{/if}}
{{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>
- {{foreach $contact.photo_menu as $k=>$c}}
- {{if $c.2}}
- <li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
- {{else}}
- <li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
- {{/if}}
- {{/foreach}}
- </ul>
- </div>
+ <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
+ <ul>
+ {{foreach $contact.photo_menu as $k=>$c}}
+ {{if $c.2}}
+ <li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
+ {{else}}
+ <li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
+ {{/if}}
+ {{/foreach}}
+ </ul>
+ </div>
{{/if}}
</div>
</div>
<div class="contact-entry-photo-end" ></div>
- <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
+ <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
<div class="contact-entry-end" ></div>
</div>
<div id="event-wrapper" style="display: none;" ><div id="event-title">{{$event_title}}</div>
<div id="event-title-end"></div>
{{foreach $events as $event}}
-<div class="event-list" id="event-{{$event.id}}"> <a href="events/{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
+<div class="event-list" id="event-{{$event.id}}"> <a class="cboxElement" href="events/?id={{$event.id}}">{{$event.title}}</a> - {{$event.date}} </div>
{{/foreach}}
</div>
{{/if}}
--- /dev/null
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+// If you are using a subdirectory of your domain you will need to put the
+// relative path (from the root of your domain) here.
+// For instance if your URL is 'http://example.com/directory/subdirectory',
+// set path to 'directory/subdirectory'.
+
+$a->path = '{{$urlpath}}';
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['sitename'] = "My Friend Network";
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['register_policy'] = REGISTER_OPEN;
+$a->config['register_text'] = '';
+$a->config['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['php_path'] = '{{$phpath}}';
+
+// Location of global directory submission page.
+
+$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
+$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
+
+// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
+
+$a->config['system']['huburl'] = '[internal]';
+
+// Server-to-server private message encryption (RINO) is allowed by default.
+// Encryption will only be provided if this setting is true and the
+// PHP mcrypt extension is installed on both systems
+
+$a->config['system']['rino_encrypt'] = true;
+
+// default system theme
+
+$a->config['system']['theme'] = 'duepuntozero';
+
+// By default allow pseudonyms
+
+$a->config['system']['no_regfullname'] = true;
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li class="{4}"><a href="{0}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
+ <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>
{{include file="field_intcheckbox.tpl" field=$notify8}}
</div>
+{{include file="field_checkbox.tpl" field=$email_textonly}}
+
+
+<!--
<div class="field">
<button onclick="javascript:Notification.requestPermission(function(perm){if(perm === 'granted')alert('{{$desktop_notifications_success_message}}');});return false;">{{$desktop_notifications}}</button>
<span class="field_help">{{$desktop_notifications_note}}</span>
</div>
-
-{{include file="field_checkbox.tpl" field=$email_textonly}}
+-->
+{{include file="field_yesno.tpl" field=$desktop_notifications}}
+<script>
+(function(){
+ var elm = $("#id_{{$desktop_notifications.0}}_onoff");
+ var ckbox = $("#id_{{$desktop_notifications.0}}");
+
+ if (getNotificationPermission() === 'granted') {
+ ckbox.val(1);
+ elm.find(".off").addClass("hidden");
+ elm.find(".on").removeClass("hidden");
+ }
+ if (getNotificationPermission() === null) {
+ elm.parent(".field.yesno").hide();
+ }
+
+ $("#id_{{$desktop_notifications.0}}_onoff").on("click", function(e){
+
+ if (Notification.permission === 'granted') {
+ localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
+ } else if (Notification.permission === 'denied') {
+ localStorage.setItem('notification-permissions', 'denied');
+
+ ckbox.val(0);
+ elm.find(".on").addClass("hidden");
+ elm.find(".off").removeClass("hidden");
+
+ } else if (Notification.permission === 'default') {
+ Notification.requestPermission(function(choice) {
+ if (choice === 'granted') {
+ localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
+
+ } else {
+ localStorage.setItem('notification-permissions', 'denied');
+ ckbox.val(0);
+ elm.find(".on").addClass("hidden");
+ elm.find(".off").removeClass("hidden");
+ }
+ });
+ }
+
+ //console.log(getNotificationPermission());
+
+
+ })
+})();
+</script>
</div>
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li class="{4}"><a href="{0}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
+ <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>
margin: 0px;
padding: 0px;
/*width: 100%; height: 12px; */
+
z-index: 110;
color: #ffffff;
}
overflow: auto;
height: auto;
/*.contact-block-div { width:60px; height: 60px; }*/
+
}
#contact-block .contact-block-h4 {
float: left;
margin-bottom: 2em;
/*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
.action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
}
.widget h3 {
padding: 0px;
height: 32px;
margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
}
.comment-edit-preview .contact-photo-menu-button {
top: 15px !important;
min-height: 22px;
padding-top: 6px;
/* a { display: block;}*/
+
}
#photo-caption {
display: block;
margin: 0px;
padding: 0px;
/*width: 100%; height: 12px; */
+
z-index: 110;
color: #ffffff;
}
overflow: auto;
height: auto;
/*.contact-block-div { width:60px; height: 60px; }*/
+
}
#contact-block .contact-block-h4 {
float: left;
margin-bottom: 2em;
/*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
.action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
}
.widget h3 {
padding: 0px;
height: 32px;
margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
}
.comment-edit-preview .contact-photo-menu-button {
top: 15px !important;
min-height: 22px;
padding-top: 6px;
/* a { display: block;}*/
+
}
#photo-caption {
display: block;
margin: 0px;
padding: 0px;
/*width: 100%; height: 12px; */
+
z-index: 110;
color: #ffffff;
}
overflow: auto;
height: auto;
/*.contact-block-div { width:60px; height: 60px; }*/
+
}
#contact-block .contact-block-h4 {
float: left;
margin-bottom: 2em;
/*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
.action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
}
.widget h3 {
padding: 0px;
height: 32px;
margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
}
.comment-edit-preview .contact-photo-menu-button {
top: 15px !important;
min-height: 22px;
padding-top: 6px;
/* a { display: block;}*/
+
}
#photo-caption {
display: block;
display: block;
margin-left: 200px;
color: @FieldHelpColor;
-
}
<td class='lastitem_date'>{{$u.lastitem_date}}</td>
<td class='login_date'>{{$u.page_flags}} {{if $u.is_admin}}({{$siteadmin}}){{/if}} {{if $u.account_expired}}({{$accountexpired}}){{/if}}</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>
- {{/if}}
+ {{if $u.is_deletable}}
+ <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
+ {{else}}
+
+ {{/if}}
<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}}{{/if}}'><span class='icon {{if $u.blocked==0}}unlock{{else}}lock{{/if}}'></span></a>
- <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon delete'></span></a>
- {{/if}}
+ {{if $u.is_deletable}}
+ <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon {{if $u.blocked==0}}unlock{{else}}lock{{/if}}'></span></a>
+ <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon delete'></span></a>
+ {{else}}
+
+ {{/if}}
</td>
</tr>
{{/foreach}}
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
+ {{if !$no_contacts_checkbox}}
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
+ {{/if}}
{{if $contact.photo_menu}}
<a href="#" rel="#contact-photo-menu-{{$contact.id}}" class="contact-photo-menu-button icon s16 menu" id="contact-photo-menu-button-{{$contact.id}}">menu</a>
<ul class="contact-photo-menu menu-popup" id="contact-photo-menu-{{$contact.id}}">
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li><a href="{0}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
+ <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
<div style="position: fixed; top: 3px; left: 5px; z-index:9999">{{$langselector}}</div>
.wall-item-container.comment .wall-item-content {
max-width: 585px;
}
+.wall-item-container.thread_level_3 .wall-item-content {
+ max-width: 570px;
+}
+.wall-item-container.thread_level_4 .wall-item-content {
+ max-width: 555px;
+}
+.wall-item-container.thread_level_5 .wall-item-content {
+ max-width: 540px;
+}
+.wall-item-container.thread_level_6 .wall-item-content {
+ max-width: 525px;
+}
+.wall-item-container.thread_level_7 .wall-item-content {
+ max-width: 510px;
+}
+
+.children .wall-item-comment-wrapper textarea {
+ width: 570px;
+}
+.wall-item-container.thread_level_3 .wall-item-comment-wrapper textarea {
+ width: 555px;
+}
+.wall-item-container.thread_level_4 .wall-item-comment-wrapper textarea {
+ width: 540px;
+}
+.wall-item-container.thread_level_5 .wall-item-comment-wrapper textarea {
+ width: 525px;
+}
+.wall-item-container.thread_level_6 .wall-item-comment-wrapper textarea {
+ width: 510px;
+}
+.wall-item-container.thread_level_7 .wall-item-comment-wrapper textarea {
+ width: 495px;
+}
+
+.children .wall-item-bottom .comment-edit-preview {
+ width: 575px;
+}
+.wall-item-container.thread_level_3 .wall-item-bottom .comment-edit-preview {
+ width: 560px;
+}
+.wall-item-container.thread_level_4 .wall-item-bottom .comment-edit-preview {
+ width: 545px;
+}
+.wall-item-container.thread_level_5 .wall-item-bottom .comment-edit-preview {
+ width: 530px;
+}
+.wall-item-container.thread_level_6 .wall-item-bottom .comment-edit-preview {
+ width: 515px;
+}
+.wall-item-container.thread_level_7 .wall-item-bottom .comment-edit-preview {
+ width: 500px;
+}
.wall-item-container.comment .contact-photo {
width: 32px;
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li><a href="{0}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
+ <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
<!--
<div class="icon-flag" style="position: fixed; bottom: 10px; left: 20px; z-index:9;">{{$langselector}}</div>
-->
-{{*
-
-{{if $nav.logout}}<a id="nav-logout-link" class="nav-link {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a> {{/if}}
-{{if $nav.login}}<a id="nav-login-link" class="nav-login-link {{$nav.login.2}}" href="{{$nav.login.0}}" title="{{$nav.login.3}}" >{{$nav.login.1}}</a> {{/if}}
-
-<span id="nav-link-wrapper" >
-
-{{if $nav.register}}<a id="nav-register-link" class="nav-commlink {{$nav.register.2}}" href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a>{{/if}}
-
-<a id="nav-help-link" class="nav-link {{$nav.help.2}}" target="friendica-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" >{{$nav.help.1}}</a>
-
-{{if $nav.apps}}<a id="nav-apps-link" class="nav-link {{$nav.apps.2}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" >{{$nav.apps.1}}</a>{{/if}}
-
-<a id="nav-search-link" class="nav-link {{$nav.search.2}}" href="{{$nav.search.0}}" title="{{$nav.search.3}}" >{{$nav.search.1}}</a>
-<a id="nav-directory-link" class="nav-link {{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" >{{$nav.directory.1}}</a>
-
-{{if $nav.admin}}<a id="nav-admin-link" class="nav-link {{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a>{{/if}}
-
-{{if $nav.notifications}}
-<a id="nav-notify-link" class="nav-commlink {{$nav.notifications.2}}" href="{{$nav.notifications.0}}" title="{{$nav.notifications.3}}" >{{$nav.notifications.1}}</a>
-<span id="notify-update" class="nav-ajax-left"></span>
-{{/if}}
-{{if $nav.messages}}
-<a id="nav-messages-link" class="nav-commlink {{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" >{{$nav.messages.1}}</a>
-<span id="mail-update" class="nav-ajax-left"></span>
-{{/if}}
-
-{{if $nav.manage}}<a id="nav-manage-link" class="nav-commlink {{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a>{{/if}}
-{{if $nav.settings}}<a id="nav-settings-link" class="nav-link {{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a>{{/if}}
-{{if $nav.profiles}}<a id="nav-profiles-link" class="nav-link {{$nav.profiles.2}}" href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}" >{{$nav.profiles.1}}</a>{{/if}}
-
-
-</span>
-<span id="nav-end"></span>
-<span id="banner">{{$banner}}</span>
-*}}