Merge pull request #1975 from rabuzarus/template_rework

Template rework for contact related pages
This commit is contained in:
Tobias Diekershoff 2015-10-27 08:59:03 +01:00
commit 4079084492
30 changed files with 463 additions and 269 deletions

View File

@ -27,6 +27,9 @@ function contacts_init(&$a) {
require_once('include/group.php'); require_once('include/group.php');
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');
if ($_GET['nets'] == "all")
$_GET['nets'] = "";
if(! x($a->page,'aside')) if(! x($a->page,'aside'))
$a->page['aside'] = ''; $a->page['aside'] = '';
@ -35,29 +38,30 @@ function contacts_init(&$a) {
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array( $vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => htmlentities($a->data['contact']['name']), '$name' => htmlentities($a->data['contact']['name']),
'$photo' => $a->data['contact']['photo'], '$photo' => $a->data['contact']['photo'],
'$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? $a->get_baseurl()."/redir/".$a->data['contact']['id'] : $a->data['contact']['url'] '$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? $a->get_baseurl()."/redir/".$a->data['contact']['id'] : $a->data['contact']['url']
)); ));
$finpeople_widget = '';
$follow_widget = ''; $follow_widget = '';
$networks_widget = '';
} }
else { else {
$vcard_widget = ''; $vcard_widget = '';
$networks_widget .= networks_widget('contacts',$_GET['nets']);
if (isset($_GET['add'])) if (isset($_GET['add']))
$follow_widget = follow_widget($_GET['add']); $follow_widget = follow_widget($_GET['add']);
else else
$follow_widget = follow_widget(); $follow_widget = follow_widget();
$findpeople_widget .= findpeople_widget();
} }
if ($_GET['nets'] == "all")
$_GET['nets'] = "";
$groups_widget .= group_side('contacts','group',false,0,$contact_id); $groups_widget .= group_side('contacts','group',false,0,$contact_id);
$findpeople_widget .= findpeople_widget();
$networks_widget .= networks_widget('contacts',$_GET['nets']);
$a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array( $a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
'$vcard_widget' => $vcard_widget, '$vcard_widget' => $vcard_widget,
'$findpeople_widget' => $findpeople_widget,
'$follow_widget' => $follow_widget, '$follow_widget' => $follow_widget,
'$groups_widget' => $groups_widget, '$groups_widget' => $groups_widget,
'$findpeople_widget' => $findpeople_widget,
'$networks_widget' => $networks_widget '$networks_widget' => $networks_widget
)); ));
@ -810,6 +814,7 @@ function contacts_content(&$a) {
'$cmd' => $a->cmd, '$cmd' => $a->cmd,
'$contacts' => $contacts, '$contacts' => $contacts,
'$contact_drop_confirm' => t('Do you really want to delete this contact?'), '$contact_drop_confirm' => t('Do you really want to delete this contact?'),
'multiselect' => 1,
'$batch_actions' => array( '$batch_actions' => array(
'contacts_batch_update' => t('Update'), 'contacts_batch_update' => t('Update'),
'contacts_batch_block' => t('Block')."/".t("Unblock"), 'contacts_batch_block' => t('Block')."/".t("Unblock"),

View File

@ -8,6 +8,8 @@ function directory_init(&$a) {
$a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= follow_widget();
} }
else { else {
unset($_SESSION['theme']); unset($_SESSION['theme']);
@ -31,7 +33,7 @@ function directory_content(&$a) {
require_once("mod/proxy.php"); require_once("mod/proxy.php");
if((get_config('system','block_public')) && (! local_user()) && (! remote_user()) || if((get_config('system','block_public')) && (! local_user()) && (! remote_user()) ||
(get_config('system','block_local_dir')) && (! local_user()) && (! remote_user())) { (get_config('system','block_local_dir')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL); notice( t('Public access denied.') . EOL);
return; return;
} }
@ -44,27 +46,12 @@ function directory_content(&$a) {
else else
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : ''); $search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
$tpl = get_markup_template('directory_header.tpl'); $gdirpath = '';
$dirurl = get_config('system','directory');
$globaldir = ''; if(strlen($dirurl)) {
$gdirpath = get_config('system','directory'); $gdirpath = zrl($dirurl,true);
if(strlen($gdirpath)) {
$globaldir = '<ul><li><div id="global-directory-link"><a href="'
. zrl($gdirpath,true) . '">' . t('Global Directory') . '</a></div></li></ul>';
} }
$admin = '';
$o .= replace_macros($tpl, array(
'$search' => $search,
'$globaldir' => $globaldir,
'$desc' => t('Find on this site'),
'$admin' => $admin,
'$finding' => (strlen($search) ? '<h4>' . t('Finding: ') . "'" . $search . "'" . '</h4>' : ""),
'$sitedir' => t('Site Directory'),
'$submit' => t('Find')
));
if($search) { if($search) {
$search = dbesc($search); $search = dbesc($search);
@ -159,8 +146,6 @@ function directory_content(&$a) {
$about = ((x($profile,'about') == 1) ? t('About:') : False); $about = ((x($profile,'about') == 1) ? t('About:') : False);
$tpl = get_markup_template('directory_item.tpl');
if($a->theme['template_engine'] === 'internal') { if($a->theme['template_engine'] === 'internal') {
$location_e = template_escape($location); $location_e = template_escape($location);
} }
@ -168,23 +153,23 @@ function directory_content(&$a) {
$location_e = $location; $location_e = $location;
} }
$entry = replace_macros($tpl,array( $entry = array(
'$id' => $rr['id'], 'id' => $rr['id'],
'$profile_link' => $profile_link, 'url' => $profile_link,
'$photo' => proxy_url($a->get_cached_avatar_image($rr[$photo]), false, PROXY_SIZE_THUMB), 'thumb' => proxy_url($a->get_cached_avatar_image($rr[$photo]), false, PROXY_SIZE_THUMB),
'$alt_text' => $rr['name'], 'img_hover' => $rr['name'],
'$name' => $rr['name'], 'name' => $rr['name'],
'$details' => $pdesc . $details, 'details' => $pdesc . $details,
'$page_type' => $page_type, 'page_type' => $page_type,
'$profile' => $profile, 'profile' => $profile,
'$location' => $location_e, 'location' => $location_e,
'$gender' => $gender, 'gender' => $gender,
'$pdesc' => $pdesc, 'pdesc' => $pdesc,
'$marital' => $marital, 'marital' => $marital,
'$homepage' => $homepage, 'homepage' => $homepage,
'$about' => $about, 'about' => $about,
)); );
$arr = array('contact' => $rr, 'entry' => $entry); $arr = array('contact' => $rr, 'entry' => $entry);
@ -193,12 +178,27 @@ function directory_content(&$a) {
unset($profile); unset($profile);
unset($location); unset($location);
$o .= $entry; if(! $arr['entry'])
continue;
$entries[] = $arr['entry'];
} }
$o .= "<div class=\"directory-end\" ></div>\r\n"; $tpl = get_markup_template('directory_header.tpl');
$o .= paginate($a);
$o .= replace_macros($tpl, array(
'$search' => $search,
'$globaldir' => t('Global Directory'),
'$gdirpath' => $gdirpath,
'$desc' => t('Find on this site'),
'$contacts' => $entries,
'$finding' => t('Finding:'),
'$findterm' => (strlen($search) ? $search : ""),
'$title' => t('Site Directory'),
'$submit' => t('Find'),
'$paginate' => paginate($a),
));
} }
else else

View File

@ -2,6 +2,7 @@
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php'); require_once('include/Contact.php');
require_once('include/contact_selectors.php');
function dirfind_init(&$a) { function dirfind_init(&$a) {
@ -13,9 +14,9 @@ function dirfind_init(&$a) {
if(! x($a->page,'aside')) if(! x($a->page,'aside'))
$a->page['aside'] = ''; $a->page['aside'] = '';
$a->page['aside'] .= follow_widget();
$a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= follow_widget();
} }
@ -38,10 +39,6 @@ function dirfind_content(&$a, $prefix = "") {
$o = ''; $o = '';
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => sprintf( t('People Search - %s'), $search)
));
if($search) { if($search) {
if ($local) { if ($local) {
@ -61,7 +58,7 @@ function dirfind_content(&$a, $prefix = "") {
dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)),
dbesc(escape_tags($search)), dbesc(escape_tags($search))); dbesc(escape_tags($search)), dbesc(escape_tags($search)));
$results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`photo`, `gcontact`.`keywords` $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`photo`, `gcontact`.`network` , `gcontact`.`keywords`
FROM `gcontact` FROM `gcontact`
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
AND `contact`.`uid` = %d AND NOT `contact`.`blocked` AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
@ -80,7 +77,7 @@ function dirfind_content(&$a, $prefix = "") {
$j = new stdClass(); $j = new stdClass();
$j->total = $count[0]["total"]; $j->total = $count[0]["total"];
$j->items_page = $perpage; $j->items_page = $perpage;
$j->page = $a->pager['page']; $j->page = $a->pager['page'];
foreach ($results AS $result) { foreach ($results AS $result) {
if (poco_alternate_ostatus_url($result["url"])) if (poco_alternate_ostatus_url($result["url"]))
continue; continue;
@ -96,6 +93,7 @@ function dirfind_content(&$a, $prefix = "") {
$objresult->url = $result["url"]; $objresult->url = $result["url"];
$objresult->photo = $result["photo"]; $objresult->photo = $result["photo"];
$objresult->tags = $result["keywords"]; $objresult->tags = $result["keywords"];
$objresult->network = $result["network"];
$j->results[] = $objresult; $j->results[] = $objresult;
} }
@ -121,7 +119,6 @@ function dirfind_content(&$a, $prefix = "") {
$id = 0; $id = 0;
$tpl = get_markup_template('match.tpl');
foreach($j->results as $jj) { foreach($j->results as $jj) {
// If We already know this contact then don't show the "connect" button // If We already know this contact then don't show the "connect" button
@ -143,17 +140,29 @@ function dirfind_content(&$a, $prefix = "") {
$jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo); $jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo);
$o .= replace_macros($tpl,array( $entry = array(
'$url' => zrl($jj->url), 'url' => zrl($jj->url),
'$name' => htmlentities($jj->name), 'itemurl' => $jj->url,
'$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB), 'name' => htmlentities($jj->name),
'$tags' => $jj->tags, 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
'$conntxt' => $conntxt, 'img_hover' => $jj->tags,
'$connlnk' => $connlnk, 'conntxt' => $conntxt,
'$photo_menu' => $photo_menu, 'connlnk' => $connlnk,
'$id' => ++$id, 'photo_menu' => $photo_menu,
)); 'network' => network_to_name($jj->network, $jj->url),
'id' => ++$id,
);
$entries[] = $entry;
} }
$tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
'title' => sprintf( t('People Search - %s'), $search),
'$contacts' => $entries,
'$paginate' => paginate($a),
));
} }
else { else {
info( t('No matches') . EOL); info( t('No matches') . EOL);
@ -161,7 +170,5 @@ function dirfind_content(&$a, $prefix = "") {
} }
$o .= '<div class="clear"></div>';
$o .= paginate($a);
return $o; return $o;
} }

View File

@ -4,21 +4,26 @@ require_once('include/socgraph.php');
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');
require_once('mod/proxy.php'); require_once('mod/proxy.php');
/**
* @brief Controller for /match.
*
* It takes keywords from your profile and queries the directory server for
* matching keywords from other profiles.
*
* @param App &$a
* @return void|string
*/
function match_content(&$a) { function match_content(&$a) {
$o = ''; $o = '';
if(! local_user()) if(! local_user())
return; return;
$a->page['aside'] .= follow_widget();
$a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= follow_widget();
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd; $_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => t('Profile Match')
));
$r = q("SELECT `pub_keywords`, `prv_keywords` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", $r = q("SELECT `pub_keywords`, `prv_keywords` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
intval(local_user()) intval(local_user())
); );
@ -27,7 +32,6 @@ function match_content(&$a) {
if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) { if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) {
notice( t('No keywords to match. Please add keywords to your default profile.') . EOL); notice( t('No keywords to match. Please add keywords to your default profile.') . EOL);
return; return;
} }
$params = array(); $params = array();
@ -52,35 +56,50 @@ function match_content(&$a) {
if(count($j->results)) { if(count($j->results)) {
$id = 0;
$tpl = get_markup_template('match.tpl');
foreach($j->results as $jj) { foreach($j->results as $jj) {
$match_nurl = normalise_link($jj->url); $match_nurl = normalise_link($jj->url);
$match = q("SELECT `nurl` FROM `contact` WHERE `uid` = '%d' AND nurl='%s' LIMIT 1", $match = q("SELECT `nurl` FROM `contact` WHERE `uid` = '%d' AND nurl='%s' LIMIT 1",
intval(local_user()), intval(local_user()),
dbesc($match_nurl)); dbesc($match_nurl));
if (!count($match)) { if (!count($match)) {
$jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo); $jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo);
$connlnk = $a->get_baseurl() . '/follow/?url=' . $jj->url; $connlnk = $a->get_baseurl() . '/follow/?url=' . $jj->url;
$o .= replace_macros($tpl,array( $photo_menu = array(array(t("View Profile"), zrl($jj->url)));
'$url' => zrl($jj->url), $photo_menu[] = array(t("Connect/Follow"), $connlnk);
'$name' => $jj->name,
'$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB), $entry = array(
'$inttxt' => ' ' . t('is interested in:'), 'url' => zrl($jj->url),
'$conntxt' => t('Connect'), 'itemurl' => $jj->url,
'$connlnk' => $connlnk, 'name' => $jj->name,
'$tags' => $jj->tags 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
)); 'inttxt' => ' ' . t('is interested in:'),
'conntxt' => t('Connect'),
'connlnk' => $connlnk,
'img_hover' => $jj->tags,
'photo_menu' => $photo_menu,
'id' => ++$id,
);
$entries[] = $entry;
} }
} }
} else {
$tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
'$title' => t('Profile Match'),
'$contacts' => $entries,
'$paginate' => paginate($a),
));
}
else {
info( t('No matches') . EOL); info( t('No matches') . EOL);
} }
} }
$o .= cleardiv();
$o .= paginate($a);
return $o; return $o;
} }

View File

@ -61,13 +61,8 @@ function suggest_content(&$a) {
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd; $_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
$a->page['aside'] .= follow_widget();
$a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= follow_widget();
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => t('Friend Suggestions')
));
$r = suggestion_query(local_user()); $r = suggestion_query(local_user());
@ -77,25 +72,41 @@ function suggest_content(&$a) {
return $o; return $o;
} }
$tpl = get_markup_template('suggest_friends.tpl'); require_once 'include/contact_selectors.php';
foreach($r as $rr) { foreach($r as $rr) {
$connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']); $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
$ignlnk = $a->get_baseurl() . '/suggest?ignore=' . $rr['id'];
$photo_menu = array(array(t("View Profile"), zrl($jj->url)));
$photo_menu[] = array(t("Connect/Follow"), $connlnk);
$photo_menu[] = array(t('Ignore/Hide'), $ignlnk);
$o .= replace_macros($tpl,array( $entry = array(
'$url' => zrl($rr['url']), 'url' => zrl($rr['url']),
'$name' => $rr['name'], 'itemurl' => $rr['url'],
'$photo' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB), 'img_hover' => $rr['url'],
'$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'], 'name' => $rr['name'],
'$ignid' => $rr['id'], 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'$conntxt' => t('Connect'), 'ignlnk' => $ignlnk,
'$connlnk' => $connlnk, 'ignid' => $rr['id'],
'$ignore' => t('Ignore/Hide') 'conntxt' => t('Connect'),
)); 'connlnk' => $connlnk,
'photo_menu' => $photo_menu,
'ignore' => t('Ignore/Hide'),
'network' => network_to_name($rr['network'], $rr['url']),
'id' => ++$id,
);
$entries[] = $entry;
} }
$o .= cleardiv(); $tpl = get_markup_template('viewcontact_template.tpl');
// $o .= paginate($a);
$o .= replace_macros($tpl,array(
'$title' => t('Friend Suggestions'),
'$contacts' => $entries,
));
return $o; return $o;
} }

View File

@ -48,7 +48,7 @@ function viewcontacts_content(&$a) {
if($rr['self']) if($rr['self'])
continue; continue;
$url = $rr['url']; $url = $rr['url'];
// route DFRN profiles through the redirect // route DFRN profiles through the redirect

View File

@ -7,9 +7,10 @@
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a> <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
{{if !$no_contacts_checkbox}} {{if $multiselect}}
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}"> <input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
{{/if}} {{/if}}
{{if $contact.photo_menu}} {{if $contact.photo_menu}}
<span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span> <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}"> <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
@ -27,8 +28,14 @@
</div> </div>
</div> </div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
</div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>
</div> </div>

View File

@ -1,5 +1,5 @@
<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1> <h2>{{$header}}{{if $total}} ({{$total}}){{/if}}</h2>
{{if $finding}}<h4>{{$finding}}</h4>{{/if}} {{if $finding}}<h4>{{$finding}}</h4>{{/if}}

View File

@ -1,7 +1,7 @@
{{$vcard_widget}} {{$vcard_widget}}
{{$findpeople_widget}}
{{$follow_widget}} {{$follow_widget}}
{{$groups_widget}} {{$groups_widget}}
{{$findpeople_widget}}
{{$networks_widget}} {{$networks_widget}}

View File

@ -1,17 +1,31 @@
<h1>{{$sitedir}}</h1> {{include file="section_title.tpl"}}
{{$globaldir}} {{if $gdirpath}}
{{$admin}} <ul>
<li><div id="global-directory-link"><a href="{{$gdirpath}}">{{$globaldir}}</a></div></li>
</ul>
{{/if}}
{{$finding}}
<div id="directory-search-wrapper"> <div id="directory-search-wrapper">
<form id="directory-search-form" action="directory" method="get" > <form id="directory-search-form" action="directory" method="get" >
<span class="dirsearch-desc">{{$desc}}</span> <span class="dirsearch-desc">{{$desc}}</span>
<input type="text" name="search" id="directory-search" class="search-input" onfocus="this.select();" value="{{$search|escape:'html'}}" /> <input type="text" name="search" id="directory-search" class="search-input" onfocus="this.select();" value="{{$search|escape:'html'}}" />
<input type="submit" name="submit" id="directory-search-submit" value="{{$submit|escape:'html'}}" class="button" /> <input type="submit" name="submit" id="directory-search-submit" value="{{$submit|escape:'html'}}" class="button" />
</form> </form>
</div> </div>
{{if $findterm}}
<h4>{{$finding}} '{{$findterm}}'</h4>
{{/if}}
<div id="directory-search-end"></div> <div id="directory-search-end"></div>
{{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}}
{{/foreach}}
<div class="directory-end" ></div>
{{$paginate}}

View File

@ -1,12 +1,14 @@
<div class="directory-item lframe" id="directory-item-{{$id}}" > <div class="directory-item lframe" id="directory-item-{{$entry.id}}" >
<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$id}}" > <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.id}}" >
<div class="contact-photo" id="directory-photo-{{$id}}" > <div class="contact-photo" id="directory-photo-{{$entry.id}}" >
<a href="{{$profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$id}}" ><img class="directory-photo-img" src="{{$photo}}" alt="{{$alt_text}}" title="{{$alt_text}}" /></a> <a href="{{$entry.profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$entry.id}}" >
<img class="directory-photo-img" src="{{$entry.photo}}" alt="{{$entry.alt_text}}" title="{{$entry.alt_text}}" />
</a>
</div> </div>
</div> </div>
<div class="contact-name" id="directory-name-{{$id}}">{{$name}}</div> <div class="contact-name" id="directory-name-{{$entry.id}}">{{$entry.name}}</div>
<div class="contact-details">{{$details}}</div> <div class="contact-details">{{$entry.details}}</div>
</div> </div>

View File

@ -1,33 +0,0 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo" 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}}">
<img width="80" height="80" src="{{$photo}}" alt="{{$name}}" title="{{$name}}[{{$tags}}]" />
</a>
{{if $photo_menu}}
<span onclick="openClose('contact-photo-menu-{{$id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$id}}">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-{{$id}}">
<ul>
{{foreach $photo_menu as $k=>$c}}
{{if $c.2}}
<li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
{{else}}
<li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
{{/if}}
{{/foreach}}
</ul>
</div>
{{/if}}
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
{{if $connlnk}}
<div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
{{/if}}
</div>

View File

@ -1,17 +0,0 @@
<div class="profile-match-wrapper">
<a href="{{$ignlnk}}" title="{{$ignore}}" class="icon drophide profile-match-ignore" onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" ></a>
<div class="profile-match-photo">
<a href="{{$url}}">
<img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$url}}" title="{{$name}}">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
{{if $connlnk}}
<div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
{{/if}}
</div>

View File

@ -1,5 +1,5 @@
<h3>{{$title}}</h3> {{include file="section_title.tpl"}}
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}} {{include file="contact_template.tpl"}}

View File

@ -876,8 +876,14 @@ input#dfrn-url {
.contact-entry-wrapper { .contact-entry-wrapper {
float: left; float: left;
width: 120px; min-width: 363px;
height: 120px; height: 90px;
padding-right: 10px;
margin: 0 10px 10px 0px;
}
.contact-entry-wrapper .contact-entry-photo-wrapper {
float: left;
margin-right: 10px;
} }
#contacts-search-end { #contacts-search-end {
margin-bottom: 10px; margin-bottom: 10px;
@ -891,15 +897,22 @@ input#dfrn-url {
.contact-entry-photo img { .contact-entry-photo img {
border: none; border: none;
} }
.contact-entry-photo a img {
width: 80px;
height: 80px;
}
.contact-entry-photo-end { .contact-entry-photo-end {
clear: both; clear: both;
} }
.contact-entry-name { .contact-entry-name {
float: left; font-weight: bold;
margin-left: 0px; }
margin-right: 10px; .contact-entry-details {
width: 120px; font-size: 13px;
color: #999999;
white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis;
} }
.contact-entry-edit-links { .contact-entry-edit-links {
margin-top: 6px; margin-top: 6px;

View File

@ -1110,8 +1110,13 @@ input#dfrn-url {
height: 120px;*/ height: 120px;*/
padding-left: 15px; padding-left: 15px;
padding-right: 15px; padding-right: 15px;
width: 95px; max-width: 262px;
height: 200px; height: 90px;
margin: 0 10px 10px 0px;
}
.contact-entry-wrapper .contact-entry-photo-wrapper {
float: left;
margin-right: 10px;
} }
#contacts-search-end { #contacts-search-end {
margin-bottom: 10px; margin-bottom: 10px;
@ -1124,12 +1129,16 @@ input#dfrn-url {
.contact-entry-photo img { .contact-entry-photo img {
border: none; border: none;
width: 80px;
height: 80px;
} }
.contact-entry-photo-end { .contact-entry-photo-end {
clear: both; clear: both;
} }
.contact-entry-desc {
overflow: hidden;
}
.contact-entry-name { .contact-entry-name {
float: left;
margin-left: 0px; margin-left: 0px;
margin-right: 10px; margin-right: 10px;
padding-bottom: 5px; padding-bottom: 5px;
@ -1141,6 +1150,9 @@ input#dfrn-url {
font-style: italic; font-style: italic;
font-size: 10px; font-size: 10px;
font-weight: 500; font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.contact-entry-network { .contact-entry-network {
font-size: 10px; font-size: 10px;
@ -2135,7 +2147,7 @@ input#profile-jot-email {
border: 1px solid #AAA; border: 1px solid #AAA;
background: #FFFFFF; background: #FFFFFF;
position: absolute; position: absolute;
left: -30px; top: 80px; /*left: -30px;*/ top: 80px;
display: none; display: none;
z-index: 101; z-index: 101;
-moz-box-shadow: 3px 3px 5px #555; -moz-box-shadow: 3px 3px 5px #555;

View File

@ -28,10 +28,14 @@
</div> </div>
</div> </div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div><br /> <div class="contact-entry-desc">
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div> {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
</div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>
</div> </div>

View File

@ -15,11 +15,10 @@
{{$tabs}} {{$tabs}}
<div id="contacts-display-wrapper">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}} {{include file="contact_template.tpl"}}
{{/foreach}} {{/foreach}}
</div>
<div id="contact-edit-end"></div> <div id="contact-edit-end"></div>
{{$paginate}} {{$paginate}}

View File

@ -1,17 +0,0 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
<a href="{{$url}}">
<img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" onError="this.src='../../../images/person-48.jpg';" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$url}}" title="{{$name}}">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
{{if $connlnk}}
<div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
{{/if}}
<a href="{{$ignlnk}}" title="{{$ignore}}" class="icon drophide profile-match-ignore" {{*onmouseout="imgdull(this);" onmouseover="imgbright(this);" *}}onclick="return confirmDelete();" ></a>
</div>

View File

@ -1074,12 +1074,14 @@ input#dfrn-url {
.contact-entry-wrapper { .contact-entry-wrapper {
float: left; float: left;
/* width: 120px; width: 262px;
height: 120px;*/ height: 90px;
padding-left: 8px; padding-right: 10px;
padding-right: 8px; margin: 0 10px 10px 0px;
width: 95px; }
height: 170px; .contact-entry-wrapper .contact-entry-photo-wrapper {
float: left;
margin-right: 10px;
} }
#contacts-search-end { #contacts-search-end {
margin-bottom: 10px; margin-bottom: 10px;
@ -1093,15 +1095,22 @@ input#dfrn-url {
.contact-entry-photo img { .contact-entry-photo img {
border: none; border: none;
} }
.contact-entry-photo a img {
width: 80px;
height: 80px;
}
.contact-entry-photo-end { .contact-entry-photo-end {
clear: both; clear: both;
} }
.contact-entry-desc {
overflow: hidden;
}
.contact-entry-name { .contact-entry-name {
float: left; /*float: left;*/
margin-left: 0px; margin-left: 0px;
margin-right: 10px; margin-right: 10px;
padding-bottom: 5px; padding-bottom: 5px;
width: 120px; /*width: 120px;*/
font-weight: 600; font-weight: 600;
overflow: hidden; overflow: hidden;
} }
@ -1109,6 +1118,9 @@ input#dfrn-url {
font-style: italic; font-style: italic;
font-size: 10px; font-size: 10px;
font-weight: 500; font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.contact-entry-network { .contact-entry-network {
font-size: 10px; font-size: 10px;

View File

@ -10,8 +10,8 @@
{{if $contact.photo_menu}} {{if $contact.photo_menu}}
<span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span> <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}"> <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
<ul> <ul>
{{foreach $contact.photo_menu as $c}} {{foreach $contact.photo_menu as $c}}
{{if $c.2}} {{if $c.2}}
<li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li> <li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
@ -19,16 +19,20 @@
<li><a href="{{$c.1}}">{{$c.0}}</a></li> <li><a href="{{$c.1}}">{{$c.0}}</a></li>
{{/if}} {{/if}}
{{/foreach}} {{/foreach}}
</ul> </ul>
</div> </div>
{{/if}} {{/if}}
</div> </div>
</div> </div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div><br /> <div class="contact-entry-desc">
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div> {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
</div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>
</div> </div>

View File

@ -1,17 +0,0 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
<a href="{{$url}}">
<img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" onError="this.src='../../../images/person-48.jpg';" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$url}}" title="{{$name}}">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
{{if $connlnk}}
<div class="profile-match-connect"><a href="{{$connlnk}}" title="{{$conntxt}}">{{$conntxt}}</a></div>
{{/if}}
<a href="{{$ignlnk}}" title="{{$ignore}}" class="icon drophide profile-match-ignore" {{*onmouseout="imgdull(this);" onmouseover="imgbright(this);" *}}onclick="return confirmDelete();" ></a>
</div>

View File

@ -1543,6 +1543,31 @@ span[id^="showmore-wrap"] {
left: 0px; left: 0px;
top: 63px; top: 63px;
} }
.contact-wrapper .drop {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
opacity: 0.3;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .contact-entry-connect {
padding-top: 5px;
font-weight: bold;
}
.directory-item { .directory-item {
float: left; float: left;
width: 200px; width: 200px;

View File

@ -1543,6 +1543,31 @@ span[id^="showmore-wrap"] {
left: 0px; left: 0px;
top: 63px; top: 63px;
} }
.contact-wrapper .drop {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
opacity: 0.3;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .contact-entry-connect {
padding-top: 5px;
font-weight: bold;
}
.directory-item { .directory-item {
float: left; float: left;
width: 200px; width: 200px;

View File

@ -1543,6 +1543,31 @@ span[id^="showmore-wrap"] {
left: 0px; left: 0px;
top: 63px; top: 63px;
} }
.contact-wrapper .drop {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block;
width: 22px;
height: 22px;
opacity: 0.3;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-wrapper .contact-entry-connect {
padding-top: 5px;
font-weight: bold;
}
.directory-item { .directory-item {
float: left; float: left;
width: 200px; width: 200px;

View File

@ -877,6 +877,27 @@ span[id^="showmore-wrap"] {
left: 0px; left: 0px;
top: 63px; top: 63px;
} }
.drop {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
opacity: 0.3;
position: relative;
top: 10px;
left: -10px;
z-index: 99;
}
.contact-entry-connect {
padding-top: 5px;
font-weight: bold;
}
} }
.directory-item { .directory-item {
float: left; float: left;

View File

@ -1,5 +1,6 @@
<div class="contact-wrapper" id="contact-entry-wrapper-{{$id}}" > <div class="contact-wrapper" id="contact-entry-wrapper-{{$id}}" >
{{if $contact.ignlnk}}<a href="{{$contact.ignlnk}}" title="{{$contact.ignore}}" class="icon drophide profile-match-ignore" onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" ></a>{{/if}}
<div class="contact-photo-wrapper" > <div class="contact-photo-wrapper" >
<div class="contact-photo mframe" id="contact-entry-photo-{{$contact.id}}" <div class="contact-photo mframe" id="contact-entry-photo-{{$contact.id}}"
onmouseover="if (typeof t{{$contact.id}} != 'undefined') clearTimeout(t{{$contact.id}}); openMenu('contact-photo-menu-button-{{$contact.id}}')" onmouseover="if (typeof t{{$contact.id}} != 'undefined') clearTimeout(t{{$contact.id}}); openMenu('contact-photo-menu-button-{{$contact.id}}')"
@ -7,7 +8,7 @@
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a> <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
{{if !$no_contacts_checkbox}} {{if $multiselect}}
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}"> <input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
{{/if}} {{/if}}
{{if $contact.photo_menu}} {{if $contact.photo_menu}}
@ -27,8 +28,13 @@
</div> </div>
<div class="contact-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
{{if $contact.alt_text}}<div class="contact-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
<div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div> {{if $contact.itemurl}}<div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
<div class="contact-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div> {{if $contact.network}}<div class="contact-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.details}}<div class="contact-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.connlnk}}
<div class="contact-entry-connect"><a href="{{$contact.connlnk}}" title="{{$contact.conntxt}}">{{$contact.conntxt}}</a></div>
{{/if}}
</div> </div>

View File

@ -115,6 +115,10 @@ input[type=submit]:active {
#search-save { #search-save {
} }
#directory-search-end {
clear: both;
}
.dirsearch-desc { .dirsearch-desc {
} }
@ -2760,11 +2764,10 @@ margin-left: 0px;
.view-contact-wrapper, .view-contact-wrapper,
.contact-entry-wrapper { .contact-entry-wrapper {
float: left; float: left;
margin-right: 30px; padding-right: 10px;
margin-bottom: 20px; width: 345px;
width: 88px;
height: 120px; height: 120px;
position: relative; margin: 0 10px 10px 0px;
} }
#view-contact-end { #view-contact-end {
@ -2775,6 +2778,10 @@ margin-left: 0px;
margin-top: 15px; margin-top: 15px;
} }
.contact-entry-wrapper .contact-entry-photo-wrapper {
float: left;
margin-right: 10px;
}
.contact-entry-direction-wrapper { .contact-entry-direction-wrapper {
position: absolute; position: absolute;
top: 20px; top: 20px;
@ -2791,17 +2798,27 @@ margin-left: 0px;
font-weight: bold; font-weight: bold;
} }
.contact-entry-name { .contact-entry-desc {
width: 100px; overflow: hidden;
}
.contact-entry-name, .contact-entry-connect {
overflow: hidden; overflow: hidden;
font: #999; font: #999;
font-size: 12px; font-size: 12px;
text-align: center;
font-weight: bold; font-weight: bold;
margin-top: 5px; margin-top: 5px;
} }
.contact-entry-photo { .contact-entry-details {
font-size: 13px;
color: #999999;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.contact-entry-photo-wrapper {
position: relative; position: relative;
/*border: 1px solid #7C7D7B; /*border: 1px solid #7C7D7B;
border-radius: 3px; border-radius: 3px;
@ -2812,6 +2829,15 @@ margin-left: 0px;
-webkit-box-shadow: 0 0 8px #BDBDBD;*/ -webkit-box-shadow: 0 0 8px #BDBDBD;*/
} }
.contact-entry-photo {
width: 80px;
}
.contact-entry-photo a img {
width: 80px;
height: 80px;
}
.contact-entry-edit-links .icon { .contact-entry-edit-links .icon {
border: 1px solid #babdb6; border: 1px solid #babdb6;
border-radius: 3px; border-radius: 3px;

View File

@ -351,7 +351,7 @@ code {
margin: 0px; margin: 0px;
padding: 1em; padding: 1em;
list-style: none; list-style: none;
border: 3px solid #364e59; /*border: 3px solid #364e59;*/
z-index: 100000; z-index: 100000;
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7); box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
} }
@ -2270,18 +2270,50 @@ aside #id_password {
float: left; float: left;
} }
/* contacts */ /* contacts */
.contact-entry-wrapper { /*.contact-entry-wrapper {
width: 120px; width: 120px;
height: 130px; height: 130px;
float: left; float: left;
/* overflow: hidden; */ overflow: hidden;
margin-left: 5px; margin-left: 5px;
}*/
.contact-entry-wrapper {
float: left;
width: 363px;
height: 90px;
padding-right: 10px;
margin: 0 10px 10px 0px;
}
.contact-entry-wrapper .contact-entry-photo-wrapper {
float: left;
margin-right: 10px;
}
.contact-entry-photo-wrapper {
position: relative;
}
.contact-entry-desc {
overflow: hidden;
}
.contact-entry-name {
font-weight: bold;
}
.contact-entry-details {
font-size: 13px;
color: #999999;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
/* photo */ /* photo */
.lframe { .lframe {
float: left; float: left;
margin: 0px 10px 10px 0px; margin: 0px 10px 10px 0px;
} }
.contact-entry-photo a img {
width: 80px;
height: 80px;
}
/* profile match wrapper */ /* profile match wrapper */
.profile-match-wrapper { .profile-match-wrapper {
float: left; float: left;
@ -2319,14 +2351,15 @@ aside #id_password {
} }
.contact-photo-menu { .contact-photo-menu {
width: 11em; width: 11em;
border: 3px solid #364e59; /*border: 3px solid #364e59;*/
color: #2d2d2d; color: #2d2d2d;
background: #FFFFFF; background: #FFFFFF;
/* position: absolute;*/ position: absolute;
position: relative; /*position: relative;*/
left: 0px; top: 0px; left: 0px; /*top: 0px;*/
display: none; display: none;
z-index: 10000; z-index: 10000;
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
} }
.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } .contact-photo-menu ul { margin:0px; padding: 0px; list-style: none }
.contact-photo-menu li a { .contact-photo-menu li a {

View File

@ -7,18 +7,18 @@
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a> <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
{{if !$no_contacts_checkbox}} {{if $multiselect}}
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}"> <input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
{{/if}} {{/if}}
{{if $contact.photo_menu}} {{if $contact.photo_menu}}
<!-- <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span> --> <!-- <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span> -->
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}"> <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
<ul> <ul role="menu" aria-haspopup="true">
{{foreach $contact.photo_menu as $k=>$c}} {{foreach $contact.photo_menu as $k=>$c}}
{{if $c.2}} {{if $c.2}}
<li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li> <li role="menuitem"><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
{{else}} {{else}}
<li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li> <li role="menuitem"><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
{{/if}} {{/if}}
{{/foreach}} {{/foreach}}
</ul> </ul>
@ -28,7 +28,15 @@
</div> </div>
<div class="contact-entry-photo-end" ></div> <div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
<div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
</div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>
</div> </div>