require_once('include/group.php');
require_once('include/contact_widgets.php');
+ if ($_GET['nets'] == "all")
+ $_GET['nets'] = "";
+
if(! x($a->page,'aside'))
$a->page['aside'] = '';
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => htmlentities($a->data['contact']['name']),
'$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 = '';
+ $networks_widget = '';
}
else {
$vcard_widget = '';
+ $networks_widget .= networks_widget('contacts',$_GET['nets']);
if (isset($_GET['add']))
$follow_widget = follow_widget($_GET['add']);
else
$follow_widget = follow_widget();
- }
- if ($_GET['nets'] == "all")
- $_GET['nets'] = "";
+ $findpeople_widget .= findpeople_widget();
+ }
$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(
'$vcard_widget' => $vcard_widget,
+ '$findpeople_widget' => $findpeople_widget,
'$follow_widget' => $follow_widget,
'$groups_widget' => $groups_widget,
- '$findpeople_widget' => $findpeople_widget,
'$networks_widget' => $networks_widget
));
'$cmd' => $a->cmd,
'$contacts' => $contacts,
'$contact_drop_confirm' => t('Do you really want to delete this contact?'),
+ 'multiselect' => 1,
'$batch_actions' => array(
'contacts_batch_update' => t('Update'),
'contacts_batch_block' => t('Block')."/".t("Unblock"),
$a->page['aside'] .= findpeople_widget();
+ $a->page['aside'] .= follow_widget();
+
}
else {
unset($_SESSION['theme']);
require_once("mod/proxy.php");
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);
return;
}
else
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
- $tpl = get_markup_template('directory_header.tpl');
-
- $globaldir = '';
- $gdirpath = get_config('system','directory');
- if(strlen($gdirpath)) {
- $globaldir = '<ul><li><div id="global-directory-link"><a href="'
- . zrl($gdirpath,true) . '">' . t('Global Directory') . '</a></div></li></ul>';
+ $gdirpath = '';
+ $dirurl = get_config('system','directory');
+ if(strlen($dirurl)) {
+ $gdirpath = zrl($dirurl,true);
}
- $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) {
$search = dbesc($search);
$about = ((x($profile,'about') == 1) ? t('About:') : False);
- $tpl = get_markup_template('directory_item.tpl');
-
if($a->theme['template_engine'] === 'internal') {
$location_e = template_escape($location);
}
$location_e = $location;
}
- $entry = replace_macros($tpl,array(
- '$id' => $rr['id'],
- '$profile_link' => $profile_link,
- '$photo' => proxy_url($a->get_cached_avatar_image($rr[$photo]), false, PROXY_SIZE_THUMB),
- '$alt_text' => $rr['name'],
- '$name' => $rr['name'],
- '$details' => $pdesc . $details,
- '$page_type' => $page_type,
- '$profile' => $profile,
- '$location' => $location_e,
- '$gender' => $gender,
- '$pdesc' => $pdesc,
- '$marital' => $marital,
- '$homepage' => $homepage,
- '$about' => $about,
-
- ));
+ $entry = array(
+ 'id' => $rr['id'],
+ 'url' => $profile_link,
+ 'thumb' => proxy_url($a->get_cached_avatar_image($rr[$photo]), false, PROXY_SIZE_THUMB),
+ 'img_hover' => $rr['name'],
+ 'name' => $rr['name'],
+ 'details' => $pdesc . $details,
+ 'page_type' => $page_type,
+ 'profile' => $profile,
+ 'location' => $location_e,
+ 'gender' => $gender,
+ 'pdesc' => $pdesc,
+ 'marital' => $marital,
+ 'homepage' => $homepage,
+ 'about' => $about,
+
+ );
$arr = array('contact' => $rr, 'entry' => $entry);
unset($profile);
unset($location);
- $o .= $entry;
+ if(! $arr['entry'])
+ continue;
+
+ $entries[] = $arr['entry'];
}
- $o .= "<div class=\"directory-end\" ></div>\r\n";
- $o .= paginate($a);
+ $tpl = get_markup_template('directory_header.tpl');
+
+ $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
require_once('include/contact_widgets.php');
require_once('include/socgraph.php');
require_once('include/Contact.php');
+require_once('include/contact_selectors.php');
function dirfind_init(&$a) {
if(! x($a->page,'aside'))
$a->page['aside'] = '';
- $a->page['aside'] .= follow_widget();
-
$a->page['aside'] .= findpeople_widget();
+
+ $a->page['aside'] .= follow_widget();
}
$o = '';
- $o .= replace_macros(get_markup_template("section_title.tpl"),array(
- '$title' => sprintf( t('People Search - %s'), $search)
- ));
-
if($search) {
if ($local) {
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`
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
$j = new stdClass();
$j->total = $count[0]["total"];
$j->items_page = $perpage;
- $j->page = $a->pager['page'];
+ $j->page = $a->pager['page'];
foreach ($results AS $result) {
if (poco_alternate_ostatus_url($result["url"]))
continue;
$objresult->url = $result["url"];
$objresult->photo = $result["photo"];
$objresult->tags = $result["keywords"];
+ $objresult->network = $result["network"];
$j->results[] = $objresult;
}
$id = 0;
- $tpl = get_markup_template('match.tpl');
foreach($j->results as $jj) {
// If We already know this contact then don't show the "connect" button
$jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo);
- $o .= replace_macros($tpl,array(
- '$url' => zrl($jj->url),
- '$name' => htmlentities($jj->name),
- '$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
- '$tags' => $jj->tags,
- '$conntxt' => $conntxt,
- '$connlnk' => $connlnk,
- '$photo_menu' => $photo_menu,
- '$id' => ++$id,
- ));
+ $entry = array(
+ 'url' => zrl($jj->url),
+ 'itemurl' => $jj->url,
+ 'name' => htmlentities($jj->name),
+ 'thumb' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
+ 'img_hover' => $jj->tags,
+ 'conntxt' => $conntxt,
+ 'connlnk' => $connlnk,
+ '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 {
info( t('No matches') . EOL);
}
- $o .= '<div class="clear"></div>';
- $o .= paginate($a);
return $o;
}
require_once('include/contact_widgets.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) {
$o = '';
if(! local_user())
return;
- $a->page['aside'] .= follow_widget();
$a->page['aside'] .= findpeople_widget();
+ $a->page['aside'] .= follow_widget();
$_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",
intval(local_user())
);
if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) {
notice( t('No keywords to match. Please add keywords to your default profile.') . EOL);
return;
-
}
$params = array();
if(count($j->results)) {
+ $id = 0;
-
- $tpl = get_markup_template('match.tpl');
foreach($j->results as $jj) {
$match_nurl = normalise_link($jj->url);
$match = q("SELECT `nurl` FROM `contact` WHERE `uid` = '%d' AND nurl='%s' LIMIT 1",
intval(local_user()),
dbesc($match_nurl));
+
if (!count($match)) {
$jj->photo = str_replace("http:///photo/", get_server()."/photo/", $jj->photo);
$connlnk = $a->get_baseurl() . '/follow/?url=' . $jj->url;
- $o .= replace_macros($tpl,array(
- '$url' => zrl($jj->url),
- '$name' => $jj->name,
- '$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
- '$inttxt' => ' ' . t('is interested in:'),
- '$conntxt' => t('Connect'),
- '$connlnk' => $connlnk,
- '$tags' => $jj->tags
- ));
+ $photo_menu = array(array(t("View Profile"), zrl($jj->url)));
+ $photo_menu[] = array(t("Connect/Follow"), $connlnk);
+
+ $entry = array(
+ 'url' => zrl($jj->url),
+ 'itemurl' => $jj->url,
+ 'name' => $jj->name,
+ '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);
}
}
- $o .= cleardiv();
- $o .= paginate($a);
return $o;
}
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
- $a->page['aside'] .= follow_widget();
$a->page['aside'] .= findpeople_widget();
-
-
- $o .= replace_macros(get_markup_template("section_title.tpl"),array(
- '$title' => t('Friend Suggestions')
- ));
+ $a->page['aside'] .= follow_widget();
$r = suggestion_query(local_user());
return $o;
}
- $tpl = get_markup_template('suggest_friends.tpl');
+ require_once 'include/contact_selectors.php';
foreach($r as $rr) {
$connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
-
- $o .= replace_macros($tpl,array(
- '$url' => zrl($rr['url']),
- '$name' => $rr['name'],
- '$photo' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
- '$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'],
- '$ignid' => $rr['id'],
- '$conntxt' => t('Connect'),
- '$connlnk' => $connlnk,
- '$ignore' => t('Ignore/Hide')
- ));
+ $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);
+
+ $entry = array(
+ 'url' => zrl($rr['url']),
+ 'itemurl' => $rr['url'],
+ 'img_hover' => $rr['url'],
+ 'name' => $rr['name'],
+ 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
+ 'ignlnk' => $ignlnk,
+ 'ignid' => $rr['id'],
+ '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();
-// $o .= paginate($a);
+ $tpl = get_markup_template('viewcontact_template.tpl');
+
+ $o .= replace_macros($tpl,array(
+ '$title' => t('Friend Suggestions'),
+ '$contacts' => $entries,
+
+ ));
+
return $o;
}
if($rr['self'])
continue;
- $url = $rr['url'];
+ $url = $rr['url'];
// route DFRN profiles through the redirect
<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}}">
{{/if}}
+
{{if $contact.photo_menu}}
<span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
</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>
-<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
+<h2>{{$header}}{{if $total}} ({{$total}}){{/if}}</h2>
{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
{{$vcard_widget}}
+{{$findpeople_widget}}
{{$follow_widget}}
{{$groups_widget}}
-{{$findpeople_widget}}
{{$networks_widget}}
-<h1>{{$sitedir}}</h1>
+{{include file="section_title.tpl"}}
-{{$globaldir}}
-{{$admin}}
+{{if $gdirpath}}
+ <ul>
+ <li><div id="global-directory-link"><a href="{{$gdirpath}}">{{$globaldir}}</a></div></li>
+ </ul>
+{{/if}}
-{{$finding}}
<div id="directory-search-wrapper">
-<form id="directory-search-form" action="directory" method="get" >
-<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="submit" name="submit" id="directory-search-submit" value="{{$submit|escape:'html'}}" class="button" />
-</form>
+ <form id="directory-search-form" action="directory" method="get" >
+ <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="submit" name="submit" id="directory-search-submit" value="{{$submit|escape:'html'}}" class="button" />
+ </form>
</div>
+
+{{if $findterm}}
+ <h4>{{$finding}} '{{$findterm}}'</h4>
+{{/if}}
+
<div id="directory-search-end"></div>
+{{foreach $contacts as $contact}}
+ {{include file="contact_template.tpl"}}
+{{/foreach}}
+
+<div class="directory-end" ></div>
+
+{{$paginate}}
-<div class="directory-item lframe" id="directory-item-{{$id}}" >
- <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$id}}" >
- <div class="contact-photo" id="directory-photo-{{$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>
+<div class="directory-item lframe" id="directory-item-{{$entry.id}}" >
+ <div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$entry.id}}" >
+ <div class="contact-photo" id="directory-photo-{{$entry.id}}" >
+ <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 class="contact-name" id="directory-name-{{$id}}">{{$name}}</div>
- <div class="contact-details">{{$details}}</div>
+ <div class="contact-name" id="directory-name-{{$entry.id}}">{{$entry.name}}</div>
+ <div class="contact-details">{{$entry.details}}</div>
</div>
+++ /dev/null
-
-<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>
+++ /dev/null
-
-<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>
\ No newline at end of file
-<h3>{{$title}}</h3>
+{{include file="section_title.tpl"}}
{{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}}
.contact-entry-wrapper {
float: left;
- width: 120px;
- height: 120px;
+ min-width: 363px;
+ 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 {
margin-bottom: 10px;
.contact-entry-photo img {
border: none;
}
+.contact-entry-photo a img {
+ width: 80px;
+ height: 80px;
+}
.contact-entry-photo-end {
clear: both;
}
.contact-entry-name {
- float: left;
- margin-left: 0px;
- margin-right: 10px;
- width: 120px;
+ font-weight: bold;
+}
+.contact-entry-details {
+ font-size: 13px;
+ color: #999999;
+ white-space: nowrap;
overflow: hidden;
+ text-overflow: ellipsis;
}
.contact-entry-edit-links {
margin-top: 6px;
height: 120px;*/\r
padding-left: 15px;\r
padding-right: 15px; \r
- width: 95px;\r
- height: 200px;\r
+ max-width: 262px;\r
+ height: 90px;\r
+ margin: 0 10px 10px 0px;\r
+}\r
+.contact-entry-wrapper .contact-entry-photo-wrapper {\r
+ float: left;\r
+ margin-right: 10px;\r
}\r
#contacts-search-end {\r
margin-bottom: 10px;\r
\r
.contact-entry-photo img {\r
border: none;\r
+ width: 80px;\r
+ height: 80px;\r
}\r
.contact-entry-photo-end {\r
clear: both;\r
}\r
+.contact-entry-desc {\r
+ overflow: hidden;\r
+}\r
.contact-entry-name {\r
- float: left;\r
margin-left: 0px;\r
margin-right: 10px;\r
padding-bottom: 5px;\r
font-style: italic;\r
font-size: 10px;\r
font-weight: 500;\r
+ white-space: nowrap;\r
+ overflow: hidden;\r
+ text-overflow: ellipsis;\r
}\r
.contact-entry-network {\r
font-size: 10px;\r
border: 1px solid #AAA;\r
background: #FFFFFF;\r
position: absolute;\r
- left: -30px; top: 80px;\r
+ /*left: -30px;*/ top: 80px;\r
display: none;\r
z-index: 101;\r
-moz-box-shadow: 3px 3px 5px #555;\r
</div>
</div>
- <div class="contact-entry-photo-end" ></div>
- <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div><br />
-{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
- <div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</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-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>
{{$tabs}}
-<div id="contacts-display-wrapper">
+
{{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}}
{{/foreach}}
-</div>
<div id="contact-edit-end"></div>
{{$paginate}}
+++ /dev/null
-
-<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>
.contact-entry-wrapper {
float: left;
-/* width: 120px;
- height: 120px;*/
- padding-left: 8px;
- padding-right: 8px;
- width: 95px;
- height: 170px;
+ width: 262px;
+ 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 {
margin-bottom: 10px;
.contact-entry-photo img {
border: none;
}
+.contact-entry-photo a img {
+ width: 80px;
+ height: 80px;
+}
.contact-entry-photo-end {
clear: both;
}
+.contact-entry-desc {
+ overflow: hidden;
+}
.contact-entry-name {
- float: left;
+ /*float: left;*/
margin-left: 0px;
margin-right: 10px;
padding-bottom: 5px;
- width: 120px;
+ /*width: 120px;*/
font-weight: 600;
overflow: hidden;
}
font-style: italic;
font-size: 10px;
font-weight: 500;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.contact-entry-network {
font-size: 10px;
{{if $contact.photo_menu}}
<span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
- <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
- <ul>
+ <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
+ <ul>
{{foreach $contact.photo_menu as $c}}
{{if $c.2}}
<li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
<li><a href="{{$c.1}}">{{$c.0}}</a></li>
{{/if}}
{{/foreach}}
- </ul>
- </div>
+ </ul>
+ </div>
{{/if}}
</div>
</div>
- <div class="contact-entry-photo-end" ></div>
- <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div><br />
-{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
- <div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</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-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>
+++ /dev/null
-
-<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>
left: 0px;
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 {
float: left;
width: 200px;
left: 0px;
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 {
float: left;
width: 200px;
left: 0px;
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 {
float: left;
width: 200px;
left: 0px;
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 {
float: left;
<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 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}}')"
<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}}">
{{/if}}
{{if $contact.photo_menu}}
</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}}
- <div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>
- <div class="contact-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>
+ {{if $contact.itemurl}}<div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
+ {{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>
#search-save {
}
+#directory-search-end {
+ clear: both;
+}
+
.dirsearch-desc {
}
.view-contact-wrapper,
.contact-entry-wrapper {
float: left;
- margin-right: 30px;
- margin-bottom: 20px;
- width: 88px;
+ padding-right: 10px;
+ width: 345px;
height: 120px;
- position: relative;
+ margin: 0 10px 10px 0px;
}
#view-contact-end {
margin-top: 15px;
}
+.contact-entry-wrapper .contact-entry-photo-wrapper {
+ float: left;
+ margin-right: 10px;
+}
.contact-entry-direction-wrapper {
position: absolute;
top: 20px;
font-weight: bold;
}
-.contact-entry-name {
- width: 100px;
+.contact-entry-desc {
+ overflow: hidden;
+}
+
+.contact-entry-name, .contact-entry-connect {
overflow: hidden;
font: #999;
font-size: 12px;
- text-align: center;
font-weight: bold;
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;
/*border: 1px solid #7C7D7B;
border-radius: 3px;
-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 {
border: 1px solid #babdb6;
border-radius: 3px;
margin: 0px;
padding: 1em;
list-style: none;
- border: 3px solid #364e59;
+ /*border: 3px solid #364e59;*/
z-index: 100000;
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
}
float: left;
}
/* contacts */
-.contact-entry-wrapper {
+/*.contact-entry-wrapper {
width: 120px;
height: 130px;
float: left;
-/* overflow: hidden; */
+ overflow: hidden;
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 */
.lframe {
float: left;
margin: 0px 10px 10px 0px;
}
+.contact-entry-photo a img {
+ width: 80px;
+ height: 80px;
+}
/* profile match wrapper */
.profile-match-wrapper {
float: left;
}
.contact-photo-menu {
width: 11em;
- border: 3px solid #364e59;
+ /*border: 3px solid #364e59;*/
color: #2d2d2d;
background: #FFFFFF;
-/* position: absolute;*/
- position: relative;
- left: 0px; top: 0px;
+ position: absolute;
+ /*position: relative;*/
+ left: 0px; /*top: 0px;*/
display: none;
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 li 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}}">
{{/if}}
{{if $contact.photo_menu}}
<!-- <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span> -->
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
- <ul>
+ <ul role="menu" aria-haspopup="true">
{{foreach $contact.photo_menu as $k=>$c}}
{{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}}
- <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}}
{{/foreach}}
</ul>
</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>