direcotry cleanups

This commit is contained in:
Mike Macgirvin 2010-07-09 03:10:28 -07:00
parent 64bbf395f0
commit d733b39b2d
5 changed files with 55 additions and 13 deletions

View File

@ -4,25 +4,37 @@
function directory_content(&$a) { function directory_content(&$a) {
$tpl .= file_get_contents('view/directory_header'); $tpl .= file_get_contents('view/directory_header.tpl');
$o .= replace_macros($tpl); $o .= replace_macros($tpl, array(
$r = q("SELECT * FROM `profile` WHERE `default` = 1 AND `publish` = 1"); ));
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `publish` = 1");
if(count($r)) { if(count($r)) {
$tpl = file_get_contents('view/directory_item.tpl'); $tpl = file_get_contents('view/directory_item.tpl');
foreach($r as $rr) { foreach($r as $rr) {
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
$o .= expand_macros($tpl,array(
$o .= replace_macros($tpl,array(
'$id' => $rr['id'],
'$profile-link' => $profile_link,
'$photo' => $rr['photo'],
'$alt-text' => $rr['name'],
'$name' => $rr['name'],
'$details' => $details // FIXME
)); ));
} }
$o .= "<div class=\"directory-end\" ></div>\r\n";
} }
else else
notice("No entries (some entries may be hidden)."); notice("No entries (some entries may be hidden).");
return $o;
} }

View File

@ -10,8 +10,6 @@ function profiles_post(&$a) {
// todo - delete... ensure that all contacts using the to-be-deleted profile are moved to the default. // todo - delete... ensure that all contacts using the to-be-deleted profile are moved to the default.
if(($a->argc > 1) && ($a->argv[1] != "new") && intval($a->argv[1])) { if(($a->argc > 1) && ($a->argv[1] != "new") && intval($a->argv[1])) {
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1", $r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($a->argv[1]), intval($a->argv[1]),
@ -21,6 +19,7 @@ function profiles_post(&$a) {
$_SESSION['sysmsg'] .= "Profile not found." . EOL; $_SESSION['sysmsg'] .= "Profile not found." . EOL;
return; return;
} }
$is_default = (($r[0]['is-default']) ? 1 : 0);
$profile_name = notags(trim($_POST['profile_name'])); $profile_name = notags(trim($_POST['profile_name']));
if(! strlen($profile_name)) { if(! strlen($profile_name)) {
@ -38,7 +37,8 @@ function profiles_post(&$a) {
$marital = notags(trim(implode(', ',$_POST['marital']))); $marital = notags(trim(implode(', ',$_POST['marital'])));
$homepage = notags(trim($_POST['homepage'])); $homepage = notags(trim($_POST['homepage']));
$about = str_replace(array('<','>','&'),array('&lt;','&gt;','&amp;'),trim($_POST['about'])); $about = str_replace(array('<','>','&'),array('&lt;','&gt;','&amp;'),trim($_POST['about']));
if(x($_POST,'profile_in_directory'))
$publish = (($_POST['profile_in_directory'] == 1) ? 1: 0);
if(! in_array($gender,array('','Male','Female','Other'))) if(! in_array($gender,array('','Male','Female','Other')))
$gender = ''; $gender = '';
@ -72,6 +72,20 @@ function profiles_post(&$a) {
if($r) if($r)
$_SESSION['sysmsg'] .= "Profile updated." . EOL; $_SESSION['sysmsg'] .= "Profile updated." . EOL;
if($is_default) {
$r = q("UPDATE `profile`
SET `publish` = %d
WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($publish),
intval($a->argv[1]),
intval($_SESSION['uid'])
);
}
} }
@ -134,7 +148,12 @@ function profiles_content(&$a) {
require_once('view/profile_selectors.php'); require_once('view/profile_selectors.php');
$tpl = file_get_contents('view/jot-header.tpl'); $tpl = file_get_contents('view/jot-header.tpl');
$profile_in_dir = file_get_contents("view/profile-in-directory.tpl"); $opt_tpl = file_get_contents("view/profile-in-directory.tpl");
$profile_in_dir = replace_macros($opt_tpl,array(
'$yes_selected' => (($r[0]['publish']) ? " checked=\"checked\" " : ""),
'$no_selected' => (($r[0]['publish'] == 0) ? " checked=\"checked\" " : "")
));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl())); $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl()));

View File

@ -4,13 +4,13 @@ Publish this profile in site directory?
<div id="profile-in-dir-yes-wrapper"> <div id="profile-in-dir-yes-wrapper">
<label id="profile-in-dir-yes-label" for="profile-in-dir-yes">Yes</label> <label id="profile-in-dir-yes-label" for="profile-in-dir-yes">Yes</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-yes" checked="checked" value="1" /> <input type="radio" name="profile_in_directory" id="profile-in-dir-yes" $yes_selected value="1" />
<div id="profile-in-dir-break" ></div> <div id="profile-in-dir-break" ></div>
</div> </div>
<div id="profile-in-dir-no-wrapper"> <div id="profile-in-dir-no-wrapper">
<label id="profile-in-dir-no-label" for="profile-in-dir-no">No</label> <label id="profile-in-dir-no-label" for="profile-in-dir-no">No</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-no" value="0" /> <input type="radio" name="profile_in_directory" id="profile-in-dir-no" $no_selected value="0" />
<div id="profile-in-dir-end"></div> <div id="profile-in-dir-end"></div>
</div> </div>

View File

@ -463,4 +463,15 @@ input#dfrn-url {
color: #3172BD; color: #3172BD;
font-weight: bold; font-weight: bold;
margin-bottom: 20px; margin-bottom: 20px;
} }
.directory-end {
clear: both;
}
.directory-item {
float: left;
width: 225px;
}

View File

@ -15,13 +15,13 @@ contact editor
remove remove
reputation reputation
publish to directory
directory page directory page search, pager, details
publish to external directory publish to external directory
anonymous nav links anonymous nav links
directory
groups groups