From: Steve Sutton Date: Tue, 3 Dec 2013 19:23:43 +0000 (+0000) Subject: Update site-map for member urls X-Git-Tag: v1.0~9 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=29515fbbd6316a2d108233be4f24684464e53d87;p=web%2FMichiganTrailMaps.git Update site-map for member urls Bringing in the member profile urls into the site-map --- diff --git a/Toolkit/Template/Page/SiteMap.php b/Toolkit/Template/Page/SiteMap.php index bcf055f..bdea135 100644 --- a/Toolkit/Template/Page/SiteMap.php +++ b/Toolkit/Template/Page/SiteMap.php @@ -108,12 +108,24 @@ class Toolkit_Template_Page_SiteMap // } try { - $sql = " - SELECT id, navigation_name, parent - FROM pages - WHERE parent = :parent - $where - ORDER BY parent, pos"; + if ( defined('MEMBERS_CATEGORY') + && defined('MEMBERS_DB') + && MEMBERS_DB + ) { + $sql = " + SELECT id, navigation_name, parent,include_members + FROM pages + WHERE parent = :parent + $where + ORDER BY parent, pos"; + } else { + $sql = " + SELECT id, navigation_name, parent + FROM pages + WHERE parent = :parent + $where + ORDER BY parent, pos"; + } $stmt = $this->_dbh->prepare($sql); $stmt->bindParam( ':parent', @@ -129,10 +141,27 @@ class Toolkit_Template_Page_SiteMap $row['id'] ) ); - $subs = $this->getNavArray($row['id']); + $subs = array(); + if ($row['include_members']) { + $subs = $this->_getMembersForPage($row['id']); + } + if ($row['id'] == 42) { + //echo '
'.print_r($subs, true).'
'; + } + $subs2 = $this->getNavArray($row['id']); + if ($subs2) { + foreach ($subs2 as $subsub) { + $subs[] = $subsub; + } + } if ($subs) { $nav[$row['id']]['subs'] = $subs; } + if ($row['id'] == 42) { + //echo '
'.print_r($nav, true).'
'; + //exit; + } + } return $nav; } catch (PDOException $e) { @@ -142,5 +171,82 @@ class Toolkit_Template_Page_SiteMap ); } } + + private function _getMembersForPage($pageId) + { + $members = array(); + $memberCats = array(); + $memberRegs = array(); + try { + // get member categories for the page + $sql = " + SELECT * + FROM toolbox.member_categories2toolbox_pages + WHERE page = :page"; + $stmt = $this->_dbh->prepare($sql); + $stmt->bindParam(":page", $pageId, PDO::PARAM_INT); + $stmt->execute(); + while ($memberCategory = $stmt->fetch(PDO::FETCH_ASSOC)) { + $memberCats[] = $memberCategory['category']; + } + // get member regions for the page + $sql = " + SELECT * + FROM toolbox.member_regions2toolbox_pages + WHERE page = :page"; + $stmt = $this->_dbh->prepare($sql); + $stmt->bindParam(":page", $pageId, PDO::PARAM_INT); + $stmt->execute(); + while ($memberRegions = $stmt->fetch(PDO::FETCH_ASSOC)) { + $memberRegs[] = $memberRegions['region']; + } + // if they're both empty then get list of all members + $where = array(); + if (!empty($memberCats)) { + $where[] = "member_id IN ( + SELECT member_id + FROM member_category + WHERE category_id IN (" . implode(',', $memberCats) . "))"; + } + if (!empty($memberRegs)) { + $where[] = "( + region IN (" . implode(',', $memberRegs) . ") + OR + region IS NULL)"; + + } + $sql = " + SELECT member_id,member_name + FROM member"; + if (!empty($where)) { + $sql .= " WHERE " . implode(' OR ', $where); + } + $sql .= " ORDER BY member_name"; + $stmt = $this->_dbh->query($sql); + while ($member = $stmt->fetch(PDO::FETCH_ASSOC)) { + $members[$member['member_id']] = array( + 'label' => $member['member_name'], + 'url' => BASE_URL . 'member-profile/' + . $pageId . '/' + . $member['member_id'] . '/' + ); + } + /* + if ($pageId == 42) { + echo '
'.$sql.'
'; + echo '
'.print_r($members, true).'
'; + echo '
'.print_r($memberCats, true).'
'; + echo '
'.print_r($memberRegs, true).'
'; + die('here'); + } + */ + } catch (PDOException $e) { + Toolkit_Logger::logException('DB Error', $e); + throw new Toolkit_Template_Exception( + 'Unable to fetch members for sitemap page' + ); + } + return $members; + } } ?> diff --git a/css/siteMap.css b/css/siteMap.css index da338dc..8370f05 100644 --- a/css/siteMap.css +++ b/css/siteMap.css @@ -38,7 +38,7 @@ .row > ol { float: left; margin-right: 3%; - width: 30% + /* width: 30% */ } .row > ol > li { margin: 5px; @@ -46,4 +46,4 @@ } .row > ol > li > ol > li { margin: 5px 0 5px 20px; - } \ No newline at end of file + } diff --git a/templates/siteMap.html b/templates/siteMap.html index fae4ba5..9e47f14 100644 --- a/templates/siteMap.html +++ b/templates/siteMap.html @@ -14,6 +14,14 @@
  1. {sChunk[label]:h} + + {if:sChunk[subs]} +
      +
    1. + {sChunk2[label]:h} +
    2. +
    + {end:}
{end:} @@ -23,4 +31,4 @@ {end:} - \ No newline at end of file +