summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvie Greverend <sylvieg@users.sourceforge.net>2006-05-15 08:36:46 +0000
committerSylvie Greverend <sylvieg@users.sourceforge.net>2006-05-15 08:36:46 +0000
commit1c9cd208681808832762c5eacf5e19077ce237d9 (patch)
treee2c6747b63e615698c7eba9e8863f44f4b4833d0
parentb349ac5d1e5f33990007bb6de1cd617550abbefb (diff)
downloadpigeonholes-1c9cd208681808832762c5eacf5e19077ce237d9.tar.gz
pigeonholes-1c9cd208681808832762c5eacf5e19077ce237d9.tar.bz2
pigeonholes-1c9cd208681808832762c5eacf5e19077ce237d9.zip
be able to filter a getList on a list of pigeonholes by setting hash['pigeonholes']
-rw-r--r--Pigeonholes.php24
-rw-r--r--bit_setup_inc.php3
2 files changed, 24 insertions, 3 deletions
diff --git a/Pigeonholes.php b/Pigeonholes.php
index d0312d1..c76bf14 100644
--- a/Pigeonholes.php
+++ b/Pigeonholes.php
@@ -1,6 +1,6 @@
<?php
/**
- * @version $Header: /cvsroot/bitweaver/_bit_pigeonholes/Pigeonholes.php,v 1.57 2006/05/05 16:51:47 squareing Exp $
+ * @version $Header: /cvsroot/bitweaver/_bit_pigeonholes/Pigeonholes.php,v 1.58 2006/05/15 08:36:46 sylvieg Exp $
*
* +----------------------------------------------------------------------+
* | Copyright ( c ) 2004, bitweaver.org
@@ -17,7 +17,7 @@
* Pigeonholes class
*
* @author xing <xing@synapse.plus.com>
- * @version $Revision: 1.57 $
+ * @version $Revision: 1.58 $
* @package pigeonholes
*/
@@ -931,4 +931,24 @@ function pigeonholes_content_store( $pObject, $pParamHash ) {
}
}
}
+/**
+ * filter the search with pigeonholes
+ * @param $pParamHash['pigeonholes'] - a pigeonhole or an array of pigeonhole content_id
+ **/
+function pigeonholes_content_list_sql ( &$pObject, $pParamHash = '') {
+ global $gBitSystem;
+ $ret = array();
+ if( /*$gBitSystem->isFeatureActive( 'pigeonholes_categorize_'.$pObject->getContentType() ) && */ !empty( $pParamHash['pigeonholes'] ) ) {
+ if ( is_array( $pParamHash['pigeonholes'] ) ) {
+ $ret['join_sql'] = "LEFT JOIN `".BIT_DB_PREFIX."pigeonhole_members` pm ON (lc .`content_id`= pm.`content_id`)";
+ $ret['where_sql'] = ' AND pm.`parent_id` in ('.implode( ',', array_fill(0, count( $pParamHash['pigeonholes'] ), '?' ) ).')';
+ $ret['bind_vars'] = $pParamHash['pigeonholes'];
+ } else {
+ $ret['join_sql'] = "LEFT JOIN `".BIT_DB_PREFIX."pigeonhole_members` pm ON (lc .`content_id`= pm.`content_id`)";
+ $ret['where_sql'] = " AND pm.`parent_id`=? ";
+ $ret['bind_vars'][] = $pParamHash['pigeonholes'];
+ }
+ }
+ return $ret;
+}
?>
diff --git a/bit_setup_inc.php b/bit_setup_inc.php
index 0149467..990076d 100644
--- a/bit_setup_inc.php
+++ b/bit_setup_inc.php
@@ -1,7 +1,7 @@
<?php
/**
* @author xing <xing@synapse.plus.com>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
* @package Pigeonholes
* @subpackage functions
*/
@@ -29,6 +29,7 @@ if( $gBitSystem->isPackageActive( 'pigeonholes' ) ) {
'content_edit_'.( $gBitSystem->isFeatureActive( 'pigeonholes_use_jstab' ) ? 'tab_' : 'mini_' ).'tpl' => 'bitpackage:pigeonholes/pigeonholes_input_'.( $gBitSystem->isFeatureActive( 'pigeonholes_use_jstab' ) ? '' : 'mini_' ).'inc.tpl',
'content_view_tpl' => 'bitpackage:pigeonholes/display_members.tpl',
'content_nav_tpl' => 'bitpackage:pigeonholes/display_paths.tpl',
+ 'content_list_sql_function' => 'pigeonholes_content_list_sql',
) );
if( $gBitUser->hasPermission( 'p_pigeonholes_view' ) ) {