diff options
| author | Sylvie Greverend <sylvieg@users.sourceforge.net> | 2006-05-15 08:36:46 +0000 |
|---|---|---|
| committer | Sylvie Greverend <sylvieg@users.sourceforge.net> | 2006-05-15 08:36:46 +0000 |
| commit | 1c9cd208681808832762c5eacf5e19077ce237d9 (patch) | |
| tree | e2c6747b63e615698c7eba9e8863f44f4b4833d0 | |
| parent | b349ac5d1e5f33990007bb6de1cd617550abbefb (diff) | |
| download | pigeonholes-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.php | 24 | ||||
| -rw-r--r-- | bit_setup_inc.php | 3 |
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' ) ) { |
