directory client mode

This commit is contained in:
friendica 2013-01-18 19:00:41 -08:00
parent af5666b791
commit a168c628a2
2 changed files with 102 additions and 112 deletions

View File

@ -38,148 +38,139 @@ function directory_content(&$a) {
$dirmode = intval(get_config('system','directory_mode')); $dirmode = intval(get_config('system','directory_mode'));
// if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) { if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
// $localdir = true; $url = z_root() . '/dirsearch';
// return; }
// } if(! $url) {
// FIXME
$localdir = true;
if(! $localdir) {
$directory = find_upstream_directory($dirmode); $directory = find_upstream_directory($dirmode);
if($directory) { if($directory) {
$url = $directory['url']; $url = $directory['url'];
} }
else { else {
$url = DIRECTORY_FALLBACK_MASTER . '/post'; $url = DIRECTORY_FALLBACK_MASTER . '/dirsearch';
} }
} }
if($url) {
$query = $url . ' ?f=' ;
if($localdir) {
if($search) if($search)
$search = dbesc($search); $query .= '$name=' . urlencode($search);
$sql_extra = ((strlen($search)) ? " AND MATCH ( xchan_name, xchan_addr, xprof_desc, xprof_locale, xprof_region, xprof_country, xprof_gender, xprof_marital ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
// group_concat(xtag_term separator ', ') as tags }
$r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash $sql_extra"); if($a->pager['page'] != 1)
if($r) $query .= '&p=' . $a->pager['page'];
$a->set_pager_total($r[0]['total']);
$order = " ORDER BY `xchan_name` ASC ";
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash $sql_extra $order LIMIT %d , %d ", $x = z_fetch_url($query);
intval($a->pager['start']), if($x['success']) {
intval($a->pager['itemspage']) $t = 0;
); $j = json_decode($x['body'],true);
if($j && $j['results']) {
$entries = array();
$photo = 'thumb';
foreach($j['results'] as $rr) {
if($r) {
$entries = array();
$photo = 'thumb'; $profile_link = chanlink_url($rr['url']);
foreach($r as $rr) { $pdesc = (($rr['description']) ? $rr['description'] . '<br />' : '');
$profile_link = chanlink_hash($rr['xchan_hash']); $details = '';
if(strlen($rr['locale']))
$details .= $rr['locale'];
if(strlen($rr['region'])) {
if(strlen($rr['locale']))
$details .= ', ';
$details .= $rr['region'];
}
if(strlen($rr['country'])) {
if(strlen($details))
$details .= ', ';
$details .= $rr['country'];
}
if(strlen($rr['birthday'])) {
if(($years = age($rr['birthday'],'UTC','')) != 0)
$details .= '<br />' . t('Age: ') . $years ;
}
if(strlen($rr['gender']))
$details .= '<br />' . t('Gender: ') . $rr['gender'];
$page_type = '';
$profile = $rr;
if ((x($profile,'locale') == 1)
|| (x($profile,'region') == 1)
|| (x($profile,'postcode') == 1)
|| (x($profile,'country') == 1))
$location = t('Location:');
$gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
$about = ((x($profile,'about') == 1) ? t('About:') : False);
$entry = array(
'id' => ++$t,
'profile_link' => $profile_link,
'photo' => $rr['photo'],
'alttext' => $rr['name'] . ' ' . $rr['address'],
'name' => $rr['name'],
'details' => $pdesc . $details,
'profile' => $profile,
'location' => $location,
'gender' => $gender,
'pdesc' => $pdesc,
'marital' => $marital,
'homepage' => $homepage,
'about' => $about,
);
$arr = array('contact' => $rr, 'entry' => $entry);
call_hooks('directory_item', $arr);
$entries[] = $entry;
unset($profile);
unset($location);
$pdesc = (($rr['xprof_desc']) ? $rr['xprof_desc'] . '<br />' : '');
$details = '';
if(strlen($rr['xprof_locale']))
$details .= $rr['xprof_locale'];
if(strlen($rr['xprof_region'])) {
if(strlen($rr['xprof_locale']))
$details .= ', ';
$details .= $rr['xprof_region'];
} }
if(strlen($rr['xprof_country'])) {
if(strlen($details))
$details .= ', ';
$details .= $rr['xprof_country'];
}
if(strlen($rr['xprof_dob'])) {
if(($years = age($rr['xprof_dob'],'UTC','')) != 0)
$details .= '<br />' . t('Age: ') . $years ;
}
if(strlen($rr['xprof_gender']))
$details .= '<br />' . t('Gender: ') . $rr['xprof_gender'];
$page_type = ''; logger('entries: ' . print_r($entries,true));
$profile = $rr; $o .= replace_macros($tpl, array(
'$search' => $search,
'$desc' => t('Find'),
'$finddsc' => t('Finding:'),
'$safetxt' => htmlspecialchars($search,ENT_QUOTES,'UTF-8'),
'$entries' => $entries,
'$dirlbl' => t('Directory'),
'$submit' => t('Find')
));
if ((x($profile,'xprof_locale') == 1)
|| (x($profile,'xprof_region') == 1)
|| (x($profile,'xprof_postcode') == 1)
|| (x($profile,'xprof_country') == 1))
$location = t('Location:');
$gender = ((x($profile,'xprof_gender') == 1) ? t('Gender:') : False); $o .= alt_pager($a,$j['records']);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
$about = ((x($profile,'about') == 1) ? t('About:') : False);
$t = 0;
$entry = array(
'id' => ++$t,
'profile_link' => $profile_link,
'photo' => $rr[xchan_photo_m],
'alttext' => $rr['xchan_name'],
'name' => $rr['xchan_name'],
'details' => $pdesc . $details,
'profile' => $profile,
'location' => $location,
'gender' => $gender,
'pdesc' => $pdesc,
'marital' => $marital,
'homepage' => $homepage,
'about' => $about,
);
$arr = array('contact' => $rr, 'entry' => $entry);
call_hooks('directory_item', $arr);
unset($profile);
unset($location);
$entries[] = $entry;
} }
logger('entries: ' . print_r($entries,true)); else
info( t("No entries (some entries may be hidden).") . EOL);
$o .= replace_macros($tpl, array(
'$search' => $search,
'$desc' => t('Find'),
'$finddsc' => t('Finding:'),
'$safetxt' => htmlspecialchars($search,ENT_QUOTES,'UTF-8'),
'$entries' => $entries,
'$dirlbl' => t('Directory'),
'$submit' => t('Find')
));
$o .= paginate($a);
} }
else
info( t("No entries (some entries may be hidden).") . EOL);
}
return $o; return $o;
} }

View File

@ -36,7 +36,6 @@ function dirsearch_content(&$a) {
$marital = ((x($_REQUEST,'marital')) ? $_REQUEST['marital'] : ''); $marital = ((x($_REQUEST,'marital')) ? $_REQUEST['marital'] : '');
$keywords = ((x($_REQUEST,'keywords')) ? $_REQUEST['keywords'] : ''); $keywords = ((x($_REQUEST,'keywords')) ? $_REQUEST['keywords'] : '');
$sql_extra = ''; $sql_extra = '';
if($name) if($name)