directory page still needs a lot of work, look up locally if local master or standalone, need to put some basic profile info in discovery page and direct to local directory master
This commit is contained in:
parent
2f48c31082
commit
ad20e1f617
13
boot.php
13
boot.php
@ -143,12 +143,13 @@ define ( 'UPDATE_FAILED', 1);
|
||||
*
|
||||
*/
|
||||
|
||||
define ( 'PAGE_NORMAL', 0 );
|
||||
define ( 'PAGE_SOAPBOX', 1 );
|
||||
define ( 'PAGE_COMMUNITY', 2 );
|
||||
define ( 'PAGE_FREELOVE', 3 );
|
||||
define ( 'PAGE_BLOG', 4 );
|
||||
define ( 'PAGE_PRVGROUP', 5 );
|
||||
define ( 'PAGE_NORMAL', 0x0000 );
|
||||
define ( 'PAGE_HIDDEN', 0x0001 );
|
||||
define ( 'PAGE_AUTOCONNECT', 0x0002 );
|
||||
|
||||
//define ( 'PAGE_FREELOVE', 3 );
|
||||
//define ( 'PAGE_BLOG', 4 );
|
||||
//define ( 'PAGE_PRVGROUP', 5 );
|
||||
|
||||
/**
|
||||
* Network and protocol family types
|
||||
|
6
include/dir_fns.php
Normal file
6
include/dir_fns.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
function find_upstream_directory($dirmode) {
|
||||
return '';
|
||||
}
|
||||
|
@ -2,10 +2,8 @@
|
||||
require_once('boot.php');
|
||||
require_once('include/zot.php');
|
||||
require_once('include/cli_startup.php');
|
||||
require_once('include/dir_fns.php');
|
||||
|
||||
function find_upstream_directory($dirmode) {
|
||||
return;
|
||||
}
|
||||
|
||||
function directory_run($argv, $argc){
|
||||
|
||||
|
@ -1,14 +1,11 @@
|
||||
<?php
|
||||
|
||||
require_once('include/dir_fns.php');
|
||||
|
||||
|
||||
function directory_init(&$a) {
|
||||
$a->set_pager_itemspage(60);
|
||||
|
||||
if(local_user()) {
|
||||
require_once('include/contact_widgets.php');
|
||||
|
||||
$a->page['aside'] .= findpeople_widget();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function directory_aside(&$a) {
|
||||
@ -35,56 +32,65 @@ function directory_content(&$a) {
|
||||
else
|
||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||
|
||||
|
||||
$tpl = get_markup_template('directory_header.tpl');
|
||||
|
||||
$globaldir = '';
|
||||
$gdirpath = dirname(get_config('system','directory_submit_url'));
|
||||
if(strlen($gdirpath)) {
|
||||
$globaldir = '<ul><li><div id="global-directory-link"><a href="'
|
||||
. zid($gdirpath,true) . '">' . t('Global Directory') . '</a></div></li></ul>';
|
||||
|
||||
$dirmode = get_config('system','directory_mode');
|
||||
if($dirmode === false)
|
||||
$dirmode = DIRECTORY_MODE_NORMAL;
|
||||
|
||||
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
|
||||
$localdir = true;
|
||||
return;
|
||||
}
|
||||
|
||||
$admin = '';
|
||||
// FIXME
|
||||
$localdir = true;
|
||||
|
||||
$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(! $localdir) {
|
||||
$directory = find_upstream_directory($dirmode);
|
||||
|
||||
if($directory) {
|
||||
$url = $directory['url'];
|
||||
}
|
||||
else {
|
||||
$url = DIRECTORY_FALLBACK_MASTER . '/post';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($localdir) {
|
||||
if($search)
|
||||
$search = dbesc($search);
|
||||
$sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country_name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
|
||||
|
||||
$publish = ((get_config('system','publish_all')) ? '' : " AND `publish` = 1 " );
|
||||
$sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, channel.channel_address, `pdesc`, `locality`,`region`,`country_name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
|
||||
|
||||
|
||||
$r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is_default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra ");
|
||||
if(count($r))
|
||||
$r = q("SELECT COUNT(channel_id) AS `total` FROM channel left join profile on channel.channel_id = profile.uid WHERE `is_default` = 1 and not ( channel_pageflags & %d ) $sql_extra ",
|
||||
intval(PAGE_HIDDEN)
|
||||
);
|
||||
if($r)
|
||||
$a->set_pager_total($r[0]['total']);
|
||||
|
||||
$order = " ORDER BY `name` ASC ";
|
||||
|
||||
|
||||
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is_default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
|
||||
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, channel_name, channel_address, channel_hash, channel_timezone, channel_pageflags FROM `profile` LEFT JOIN channel ON channel_id = `profile`.`uid` WHERE `is_default` = 1 and not ( channel_pageflags & %d ) $sql_extra $order LIMIT %d , %d ",
|
||||
intval(PAGE_HIDDEN),
|
||||
intval($a->pager['start']),
|
||||
intval($a->pager['itemspage'])
|
||||
);
|
||||
if(count($r)) {
|
||||
if($r) {
|
||||
|
||||
$entries = array();
|
||||
|
||||
if(in_array('small', $a->argv))
|
||||
$photo = 'thumb';
|
||||
else
|
||||
$photo = 'photo';
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
|
||||
$profile_link = $a->get_baseurl() . '/channel/' . $rr['nickname'];
|
||||
$profile_link = chanlink_hash($rr['channel_hash']);
|
||||
|
||||
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
|
||||
|
||||
@ -108,16 +114,7 @@ function directory_content(&$a) {
|
||||
if(strlen($rr['gender']))
|
||||
$details .= '<br />' . t('Gender: ') . $rr['gender'];
|
||||
|
||||
if($rr['page-flags'] == PAGE_NORMAL)
|
||||
$page_type = "Personal Profile";
|
||||
if($rr['page-flags'] == PAGE_SOAPBOX)
|
||||
$page_type = "Fan Page";
|
||||
if($rr['page-flags'] == PAGE_COMMUNITY)
|
||||
$page_type = "Community Forum";
|
||||
if($rr['page-flags'] == PAGE_FREELOVE)
|
||||
$page_type = "Open Forum";
|
||||
if($rr['page-flags'] == PAGE_PRVGROUP)
|
||||
$page_type = "Private Group";
|
||||
$page_type = '';
|
||||
|
||||
$profile = $rr;
|
||||
|
||||
@ -136,25 +133,24 @@ function directory_content(&$a) {
|
||||
|
||||
$about = ((x($profile,'about') == 1) ? t('About:') : False);
|
||||
|
||||
$tpl = get_markup_template('directory_item.tpl');
|
||||
|
||||
$entry = replace_macros($tpl,array(
|
||||
'$id' => $rr['id'],
|
||||
'$profile-link' => $profile_link,
|
||||
'$photo' => $a->get_cached_avatar_image($rr[$photo]),
|
||||
'$alt-text' => $rr['name'],
|
||||
'$name' => $rr['name'],
|
||||
'$details' => $pdesc . $details,
|
||||
'$page-type' => $page_type,
|
||||
'$profile' => $profile,
|
||||
'$location' => template_escape($location),
|
||||
'$gender' => $gender,
|
||||
'$pdesc' => $pdesc,
|
||||
'$marital' => $marital,
|
||||
'$homepage' => $homepage,
|
||||
'$about' => $about,
|
||||
|
||||
));
|
||||
$entry = array(
|
||||
'id' => $rr['id'],
|
||||
'profile_link' => $profile_link,
|
||||
'photo' => $rr[$photo],
|
||||
'alttext' => $rr['channel_name'],
|
||||
'name' => $rr['channel_name'],
|
||||
'details' => $pdesc . $details,
|
||||
'profile' => $profile,
|
||||
'location' => $location,
|
||||
'gender' => $gender,
|
||||
'pdesc' => $pdesc,
|
||||
'marital' => $marital,
|
||||
'homepage' => $homepage,
|
||||
'about' => $about,
|
||||
|
||||
);
|
||||
|
||||
$arr = array('contact' => $rr, 'entry' => $entry);
|
||||
|
||||
@ -163,16 +159,31 @@ function directory_content(&$a) {
|
||||
unset($profile);
|
||||
unset($location);
|
||||
|
||||
$o .= $entry;
|
||||
$entries[] = $entry;
|
||||
|
||||
}
|
||||
|
||||
$o .= "<div class=\"directory-end\" ></div>\r\n";
|
||||
logger('entries: ' . print_r($entries,true));
|
||||
|
||||
$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 \x28some entries may be hidden\x29.") . EOL);
|
||||
info( t("No entries (some entries may be hidden).") . EOL);
|
||||
|
||||
}
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
<h1>$sitedir</h1>
|
||||
<h1>$dirlbl</h1>
|
||||
|
||||
$globaldir
|
||||
$admin
|
||||
{{ if $search }}
|
||||
<h4>$finddsc $safetxt</h4>
|
||||
{{ endif }}
|
||||
|
||||
$finding
|
||||
{{for $entries as $entry}}
|
||||
|
||||
<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" />
|
||||
<input type="submit" name="submit" id="directory-search-submit" value="$submit" class="button" />
|
||||
</form>
|
||||
</div>
|
||||
<div id="directory-search-end"></div>
|
||||
{{ inc direntry.tpl }}{{ endinc }}
|
||||
|
||||
{{ endfor }}
|
||||
|
||||
|
||||
|
||||
<div class="directory-end"></div>
|
||||
|
||||
|
11
view/tpl/direntry.tpl
Normal file
11
view/tpl/direntry.tpl
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
<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.alttext" title="$entry.alttext" /></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="contact-name" id="directory-name-$entry.id">$entry.name</div>
|
||||
<div class="contact-details">$entry.details</div>
|
||||
</div>
|
Reference in New Issue
Block a user