Merge remote-tracking branch 'friendica/master' into mobile
This commit is contained in:
commit
850560519a
|
@ -107,6 +107,11 @@ one shown, substituting for your unique paths and settings:
|
|||
You can generally find the location of PHP by executing "which php". If you
|
||||
have troubles with this section please contact your hosting provider for
|
||||
assistance. Friendika will not work correctly if you cannot perform this step.
|
||||
|
||||
You should also be sure that $a->config['php_path'] is set correctly, it should
|
||||
look like (changing it to the correct PHP location)
|
||||
|
||||
$a->config['php_path'] = '/usr/local/php53/bin/php'
|
||||
|
||||
Alternative: You may be able to use the 'poormancron' plugin to perform this
|
||||
step if you are using a recent Friendika release. 'poormancron' may result in
|
||||
|
|
35
boot.php
35
boot.php
|
@ -9,9 +9,9 @@ require_once('include/nav.php');
|
|||
require_once('include/cache.php');
|
||||
|
||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||
define ( 'FRIENDICA_VERSION', '2.3.1245' );
|
||||
define ( 'FRIENDICA_VERSION', '2.3.1250' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
||||
define ( 'DB_UPDATE_VERSION', 1120 );
|
||||
define ( 'DB_UPDATE_VERSION', 1121 );
|
||||
|
||||
define ( 'EOL', "<br />\r\n" );
|
||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
|
@ -125,14 +125,15 @@ define ( 'ZCURL_TIMEOUT' , (-1));
|
|||
* email notification options
|
||||
*/
|
||||
|
||||
define ( 'NOTIFY_INTRO', 0x0001 );
|
||||
define ( 'NOTIFY_CONFIRM', 0x0002 );
|
||||
define ( 'NOTIFY_WALL', 0x0004 );
|
||||
define ( 'NOTIFY_COMMENT', 0x0008 );
|
||||
define ( 'NOTIFY_MAIL', 0x0010 );
|
||||
define ( 'NOTIFY_SUGGEST', 0x0020 );
|
||||
define ( 'NOTIFY_PROFILE', 0x0040 );
|
||||
|
||||
define ( 'NOTIFY_INTRO', 0x0001 );
|
||||
define ( 'NOTIFY_CONFIRM', 0x0002 );
|
||||
define ( 'NOTIFY_WALL', 0x0004 );
|
||||
define ( 'NOTIFY_COMMENT', 0x0008 );
|
||||
define ( 'NOTIFY_MAIL', 0x0010 );
|
||||
define ( 'NOTIFY_SUGGEST', 0x0020 );
|
||||
define ( 'NOTIFY_PROFILE', 0x0040 );
|
||||
define ( 'NOTIFY_TAGSELF', 0x0080 );
|
||||
define ( 'NOTIFY_TAGSHARE', 0x0100 );
|
||||
|
||||
/**
|
||||
* various namespaces we may need to parse
|
||||
|
@ -818,7 +819,7 @@ function profile_load(&$a, $nickname, $profile = 0) {
|
|||
}
|
||||
|
||||
$r = null;
|
||||
|
||||
|
||||
if($profile) {
|
||||
$profile_int = intval($profile);
|
||||
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
|
||||
|
@ -828,7 +829,7 @@ function profile_load(&$a, $nickname, $profile = 0) {
|
|||
intval($profile_int)
|
||||
);
|
||||
}
|
||||
if(! count($r)) {
|
||||
if((! $r) && (! count($r))) {
|
||||
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
|
||||
left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
|
||||
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
|
||||
|
@ -841,6 +842,16 @@ function profile_load(&$a, $nickname, $profile = 0) {
|
|||
$a->error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
// fetch user tags if this isn't the default profile
|
||||
|
||||
if(! $r[0]['is-default']) {
|
||||
$x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
|
||||
intval($profile_uid)
|
||||
);
|
||||
if($x && count($x))
|
||||
$r[0]['pub_keywords'] = $x[0]['pub_keywords'];
|
||||
}
|
||||
|
||||
$a->profile = $r[0];
|
||||
|
||||
|
|
|
@ -226,6 +226,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
`pubmail` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`moderated` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`visible` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`spam` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`starred` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`bookmark` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`unseen` tinyint(1) NOT NULL DEFAULT '1',
|
||||
|
@ -247,6 +248,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
KEY `received` (`received`),
|
||||
KEY `moderated` (`moderated`),
|
||||
KEY `visible` (`visible`),
|
||||
KEY `spam` (`spam`),
|
||||
KEY `starred` (`starred`),
|
||||
KEY `bookmark` (`bookmark`),
|
||||
KEY `deleted` (`deleted`),
|
||||
|
|
|
@ -11,7 +11,7 @@ function stripcode_br_cb($s) {
|
|||
|
||||
function tryoembed($match){
|
||||
$url = ((count($match)==2)?$match[1]:$match[2]);
|
||||
logger("tryoembed: $url");
|
||||
// logger("tryoembed: $url");
|
||||
|
||||
$o = oembed_fetch_url($url);
|
||||
|
||||
|
@ -24,13 +24,40 @@ function tryoembed($match){
|
|||
|
||||
}
|
||||
|
||||
// [noparse][i]italic[/i][/noparse] turns into
|
||||
// [noparse][ i ]italic[ /i ][/noparse],
|
||||
// to hide them from parser.
|
||||
|
||||
function bb_spacefy($st) {
|
||||
$whole_match = $st[0];
|
||||
$captured = $st[1];
|
||||
$spacefied = preg_replace("/\[(.*?)\]/", "[ $1 ]", $captured);
|
||||
$new_str = str_replace($captured, $spacefied, $whole_match);
|
||||
return $new_str;
|
||||
}
|
||||
|
||||
// The previously spacefied [noparse][ i ]italic[ /i ][/noparse],
|
||||
// now turns back and the [noparse] tags are trimed
|
||||
// returning [i]italic[/i]
|
||||
|
||||
function bb_unspacefy_and_trim($st) {
|
||||
$whole_match = $st[0];
|
||||
$captured = $st[1];
|
||||
$unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured);
|
||||
return $unspacefied;
|
||||
}
|
||||
|
||||
// BBcode 2 HTML was written by WAY2WEB.net
|
||||
// extended to work with Mistpark/Friendica - Mike Macgirvin
|
||||
|
||||
function bbcode($Text,$preserve_nl = false) {
|
||||
|
||||
// Hide all [noparse] contained bbtags spacefying them
|
||||
|
||||
$Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_spacefy',$Text);
|
||||
$Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_spacefy',$Text);
|
||||
$Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
|
||||
|
||||
|
||||
// Extract a single private image which uses data url's since preg has issues with
|
||||
// large data sizes. Stash it away while we do bbcode conversion, and then put it back
|
||||
|
@ -111,25 +138,34 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
$Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism","<span style=\"color: $1;\">$2</span>",$Text);
|
||||
|
||||
// Check for sized text
|
||||
// [size=50] --> font-size: 50px (with the unit).
|
||||
$Text = preg_replace("(\[size=(\d*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1px;\">$2</span>",$Text);
|
||||
$Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])ism","<span style=\"font-size: $1;\">$2</span>",$Text);
|
||||
|
||||
// Check for centered text
|
||||
$Text = preg_replace("(\[center\](.*?)\[\/center\])ism","<div style=\"text-align:center;\">$1</div>",$Text);
|
||||
|
||||
// Check for list text
|
||||
|
||||
if(stristr($Text,'[/list]'))
|
||||
$Text = str_replace("[*]", "<li>", $Text);
|
||||
|
||||
if(stristr($Text,'[/list]'))
|
||||
$Text = str_replace("[*]", "<li>", $Text);
|
||||
$Text = str_replace("[*]", "<li>", $Text);
|
||||
$Text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '<li>$1</li>' ,$Text);
|
||||
|
||||
$Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>'
|
||||
,$Text);
|
||||
$Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '<ul class="listnone" style="list-style-type: none;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=i\](.*?)\[\/list\]/sm",'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=I\](.*?)\[\/list\]/sm", '<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=a\](.*?)\[\/list\]/sm", '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=A\](.*?)\[\/list\]/sm", '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[li\](.*?)\[\/li\]/sm", '<li>$1</li>' ,$Text);
|
||||
$Text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>'
|
||||
,$Text);
|
||||
$Text = preg_replace("/\[list=((?-i)i)\](.*?)\[\/list\]/ism",'<ul class="listlowerroman" style="list-style-type:
|
||||
lower-roman;">$2</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '<ul class="listupperroman" style="list-style-type:
|
||||
upper-roman;">$2</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '<ul class="listloweralpha" style="list-style-type:
|
||||
lower-alpha;">$2</ul>' ,$Text);
|
||||
$Text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '<ul class="listupperalpha" style="list-style-type:
|
||||
upper-alpha;">$2</ul>' ,$Text);
|
||||
|
||||
$Text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '<th>$1</th>' ,$Text);
|
||||
$Text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '<td>$1</td>' ,$Text);
|
||||
$Text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '<tr>$1</tr>' ,$Text);
|
||||
$Text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '<table>$1</table>' ,$Text);
|
||||
|
@ -157,7 +193,15 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
$QuoteLayout = '<blockquote>$1</blockquote>';
|
||||
// Check for [quote] text
|
||||
$Text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism","$QuoteLayout", $Text);
|
||||
|
||||
|
||||
// Check for [quote=Author] text
|
||||
|
||||
$t_wrote = t('$1 wrote:');
|
||||
|
||||
$Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism",
|
||||
"<blockquote><strong>" . $t_wrote . "</strong> $2</blockquote>",
|
||||
$Text);
|
||||
|
||||
// [img=widthxheight]image source[/img]
|
||||
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="height: $2px; width: $1px;" >', $Text);
|
||||
|
||||
|
@ -219,6 +263,13 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
$Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text);
|
||||
}
|
||||
|
||||
// Unhide all [noparse] contained bbtags unspacefying them
|
||||
// and triming the [noparse] tag.
|
||||
|
||||
$Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_unspacefy_and_trim',$Text);
|
||||
$Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_unspacefy_and_trim',$Text);
|
||||
$Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_unspacefy_and_trim',$Text);
|
||||
|
||||
// fix any escaped ampersands that may have been converted into links
|
||||
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
|
||||
if(strlen($saved_image))
|
||||
|
|
|
@ -262,15 +262,10 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
else
|
||||
$profile_avatar = ((strlen($item['author-avatar'])) ? $item['author-avatar'] : $item['thumb']);
|
||||
|
||||
$location = (($item['location']) ? '<a target="map" title="' . $item['location'] . '" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '');
|
||||
$coord = (($item['coord']) ? '<a target="map" title="' . $item['coord'] . '" href="http://maps.google.com/?q=' . urlencode($item['coord']) . '">' . $item['coord'] . '</a>' : '');
|
||||
if($coord) {
|
||||
if($location)
|
||||
$location .= '<br /><span class="smalltext">(' . $coord . ')</span>';
|
||||
else
|
||||
$location = '<span class="smalltext">' . $coord . '</span>';
|
||||
}
|
||||
$locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
|
||||
call_hooks('render_location',$locate);
|
||||
|
||||
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate));
|
||||
|
||||
localize_item($item);
|
||||
if($mode === 'network-new')
|
||||
|
@ -594,16 +589,10 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
$like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : '');
|
||||
$dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : '');
|
||||
|
||||
$location = (($item['location']) ? '<a target="map" title="' . $item['location']
|
||||
. '" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '');
|
||||
$coord = (($item['coord']) ? '<a target="map" title="' . $item['coord']
|
||||
. '" href="http://maps.google.com/?q=' . urlencode($item['coord']) . '">' . $item['coord'] . '</a>' : '');
|
||||
if($coord) {
|
||||
if($location)
|
||||
$location .= '<br /><span class="smalltext">(' . $coord . ')</span>';
|
||||
else
|
||||
$location = '<span class="smalltext">' . $coord . '</span>';
|
||||
}
|
||||
$locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => '');
|
||||
call_hooks('render_location',$locate);
|
||||
|
||||
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate));
|
||||
|
||||
$indent = (($toplevelpost) ? '' : ' comment');
|
||||
|
||||
|
@ -1014,3 +1003,17 @@ function find_thread_parent_index($arr,$x) {
|
|||
return $k;
|
||||
return false;
|
||||
}
|
||||
|
||||
function render_location_google($item) {
|
||||
$location = '';
|
||||
$location = (($item['location']) ? '<a target="map" title="' . $item['location'] . '" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '');
|
||||
$coord = (($item['coord']) ? '<a target="map" title="' . $item['coord'] . '" href="http://maps.google.com/?q=' . urlencode($item['coord']) . '">' . $item['coord'] . '</a>' : '');
|
||||
if($coord) {
|
||||
if($location)
|
||||
$location .= '<br /><span class="smalltext">(' . $coord . ')</span>';
|
||||
else
|
||||
$location = '<span class="smalltext">' . $coord . '</span>';
|
||||
}
|
||||
return $location;
|
||||
}
|
||||
|
||||
|
|
|
@ -260,10 +260,11 @@ function relative_date($posted_date) {
|
|||
);
|
||||
|
||||
foreach ($a as $secs => $str) {
|
||||
$d = $etime / $secs;
|
||||
if ($d >= 1) {
|
||||
$r = round($d);
|
||||
return $r . ' ' . (($r == 1) ? $str[0] : $str[1]) . t(' ago');
|
||||
$d = $etime / $secs;
|
||||
if ($d >= 1) {
|
||||
$r = round($d);
|
||||
// translators - e.g. 22 hours ago, 1 minute ago
|
||||
return sprintf( t('%1$d %2$s ago'),$r, (($r == 1) ? $str[0] : $str[1]));
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
|
|
@ -54,6 +54,24 @@ function notification($params) {
|
|||
$itemlink = $params['link'];
|
||||
}
|
||||
|
||||
if($params['type'] == NOTIFY_TAGSELF) {
|
||||
$preamble = $subject = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
|
||||
|
||||
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
|
||||
$tsitelink = sprintf( $sitelink, $siteurl );
|
||||
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
|
||||
$itemlink = $params['link'];
|
||||
}
|
||||
|
||||
if($params['type'] == NOTIFY_TAGSHARE) {
|
||||
$preamble = $subject = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
|
||||
|
||||
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
|
||||
$tsitelink = sprintf( $sitelink, $siteurl );
|
||||
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
|
||||
$itemlink = $params['link'];
|
||||
}
|
||||
|
||||
if($params['type'] == NOTIFY_INTRO) {
|
||||
$subject = sprintf( t('Introduction received at %s'), $sitename);
|
||||
$preamble = sprintf( t('You\'ve received an introduction from \'%s\' at %s'), $params['source_name'], $sitename);
|
||||
|
|
|
@ -905,7 +905,7 @@ function item_store($arr,$force_parent = false) {
|
|||
);
|
||||
}
|
||||
|
||||
tgroup_deliver($arr['uid'],$current_post);
|
||||
tag_deliver($arr['uid'],$current_post);
|
||||
|
||||
return $current_post;
|
||||
}
|
||||
|
@ -923,22 +923,22 @@ function get_item_contact($item,$contacts) {
|
|||
}
|
||||
|
||||
|
||||
function tgroup_deliver($uid,$item_id) {
|
||||
function tag_deliver($uid,$item_id) {
|
||||
|
||||
|
||||
// setup a second delivery chain for forum/community posts if appropriate
|
||||
// look for mention tags and setup a second delivery chain for forum/community posts if appropriate
|
||||
|
||||
$a = get_app();
|
||||
|
||||
$deliver_to_tgroup = false;
|
||||
$mention = false;
|
||||
|
||||
$u = q("select * from user where uid = %d and `page-flags` = %d limit 1",
|
||||
intval($uid),
|
||||
intval(PAGE_COMMUNITY)
|
||||
$u = q("select uid, nickname, language, username, email, `page-flags`, `notify-flags` from user where uid = %d limit 1",
|
||||
intval($uid)
|
||||
);
|
||||
if(! count($u))
|
||||
return;
|
||||
|
||||
$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
||||
|
||||
$i = q("select * from item where id = %d and uid = %d limit 1",
|
||||
intval($item_id),
|
||||
intval($uid)
|
||||
|
@ -948,13 +948,6 @@ function tgroup_deliver($uid,$item_id) {
|
|||
|
||||
$item = $i[0];
|
||||
|
||||
// prevent delivery looping - only proceed
|
||||
// if the message originated elsewhere and is a top-level post
|
||||
|
||||
if(($item['wall']) || ($item['origin']) || ($item['id'] != $item['parent']))
|
||||
return;
|
||||
|
||||
|
||||
$link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']);
|
||||
|
||||
// Diaspora uses their own hardwired link URL in @-tags
|
||||
|
@ -966,13 +959,41 @@ function tgroup_deliver($uid,$item_id) {
|
|||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
if(link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
|
||||
$deliver_to_tgroup = true;
|
||||
logger('tgroup_deliver: local group mention found: ' . $mtch[2]);
|
||||
$mention = true;
|
||||
logger('tag_deliver: mention found: ' . $mtch[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(! $deliver_to_tgroup)
|
||||
if(! $mention)
|
||||
return;
|
||||
|
||||
// send a notification
|
||||
|
||||
require_once('include/enotify.php');
|
||||
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'],
|
||||
'item' => $item,
|
||||
'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'],
|
||||
'source_name' => $item['author-name'],
|
||||
'source_link' => $item['author-link'],
|
||||
'source_photo' => $item['author-avatar'],
|
||||
'verb' => ACTIVITY_TAG,
|
||||
'otype' => 'item'
|
||||
));
|
||||
|
||||
if(! $community_page)
|
||||
return;
|
||||
|
||||
// tgroup delivery - setup a second delivery chain
|
||||
// prevent delivery looping - only proceed
|
||||
// if the message originated elsewhere and is a top-level post
|
||||
|
||||
if(($item['wall']) || ($item['origin']) || ($item['id'] != $item['parent']))
|
||||
return;
|
||||
|
||||
// now change this copy of the post to a forum head message and deliver to all the tgroup members
|
||||
|
@ -1047,7 +1068,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
|
|||
$final_dfrn_id = '';
|
||||
|
||||
|
||||
if(($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
|
||||
if(($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))) {
|
||||
openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
|
||||
openssl_public_decrypt($challenge,$postvars['challenge'],$contact['pubkey']);
|
||||
}
|
||||
|
@ -1090,7 +1111,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
|
|||
|
||||
|
||||
if($dfrn_version >= 2.1) {
|
||||
if(($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
|
||||
if(($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))) {
|
||||
openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']);
|
||||
}
|
||||
else {
|
||||
|
@ -1486,7 +1507,8 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
|||
|
||||
if(count($r)) {
|
||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
||||
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($datarray['title']),
|
||||
dbesc($datarray['body']),
|
||||
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
|
||||
dbesc($item_id),
|
||||
|
@ -1616,7 +1638,8 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
|||
|
||||
if(count($r)) {
|
||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
||||
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($datarray['title']),
|
||||
dbesc($datarray['body']),
|
||||
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
|
||||
dbesc($item_id),
|
||||
|
@ -2167,7 +2190,8 @@ function local_delivery($importer,$data) {
|
|||
|
||||
if(count($r)) {
|
||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
||||
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($datarray['title']),
|
||||
dbesc($datarray['body']),
|
||||
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
|
||||
dbesc($item_id),
|
||||
|
@ -2309,7 +2333,8 @@ function local_delivery($importer,$data) {
|
|||
|
||||
if(count($r)) {
|
||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
||||
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($datarray['title']),
|
||||
dbesc($datarray['body']),
|
||||
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
|
||||
dbesc($item_id),
|
||||
|
@ -2805,7 +2830,7 @@ function drop_item($id,$interactive = true) {
|
|||
|
||||
// delete the item
|
||||
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `body` = '', `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `title` = '', `body` = '', `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
intval($item['id'])
|
||||
|
@ -2838,7 +2863,7 @@ function drop_item($id,$interactive = true) {
|
|||
// If it's the parent of a comment thread, kill all the kids
|
||||
|
||||
if($item['uri'] == $item['parent-uri']) {
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = ''
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '' , `title` = ''
|
||||
WHERE `parent-uri` = '%s' AND `uid` = %d ",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
|
|
|
@ -579,6 +579,9 @@ function fetch_xrd_links($url) {
|
|||
|
||||
if(! function_exists('validate_url')) {
|
||||
function validate_url(&$url) {
|
||||
// no naked subdomains
|
||||
if(strpos($url,'.') === false)
|
||||
return false;
|
||||
if(substr($url,0,4) != 'http')
|
||||
$url = 'http://' . $url;
|
||||
$h = @parse_url($url);
|
||||
|
|
|
@ -56,25 +56,29 @@ function reload_plugins() {
|
|||
if(count($parr)) {
|
||||
foreach($parr as $pl) {
|
||||
$pl = trim($pl);
|
||||
|
||||
$t = filemtime('addon/' . $pl . '/' . $pl . '.php');
|
||||
foreach($installed as $i) {
|
||||
if(($i['name'] == $pl) && ($i['timestamp'] != $t)) {
|
||||
logger('Reloading plugin: ' . $i['name']);
|
||||
@include_once('addon/' . $pl . '/' . $pl . '.php');
|
||||
|
||||
if(function_exists($pl . '_uninstall')) {
|
||||
$func = $pl . '_uninstall';
|
||||
$func();
|
||||
$fname = 'addon/' . $pl . '/' . $pl . '.php';
|
||||
|
||||
if(file_exists($fname)) {
|
||||
$t = @filemtime($fname);
|
||||
foreach($installed as $i) {
|
||||
if(($i['name'] == $pl) && ($i['timestamp'] != $t)) {
|
||||
logger('Reloading plugin: ' . $i['name']);
|
||||
@include_once($fname);
|
||||
|
||||
if(function_exists($pl . '_uninstall')) {
|
||||
$func = $pl . '_uninstall';
|
||||
$func();
|
||||
}
|
||||
if(function_exists($pl . '_install')) {
|
||||
$func = $pl . '_install';
|
||||
$func();
|
||||
}
|
||||
q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
|
||||
intval($t),
|
||||
intval($i['id'])
|
||||
);
|
||||
}
|
||||
if(function_exists($pl . '_install')) {
|
||||
$func = $pl . '_install';
|
||||
$func();
|
||||
}
|
||||
q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
|
||||
intval($t),
|
||||
intval($i['id'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,8 @@ function advanced_profile(&$a) {
|
|||
|
||||
if($a->profile['homepage']) $profile['homepage'] = array( t('Homepage:'), linkify($a->profile['homepage']) );
|
||||
|
||||
if($a->profile['pub_keywords']) $profile['pub_keywords'] = array( t('Tags:'), $a->profile['pub_keywords']);
|
||||
|
||||
if($a->profile['politic']) $profile['politic'] = array( t('Political Views:'), $a->profile['politic']);
|
||||
|
||||
if($a->profile['religion']) $profile['religion'] = array( t('Religion:'), $a->profile['religion']);
|
||||
|
|
|
@ -428,8 +428,10 @@ if(! function_exists('logger')) {
|
|||
function logger($msg,$level = 0) {
|
||||
// turn off logger in install mode
|
||||
global $a;
|
||||
if ($a->module == 'install') return;
|
||||
|
||||
global $db;
|
||||
|
||||
if(($a->module == 'install') || (! ($db && $db->connected))) return;
|
||||
|
||||
$debugging = get_config('system','debugging');
|
||||
$loglevel = intval(get_config('system','loglevel'));
|
||||
$logfile = get_config('system','logfile');
|
||||
|
@ -538,8 +540,10 @@ function contact_block() {
|
|||
$a = get_app();
|
||||
|
||||
$shown = get_pconfig($a->profile['uid'],'system','display_friend_count');
|
||||
if(! $shown)
|
||||
if($shown === false)
|
||||
$shown = 24;
|
||||
if($shown == 0)
|
||||
return;
|
||||
|
||||
if((! is_array($a->profile)) || ($a->profile['hide-friends']))
|
||||
return $o;
|
||||
|
@ -678,9 +682,9 @@ function smilies($s) {
|
|||
$a = get_app();
|
||||
|
||||
$s = str_replace(
|
||||
array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O', '\\o/', 'o.O', 'O.o', '\\.../', '\\ooo/',
|
||||
array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ';)', ':-(', ':(', ':-P', ':P', ':-"', ':-"', ':-x', ':-X', ':-D', ':D', '8-|', '8-O', ':-O', '\\o/', 'o.O', 'O.o', '\\.../', '\\ooo/',
|
||||
':beer', ':homebrew', ':coffee',
|
||||
'~friendika', '~friendica', 'Diaspora*' ),
|
||||
'~friendika', '~friendica', 'Diaspora*' ),
|
||||
array(
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-heart.gif" alt="<3" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-brokenheart.gif" alt="</3" />',
|
||||
|
@ -688,21 +692,26 @@ function smilies($s) {
|
|||
'<img src="' . $a->get_baseurl() . '/images/smiley-smile.gif" alt=":-)" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-smile.gif" alt=":)" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-wink.gif" alt=";-)" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-wink.gif" alt=";)"/>',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-frown.gif" alt=":-(" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-frown.gif" alt=":(" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":-P" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-tongue-out.gif" alt=":P" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-\"" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-x" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-kiss.gif" alt=":-X" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-laughing.gif" alt=":-D" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-laughing.gif" alt=":D"/>',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-|" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt="8-O" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-surprised.gif" alt=":-O" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-thumbsup.gif" alt="\\o/" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="o.O" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-Oo.gif" alt="O.o" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-shaka.gif" alt="\\.../" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-shaka.gif" alt="\\ooo/" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/smiley-shaka.gif" alt="\\ooo/" />',
|
||||
|
||||
'<img src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":beer" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":homebrew" />',
|
||||
'<img src="' . $a->get_baseurl() . '/images/coffee.gif" alt=":coffee" />',
|
||||
|
|
|
@ -153,7 +153,7 @@ class Slinky {
|
|||
public function set_service_from_url( $url = false ) {
|
||||
if ( !$url )
|
||||
$url = $this->url;
|
||||
|
||||
|
||||
$host = parse_url( $url, PHP_URL_HOST );
|
||||
switch ( str_replace( 'www.', '', $host ) ) {
|
||||
case 'bit.ly':
|
||||
|
@ -181,6 +181,11 @@ class Slinky {
|
|||
$this->service = new Slinky_Fongs();
|
||||
break;
|
||||
}
|
||||
case $this->get( 'yourls-url' ):
|
||||
if ( class_exists( 'Slinky_YourLS' ) ) {
|
||||
$this->service = new Slinky_YourLS();
|
||||
break;
|
||||
}
|
||||
case 'micurl.com':
|
||||
if ( class_exists( 'Slinky_Micurl' ) ) {
|
||||
$this->service = new Slinky_Micurl();
|
||||
|
@ -574,6 +579,31 @@ class Slinky_Fongs extends Slinky_Service {
|
|||
}
|
||||
}
|
||||
|
||||
// yourls
|
||||
class Slinky_YourLS extends Slinky_Service {
|
||||
function url_is_short( $url ) {
|
||||
return stristr( $url, 'shit.li/' );
|
||||
}
|
||||
|
||||
function url_is_long( $url ) {
|
||||
return !stristr( $url, 'shit.li/' );
|
||||
}
|
||||
|
||||
function make_short( $url ) {
|
||||
echo $this->get( 'username' );
|
||||
$use_ssl = $this->get( 'ssl' );
|
||||
if ( $use_ssl )
|
||||
$use_ssl = 's';
|
||||
else
|
||||
$use_ssl = '';
|
||||
$result = $this->url_get( 'http'. $use_ssl . '://' . $this->get( 'yourls-url' ) . '/yourls-api.php?username=' . $this->get( 'username' ) . '&password=' . $this->get( 'password' ) . '&action=shorturl&format=simple&url=' . urlencode( $url ) );
|
||||
if ( 1 != $result && 2 != $result )
|
||||
return $result;
|
||||
else
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
// Micu.rl
|
||||
class Slinky_Micurl extends Slinky_Service {
|
||||
function url_is_short( $url ) {
|
||||
|
|
|
@ -80,12 +80,10 @@ function community_content(&$a, $update = 0) {
|
|||
|
||||
// we behave the same in message lists as the search module
|
||||
|
||||
$o .= conversation($a,$r,'community',false);
|
||||
$o .= conversation($a,$r,'community',$update);
|
||||
|
||||
$o .= paginate($a);
|
||||
|
||||
// $o .= '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>';
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ function contacts_init(&$a) {
|
|||
|
||||
$a->page['aside'] .= findpeople_widget();
|
||||
|
||||
$a->page['aside'] .= networks_widget('contacts',$_GET['nets']);
|
||||
}
|
||||
|
||||
function contacts_post(&$a) {
|
||||
|
@ -99,6 +100,14 @@ function contacts_post(&$a) {
|
|||
info( t('Contact updated.') . EOL);
|
||||
else
|
||||
notice( t('Failed to update contact record.') . EOL);
|
||||
|
||||
$r = q("select * from contact where id = %d and uid = %d limit 1",
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
if($r && count($r))
|
||||
$a->data['contact'] = $r[0];
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
@ -111,7 +120,6 @@ function contacts_content(&$a) {
|
|||
$o = '';
|
||||
nav_set_selected('contacts');
|
||||
|
||||
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
|
||||
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -211,7 +219,10 @@ function contacts_content(&$a) {
|
|||
|
||||
contact_remove($orig_record[0]['id']);
|
||||
info( t('Contact has been removed.') . EOL );
|
||||
goaway($a->get_baseurl() . '/contacts');
|
||||
if(x($_SESSION,'return_url'))
|
||||
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
|
||||
else
|
||||
goaway($a->get_baseurl() . '/contacts');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
}
|
||||
|
@ -354,19 +365,30 @@ function contacts_content(&$a) {
|
|||
|
||||
}
|
||||
|
||||
$blocked = false;
|
||||
|
||||
$_SESSION['return_url'] = $a->query_string;
|
||||
|
||||
if(($a->argc == 2) && ($a->argv[1] === 'all'))
|
||||
$sql_extra = '';
|
||||
else
|
||||
$sql_extra = " AND `blocked` = 0 ";
|
||||
|
||||
else {
|
||||
if(($a->argc == 2) && ($a->argv[1] === 'blocked')) {
|
||||
$sql_extra = " AND `blocked` = 1 ";
|
||||
$blocked = true;
|
||||
}
|
||||
else
|
||||
$sql_extra = " AND `blocked` = 0 ";
|
||||
}
|
||||
$search = ((x($_GET,'search')) ? notags(trim($_GET['search'])) : '');
|
||||
$nets = ((x($_GET,'nets')) ? notags(trim($_GET['nets'])) : '');
|
||||
|
||||
$tpl = get_markup_template("contacts-top.tpl");
|
||||
$o .= replace_macros($tpl,array(
|
||||
'$header' => t('Contacts'),
|
||||
'$hide_url' => ((strlen($sql_extra)) ? 'contacts/all' : 'contacts' ),
|
||||
'$hide_text' => ((strlen($sql_extra)) ? t('Show Blocked Connections') : t('Hide Blocked Connections')),
|
||||
'$header' => t('Contacts') . (($nets) ? ' - ' . network_to_name($nets) : ''),
|
||||
'$hide_url' => (($blocked) ? 'contacts' : 'contacts/blocked'),
|
||||
'$hide_text' => (($blocked) ? t('Show Unblocked Contacts') : t('Show Blocked Contacts')),
|
||||
'$all_url' => 'contacts/all',
|
||||
'$all_text' => t('Show All Contacts'),
|
||||
'$search' => $search,
|
||||
'$desc' => t('Search your contacts'),
|
||||
'$finding' => (strlen($search) ? '<h4>' . t('Finding: ') . "'" . $search . "'" . '</h4>' : ""),
|
||||
|
@ -380,6 +402,9 @@ function contacts_content(&$a) {
|
|||
$search = dbesc($search.'*');
|
||||
$sql_extra .= ((strlen($search)) ? " AND MATCH `name` AGAINST ('$search' IN BOOLEAN MODE) " : "");
|
||||
|
||||
if($nets)
|
||||
$sql_extra .= sprintf(" AND network = '%s' ", dbesc($nets));
|
||||
|
||||
$sql_extra2 = ((($sort_type > 0) && ($sort_type <= CONTACT_IS_FRIEND)) ? sprintf(" AND `rel` = %d ",intval($sort_type)) : '');
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ function editpost_content(&$a) {
|
|||
|
||||
$a->page['htmlhead'] .= replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
|
||||
'$ispublic' => ' ', // t('Visible to <strong>everybody</strong>'),
|
||||
'$geotag' => $geotag,
|
||||
'$nickname' => $a->user['nickname']
|
||||
|
@ -108,11 +109,14 @@ function editpost_content(&$a) {
|
|||
'$emailcc' => t('CC: email addresses'),
|
||||
'$public' => t('Public post'),
|
||||
'$jotnets' => $jotnets,
|
||||
'$title' => $itm[0]['title'],
|
||||
'$placeholdertitle' => t('Set title'),
|
||||
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
|
||||
'$lockstate' => $lockstate,
|
||||
'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb),
|
||||
'$bang' => (($group) ? '!' : ''),
|
||||
'$profile_uid' => $_SESSION['uid'],
|
||||
'$preview' => t('Preview'),
|
||||
'$jotplugins' => $jotplugins,
|
||||
));
|
||||
|
||||
|
|
|
@ -186,8 +186,8 @@ function install_content(&$a) {
|
|||
|
||||
check_keys($checks);
|
||||
|
||||
if(x($_POST,'phppath'))
|
||||
$phpath = notags(trim($_POST['phppath']));
|
||||
if(x($_POST,'phpath'))
|
||||
$phpath = notags(trim($_POST['phpath']));
|
||||
|
||||
check_php($phpath, $checks);
|
||||
|
||||
|
@ -210,6 +210,7 @@ function install_content(&$a) {
|
|||
'$next' => t('Next'),
|
||||
'$reload' => t('Check again'),
|
||||
'$phpath' => $phpath,
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
));
|
||||
return $o;
|
||||
}; break;
|
||||
|
@ -220,7 +221,7 @@ function install_content(&$a) {
|
|||
$dbuser = notags(trim($_POST['dbuser']));
|
||||
$dbpass = notags(trim($_POST['dbpass']));
|
||||
$dbdata = notags(trim($_POST['dbdata']));
|
||||
$phpath = notags(trim($_POST['phppath']));
|
||||
$phpath = notags(trim($_POST['phpath']));
|
||||
|
||||
|
||||
$tpl = get_markup_template('install_db.tpl');
|
||||
|
@ -258,7 +259,7 @@ function install_content(&$a) {
|
|||
$dbuser = notags(trim($_POST['dbuser']));
|
||||
$dbpass = notags(trim($_POST['dbpass']));
|
||||
$dbdata = notags(trim($_POST['dbdata']));
|
||||
$phpath = notags(trim($_POST['phppath']));
|
||||
$phpath = notags(trim($_POST['phpath']));
|
||||
|
||||
$adminmail = notags(trim($_POST['adminmail']));
|
||||
$timezone = ((x($_POST,'timezone')) ? ($_POST['timezone']) : 'America/Los_Angeles');
|
||||
|
@ -322,7 +323,7 @@ function check_php(&$phpath, &$checks) {
|
|||
$help .= t('Could not find a command line version of PHP in the web server PATH.'). EOL;
|
||||
$tpl = get_markup_template('field_input.tpl');
|
||||
$help .= replace_macros($tpl, array(
|
||||
'$field' => array('phppath', t('PHP executable path'), $phpath, t('Enter full path to php executable')),
|
||||
'$field' => array('phpath', t('PHP executable path'), $phpath, t('Enter full path to php executable')),
|
||||
));
|
||||
$phpath="";
|
||||
}
|
||||
|
|
|
@ -649,7 +649,8 @@ function item_post(&$a) {
|
|||
|
||||
|
||||
if($orig_post) {
|
||||
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
dbesc($title),
|
||||
dbesc($body),
|
||||
dbesc(datetime_convert()),
|
||||
intval($post_id),
|
||||
|
|
|
@ -56,7 +56,9 @@ function saved_searches($search) {
|
|||
. ((x($_GET,'star')) ? '?star=' . $_GET['star'] : '')
|
||||
. ((x($_GET,'bmark')) ? '?bmark=' . $_GET['bmark'] : '')
|
||||
. ((x($_GET,'conv')) ? '?conv=' . $_GET['conv'] : '')
|
||||
. ((x($_GET,'nets')) ? '?nets=' . $_GET['nets'] : '');
|
||||
. ((x($_GET,'nets')) ? '?nets=' . $_GET['nets'] : '')
|
||||
. ((x($_GET,'cmin')) ? '?cmin=' . $_GET['cmin'] : '')
|
||||
. ((x($_GET,'cmax')) ? '?cmax=' . $_GET['cmax'] : '');
|
||||
|
||||
$o = '';
|
||||
|
||||
|
@ -222,6 +224,8 @@ function network_content(&$a, $update = 0) {
|
|||
$conv = ((x($_GET,'conv')) ? intval($_GET['conv']) : 0);
|
||||
$spam = ((x($_GET,'spam')) ? intval($_GET['spam']) : 0);
|
||||
$nets = ((x($_GET,'nets')) ? $_GET['nets'] : '');
|
||||
$cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
|
||||
$cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
|
||||
|
||||
if(($a->argc > 2) && $a->argv[2] === 'new')
|
||||
$nouveau = true;
|
||||
|
@ -358,6 +362,8 @@ function network_content(&$a, $update = 0) {
|
|||
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
|
||||
. ((x($_GET,'spam')) ? '&spam=' . $_GET['spam'] : '')
|
||||
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
|
||||
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
|
||||
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
|
||||
|
||||
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||
}
|
||||
|
|
|
@ -2,11 +2,26 @@
|
|||
require_once("include/oembed.php");
|
||||
|
||||
function oembed_content(&$a){
|
||||
// logger('mod_oembed ' . $a->query_string, LOGGER_ALL);
|
||||
|
||||
if ($a->argv[1]=='b2h'){
|
||||
$url = array( "", trim(hex2bin($_REQUEST['url'])));
|
||||
echo oembed_replacecb($url);
|
||||
killme();
|
||||
}
|
||||
|
||||
if ($a->argv[1]=='h2b'){
|
||||
$text = trim(hex2bin($_REQUEST['text']));
|
||||
echo oembed_html2bbcode($text);
|
||||
killme();
|
||||
}
|
||||
|
||||
if ($a->argc == 2){
|
||||
echo "<html><body>";
|
||||
$url = base64url_decode($a->argv[1]);
|
||||
$j = oembed_fetch_url($url);
|
||||
echo $j->html;
|
||||
// logger('mod-oembed ' . $j->html, LOGGER_ALL);
|
||||
echo "</body></html>";
|
||||
}
|
||||
killme();
|
||||
|
|
|
@ -818,6 +818,7 @@ function settings_content(&$a) {
|
|||
'$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''),
|
||||
'$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''),
|
||||
'$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''),
|
||||
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
|
||||
|
||||
|
||||
'$h_advn' => t('Advanced Page Settings'),
|
||||
|
|
18
update.php
18
update.php
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
define( 'UPDATE_VERSION' , 1120 );
|
||||
define( 'UPDATE_VERSION' , 1121 );
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -1021,3 +1021,19 @@ q("ALTER TABLE `contact` ADD `closeness` TINYINT( 2 ) NOT NULL DEFAULT '99' AFTE
|
|||
q("update contact set closeness = 0 where self = 1");
|
||||
q("ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) ");
|
||||
}
|
||||
|
||||
|
||||
function update_1120() {
|
||||
|
||||
// item table update from 1119 did not get into database.sql file.
|
||||
// might be missing on new installs. We'll check.
|
||||
|
||||
$r = q("describe item");
|
||||
if($r && count($r)) {
|
||||
foreach($r as $rr)
|
||||
if($rr['Field'] == 'spam')
|
||||
return;
|
||||
}
|
||||
q("ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) ");
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
fpostit
|
||||
|
||||
original author: Devlon Duthied
|
||||
|
||||
see his blog posting:
|
||||
http://blog.duthied.com/2011/09/13/node-agnostic-friendika-bookmarklet/
|
||||
|
||||
original published at github https://github.com/duthied/Friendika-Bookmarklet
|
|
@ -0,0 +1,11 @@
|
|||
javascript: (function() {
|
||||
the_url = 'http://testbubble.com/fpostit.php?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + encodeURIComponent('' (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text));
|
||||
a_funct = function() {
|
||||
if (!window.open(the_url, 'fpostit', 'location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) location.href = the_url;
|
||||
};
|
||||
if (/Firefox/.test(navigator.userAgent)) {
|
||||
setTimeout(a_funct, 0)
|
||||
} else {
|
||||
a_funct()
|
||||
}
|
||||
})()
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
|
||||
setcookie("username", $_POST["friendika_acct_name"], time()+60*60*24*300);
|
||||
setcookie("password", $_POST["friendika_password"], time()+60*60*24*300);
|
||||
}
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial, Helvetica,sans-serif;
|
||||
margin: 0px;
|
||||
}
|
||||
.wrap1 {
|
||||
padding: 2px 5px;
|
||||
background-color: #729FCF;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.wrap2 {
|
||||
margin-left: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.logo {
|
||||
margin-left: 3px;
|
||||
margin-right: 5px;
|
||||
float: left;
|
||||
}
|
||||
h2 {
|
||||
color: #ffffff;
|
||||
}
|
||||
.error {
|
||||
background-color: #FFFF66;
|
||||
font-size: 12px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
|
||||
if (isset($_GET['title'])) {
|
||||
$title = $_GET['title'];
|
||||
}
|
||||
if (isset($_GET['text'])) {
|
||||
$text = $_GET['text'];
|
||||
}
|
||||
if (isset($_GET['url'])) {
|
||||
$url = $_GET['url'];
|
||||
}
|
||||
|
||||
if ((isset($title)) && (isset($text)) && (isset($url))) {
|
||||
$content = "$title\nsource:$url\n\n$text";
|
||||
} else {
|
||||
$content = $_POST['content'];
|
||||
}
|
||||
|
||||
if (isset($_POST['submit'])) {
|
||||
|
||||
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
|
||||
$acctname = $_POST["friendika_acct_name"];
|
||||
$tmp_account_array = explode("@", $acctname);
|
||||
if (isset($tmp_account_array[1])) {
|
||||
$username = $tmp_account_array[0];
|
||||
$hostname = $tmp_account_array[1];
|
||||
}
|
||||
$password = $_POST["friendika_password"];
|
||||
$content = $_POST["content"];
|
||||
|
||||
$url = "http://" . $hostname . '/api/statuses/update';
|
||||
$data = array('status' => $content);
|
||||
|
||||
// echo "posting to: $url<br/>";
|
||||
|
||||
$c = curl_init();
|
||||
curl_setopt($c, CURLOPT_URL, $url);
|
||||
curl_setopt($c, CURLOPT_USERPWD, "$username:$password");
|
||||
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
|
||||
$c_result = curl_exec($c);
|
||||
if(curl_errno($c)){
|
||||
$error = curl_error($c);
|
||||
showForm($error, $content);
|
||||
}
|
||||
|
||||
curl_close($c);
|
||||
if (!isset($error)) {
|
||||
echo '<script language="javascript" type="text/javascript">window.close();</script>';
|
||||
}
|
||||
|
||||
} else {
|
||||
$error = "Missing account name and/or password...try again please";
|
||||
showForm($error, $content);
|
||||
}
|
||||
|
||||
} else {
|
||||
showForm(null, $content);
|
||||
}
|
||||
|
||||
function showForm($error, $content) {
|
||||
$username_cookie = $_COOKIE['username'];
|
||||
$password_cookie = $_COOKIE['password'];
|
||||
|
||||
echo <<<EOF
|
||||
<div class='wrap1'>
|
||||
<h2><img class='logo' src='friendika-32.png' align='middle';/>
|
||||
Friendika Bookmarklet</h2>
|
||||
</div>
|
||||
|
||||
<div class="wrap2">
|
||||
<form method="post" action="{$_SERVER['PHP_SELF']}">
|
||||
Enter the email address of the Friendika Account that you want to cross-post to:(example: user@friendika.org)<br /><br />
|
||||
Account ID: <input type="text" name="friendika_acct_name" value="{$username_cookie}" size="50"/><br />
|
||||
Password: <input type="password" name="friendika_password" value="{$password_cookie}" size="50"/><br />
|
||||
<textarea name="content" id="content" rows="6" cols="70">{$content}</textarea><br />
|
||||
<input type="submit" value="PostIt!" name="submit" /> <span class='error'>$error</span>
|
||||
</form>
|
||||
<p></p>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
8114
util/messages.po
8114
util/messages.po
File diff suppressed because it is too large
Load Diff
|
@ -14,5 +14,6 @@ $finding
|
|||
|
||||
|
||||
<div id="contacts-main" >
|
||||
<a href="$hide_url" id="contacts-show-hide-link">$hide_text</a>
|
||||
<a href="$hide_url" id="contacts-show-hide-link">$hide_text</a><br />
|
||||
<a href="$all_url" id="contacts-show-all-link">$all_text</a><br />
|
||||
</div>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<a class=" $nav.apps.2" href="#" rel="#nav-apps-menu" title="$nav.apps.3" >$nav.apps.1</a>
|
||||
<ul id="nav-apps-menu" class="menu-popup">
|
||||
{{ for $apps as $ap }}
|
||||
<li><a href="$ap.url">$ap.name</a></li>
|
||||
<li>$ap</li>
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
@ -40,6 +40,13 @@
|
|||
</dl>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $profile.pub_keywords }}
|
||||
<dl id="aprofile-tags" class="aprofile">
|
||||
<dt>$profile.pub_keywords.0</dt>
|
||||
<dd>$profile.pub_keywords.1</dd>
|
||||
</dl>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $profile.homepage }}
|
||||
<dl id="aprofile-homepage" class="aprofile">
|
||||
<dt>$profile.homepage.0</dt>
|
||||
|
|
|
@ -108,6 +108,7 @@ $suggestme
|
|||
{{inc field_intcheckbox.tpl with $field=$notify4 }}{{endinc}}
|
||||
{{inc field_intcheckbox.tpl with $field=$notify5 }}{{endinc}}
|
||||
{{inc field_intcheckbox.tpl with $field=$notify6 }}{{endinc}}
|
||||
{{inc field_intcheckbox.tpl with $field=$notify7 }}{{endinc}}
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -824,6 +824,7 @@ input#dfrn-url {
|
|||
.contact-entry-name {
|
||||
float: left;
|
||||
margin-left: 0px;
|
||||
margin-right: 10px;
|
||||
width: 120px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
|
|
@ -318,7 +318,51 @@ aside {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* group member */
|
||||
#contact-edit-drop-link,
|
||||
.mail-list-delete-wrapper,
|
||||
.group-delete-wrapper {
|
||||
float: right;
|
||||
margin-right: 50px;
|
||||
.drophide {
|
||||
background-image: url('../../../images/icons/22/delete.png');
|
||||
display: block; width: 22px; height: 22px;
|
||||
opacity: 0.3;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
}
|
||||
.drop {
|
||||
background-image: url('../../../images/icons/22/delete.png');
|
||||
display: block; width: 22px; height: 22px;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
}
|
||||
}
|
||||
#group-members {
|
||||
margin-top: 20px;
|
||||
padding: 10px;
|
||||
height: 250px;
|
||||
overflow: auto;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
#group-members-end {
|
||||
clear: both;
|
||||
}
|
||||
#group-all-contacts {
|
||||
padding: 10px;
|
||||
height: 450px;
|
||||
overflow: auto;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
#group-all-contacts-end {
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.contact-block-div {
|
||||
float: left;
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
}
|
||||
/* widget */
|
||||
.widget {
|
||||
margin-bottom: 2em;
|
||||
|
@ -969,3 +1013,4 @@ footer { height: 100px; display: table-row; }
|
|||
margin-top: 25px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
|
|
@ -564,6 +564,53 @@ aside #profiles-menu {
|
|||
widht: 48px;
|
||||
height: 58px;
|
||||
}
|
||||
/* group member */
|
||||
#contact-edit-drop-link, .mail-list-delete-wrapper, .group-delete-wrapper {
|
||||
float: right;
|
||||
margin-right: 50px;
|
||||
}
|
||||
#contact-edit-drop-link .drophide, .mail-list-delete-wrapper .drophide, .group-delete-wrapper .drophide {
|
||||
background-image: url('../../../images/icons/22/delete.png');
|
||||
display: block;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
opacity: 0.3;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
}
|
||||
#contact-edit-drop-link .drop, .mail-list-delete-wrapper .drop, .group-delete-wrapper .drop {
|
||||
background-image: url('../../../images/icons/22/delete.png');
|
||||
display: block;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
}
|
||||
#group-members {
|
||||
margin-top: 20px;
|
||||
padding: 10px;
|
||||
height: 250px;
|
||||
overflow: auto;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
#group-members-end {
|
||||
clear: both;
|
||||
}
|
||||
#group-all-contacts {
|
||||
padding: 10px;
|
||||
height: 450px;
|
||||
overflow: auto;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
#group-all-contacts-end {
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.contact-block-div {
|
||||
float: left;
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
}
|
||||
/* widget */
|
||||
.widget {
|
||||
margin-bottom: 2em;
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
// Quattro Theme LESS file
|
||||
|
||||
// "Echo" palette from Inkscape
|
||||
@Blue1:rgb(25,174,255);
|
||||
@Blue2:rgb(0,132,200);
|
||||
@Blue3:rgb(0,92,148);
|
||||
@Red1:rgb(255,65,65);
|
||||
@Red2:rgb(220,0,0);
|
||||
@Red3:rgb(181,0,0);
|
||||
@Orange1:rgb(255,255,62);
|
||||
@Orange2:rgb(255,153,0);
|
||||
@Orange3:rgb(255,102,0);
|
||||
@Brown1:rgb(255,192,34);
|
||||
@Brown2:rgb(184,129,0);
|
||||
@Brown3:rgb(128,77,0);
|
||||
@Green1:rgb(204,255,66);
|
||||
@Green2:rgb(154,222,0);
|
||||
@Green3:rgb(0,145,0);
|
||||
@Purple1:rgb(241,202,255);
|
||||
@Purple2:rgb(215,108,255);
|
||||
@Purple3:rgb(186,0,255);
|
||||
@Metalic1:rgb(189,205,212);
|
||||
@Metalic2:rgb(158,171,176);
|
||||
@Metalic3:rgb(54,78,89);
|
||||
@Metalic4:rgb(14,35,46);
|
||||
@Grey1:rgb(255,255,255);
|
||||
@Grey2:rgb(204,204,204);
|
||||
@Grey3:rgb(153,153,153);
|
||||
@Grey4:rgb(102,102,102);
|
||||
@Grey5:rgb(45,45,45);
|
||||
|
||||
|
||||
// Theme colors
|
||||
@BodyBackground: @Grey1;
|
||||
@BodyColor: @Grey5;
|
||||
|
||||
@Link: @Blue3;
|
||||
@LinkHover: @Blue3;
|
||||
@LinkVisited: @Blue3;
|
||||
|
||||
|
||||
@ButtonColor: @Grey1;
|
||||
@ButtonBackgroundColor: @Grey5;
|
||||
|
||||
@Banner: @Grey1;
|
||||
|
||||
@NavbarBackground:@Metalic4;
|
||||
@NavbarSelectedBg:@Metalic3;
|
||||
@NavbarSelectedBorder: @Metalic2;
|
||||
@NavbarNotifBg: @Blue1;
|
||||
|
||||
@Menu: @Grey5;
|
||||
@MenuBg: @Grey1;
|
||||
@MenuBorder: @Metalic3;
|
||||
@MenuItem: @Grey5;
|
||||
@MenuItemHoverBg: @Metalic1;
|
||||
@MenuItemSeparator: @Metalic2;
|
||||
@MenuEmpty: @Metalic2;
|
||||
@MenuItemDetail: @Metalic2;
|
||||
|
||||
@AsideBorder: @Metalic1;
|
||||
@AsideConnect: @Grey1;
|
||||
@AsideConnectBg: @Blue3;
|
||||
@AsideConnectHoverBg: @Blue1;
|
||||
@VCardLabelColor: @Grey3;
|
||||
|
||||
@InfoColor: @Grey1;
|
||||
@InfoBackgroundColor: @Metalic3;
|
||||
|
||||
@NoticeColor: @Grey1;
|
||||
@NoticeBackgroundColor: #511919;
|
||||
|
||||
@ThreadBackgroundColor: #f6f7f8;
|
||||
|
||||
@CommentBoxEmptyColor: @Grey3;
|
||||
@CommentBoxEmptyBorderColor: @Grey3;
|
||||
@CommentBoxFullColor: @Grey5;
|
||||
@CommentBoxFullBorderColor: @Grey5;
|
||||
|
||||
@TagColor: @Grey1;
|
||||
|
||||
@JotToolsBackgroundColor: @Metalic4;
|
||||
@JotToolsBorderColor: @Metalic2;
|
||||
@JotToolsOverBackgroundColor: @Metalic3;
|
||||
@JotToolsOverBorderColor: @Metalic1;
|
||||
@JotToolsText: @Grey2;
|
||||
@JotSubmitBackgroundColor: @Grey2;
|
||||
@JotSubmitText: @Grey4;
|
||||
@JotSubmitOverBackgroundColor: @Metalic1;
|
||||
@JotSubmitOverText: @Grey4;
|
||||
@JotPermissionUnlockBackgroundColor: @Grey2;
|
||||
@JotPermissionLockBackgroundColor: @Grey4;
|
||||
@JotLoadingBackgroundColor: @Grey1;
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
<div class="contact-wrapper" id="contact-entry-wrapper-$id" >
|
||||
<div class="contact-photo-wrapper" >
|
||||
<div class="contact-photo mframe" id="contact-entry-photo-$id"
|
||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('contact-photo-menu-button-$id')" onmouseout="t$id=setTimeout('closeMenu(\'contact-photo-menu-button-$id\'); closeMenu(\'contact-photo-menu-$id\');',200)" >
|
||||
|
||||
<a href="$url" title="$img_hover" /><img src="$thumb" $sparkle alt="$name" /></a>
|
||||
|
||||
<a href="#" rel="#contact-photo-menu-$id" class="contact-photo-menu-button icon s16 menu" id="contact-photo-menu-button-$id">menu</a>
|
||||
<ul class="contact-photo-menu menu-popup" id="contact-photo-menu-$id">
|
||||
$contact_photo_menu
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="contact-name" id="contact-entry-name-$id" >$name</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
// Quattro Theme LESS file
|
||||
/* icons */
|
||||
|
||||
.icons(@size: 22) {
|
||||
&.notify { background-image: url("../../../images/icons/@{size}/notify_off.png"); }
|
||||
&.gear { background-image: url("../../../images/icons/@{size}/gear.png"); }
|
||||
|
||||
&.add { background-image: url("../../../images/icons/@{size}/add.png"); }
|
||||
&.delete { background-image: url("../../../images/icons/@{size}/delete.png"); }
|
||||
&.edit { background-image: url("../../../images/icons/@{size}/edit.png"); }
|
||||
&.star { background-image: url("../../../images/icons/@{size}/star.png"); }
|
||||
&.menu { background-image: url("../../../images/icons/@{size}/menu.png"); }
|
||||
&.link { background-image: url("../../../images/icons/@{size}/link.png"); }
|
||||
&.lock { background-image: url("../../../images/icons/@{size}/lock.png"); }
|
||||
&.unlock { background-image: url("../../../images/icons/@{size}/unlock.png"); }
|
||||
|
||||
}
|
||||
|
||||
|
||||
.icon {
|
||||
background-color: transparent ;
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-indent: -9999px;
|
||||
padding: 1px;
|
||||
|
||||
&.text {
|
||||
text-indent: 0px;
|
||||
}
|
||||
|
||||
&.s10 {
|
||||
min-width:10px; height: 10px;
|
||||
.icons(10);
|
||||
&.text { padding: 2px 0px 0px 15px; }
|
||||
}
|
||||
&.s16 {
|
||||
min-width:16px; height: 16px;
|
||||
.icons(16);
|
||||
&.text { padding: 4px 0px 0px 20px; }
|
||||
}
|
||||
&.s22 {
|
||||
min-width:22px; height: 22px;
|
||||
.icons(22);
|
||||
&.text { padding: 10px 0px 0px 25px; }
|
||||
}
|
||||
&.s48 {
|
||||
width:48px; height: 48px;
|
||||
.icons(48);
|
||||
}
|
||||
|
||||
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 82 KiB |
|
@ -0,0 +1,833 @@
|
|||
// Quattro Theme LESS file
|
||||
|
||||
/* global */
|
||||
body {
|
||||
font-family: Liberation Sans,helvetica,arial,clean,sans-serif;
|
||||
font-size: 10px;
|
||||
background-color: @BodyBackground;
|
||||
color: @BodyColor;
|
||||
margin: 50px 0px 0px 0px;
|
||||
display:table;
|
||||
}
|
||||
h4 { font-size: 1.1em }
|
||||
|
||||
.shadow(@x: 0px, @y: 5px){
|
||||
-webkit-box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
|
||||
-moz-box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
|
||||
box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
|
||||
.rounded(@tr: 5px, @tl: 5px, @bl: 5px, @br: 5px){
|
||||
-moz-border-radius: @arguments;
|
||||
-webkit-border-radius: @arguments;
|
||||
border-radius: @arguments;
|
||||
}
|
||||
.roundbottom (@radius: 5px){ .rounded(0, 0, @radius, @radius); }
|
||||
.roundtop (@radius: 5px){ .rounded(@radius, @radius, 0, 0); }
|
||||
|
||||
.opaque(@v: 0.5){
|
||||
opacity: @v;
|
||||
-webkit-transition: all 0.2s ease-in-out;
|
||||
-moz-transition: all 0.2s ease-in-out;
|
||||
-o-transition: all 0.2s ease-in-out;
|
||||
-ms-transition: all 0.2s ease-in-out;
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
a, a:link { color: @Link; text-decoration: none; }
|
||||
a:visited { color: @LinkVisited; text-decoration: none; }
|
||||
a:hover {color: @LinkHover; text-decoration: underline; }
|
||||
|
||||
.left { float: left; }
|
||||
.right { float: right; }
|
||||
.hidden { display: none; }
|
||||
.clear { clear: both; }
|
||||
|
||||
code {
|
||||
font-family: Courier, monospace;
|
||||
white-space: pre;
|
||||
display: block;
|
||||
overflow: auto;
|
||||
border: 1px solid #444;
|
||||
background: #EEE;
|
||||
color: #444;
|
||||
padding: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
/* tool */
|
||||
|
||||
.tool {
|
||||
height: auto; overflow: auto;
|
||||
.label { float: left;}
|
||||
.action { float: right; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* popup notifications */
|
||||
div.jGrowl div.notice {
|
||||
background: @NoticeBackgroundColor url("../../../images/icons/48/notice.png") no-repeat 5px center;
|
||||
color: @NoticeColor;
|
||||
padding-left: 58px;
|
||||
}
|
||||
div.jGrowl div.info {
|
||||
background: @InfoBackgroundColor url("../../../images/icons/48/info.png") no-repeat 5px center;
|
||||
color: @InfoColor;
|
||||
padding-left: 58px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* header */
|
||||
header {
|
||||
position: fixed; left: 43%; right: 43%; top: 0px;
|
||||
margin: 0px; padding: 0px;
|
||||
/*width: 100%; height: 12px; */
|
||||
z-index: 110;
|
||||
color: @Grey1;
|
||||
#site-location {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#banner {
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
a, a:active, a:visited, a:link, a:hover { color: @Grey1; text-decoration: none; outline: none; vertical-align: bottom; }
|
||||
#logo-img { height: 22px; margin-top:5px;}
|
||||
#logo-text { font-size: 22px }
|
||||
}
|
||||
}
|
||||
/* nav */
|
||||
nav {
|
||||
width: 100%; height: 32px;
|
||||
position: fixed; left: 0px; top: 0px;
|
||||
padding: 0px;
|
||||
background-color: @NavbarBackground;
|
||||
color: @Grey1;
|
||||
z-index: 100;
|
||||
.shadow(0px, 0px);
|
||||
|
||||
a, a:active, a:visited, a:link, a:hover { color: @Banner; text-decoration: none; outline: none; }
|
||||
|
||||
ul {
|
||||
margin: 0px;
|
||||
padding: 0px 20px;
|
||||
li {
|
||||
list-style: none;
|
||||
margin: 0px; padding: 0px;
|
||||
float: left;
|
||||
.menu-popup{ left: 0px; right: auto; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.nav-menu-icon {
|
||||
position: relative;
|
||||
height: 22px;
|
||||
padding: 5px;
|
||||
margin: 0px 10px;
|
||||
.roundtop();
|
||||
|
||||
&.selected {
|
||||
background-color: @NavbarSelectedBg;
|
||||
}
|
||||
|
||||
img { width: 22px; height: 22px; }
|
||||
.nav-notify { top: 3px; }
|
||||
}
|
||||
|
||||
.nav-menu {
|
||||
position: relative;
|
||||
height: 16px;
|
||||
padding: 5px;
|
||||
margin: 3px 15px 0px;
|
||||
font-size: 14px;
|
||||
border-bottom: 3px solid @NavbarBackground;
|
||||
&.selected {
|
||||
border-bottom: 3px solid @NavbarSelectedBorder;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.nav-notify {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: @NavbarNotifBg;
|
||||
.rounded();
|
||||
font-size: 10px;
|
||||
padding: 1px 3px;
|
||||
top: 0px;
|
||||
right: -10px;
|
||||
min-width: 15px;
|
||||
text-align: right;
|
||||
|
||||
&.show{ display: block; }
|
||||
}
|
||||
|
||||
|
||||
#nav-help-link,
|
||||
#nav-search-link,
|
||||
#nav-directory-link,
|
||||
#nav-apps-link,
|
||||
#nav-site-linkmenu {
|
||||
float: right;
|
||||
.menu-popup{ right: 0px; left: auto; }
|
||||
}
|
||||
|
||||
#nav-notifications-linkmenu.on .icon.s22.notify,
|
||||
#nav-notifications-linkmenu.selected .icon.s22.notify { background-image: url("../../../images/icons/22/notify_on.png") }
|
||||
#nav-apps-link.selected { background-color: @NavbarSelectedBg; }
|
||||
}
|
||||
|
||||
|
||||
ul.menu-popup {
|
||||
position: absolute;
|
||||
display: none;
|
||||
width: 10em;
|
||||
background: @MenuBg;
|
||||
color: @Menu;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
list-style: none;
|
||||
border: 3px solid @MenuBorder;
|
||||
z-index: 100000;
|
||||
|
||||
.shadow();
|
||||
|
||||
a { display: block; color: @MenuItem; padding: 5px 10px; text-decoration: none;}
|
||||
a:hover { background-color: @MenuItemHoverBg; }
|
||||
.menu-sep { border-top: 1px solid @MenuItemSeparator; }
|
||||
li { float: none; overflow: auto; height: auto; display: block; }
|
||||
li img { float: left; width: 16px; height: 16px; padding-right: 5px;}
|
||||
.empty {
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
color: @MenuEmpty;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* autocomplete popup */
|
||||
.acpopup {
|
||||
max-height:150px;
|
||||
background-color:@MenuBg;
|
||||
color: @Menu;
|
||||
border:1px solid #MenuBorder;
|
||||
overflow:auto;
|
||||
z-index:100000;
|
||||
.shadow();
|
||||
}
|
||||
.acpopupitem {
|
||||
color: @MenuItem; padding: 4px;
|
||||
clear:left;
|
||||
img {
|
||||
float: left;
|
||||
margin-right: 4px;
|
||||
}
|
||||
&.selected{
|
||||
background-color: @MenuItemHoverBg;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
img { float: left; margin-right: 5px; }
|
||||
.contactname { font-weight: bold; }
|
||||
.notif-when { font-size: 10px; color: @MenuItemDetail; display: block; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* aside */
|
||||
aside {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 200px;
|
||||
padding:0px 10px 0px 20px;
|
||||
border-right: 1px solid @AsideBorder;
|
||||
|
||||
.vcard {
|
||||
.fn { font-size: 16px; font-weight: bold; margin-bottom: 5px; }
|
||||
.title { margin-bottom: 5px; }
|
||||
dl { height: auto; overflow: auto; }
|
||||
dt {float: left; margin-left: 0px; width: 35%; text-align: right; color: @VCardLabelColor; }
|
||||
dd {float: left; margin-left: 4px; width: 60%;}
|
||||
|
||||
}
|
||||
|
||||
#profile-extra-links {
|
||||
ul { padding: 0px; margin: 0px; }
|
||||
li { padding: 0px; margin: 0px; list-style: none; }
|
||||
}
|
||||
|
||||
#dfrn-request-link {
|
||||
display: block;
|
||||
.rounded();
|
||||
color: @AsideConnect;
|
||||
background: @AsideConnectBg url('../../../images/connect-bg.png') no-repeat left center;
|
||||
font-weight: bold;
|
||||
text-transform:uppercase;
|
||||
padding: 4px 2px 2px 35px;
|
||||
|
||||
&:hover { text-decoration: none; background-color: @AsideConnectHoverBg; }
|
||||
}
|
||||
|
||||
#profiles-menu { width: 20em; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
#contact-block {
|
||||
overflow: auto; height: auto;
|
||||
.contact-block-h4 { float: left; margin: 5px 0px; }
|
||||
.allcontact-link { float: right; margin: 5px 0px; }
|
||||
.contact-block-content {
|
||||
clear: both;
|
||||
overflow: auto; height: auto;
|
||||
}
|
||||
.contact-block-link {
|
||||
float: left;
|
||||
margin: 0px 2px 2px 0px;
|
||||
img { widht: 48px; height: 58px; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* widget */
|
||||
.widget {
|
||||
margin-bottom: 2em;
|
||||
|
||||
h3 { padding: 0px; margin: 2px;}
|
||||
.action { .opaque(0.1); }
|
||||
input.action { .opaque(0.5); }
|
||||
&:hover .title .action { .opaque(1); }
|
||||
.tool:hover .action { .opaque(1); }
|
||||
.tool:hover .action.ticked { .opaque(1); }
|
||||
|
||||
ul { padding: 0px;}
|
||||
ul li {padding-left: 16px; min-height: 16px; list-style: none; }
|
||||
|
||||
.tool.selected {
|
||||
background: url('../../../images/selected.png') no-repeat left center;
|
||||
}
|
||||
|
||||
/*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
|
||||
.action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
|
||||
|
||||
}
|
||||
|
||||
/* widget: search */
|
||||
#add-search-popup {
|
||||
width: 200px;
|
||||
top: 18px;
|
||||
}
|
||||
|
||||
|
||||
/* section */
|
||||
section {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 800px;
|
||||
padding:0px 20px 0px 10px;
|
||||
}
|
||||
|
||||
/* wall item */
|
||||
.tread-wrapper {
|
||||
background-color: @ThreadBackgroundColor;
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
width: 780px;
|
||||
}
|
||||
.wall-item-decor { position: absolute; left: 790px; top: -10px; width: 16px;}
|
||||
.unstarred { display: none; }
|
||||
|
||||
.wall-item-container {
|
||||
display: table;
|
||||
width: 780px;
|
||||
|
||||
.wall-item-item,
|
||||
.wall-item-bottom { display: table-row; }
|
||||
|
||||
.wall-item-bottom { .opaque(0.5); }
|
||||
&:hover .wall-item-bottom { .opaque(1); }
|
||||
.wall-item-info {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
width: 60px;
|
||||
|
||||
}
|
||||
.wall-item-location {
|
||||
word-wrap: break-word;
|
||||
width: 50px;
|
||||
}
|
||||
.wall-item-content {
|
||||
display: table-cell;
|
||||
font-size: 12px;
|
||||
max-width: 720px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.wall-item-content img { max-width: 710px; }
|
||||
.wall-item-links,
|
||||
.wall-item-actions {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
|
||||
.icon {
|
||||
.opaque(0.5);
|
||||
}
|
||||
.icon:hover {
|
||||
.opaque(1.0);
|
||||
}
|
||||
}
|
||||
|
||||
.wall-item-ago { padding-right: 40px; }
|
||||
.wall-item-name { font-weight: bold; }
|
||||
|
||||
.wall-item-actions-author { float: left; width: 20em; margin-top: 0.5em; }
|
||||
.wall-item-actions-social { float: left; margin-top: 0.5em;
|
||||
a { margin-right: 3em; }
|
||||
}
|
||||
.wall-item-actions-tools { float: right; width: 15%;
|
||||
a { float: right; }
|
||||
input { float: right; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
.wall-item-container.comment {
|
||||
/*margin-top: 50px;*/
|
||||
.contact-photo { width: 32px; height: 32px; margin-left: 16px;
|
||||
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
|
||||
}
|
||||
.contact-photo-menu-button {
|
||||
top: 15px !important;
|
||||
left: 15px !important;
|
||||
}
|
||||
.wall-item-links { padding-left: 12px; }
|
||||
}
|
||||
|
||||
.wall-item-comment-wrapper {
|
||||
margin: 30px 2em 2em 60px;
|
||||
.comment-edit-photo { display: none; }
|
||||
textarea {
|
||||
height: 1em; width: 100%; font-size: 10px;
|
||||
color: @CommentBoxEmptyColor;
|
||||
border: 1px solid @CommentBoxEmptyBorderColor;
|
||||
padding:0.3em;
|
||||
}
|
||||
.comment-edit-text-full {
|
||||
font-size: 14px;
|
||||
height: 4em;
|
||||
color: @CommentBoxFullColor;
|
||||
border: 1px solid @CommentBoxFullBorderColor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.wall-item-tags { padding-top: 5px; }
|
||||
.tag {
|
||||
background: url("../../../images/tag_b.png") no-repeat center left;
|
||||
color: @TagColor;
|
||||
padding-left: 3px;
|
||||
a {
|
||||
padding-right: 8px;
|
||||
background: url("../../../images/tag.png") no-repeat center right;
|
||||
color: @TagColor;
|
||||
}
|
||||
}
|
||||
|
||||
/* contacts menu */
|
||||
.contact-photo-wrapper { position: relative; }
|
||||
.contact-photo {
|
||||
width: 48px; height: 48px;
|
||||
img { width: 48px; height: 48px; }
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
.contact-photo-menu-button {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: -2px;
|
||||
top: 31px;
|
||||
}
|
||||
|
||||
.contact-wrapper {
|
||||
float: left;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
.contact-photo {
|
||||
width: 80px; height: 80px;
|
||||
img { width: 80px; height: 80px; }
|
||||
}
|
||||
.contact-photo-menu-button {
|
||||
left: 0px;
|
||||
top: 63px;
|
||||
}
|
||||
}
|
||||
.directory-item {
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
.contact-photo {
|
||||
width: 175px; height: 175px;
|
||||
img { width: 175px; height: 175px; }
|
||||
}
|
||||
}
|
||||
.contact-name { text-align: center; font-weight: bold; }
|
||||
.contact-details { color: @Grey3;}
|
||||
|
||||
/* editor */
|
||||
.jothidden { display: none; }
|
||||
#jot {
|
||||
|
||||
width: 100%;
|
||||
margin: 0px 2em 20px 0px;
|
||||
|
||||
|
||||
.profile-jot-text {
|
||||
height: 1em; width: 99%; font-size: 10px;
|
||||
color: @CommentBoxEmptyColor;
|
||||
border: 1px solid @CommentBoxEmptyBorderColor;
|
||||
padding:0.3em;
|
||||
}
|
||||
|
||||
#jot-tools {
|
||||
margin: 0px; padding: 0px;
|
||||
height: 40px; overflow: none;
|
||||
width: 800px;
|
||||
background-color: @JotToolsBackgroundColor;
|
||||
border-bottom: 2px solid @JotToolsBorderColor;
|
||||
li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
width: 80px;
|
||||
height: 40px;
|
||||
border-bottom: 2px solid @JotToolsBorderColor;
|
||||
a {
|
||||
display: block;
|
||||
color: @JotToolsText;
|
||||
width: 100%;
|
||||
height:40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
li:hover {
|
||||
background-color: @JotToolsOverBackgroundColor;
|
||||
border-bottom: 2px solid @JotToolsOverBorderColor;
|
||||
}
|
||||
li.perms {
|
||||
float: right;
|
||||
width: 40px;
|
||||
a.unlock {
|
||||
width: 30px;
|
||||
border-left: 10px solid @JotPermissionUnlockBackgroundColor;
|
||||
background-color: @JotPermissionUnlockBackgroundColor;
|
||||
}
|
||||
a.lock {
|
||||
width: 30px;
|
||||
border-left: 10px solid @JotPermissionLockBackgroundColor;
|
||||
background-color: @JotPermissionLockBackgroundColor;
|
||||
}
|
||||
|
||||
}
|
||||
li.submit {
|
||||
float: right;
|
||||
background-color: @JotSubmitBackgroundColor;
|
||||
border-bottom: 2px solid @JotSubmitBackgroundColor;
|
||||
border-right: 1px solid @Grey4;
|
||||
border-left: 1px solid @Grey4;
|
||||
input {
|
||||
border: 0px; margin: 0px; padding: 0px;
|
||||
background-color: @JotSubmitBackgroundColor;
|
||||
color: @JotSubmitText;
|
||||
width: 80px; height: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
input:hover {
|
||||
background-color: @JotSubmitOverBackgroundColor;
|
||||
color: @JotSubmitOverText;
|
||||
}
|
||||
}
|
||||
li.loading {
|
||||
float: right;
|
||||
background-color: @JotLoadingBackgroundColor;
|
||||
width: 20px;
|
||||
vertical-align: center;
|
||||
text-align: center;
|
||||
img { margin-top: 10px; }
|
||||
border-top: 2px solid @JotToolsBorderColor;
|
||||
height: 38px;
|
||||
}
|
||||
}
|
||||
|
||||
#jot-title {
|
||||
border: 0px;
|
||||
margin: 0px;
|
||||
height: 20px;
|
||||
width: 700px;
|
||||
font-weight: bold;
|
||||
border: 1px solid @BodyBackground;
|
||||
|
||||
&:-webkit-input-placeholder {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
&:-moz-placeholder {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
&:hover { border: 1px solid @CommentBoxEmptyBorderColor }
|
||||
&:focus { border: 1px solid @CommentBoxEmptyBorderColor }
|
||||
}
|
||||
|
||||
#character-counter {
|
||||
width: 80px;
|
||||
float: right;
|
||||
text-align: right;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/** buttons **/
|
||||
/*input[type="submit"] {
|
||||
border: 0px;
|
||||
background-color: @ButtonBackgroundColor;
|
||||
color: @ButtonColor;
|
||||
padding: 0px 10px;
|
||||
.rounded(5px);
|
||||
height: 18px;
|
||||
}*/
|
||||
|
||||
|
||||
/** acl **/
|
||||
#photo-edit-perms-select,
|
||||
#photos-upload-permissions-wrapper,
|
||||
#profile-jot-acl-wrapper{
|
||||
display:block!important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#acl-wrapper {
|
||||
width: 690px;
|
||||
float:left;
|
||||
}
|
||||
#acl-search {
|
||||
float:right;
|
||||
background: #ffffff url("../../../images/search_18.png") no-repeat right center;
|
||||
padding-right:20px;
|
||||
}
|
||||
#acl-showall {
|
||||
float: left;
|
||||
display: block;
|
||||
width: auto;
|
||||
height: 18px;
|
||||
background-color: #cccccc;
|
||||
background-image: url("../../../images/show_all_off.png");
|
||||
background-position: 7px 7px;
|
||||
background-repeat: no-repeat;
|
||||
padding: 7px 5px 0px 30px;
|
||||
color: #999999;
|
||||
.rounded(5px);
|
||||
}
|
||||
#acl-showall.selected {
|
||||
color: #000000;
|
||||
background-color: #ff9900;
|
||||
background-image: url("../../../images/show_all_on.png");
|
||||
}
|
||||
|
||||
#acl-list {
|
||||
height: 210px;
|
||||
border: 1px solid #cccccc;
|
||||
clear: both;
|
||||
margin-top: 30px;
|
||||
overflow: auto;
|
||||
}
|
||||
#acl-list-content {
|
||||
|
||||
}
|
||||
.acl-list-item {
|
||||
display: block;
|
||||
width: 150px;
|
||||
height: 30px;
|
||||
border: 1px solid #cccccc;
|
||||
margin: 5px;
|
||||
float: left;
|
||||
}
|
||||
.acl-list-item img{
|
||||
width:22px;
|
||||
height: 22px;
|
||||
float: left;
|
||||
margin: 4px;
|
||||
}
|
||||
.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;}
|
||||
.acl-list-item a {
|
||||
font-size: 8px;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 10px;
|
||||
float: left;
|
||||
color: #999999;
|
||||
background-color: #cccccc;
|
||||
background-position: 3px 3px;
|
||||
background-repeat: no-repeat;
|
||||
margin-right: 5px;
|
||||
-webkit-border-radius: 2px ;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
#acl-wrapper a:hover {
|
||||
text-decoration: none;
|
||||
color:#000000;
|
||||
}
|
||||
.acl-button-show { background-image: url("../../../images/show_off.png"); }
|
||||
.acl-button-hide { background-image: url("../../../images/hide_off.png"); }
|
||||
|
||||
.acl-button-show.selected {
|
||||
color: #000000;
|
||||
background-color: #9ade00;
|
||||
background-image: url("../../../images/show_on.png");
|
||||
}
|
||||
.acl-button-hide.selected {
|
||||
color: #000000;
|
||||
background-color: #ff4141;
|
||||
background-image: url("../../../images/hide_on.png");
|
||||
}
|
||||
.acl-list-item.groupshow { border-color: #9ade00; }
|
||||
.acl-list-item.grouphide { border-color: #ff4141; }
|
||||
/** /acl **/
|
||||
|
||||
/** tab buttons **/
|
||||
ul.tabs {
|
||||
list-style-type: none;
|
||||
padding-bottom: 10px;
|
||||
|
||||
li {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
|
||||
.active {
|
||||
border-bottom: 1px solid @LinkVisited;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Form fields
|
||||
*/
|
||||
.field {
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
|
||||
|
||||
label {
|
||||
float: left;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
width: 400px;
|
||||
}
|
||||
textarea { height: 100px; }
|
||||
.field_help {
|
||||
display: block;
|
||||
margin-left: 200px;
|
||||
color: #666666;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.onoff {
|
||||
float: left;
|
||||
width: 80px;
|
||||
}
|
||||
.onoff a {
|
||||
display: block;
|
||||
border:1px solid #666666;
|
||||
background-image:url("../../../images/onoff.jpg");
|
||||
background-repeat: no-repeat;
|
||||
padding: 4px 2px 2px 2px;
|
||||
height: 16px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.onoff .off {
|
||||
border-color:#666666;
|
||||
padding-left: 40px;
|
||||
background-position: left center;
|
||||
background-color: #cccccc;
|
||||
color: #666666;
|
||||
text-align: right;
|
||||
}
|
||||
.onoff .on {
|
||||
border-color:#204A87;
|
||||
padding-right: 40px;
|
||||
background-position: right center;
|
||||
background-color: #D7E3F1;
|
||||
color: #204A87;
|
||||
text-align: left;
|
||||
}
|
||||
.hidden { display: none!important; }
|
||||
|
||||
&.radio .field_help { margin-left: 0px; }
|
||||
}
|
||||
|
||||
#profile-edit-links li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/* oauth */
|
||||
.oauthapp {
|
||||
height: auto; overflow: auto;
|
||||
border-bottom: 2px solid #cccccc;
|
||||
padding-bottom: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.oauthapp img {
|
||||
float: left;
|
||||
width: 48px; height: 48px;
|
||||
margin: 10px;
|
||||
}
|
||||
.oauthapp img.noicon {
|
||||
background-image: url("../../../images/icons/48/plugin.png");
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.oauthapp a {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* contacts */
|
||||
.contact-entry-wrapper {
|
||||
width: 50px; float: left;
|
||||
}
|
||||
|
||||
/* photo */
|
||||
.lframe {
|
||||
float: left;
|
||||
margin: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
|
||||
/* page footer */
|
||||
footer { height: 100px; display: table-row; }
|
|
@ -0,0 +1,87 @@
|
|||
|
||||
<div class="wall-item-decor">
|
||||
<span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
|
||||
{{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
|
||||
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
|
||||
</div>
|
||||
|
||||
<div class="wall-item-container $indent">
|
||||
<div class="wall-item-item">
|
||||
<div class="wall-item-info">
|
||||
<div class="contact-photo-wrapper"
|
||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
||||
<img src="$thumb" class="contact-photo$sparkle" id="wall-item-photo-$id" alt="$name" />
|
||||
</a>
|
||||
<a href="#" rel="#wall-item-photo-menu-$id" class="contact-photo-menu-button icon s16 menu" id="wall-item-photo-menu-button-$id">menu</a>
|
||||
<ul class="wall-item-menu menu-popup" id="wall-item-photo-menu-$id">
|
||||
$item_photo_menu
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-actions-author">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle">$name</span></a>
|
||||
<span class="wall-item-ago">-
|
||||
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="wall-item-content">
|
||||
{{ if $title }}<h2><a href="$plink.href">$title</a></h2>{{ endif }}
|
||||
$body
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links">
|
||||
</div>
|
||||
<div class="wall-item-tags">
|
||||
{{ for $tags as $tag }}
|
||||
<span class='tag'>$tag</span>
|
||||
{{ endfor }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="">
|
||||
{{ if $plink }}<a class="icon s16 link" title="$plink.title" href="$plink.href">$plink.title</a>{{ endif }}
|
||||
</div>
|
||||
<div class="wall-item-actions">
|
||||
|
||||
<div class="wall-item-location">$location </div>
|
||||
|
||||
<div class="wall-item-actions-social">
|
||||
{{ if $star }}
|
||||
<a href="#" id="star-$id" onclick="dostar($id); return false;" class="$star.classdo" title="$star.do">$star.do</a>
|
||||
<a href="#" id="unstar-$id" onclick="dostar($id); return false;" class="$star.classundo" title="$star.undo">$star.undo</a>
|
||||
<a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="$star.classtagger" title="$star.tagger">$star.tagger</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote }}
|
||||
<a href="#" id="like-$id" title="$vote.like.0" onclick="dolike($id,'like'); return false">$vote.like.1</a>
|
||||
<a href="#" id="dislike-$id" title="$vote.dislike.0" onclick="dolike($id,'dislike'); return false">$vote.dislike.1</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote.share }}
|
||||
<a href="#" id="share-$id" title="$vote.share.0" onclick="jotShare($id); return false">$vote.share.1</a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div class="wall-item-actions-tools">
|
||||
|
||||
{{ if $drop.dropping }}
|
||||
<input type="checkbox" title="$drop.select" name="itemselected[]" class="item-select" value="$id" />
|
||||
<a href="item/drop/$id" onclick="return confirmDelete();" class="icon delete s16" title="$drop.delete">$drop.delete</a>
|
||||
{{ endif }}
|
||||
{{ if $edpost }}
|
||||
<a class="icon edit s16" href="$edpost.0" title="$edpost.1"></a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links"></div>
|
||||
<div class="wall-item-like" id="wall-item-like-$id">$like</div>
|
||||
<div class="wall-item-dislike" id="wall-item-dislike-$id">$dislike</div>
|
||||
</div>
|
||||
</div>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
|
||||
**/
|
||||
// Less file http://lesscss.org/
|
||||
// compile with lessc
|
||||
// $ lessc style.less > style.css
|
||||
|
||||
@import "colors";
|
||||
@import "icons";
|
||||
@import "quattro";
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
{{ if $indent }}{{ else }}
|
||||
<div class="wall-item-decor">
|
||||
<span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
|
||||
{{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
|
||||
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
|
||||
</div>
|
||||
{{ endif }}
|
||||
<div class="wall-item-container $indent">
|
||||
<div class="wall-item-item">
|
||||
<div class="wall-item-info">
|
||||
<div class="contact-photo-wrapper"
|
||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="contact-photo-link" id="wall-item-photo-link-$id">
|
||||
<img src="$thumb" class="contact-photo$sparkle" id="wall-item-photo-$id" alt="$name" />
|
||||
</a>
|
||||
<a href="#" rel="#wall-item-photo-menu-$id" class="contact-photo-menu-button icon s16 menu" id="wall-item-photo-menu-button-$id">menu</a>
|
||||
<ul class="contact-menu menu-popup" id="wall-item-photo-menu-$id">
|
||||
$item_photo_menu
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-actions-author">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle">$name</span></a>
|
||||
<span class="wall-item-ago">-
|
||||
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="wall-item-content">
|
||||
|
||||
{{ if $title }}<h2><a href="$plink.href">$title</a></h2>{{ endif }}
|
||||
$body
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links">
|
||||
</div>
|
||||
<div class="wall-item-tags">
|
||||
{{ for $tags as $tag }}
|
||||
<span class='tag'>$tag</span>
|
||||
{{ endfor }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="">
|
||||
{{ if $plink }}<a class="icon s16 link" title="$plink.title" href="$plink.href">$plink.title</a>{{ endif }}
|
||||
</div>
|
||||
<div class="wall-item-actions">
|
||||
<div class="wall-item-location">$location </div>
|
||||
<div class="wall-item-actions-social">
|
||||
{{ if $star }}
|
||||
<a href="#" id="star-$id" onclick="dostar($id); return false;" class="$star.classdo" title="$star.do">$star.do</a>
|
||||
<a href="#" id="unstar-$id" onclick="dostar($id); return false;" class="$star.classundo" title="$star.undo">$star.undo</a>
|
||||
<a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="$star.classtagger" title="$star.tagger">$star.tagger</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote }}
|
||||
<a href="#" id="like-$id" title="$vote.like.0" onclick="dolike($id,'like'); return false">$vote.like.1</a>
|
||||
<a href="#" id="dislike-$id" title="$vote.dislike.0" onclick="dolike($id,'dislike'); return false">$vote.dislike.1</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote.share }}
|
||||
<a href="#" id="share-$id" title="$vote.share.0" onclick="jotShare($id); return false">$vote.share.1</a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div class="wall-item-actions-tools">
|
||||
|
||||
{{ if $drop.dropping }}
|
||||
<input type="checkbox" title="$drop.select" name="itemselected[]" class="item-select" value="$id" />
|
||||
<a href="item/drop/$id" onclick="return confirmDelete();" class="icon delete s16" title="$drop.delete">$drop.delete</a>
|
||||
{{ endif }}
|
||||
{{ if $edpost }}
|
||||
<a class="icon edit" href="$edpost.0" title="$edpost.1"></a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links"></div>
|
||||
<div class="wall-item-like" id="wall-item-like-$id">$like</div>
|
||||
<div class="wall-item-dislike" id="wall-item-dislike-$id">$dislike</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wall-item-comment-wrapper" >
|
||||
$comment
|
||||
</div>
|
|
@ -0,0 +1,97 @@
|
|||
{{ if $indent }}{{ else }}
|
||||
<div class="wall-item-decor">
|
||||
<span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
|
||||
{{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
|
||||
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
|
||||
</div>
|
||||
{{ endif }}
|
||||
<div class="wall-item-container $indent">
|
||||
<div class="wall-item-item">
|
||||
<div class="wall-item-info">
|
||||
<div class="contact-photo-wrapper mframe wwto" id="wall-item-ownerphoto-wrapper-$id" >
|
||||
<a href="$owner_url" target="redir" title="$olinktitle" class="contact-photo-link" id="wall-item-ownerphoto-link-$id">
|
||||
<img src="$owner_photo" class="contact-photo $osparkle" id="wall-item-ownerphoto-$id" alt="$owner_name" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="contact-photo-wrapper mframe wwfrom"
|
||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="contact-photo-link" id="wall-item-photo-link-$id">
|
||||
<img src="$thumb" class="contact-photo $sparkle" id="wall-item-photo-$id" alt="$name" />
|
||||
</a>
|
||||
<a href="#" rel="#wall-item-photo-menu-$id" class="contact-photo-menu-button icon s16 menu" id="wall-item-photo-menu-button-$id">menu</a>
|
||||
<ul class="contact-menu menu-popup" id="wall-item-photo-menu-$id">
|
||||
$item_photo_menu
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wall-item-actions-author">
|
||||
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle">$name</span></a>
|
||||
$to <a href="$owner_url" target="redir" title="$olinktitle" class="wall-item-name-link"><span class="wall-item-name$osparkle" id="wall-item-ownername-$id">$owner_name</span></a>
|
||||
$vwall <span class="wall-item-ago">-
|
||||
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="wall-item-content">
|
||||
{{ if $title }}<h2><a href="$plink.href">$title</a></h2>{{ endif }}
|
||||
$body
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links">
|
||||
</div>
|
||||
<div class="wall-item-tags">
|
||||
{{ for $tags as $tag }}
|
||||
<span class='tag'>$tag</span>
|
||||
{{ endfor }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links">
|
||||
{{ if $plink }}<a class="icon s16 link" title="$plink.title" href="$plink.href">$plink.title</a>{{ endif }}
|
||||
</div>
|
||||
<div class="wall-item-actions">
|
||||
|
||||
<div class="wall-item-location">$location </div>
|
||||
|
||||
<div class="wall-item-actions-social">
|
||||
{{ if $star }}
|
||||
<a href="#" id="star-$id" onclick="dostar($id); return false;" class="$star.classdo" title="$star.do">$star.do</a>
|
||||
<a href="#" id="unstar-$id" onclick="dostar($id); return false;" class="$star.classundo" title="$star.undo">$star.undo</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote }}
|
||||
<a href="#" id="like-$id" title="$vote.like.0" onclick="dolike($id,'like'); return false">$vote.like.1</a>
|
||||
<a href="#" id="dislike-$id" title="$vote.dislike.0" onclick="dolike($id,'dislike'); return false">$vote.dislike.1</a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $vote.share }}
|
||||
<a href="#" id="share-$id" title="$vote.share.0" onclick="jotShare($id); return false">$vote.share.1</a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div class="wall-item-actions-tools">
|
||||
|
||||
{{ if $drop.dropping }}
|
||||
<input type="checkbox" title="$drop.select" name="itemselected[]" class="item-select" value="$id" />
|
||||
<a href="item/drop/$id" onclick="return confirmDelete();" class="icon delete s16" title="$drop.delete">$drop.delete</a>
|
||||
{{ endif }}
|
||||
{{ if $edpost }}
|
||||
<a class="icon edit s16" href="$edpost.0" title="$edpost.1"></a>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-bottom">
|
||||
<div class="wall-item-links"></div>
|
||||
<div class="wall-item-like" id="wall-item-like-$id">$like</div>
|
||||
<div class="wall-item-dislike" id="wall-item-dislike-$id">$dislike</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wall-item-comment-wrapper" >
|
||||
$comment
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user