mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-23 09:15:14 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
fb1e6ca6c1
12 changed files with 76 additions and 83 deletions
2
boot.php
2
boot.php
|
@ -48,7 +48,7 @@ require_once('include/AccessList.php');
|
||||||
|
|
||||||
define ( 'PLATFORM_NAME', 'hubzilla' );
|
define ( 'PLATFORM_NAME', 'hubzilla' );
|
||||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')));
|
define ( 'RED_VERSION', trim(file_get_contents('version.inc')));
|
||||||
define ( 'STD_VERSION', '1.1.2' );
|
define ( 'STD_VERSION', '1.1.3' );
|
||||||
define ( 'ZOT_REVISION', 1 );
|
define ( 'ZOT_REVISION', 1 );
|
||||||
|
|
||||||
define ( 'DB_UPDATE_VERSION', 1161 );
|
define ( 'DB_UPDATE_VERSION', 1161 );
|
||||||
|
|
|
@ -1,19 +1,23 @@
|
||||||
[h3]Plugins/Addons[/h3]
|
[h3]Plugins/Addons[/h3]
|
||||||
[list=1]
|
[list=1]
|
||||||
[*] abcjsplugin - Create musical scores in your posts
|
[*] abcjsplugin - Create musical scores in your posts
|
||||||
|
[*] adultphotoflag - prevents nsfw photos from being displayed in public albums
|
||||||
[*] bbmath - use complex math expressions in your posts
|
[*] bbmath - use complex math expressions in your posts
|
||||||
[*] bookmarker - replace #^ with bookmark link in posts
|
[*] bookmarker - replace #^ with bookmark link in posts
|
||||||
[*] buglink - provide a bug reporting icon in the lower-left corner of every page
|
[*] buglink - provide a bug reporting icon in the lower-left corner of every page
|
||||||
[*] calc - a scientific calculator
|
[*] calc - a scientific calculator
|
||||||
|
[*] chess - cross domain identity aware interactive chess games
|
||||||
[*] chords - generate fingering charts and alternatives for every known guitar chord
|
[*] chords - generate fingering charts and alternatives for every known guitar chord
|
||||||
[*] custom_home - set a custom page as the hub start page
|
[*] custom_home - set a custom page as the hub start page
|
||||||
[*] diaspora - crosspost to a Diaspora account (different from the built-in Diaspora emulator)
|
[*] dfedfix - fixes some federation issues with Diaspora releases around aug-sep 2015
|
||||||
|
[*] diaspora - Diaspora protocol emulator
|
||||||
|
[*] diaspost - crosspost to a Diaspora account (different from the Diaspora protocol emulator)
|
||||||
[*] dirstats - show some interesting statistics generated by the driectory server
|
[*] dirstats - show some interesting statistics generated by the driectory server
|
||||||
[*] donate - provides a project donation page
|
[*] donate - provides a project donation page
|
||||||
[*] dwpost - crosspost to Dreamwidth
|
[*] dwpost - crosspost to Dreamwidth
|
||||||
[*] embedly - use the embedly (formerly ooehmbed) service to embed media from many providers
|
[*] embedly - use the embedly (formerly ooehmbed) service to embed media from many providers
|
||||||
[*] extcron - use an external cron service to run your hub's scheduled tasks
|
[*] extcron - use an external cron service to run your hub's scheduled tasks
|
||||||
[*] flattr - provides a "Flattr Us" button
|
[*] flattrwidget - provides a "Flattr Us" button
|
||||||
[*] flip - create upside down text
|
[*] flip - create upside down text
|
||||||
[*] fortunate - displays random quote (fortune cookie). Requires setting up a fortune server.
|
[*] fortunate - displays random quote (fortune cookie). Requires setting up a fortune server.
|
||||||
[*] frphotos - import photo albums from Friendica
|
[*] frphotos - import photo albums from Friendica
|
||||||
|
@ -26,12 +30,15 @@
|
||||||
[*] libertree - crosspost to Libertree
|
[*] libertree - crosspost to Libertree
|
||||||
[*] likebanner - create a "like us on red#matrix" banner image
|
[*] likebanner - create a "like us on red#matrix" banner image
|
||||||
[*] ljpost - crosspost to LiveJournal
|
[*] ljpost - crosspost to LiveJournal
|
||||||
|
[*] logrot - logfile rotation utility
|
||||||
[*] mahjongg - Chinese puzzle game
|
[*] mahjongg - Chinese puzzle game
|
||||||
[*] mailhost - when using multiple channel clones, select one to receive email notifications
|
[*] mailhost - when using multiple channel clones, select one to receive email notifications
|
||||||
[*] mayan_places - set location field to a random city in the Mayan world
|
[*] mayan_places - set location field to a random city in the Mayan world
|
||||||
[*] morechoice - additional gender/sexual-preference choices for profiles (not safe for work)
|
[*] morechoice - additional gender/sexual-preference choices for profiles (not safe for work)
|
||||||
[*] moremoods - Additional mood options
|
[*] moremoods - Additional mood options
|
||||||
[*] morepokes - additional poke options (not safe for work)
|
[*] morepokes - additional poke options (not safe for work)
|
||||||
|
[*] msgfooter - provide legal or other text on each outgoing post
|
||||||
|
[*] nofed - prevent "federation" of channel posts, maintains all interaction on your site
|
||||||
[*] nsabait - add random terrorism related hashtags to your posts
|
[*] nsabait - add random terrorism related hashtags to your posts
|
||||||
[*] nsfw - Highly recommended plugin to collpase posts with inappropriate content
|
[*] nsfw - Highly recommended plugin to collpase posts with inappropriate content
|
||||||
[*] openclipatar - choose a profile photo from hundreds of royalty free images
|
[*] openclipatar - choose a profile photo from hundreds of royalty free images
|
||||||
|
@ -42,21 +49,29 @@
|
||||||
[*] qrator - generate QR code images
|
[*] qrator - generate QR code images
|
||||||
[*] rainbowtag - display your tag and category clouds in colours
|
[*] rainbowtag - display your tag and category clouds in colours
|
||||||
[*] randpost - post/reply bot based on and requires fortunate
|
[*] randpost - post/reply bot based on and requires fortunate
|
||||||
|
[*] redfiles - import file storage from redmatrix
|
||||||
|
[*] redphotos - import photo albums from redmatrix
|
||||||
[*] redred - Crosspost to another Red Matrix or Hubzilla channel
|
[*] redred - Crosspost to another Red Matrix or Hubzilla channel
|
||||||
[*] rtof - Crosspost to Friendica
|
[*] rtof - Crosspost to Friendica
|
||||||
|
[*] sendzid - add 'zid' auth parmaters to all outbound links, not just in-network links
|
||||||
|
[*] skeleton - sample addon/plugin to demonstrate plugin development
|
||||||
[*] smiley_pack - extend the built-in smilie (emoticon) support
|
[*] smiley_pack - extend the built-in smilie (emoticon) support
|
||||||
[*] smileybutton - provides a smiley selector on the post window
|
[*] smileybutton - provides a smiley selector on the post window
|
||||||
[*] startpage - set a personal preferred page to redirect after logging in.
|
[*] startpage - set a personal preferred page to redirect after logging in.
|
||||||
|
[*] statistics_json - Diaspora statistics generator
|
||||||
[*] statusnet - GNU-social and StatusNet crosspost [zrl=[baseurl]/help/addons_gnusocial]Posting To Gnu Social[/zrl]
|
[*] statusnet - GNU-social and StatusNet crosspost [zrl=[baseurl]/help/addons_gnusocial]Posting To Gnu Social[/zrl]
|
||||||
[*] superblock - Highly recommended - completely block an offensive channel from your stream
|
[*] superblock - Highly recommended - completely block an offensive channel from your stream
|
||||||
|
[*] testdrive - Turns your hub into a test drive site with accounts that expire after a trail period.
|
||||||
[*] tictac - 3D tic-tac-toe
|
[*] tictac - 3D tic-tac-toe
|
||||||
[*] torch - flashlight app
|
[*] torch - flashlight app
|
||||||
[*] tour - feature tour for new members
|
[*] tour - feature tour for new members
|
||||||
[*] twitter - crosspost to Twitter
|
[*] twitter - crosspost to Twitter
|
||||||
[*] upload_limits - discover what server setting (there are a few) may be causing large photo uploads to fail
|
[*] upload_limits - discover what server setting (there are a few) may be causing large photo uploads to fail
|
||||||
[*] visage - show visitors to your channel
|
[*] visage - show visitors to your channel
|
||||||
|
[*] wholikesme - provides a page to display what connections have 'liked' your posts the most
|
||||||
[*] webRTC - use an external server (mayfirst.org) to negotiate webRTC hookups
|
[*] webRTC - use an external server (mayfirst.org) to negotiate webRTC hookups
|
||||||
[*] wppost - crosspost to WordPress (or other wordpress XMLRPC service)
|
[*] wppost - crosspost to WordPress (or other wordpress XMLRPC service)
|
||||||
|
[*] xmpp - XMPP chat based on converse.js
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
[h3]Addon Repositories[/h3]
|
[h3]Addon Repositories[/h3]
|
||||||
|
|
|
@ -331,6 +331,7 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($channel_id)
|
intval($channel_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
// if this was the default channel, set another one as default
|
// if this was the default channel, set another one as default
|
||||||
if($a->account['account_default_channel'] == $channel_id) {
|
if($a->account['account_default_channel'] == $channel_id) {
|
||||||
$r = q("select channel_id from channel where channel_account_id = %d and channel_removed = 0 limit 1",
|
$r = q("select channel_id from channel where channel_account_id = %d and channel_removed = 0 limit 1",
|
||||||
|
@ -344,12 +345,11 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$rr = q("update account set account_default_channel = 0 where account_id = %d",
|
$rr = q("update account set account_default_channel = 0 where account_id = %d",
|
||||||
intval($r[0]['channel_id']),
|
intval($a->account['account_id'])
|
||||||
intval($a->account['account_id']));
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
logger('deleting hublocs',LOGGER_DEBUG);
|
logger('deleting hublocs',LOGGER_DEBUG);
|
||||||
|
|
||||||
$r = q("update hubloc set hubloc_deleted = 1 where hubloc_hash = '%s' and hubloc_url = '%s' ",
|
$r = q("update hubloc set hubloc_deleted = 1 where hubloc_hash = '%s' and hubloc_url = '%s' ",
|
||||||
|
|
|
@ -942,25 +942,35 @@ function item_photo_menu($item){
|
||||||
$clean_url = normalise_link($item['author-link']);
|
$clean_url = normalise_link($item['author-link']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$menu = Array(
|
$poco_rating = get_config('system','poco_rating_enable');
|
||||||
|
// if unset default to enabled
|
||||||
|
if($poco_rating === false)
|
||||||
|
$poco_rating = true;
|
||||||
|
|
||||||
|
$ratings_url = (($poco_rating) ? z_root() . '/ratings/' . urlencode($item['author_xchan']) : '');
|
||||||
|
|
||||||
|
$post_menu = Array(
|
||||||
t("View Source") => $vsrc_link,
|
t("View Source") => $vsrc_link,
|
||||||
t("Follow Thread") => $sub_link,
|
t("Follow Thread") => $sub_link,
|
||||||
t("Unfollow Thread") => $unsub_link,
|
t("Unfollow Thread") => $unsub_link,
|
||||||
t("View Status") => $status_link,
|
);
|
||||||
|
|
||||||
|
$author_menu = array(
|
||||||
t("View Profile") => $profile_link,
|
t("View Profile") => $profile_link,
|
||||||
t("View Photos") => $photos_link,
|
|
||||||
t("Activity/Posts") => $posts_link,
|
t("Activity/Posts") => $posts_link,
|
||||||
t("Connect") => $follow_url,
|
t("Connect") => $follow_url,
|
||||||
t("Edit Connection") => $contact_url,
|
t("Edit Connection") => $contact_url,
|
||||||
t("Send PM") => $pm_url,
|
t("Message") => $pm_url,
|
||||||
|
t('Ratings') => $ratings_url,
|
||||||
t("Poke") => $poke_link
|
t("Poke") => $poke_link
|
||||||
);
|
);
|
||||||
|
|
||||||
$args = array('item' => $item, 'menu' => $menu);
|
|
||||||
|
$args = array('item' => $item, 'post_menu' => $post_menu, 'author_menu' => $author_menu);
|
||||||
|
|
||||||
call_hooks('item_photo_menu', $args);
|
call_hooks('item_photo_menu', $args);
|
||||||
|
|
||||||
$menu = $args['menu'];
|
$menu = array_merge($args['post_menu'],$args['author_menu']);
|
||||||
|
|
||||||
$o = "";
|
$o = "";
|
||||||
foreach($menu as $k=>$v){
|
foreach($menu as $k=>$v){
|
||||||
|
|
|
@ -812,7 +812,7 @@ function contact_block() {
|
||||||
);
|
);
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$contacts = sprintf( tt('%d Connection','%d Connections', $total),$total);
|
$contacts = t('Connections');
|
||||||
$micropro = Array();
|
$micropro = Array();
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
$rr['archived'] = (intval($rr['abook_archived']) ? true : false);
|
$rr['archived'] = (intval($rr['abook_archived']) ? true : false);
|
||||||
|
@ -825,7 +825,7 @@ function contact_block() {
|
||||||
$o = replace_macros($tpl, array(
|
$o = replace_macros($tpl, array(
|
||||||
'$contacts' => $contacts,
|
'$contacts' => $contacts,
|
||||||
'$nickname' => $a->profile['channel_address'],
|
'$nickname' => $a->profile['channel_address'],
|
||||||
'$viewconnections' => t('View Connections'),
|
'$viewconnections' => (($total > $shown) ? sprintf(t('View all %s connections'),$total) : ''),
|
||||||
'$micropro' => $micropro,
|
'$micropro' => $micropro,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -1110,16 +1110,18 @@ function widget_rating($arr) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$o = '<div class="widget">';
|
||||||
|
$o .= '<h3>' . t('Rating Tools') . '</h3>';
|
||||||
|
|
||||||
if((($remote) || (local_channel())) && (! $self)) {
|
if((($remote) || (local_channel())) && (! $self)) {
|
||||||
$o = '<div class="widget rateme">';
|
|
||||||
if($remote)
|
if($remote)
|
||||||
$o .= '<a class="rateme" href="' . $url . '"><i class="icon-pencil"></i> ' . t('Rate Me') . '</a>';
|
$o .= '<a class="btn btn-block btn-primary btn-sm" href="' . $url . '"><i class="icon-pencil"></i> ' . t('Rate Me') . '</a>';
|
||||||
else
|
else
|
||||||
$o .= '<div class="rateme fakelink" onclick="doRatings(\'' . $hash . '\'); return false;"><i class="icon-pencil"></i> ' . t('Rate Me') . '</div>';
|
$o .= '<div class="btn btn-block btn-primary btn-sm" onclick="doRatings(\'' . $hash . '\'); return false;"><i class="icon-pencil"></i> ' . t('Rate Me') . '</div>';
|
||||||
$o .= '</div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$o .= '<div class="widget rateme"><a class="rateme" href="ratings/' . $hash . '"><i class="icon-eye-open"></i> ' . t('View Ratings') . '</a>';
|
$o .= '<a class="btn btn-block btn-default btn-sm" href="ratings/' . $hash . '"><i class="icon-eye-open"></i> ' . t('View Ratings') . '</a>';
|
||||||
$o .= '</div>';
|
$o .= '</div>';
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
|
|
21
mod/item.php
21
mod/item.php
|
@ -817,25 +817,26 @@ function item_post(&$a) {
|
||||||
dbesc($body)
|
dbesc($body)
|
||||||
);
|
);
|
||||||
|
|
||||||
if($z && $z[0]['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) {
|
if($z) {
|
||||||
$datarray['cancel'] = 1;
|
foreach($z as $zz) {
|
||||||
notice( t('Duplicate post suppressed.') . EOL);
|
if($zz['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) {
|
||||||
logger('Duplicate post. Faking plugin cancel.');
|
$datarray['cancel'] = 1;
|
||||||
|
notice( t('Duplicate post suppressed.') . EOL);
|
||||||
|
logger('Duplicate post. Faking plugin cancel.');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
call_hooks('post_local',$datarray);
|
call_hooks('post_local',$datarray);
|
||||||
|
|
||||||
if(x($datarray,'cancel')) {
|
if(x($datarray,'cancel')) {
|
||||||
logger('mod_item: post cancelled by plugin.');
|
logger('mod_item: post cancelled by plugin or duplicate suppressed.');
|
||||||
if($return_path) {
|
if($return_path)
|
||||||
goaway($a->get_baseurl() . "/" . $return_path);
|
goaway($a->get_baseurl() . "/" . $return_path);
|
||||||
}
|
|
||||||
|
|
||||||
$json = array('cancel' => 1);
|
$json = array('cancel' => 1);
|
||||||
if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload']))
|
$json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload'];
|
||||||
$json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload'];
|
|
||||||
|
|
||||||
echo json_encode($json);
|
echo json_encode($json);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
2016-01-18.1282H
|
2016-01-20.1284H
|
||||||
|
|
|
@ -310,6 +310,11 @@ footer {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.connect-btn-wrapper {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.profile-edit-side-link {
|
.profile-edit-side-link {
|
||||||
padding: 3px 0px;
|
padding: 3px 0px;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -475,53 +480,15 @@ footer {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rconnect {
|
|
||||||
display: block;
|
|
||||||
color: $nav_active_icon_colour;
|
|
||||||
margin-top: 15px;
|
|
||||||
background-color: $nav_bg;
|
|
||||||
-webkit-border-radius: $radiuspx ;
|
|
||||||
-moz-border-radius: $radiuspx;
|
|
||||||
border-radius: $radiuspx;
|
|
||||||
border: 1px solid $nav_bd;
|
|
||||||
padding: 5px;
|
|
||||||
font-weight: bold;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.rateme, div.rateme {
|
|
||||||
display: block;
|
|
||||||
color: $nav_active_icon_colour;
|
|
||||||
background-color: $nav_bg;
|
|
||||||
-webkit-border-radius: $radiuspx ;
|
|
||||||
-moz-border-radius: $radiuspx;
|
|
||||||
border-radius: $radiuspx;
|
|
||||||
border: 1px solid $nav_bd;
|
|
||||||
padding: 5px;
|
|
||||||
font-weight: bold;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pause {
|
#pause {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#vcard-end {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contact-block {
|
#contact-block {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
float: left;
|
float: left;
|
||||||
background-color: rgba(254,254,254,0.5);
|
|
||||||
border-bottom: 1px solid rgba(238,238,238,0.8);
|
|
||||||
-moz-border-radius: $radiuspx;
|
|
||||||
-webkit-border-radius: $radiuspx;
|
|
||||||
border-radius: $radiuspx;
|
|
||||||
padding: 10px;
|
|
||||||
margin-bottom:10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#contact-block-numcontacts {
|
#contact-block-numcontacts {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
<div id="contact-block">
|
<div id="contact-block" class="widget">
|
||||||
<div id="contact-block-numcontacts">{{$contacts}}</div>
|
<h3>{{$contacts}}</h3>
|
||||||
{{if $micropro}}
|
{{if $micropro}}
|
||||||
|
{{if $viewconnections}}
|
||||||
<a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
|
<a class="allcontact-link" href="viewconnections/{{$nickname}}">{{$viewconnections}}</a>
|
||||||
|
{{/if}}
|
||||||
<div class='contact-block-content'>
|
<div class='contact-block-content'>
|
||||||
{{foreach $micropro as $m}}
|
{{foreach $micropro as $m}}
|
||||||
{{$m}}
|
{{$m}}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
<div class="vcard">
|
<div class="vcard">
|
||||||
<div id="profile-photo-wrapper"><img class="photo" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
|
<div id="profile-photo-wrapper"><img class="photo" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
|
||||||
|
{{if $connect}}
|
||||||
|
<div class="connect-btn-wrapper"><a href="{{$connect_url}}" class="btn btn-block btn-success btn-sm"><i class="icon-plus"></i> {{$connect}}</a></div>
|
||||||
|
{{/if}}
|
||||||
{{if $profile.edit}}
|
{{if $profile.edit}}
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil" title="{{$profile.edit.1}}" ></i></a>
|
<a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil" title="{{$profile.edit.1}}" ></i></a>
|
||||||
|
@ -45,17 +48,11 @@
|
||||||
{{if $diaspora}}
|
{{if $diaspora}}
|
||||||
{{include file="diaspora_vcard.tpl"}}
|
{{include file="diaspora_vcard.tpl"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
</div>
|
||||||
{{if $connect}}
|
<div id="clear"></div>
|
||||||
<a href="{{$connect_url}}" class="rconnect"><i class="icon-plus connect-icon"></i> {{$connect}}</a>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{$rating}}
|
{{$rating}}
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="vcard-end"></div>
|
|
||||||
|
|
||||||
|
|
||||||
{{$chanmenu}}
|
{{$chanmenu}}
|
||||||
|
|
||||||
{{$contact_block}}
|
{{$contact_block}}
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
<div class="vcard">
|
<div class="vcard">
|
||||||
<div id="profile-photo-wrapper"><a href="{{$link}}"><img class="vcard-photo photo" src="{{$photo}}" alt="{{$name}}" /></a></div>
|
<div id="profile-photo-wrapper"><a href="{{$link}}"><img class="vcard-photo photo" src="{{$photo}}" alt="{{$name}}" /></a></div>
|
||||||
|
{{if $connect}}
|
||||||
|
<div class="connect-btn-wrapper"><a href="follow?f=&url={{$follow}}" class="btn btn-block btn-success btn-sm"><i class="icon-plus"></i> {{$connect}}</a></div>
|
||||||
|
{{/if}}
|
||||||
<div class="fn">{{$name}}</div>
|
<div class="fn">{{$name}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{if $mode != 'mail'}}
|
|
||||||
{{if $connect}}
|
|
||||||
<a href="follow?f=&url={{$follow}}" class="rconnect"><i class="icon-plus connect-icon"></i> {{$connect}}</a>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
|
|
Loading…
Reference in a new issue