diff options
-rw-r--r-- | mod/directory.php | 20 | ||||
-rw-r--r-- | mod/profiles.php | 27 | ||||
-rw-r--r-- | view/profile-in-directory.tpl | 4 | ||||
-rw-r--r-- | view/style.css | 13 | ||||
-rw-r--r-- | wip/todo | 4 |
5 files changed, 55 insertions, 13 deletions
diff --git a/mod/directory.php b/mod/directory.php index b105bf787..6d0e1f426 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -4,25 +4,37 @@ 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)) { $tpl = file_get_contents('view/directory_item.tpl'); 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 notice("No entries (some entries may be hidden)."); + + return $o; }
\ No newline at end of file diff --git a/mod/profiles.php b/mod/profiles.php index a8b6858d7..c6060c8c2 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -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. - - 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", intval($a->argv[1]), @@ -21,6 +19,7 @@ function profiles_post(&$a) { $_SESSION['sysmsg'] .= "Profile not found." . EOL; return; } + $is_default = (($r[0]['is-default']) ? 1 : 0); $profile_name = notags(trim($_POST['profile_name'])); if(! strlen($profile_name)) { @@ -38,7 +37,8 @@ function profiles_post(&$a) { $marital = notags(trim(implode(', ',$_POST['marital']))); $homepage = notags(trim($_POST['homepage'])); $about = str_replace(array('<','>','&'),array('<','>','&'),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'))) $gender = ''; @@ -72,6 +72,20 @@ function profiles_post(&$a) { if($r) $_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'); $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())); diff --git a/view/profile-in-directory.tpl b/view/profile-in-directory.tpl index a120a24c1..6e04505b0 100644 --- a/view/profile-in-directory.tpl +++ b/view/profile-in-directory.tpl @@ -4,13 +4,13 @@ Publish this profile in site directory? <div id="profile-in-dir-yes-wrapper"> <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> <div id="profile-in-dir-no-wrapper"> <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> diff --git a/view/style.css b/view/style.css index 7114f4394..806d62aff 100644 --- a/view/style.css +++ b/view/style.css @@ -463,4 +463,15 @@ input#dfrn-url { color: #3172BD; font-weight: bold; margin-bottom: 20px; -}
\ No newline at end of file +} + + +.directory-end { + clear: both; +} + +.directory-item { + float: left; + width: 225px; +} + @@ -15,13 +15,13 @@ contact editor remove reputation -publish to directory -directory page +directory page search, pager, details publish to external directory anonymous nav links + directory groups |