Revision: 20589
Updated Code
at November 19, 2009 14:32 by lukemcr
Updated Code
<form id="group_search" method="post" action="{homepage}/groups/search/"> <input type="text" id="group_search_box" name="group_search_box" /> <input type="hidden" id="member_id" name="member_id" value="{member_id}" /> <input type="radio" name="search" value="search_discussions" id="search_discussions" checked>Discussions <input type="radio" name="search" value="search_groups" id="search_groups"> Groups<br> <input type="submit" value="Submit"/> </form> <?php if (isset($_POST['group_search_box'])) { global $DB, $REGX; $_POST = $REGX->xss_clean( $_POST ); $_POST = $REGX->strip_quotes( $_POST ); if ($_POST['search'] == 'search_groups') { $query = $DB->query("SELECT user_group_name, user_group_description, user_group_status, user_group_type, user_group_id, user_group_url_title FROM exp_user_groups WHERE (user_group_name LIKE '%".$_POST['group_search_box']."%' OR user_group_description LIKE '%".$_POST['group_search_box']."%') AND user_group_status='open'"); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No groups could be found matching your search."; } else { echo "<p>You searched Groups for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/<?php echo $row['user_group_url_title'];?>/<?php echo $row['user_group_id'];?>/"> <?php echo $row['user_group_name'];?></a> - <?php echo $row['user_group_description'];?><br> <?php } } } if ($_POST['search'] == "search_discussions") { /* Topic Search*/ $query = $DB->query("SELECT exp_user_groups_topics.user_group_id, exp_user_groups_topics.topic_id, exp_user_groups_topics.subject, exp_user_groups_topics.entry_date FROM exp_user_groups, exp_user_groups_topics WHERE ( exp_user_groups_topics.subject LIKE '%".$_POST['group_search_box']."%' OR exp_user_groups_topics.body LIKE '%".$_POST['group_search_box']."%' ) AND exp_user_groups_topics.status = 'open' AND ( exp_user_groups.user_group_type = 'public' OR exp_user_groups.user_group_type = 'moderated' ) AND exp_user_groups.user_group_id = exp_user_groups_topics.user_group_id" ); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No discussion topics could be found matching your search."; } else { echo "<p>You searched Discussions topics for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/"> <?php echo $row['subject'];?></a> - <?php echo date("Y-m-d H:i:s", $row['entry_date']);?><br> <?php } } /* Reply Search */ $query = $DB->query( "SELECT exp_user_groups_topics.user_group_id, exp_user_groups_replies.reply_id, exp_user_groups_replies.body, exp_user_groups_replies.entry_date, exp_user_groups_topics.subject, exp_user_groups_topics.topic_id FROM exp_user_groups, exp_user_groups_replies, exp_user_groups_topics WHERE exp_user_groups_replies.body LIKE '%".$_POST['group_search_box']."%' AND exp_user_groups_replies.status = 'open' AND ( exp_user_groups.user_group_type = 'public' OR exp_user_groups.user_group_type = 'moderated' ) AND exp_user_groups.user_group_id = exp_user_groups_topics.user_group_id AND exp_user_groups_topics.topic_id = exp_user_groups_replies.topic_id" ); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No replies could be found matching your search."; } else { echo "<p>You searched Discussion replies for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/<?php echo $row['reply_id'];?>/" /> Permalink</a> - <?php echo date("Y-m-d H:i:s", $row['entry_date']);?> in the <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/"> <?php echo $row['subject'];?></a> topic.<br> <?php } } } } ?>
Revision: 20588
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 19, 2009 14:30 by lukemcr
Initial Code
<?php // print_r($_POST); if (isset($_POST['group_search_box'])) { global $DB, $REGX; $_POST = $REGX->xss_clean( $_POST ); $_POST = $REGX->strip_quotes( $_POST ); if ($_POST['search'] == 'search_groups') { $query = $DB->query("SELECT user_group_name, user_group_description, user_group_status, user_group_type, user_group_id, user_group_url_title FROM exp_user_groups WHERE (user_group_name LIKE '%".$_POST['group_search_box']."%' OR user_group_description LIKE '%".$_POST['group_search_box']."%') AND user_group_status='open'"); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No groups could be found matching your search."; } else { echo "<p>You searched Groups for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/<?php echo $row['user_group_url_title'];?>/<?php echo $row['user_group_id'];?>/"> <?php echo $row['user_group_name'];?></a> - <?php echo $row['user_group_description'];?><br> <?php } } } if ($_POST['search'] == "search_discussions") { /* Topic Search*/ $query = $DB->query("SELECT exp_user_groups_topics.user_group_id, exp_user_groups_topics.topic_id, exp_user_groups_topics.subject, exp_user_groups_topics.entry_date FROM exp_user_groups, exp_user_groups_topics WHERE ( exp_user_groups_topics.subject LIKE '%".$_POST['group_search_box']."%' OR exp_user_groups_topics.body LIKE '%".$_POST['group_search_box']."%' ) AND exp_user_groups_topics.status = 'open' AND ( exp_user_groups.user_group_type = 'public' OR exp_user_groups.user_group_type = 'moderated' ) AND exp_user_groups.user_group_id = exp_user_groups_topics.user_group_id" ); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No discussion topics could be found matching your search."; } else { echo "<p>You searched Discussions topics for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/"> <?php echo $row['subject'];?></a> - <?php echo date("Y-m-d H:i:s", $row['entry_date']);?><br> <?php } } /* Reply Search */ $query = $DB->query( "SELECT exp_user_groups_topics.user_group_id, exp_user_groups_replies.reply_id, exp_user_groups_replies.body, exp_user_groups_replies.entry_date, exp_user_groups_topics.subject, exp_user_groups_topics.topic_id FROM exp_user_groups, exp_user_groups_replies, exp_user_groups_topics WHERE exp_user_groups_replies.body LIKE '%".$_POST['group_search_box']."%' AND exp_user_groups_replies.status = 'open' AND ( exp_user_groups.user_group_type = 'public' OR exp_user_groups.user_group_type = 'moderated' ) AND exp_user_groups.user_group_id = exp_user_groups_topics.user_group_id AND exp_user_groups_topics.topic_id = exp_user_groups_replies.topic_id" ); $num_rows=$query->num_rows; if ( $query->num_rows == 0 ) { echo "No replies could be found matching your search."; } else { echo "<p>You searched Discussion replies for \"<strong>".$_POST['group_search_box']."</strong>\".<br />"; echo "There are ".$query->num_rows." results.<br>"; foreach($query->result as $row) { ?> <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/<?php echo $row['reply_id'];?>/" /> Permalink</a> - <?php echo date("Y-m-d H:i:s", $row['entry_date']);?> in the <a href="{homepage}/groups/talk/<?php echo $row['user_group_id'];?>/<?php echo $row['topic_id'];?>/"> <?php echo $row['subject'];?></a> topic.<br> <?php } } } } ?>
Initial URL
http://lukemcreynolds.com/content/search_function_for_the_user_groups_module_for_expressionengine/
Initial Description
This is a simple search function for the [User Groups](http://www.dabbledoo.com/design/docs/User-Groups-Module/) module for ExpressionEngine. It searches groups (names and descriptions) as well as topics and topic replies. It respects group types as well - results from private groups will not show up in the topic or topic replies search results. "groups/search.php" is below - it relies on the search form at the very top.
Initial Title
Search function for the User Groups module for ExpressionEngine
Initial Tags
php, search, user
Initial Language
PHP