diff options
| author | Nick Palmer <nick@sluggardy.net> | 2007-04-05 22:17:34 +0000 |
|---|---|---|
| committer | Nick Palmer <nick@sluggardy.net> | 2007-04-05 22:17:34 +0000 |
| commit | 544a49cfc3d84d3c74a5f2e8170b65b7d987c854 (patch) | |
| tree | 01112df49e850161668749ee1d7f2eb45d6c49bc /modules | |
| parent | cf47ac9247dc01755e770b7d24dee36972ee8402 (diff) | |
| download | pigeonholes-544a49cfc3d84d3c74a5f2e8170b65b7d987c854.tar.gz pigeonholes-544a49cfc3d84d3c74a5f2e8170b65b7d987c854.tar.bz2 pigeonholes-544a49cfc3d84d3c74a5f2e8170b65b7d987c854.zip | |
Add new mod_category_suckerfish module. :)
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/mod_category_suckerfish.php | 109 | ||||
| -rw-r--r-- | modules/mod_category_suckerfish.tpl | 9 |
2 files changed, 118 insertions, 0 deletions
diff --git a/modules/mod_category_suckerfish.php b/modules/mod_category_suckerfish.php new file mode 100644 index 0000000..affe63b --- /dev/null +++ b/modules/mod_category_suckerfish.php @@ -0,0 +1,109 @@ +<?php +/** + * $Header: /cvsroot/bitweaver/_bit_pigeonholes/modules/mod_category_suckerfish.php,v 1.1 2007/04/05 22:17:34 nickpalmer Exp $ + * + * Copyright (c) 2007 bitweaver.org + * + * All Rights Reserved. See copyright.txt for details and a complete list of authors. + * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details + * + * $Id: mod_category_suckerfish.php,v 1.1 2007/04/05 22:17:34 nickpalmer Exp $ + * @package pigeonholes + * @subpackage modules + */ + +global $gBitSmarty, $gQueryUserId, $gBitThemes, $module_rows, $module_params, $module_title, $gBitSystem; + +$gBitSmarty->assign( 'moduleTitle', isset($module_title) ? $module_title: 'Categories'); + +$ns = array(); +if($gBitSystem->isPackageActive('pigeonholes')) { + require_once(PIGEONHOLES_PKG_PATH.'Pigeonholes.php'); + + $p = new Pigeonholes(); + $s = new LibertyStructure(); + + // Prep get list screws with us. + $listHash = array('load_only_root'=> TRUE, 'sort_mode' => 'ls.structure_id_asc', 'offset' => 0, 'max_records' => '999999', 'find' => ''); + if (!empty($module_params['root_structure_id'])) { + $listHash['root_structure_id'] = $module_params['root_structure_id']; + } + + $l = $p->getList($listHash); + foreach ($l as $e) { + $d = $s->getSubTree( $e['structure_id'] ); + $d_o = array(); + foreach ($d as $c) { + $pos_var = &$d_o; + if($c['level']!=0) { + $pos = explode(".",$c['pos']); + $pos_var = &$d_o; + foreach ($pos as $pos_v) { + if (!isset($pos_var['children'])) { + $pos_var['children']=array(); + } + if (!isset($pos_var['children'][$pos_v-1])) { + $pos_var['children'][$pos_v-1]=array(); + } + $pos_var = &$pos_var['children'][$pos_v-1]; + } + } + if (empty($pos_var['data'])) { + $pos_var['children']=array(); + $c['display_url']=$p->getDisplayUrl($c['content_id']); + $pos_var['data']=$c; + } + } + $ns[]=$d_o; + } + +} + +if (!defined('MENU_LEVELS_DEFINED')) { + function menuLevels($levels, $l) { + global $gContent, $module_rows; + if (!$l) { + $ret = '<ul class="menu ver">'; + } + else { + $ret = '<ul>'; + } + foreach ($levels as $key => $level) { + $ret .= '<li'; + if (!empty($gContent->mContentId) && $gContent->mContentId == $level['data']['content_id']) { + $ret .= ' class="selected"'; + } + $ret .= '><a class="item'; + if (!empty($gContent->mContentId) && $gContent->mContentId == $level['data']['content_id']) { + $ret .= ' selected'; + } + $ret .= '" title="'.htmlspecialchars($level['data']['title']).'"'; + $ret .= ' href="'.$level['data']['display_url'].'">'; + $ret .= htmlspecialchars($level['data']['title']); + $ret .= '</a>'; + if (!empty($level['children']) && $l < $module_rows) { + $ret .= menuLevels($level['children'], $l + 1); + } + $ret .= '</li>'; + } + $ret .= '</ul>'; + + return $ret; + } + define('MENU_LEVELS_DEFINED', 1); +} + +if (!empty($module_params['expand_root']) && $module_params['expand_root']) { + if (isset($ns[0]) && !empty($ns[0]['children'])) { + $gBitSmarty->assign('pigeonMenu', menuLevels($ns[0]['children'], 0)); + } + else if (!empty($ns[0]['children'])) { + $gBitSmarty->assign('pigeonMenu', menuLevels($ns['children'], 0)); + } +} +else { + $gBitSmarty->assign('pigeonMenu', menuLevels($ns, 0)); +} + +$gBitSmarty->assign('pigeonholesPackageActive', $gBitSystem->isPackageActive('pigeonholes')); +?>
\ No newline at end of file diff --git a/modules/mod_category_suckerfish.tpl b/modules/mod_category_suckerfish.tpl new file mode 100644 index 0000000..22b717f --- /dev/null +++ b/modules/mod_category_suckerfish.tpl @@ -0,0 +1,9 @@ +{strip} +{if $pigeonholesPackageActive} + {bitmodule title="$moduleTitle" name="$moduleTitle"} + <div class="suckerfish"> + {$pigeonMenu} + </div> + {/bitmodule} +{/if} +{/strip} |
