aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mod/directory.php20
-rw-r--r--mod/profiles.php27
-rw-r--r--view/profile-in-directory.tpl4
-rw-r--r--view/style.css13
-rw-r--r--wip/todo4
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('&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')))
$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;
+}
+
diff --git a/wip/todo b/wip/todo
index 035f72a8d..0e3f88fec 100644
--- a/wip/todo
+++ b/wip/todo
@@ -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