Xaraya / Postnuke CVS Notices - Message

Note: this list is kept only as a demonstration for CVSNotice. For the latest CVS notices, see the Xaraya and Postnuke sites

View Statistics - Next Notice - Previous Notice

Directory filter : [ all ] / postnuke_modules / articles [ view in CVS ]

Date Directory [filter] File(s) [view] Author [filter]
02 Aug 2002 00:08:25postnuke_modules/articlespnuser.php,1.38,1.39 pnuserapi.php,1.31,1.32Mike
 allow filtering on both pubtype & category (part 2)

Update of /home/cvsroot/postnuke_modules/articles
In directory ns7.hostnuke.net:/tmp/cvs-serv16684

Modified Files:
	pnuser.php pnuserapi.php 
Log Message:
allow filtering on both pubtype & category (part 2)


Index: pnuser.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnuser.php,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** pnuser.php	31 Jul 2002 18:18:11 -0000	1.38
--- pnuser.php	2 Aug 2002 00:08:22 -0000	1.39
***************
*** 144,147 ****
--- 144,154 ----
  
  // TODO: make this dependent on publication type too ?
+         $output->Text('[ ');
+         $output->URL(pnModURL('articles',
+                               'user',
+                               'view',
+                               array('ptid' => $ptid)),
+                      pnVarPrepForDisplay(pnML('all')));
+         $output->Text(' ] ');
  
          // display one (or more) bread-crumb trails of categories
***************
*** 161,165 ****
                                            'user',
                                            'view',
!                                           array('cids' => array($info['cid']))),
                                 pnVarPrepForDisplay(pnVarCensor($info['name'])));
                      $output->Text(" - ");
--- 168,173 ----
                                            'user',
                                            'view',
!                                           array('cids' => array($info['cid']),
!                                                 'ptid' => $ptid)),
                                 pnVarPrepForDisplay(pnVarCensor($info['name'])));
                      $output->Text(" - ");
***************
*** 357,360 ****
--- 365,370 ----
      }
  
+     $ptid = $article['pubtypeid'];
+ 
      // TODO: add a function to userapi to get the list of all categories (with
      //       their name and description) for this article at once
***************
*** 385,389 ****
                                      'user',
                                      'view',
!                                     array('cids' => array($info['cid'])));
              $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              if ($info['cid'] != $cid) {
--- 395,400 ----
                                      'user',
                                      'view',
!                                     array('cids' => array($info['cid']),
!                                           'ptid' => $ptid));
              $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              if ($info['cid'] != $cid) {
***************
*** 397,401 ****
                  $icons .= '<a href="' .
                            pnModURL('articles','user','view',
!                                    array('cids' => array($info['cid']))) .
                            '"><img src="' . $info['image'] . '" border="0" ' .
                            'alt="' .
--- 408,413 ----
                  $icons .= '<a href="' .
                            pnModURL('articles','user','view',
!                                    array('cids' => array($info['cid']),
!                                          'ptid' => $ptid)) .
                            '"><img src="' . $info['image'] . '" border="0" ' .
                            'alt="' .
***************
*** 440,444 ****
                                               'display',
                                               array('aid' => $aid,
!                                                    'ptid' => $article['pubtypeid'])));
  
      // Template depending on publication type
--- 452,456 ----
                                               'display',
                                               array('aid' => $aid,
!                                                    'ptid' => $ptid)));
  
      // Template depending on publication type
***************
*** 644,647 ****
--- 656,661 ----
      }
  
+ // TODO: improve this nightmarish (but working) code
+ 
      // get the links and counts for all publication types
      $publinks = pnModAPIFunc('articles','user','getpublinks',
***************
*** 701,707 ****
--- 715,730 ----
          $cattree[$cid] = $list;
      }
+     // for all publication types
      for ($i=0;$i<count($publinks);$i++) {
          $publinks[$i]['cats'] = array();
+         // for each root category of this publication type
          foreach ($publinks[$i]['rootcats'] as $cid) {
+             // update the links in the category tree to include both cid & ptid
+             for ($j=0;$j<count($cattree[$cid]);$j++) {
+                 $cattree[$cid][$j]['link'] = pnModURL('articles','user','view',
+                              array('ptid' => $publinks[$i]['pubid'],
+                                    'cids' => array($cattree[$cid][$j]['id'])));
+             }
+             // and add the category tree to the categories to show
              $item['item'] = $cattree[$cid];
              $publinks[$i]['cats'][] = $item;

Index: pnuserapi.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnuserapi.php,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** pnuserapi.php	1 Aug 2002 01:38:50 -0000	1.31
--- pnuserapi.php	2 Aug 2002 00:08:22 -0000	1.32
***************
*** 222,226 ****
          }
          // check security
!         if (pnSecAuthAction(0, 'articles::item', "$item[title]::$item[aid]", ACCESS_READ)) {
              $articles[] = $item;
          }
--- 222,226 ----
          }
          // check security
!         if (pnSecAuthAction(0, 'articles::item', "$item[title]::$item[aid]", ACCESS_OVERVIEW)) {
              $articles[] = $item;
          }
***************
*** 317,321 ****
  
      // Security check
!     if (!pnSecAuthAction(0, 'articles::Item', "$title::$aid", ACCESS_READ)) {
          return false;
      }
--- 317,321 ----
  
      // Security check
!     if (!pnSecAuthAction(0, 'articles::item', "$title::$aid", ACCESS_READ)) {
          return false;
      }
***************
*** 849,865 ****
      // specify some short URLs relevant to your module
      if ($func == 'main') {
!         $path = '/' . $module . '/news/index.html';
      } elseif ($func == 'view') {
!         if (isset($cids) && is_array($cids)) {
              if (count($cids) == 1) {
!                 $path = '/' . $module . '/category' . $cids[0] . '.html';
              } else {
                  // this is *not* supported for short URLs -> do nothing
                  // (e.g. for multiple category selections)
              }
!         } elseif (isset($ptid) && isset($pubtypes[$ptid])) {
!             $path = '/' . $module . '/' . $pubtypes[$ptid]['name'] . '/index.html';
!         } else {
!             $path = '/' . $module . '/index.html';
          }
      } elseif ($func == 'display' && isset($aid)) {
--- 849,899 ----
      // specify some short URLs relevant to your module
      if ($func == 'main') {
!         $path = '/' . $module . '/news/';
      } elseif ($func == 'view') {
!         if (isset($ptid) && isset($pubtypes[$ptid])) {
!             $path = '/' . $module . '/' . $pubtypes[$ptid]['name'] . '/';
!         }
!         if (isset($cids) && is_array($cids) && count($cids) > 0) {
              if (count($cids) == 1) {
!                 if (isset($ptid) && isset($pubtypes[$ptid])) {
!                     if (isset($bycat)) {
!                         $path = '/' . $module . '/c' . $cids[0]
!                                 . '/' . $pubtypes[$ptid]['name'] . '/';
!                     } else {
!                         $path = '/' . $module . '/' . $pubtypes[$ptid]['name']
!                                 . '/c' . $cids[0] . '/';
!                     }
!                 } else {
!                     $path = '/' . $module . '/c' . $cids[0] . '/';
!                 }
! /* perhaps someday, with a convertor to 7-bit ASCII or something...
!                 // use a cache to avoid re-querying for each URL in the same cat
!                 static $catcache = array();
!                 $cid = $cids[0];
!                 if (pnModAPILoad('categories','user')) {
!                     if (isset($catcache[$cid])) {
!                         $cat = $catcache[$cid];
!                     } else {
!                         $cat = pnModAPIFunc('categories','user','getcatinfo',
!                                             array('cid' => $cid));
!                         // put the category in cache
!                         $catcache[$cid] = $cat;
!                     }
!                     if (!empty($cat) && !empty($cat['name'])) {
!                         // use the category name as part of the path here
!                         $name = preg_replace('/\s+/','_',$cat['name']);
!                         $name = strtolower($name);
!                         $path = '/' . $module . '/c/' . rawurlencode($name) .'/';
!                     }
!                 }
! */
! 
              } else {
                  // this is *not* supported for short URLs -> do nothing
                  // (e.g. for multiple category selections)
+                 $path = '';
              }
!         } elseif (empty($path)) {
!             $path = '/' . $module . '/';
          }
      } elseif ($func == 'display' && isset($aid)) {
***************
*** 882,888 ****
      } elseif ($func == 'archive') {
          if (isset($month)) {
!             $path = '/' . $module . '/archive/' . $month . '.html';
          } else {
!             $path = '/' . $module . '/archive/index.html';
          }
      } elseif ($func == 'viewmap') {
--- 916,927 ----
      } elseif ($func == 'archive') {
          if (isset($month)) {
!             if ($month == 'all') {
!                 $path = '/' . $module . '/archive/' . $month .'/';
!             } else {
!                 list($year,$mon) = split('-',$month);
!                 $path = '/' . $module . '/archive/' . $year .'/'. $mon . '/';
!             }
          } else {
!             $path = '/' . $module . '/archive/';
          }
      } elseif ($func == 'viewmap') {
***************
*** 915,935 ****
      if (empty($params[1])) {
          return array('main', $args);
!     } elseif ($params[1] == 'index.html') {
          return array('main', $args);
!     } elseif ($params[1] == 'map.html') {
          return array('viewmap', $args);
      } elseif (preg_match('/^(\d+)/',$params[1],$matches)) {
          $aid = $matches[1];
          $args['aid'] = $aid;
          return array('display', $args);
!     } elseif (preg_match('/^category(\d+)/',$params[1],$matches)) {
!         $cids[0] = $matches[1];
!         $args['cids'] = $cids;
!         return array('view', $args);
      } elseif ($params[1] == 'archive') {
!         if (!empty($params[2]) && preg_match('/^(\d{4}-\d+|all)/',$params[2],$matches)) {
              $args['month'] = $matches[1];
          }
          return array('archive', $args);
      } else {
          $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
--- 954,996 ----
      if (empty($params[1])) {
          return array('main', $args);
! 
!     } elseif (preg_match('/^index\.htm/i',$params[1])) {
          return array('main', $args);
! 
!     } elseif (preg_match('/^map\.htm/i',$params[1])) {
          return array('viewmap', $args);
+ 
      } elseif (preg_match('/^(\d+)/',$params[1],$matches)) {
          $aid = $matches[1];
          $args['aid'] = $aid;
          return array('display', $args);
! 
      } elseif ($params[1] == 'archive') {
!         if (!empty($params[2]) && preg_match('/^(\d{4}|all)/',$params[2],$matches)) {
              $args['month'] = $matches[1];
+             if ($args['month'] != 'all' && !empty($params[3]) && is_numeric($params[3])) {
+                 $args['month'] .= '-' . $params[3];
+             }
          }
          return array('archive', $args);
+ 
+     } elseif (preg_match('/^c(\d+)/',$params[1],$matches)) {
+         $cids[0] = $matches[1];
+         $args['cids'] = $cids;
+         if (!empty($params[2])) {
+             $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
+             foreach ($pubtypes as $id => $pubtype) {
+                 if ($params[1] == $pubtype['name']) {
+                     $args['ptid'] = $id;
+                     $args['bycat'] = 1;
+                     break;
+                 }
+             }
+         }
+         return array('view', $args);
+ 
+     } elseif ($params[1] == 'c') {
+         // perhaps someday...
+ 
      } else {
          $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
***************
*** 942,945 ****
--- 1003,1010 ----
                          $args['aid'] = $aid;
                          return array('display', $args);
+                     } elseif (preg_match('/^c(\d+)/',$params[2],$matches)) {
+                         $cids[0] = $matches[1];
+                         $args['cids'] = $cids;
+                         return array('view', $args);
                      } elseif ($params[2] == 'archive') {
                          return array('archive', $args);


Directory filter : [ all ] / postnuke_modules / articles [ view in CVS ]

View Statistics - Next Notice - Previous Notice


Visit Developer Site - Browse CVS Repository Syndicate via backend.rss
(max. once per hour please)
Powered by CVSNotice 0.1.3