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]
16 Aug 2002 15:52:11postnuke_modules/articlespnadmin.php,1.29,1.30 pninit.php,1.22,1.23 pnuser.php,1.48,1.49 pnuserapi.php,1.38,1.39Mike
 AND categories, catid, modules aliases for short URLs and some other stuff

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

Modified Files:
	pnadmin.php pninit.php pnuser.php pnuserapi.php 
Log Message:
AND categories, catid, modules aliases for short URLs and some other stuff


Index: pnadmin.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnadmin.php,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** pnadmin.php	8 Aug 2002 23:03:20 -0000	1.29
--- pnadmin.php	16 Aug 2002 15:52:08 -0000	1.30
***************
*** 38,44 ****
          return;
      }
  
      // Return the template variables defined in this function
!     return array('menu' => articles_admin_getmenu());
  }
  
--- 38,48 ----
          return;
      }
+     $welcome = '';
+ // TODO: make language-dependent
+     @include('modules/articles/pnlang/eng/admindoc.php');
  
      // Return the template variables defined in this function
!     return array('menu' => articles_admin_getmenu(),
!                  'welcome' => $welcome);
  }
  
***************
*** 1081,1088 ****
--- 1085,1094 ----
           $name,
           $descr,
+          $usealias,
           $config) = pnVarCleanFromInput('ptid',
                                          'action',
                                          'name',
                                          'descr',
+                                         'usealias',
                                          'config');
  
***************
*** 1091,1094 ****
--- 1097,1103 ----
          $ptid = '';
      }
+     if (!isset($usealias)) {
+         $usealias = 0;
+     }
  
      // Initialise the template variables
***************
*** 1167,1170 ****
--- 1176,1182 ----
                  return false;
              } else {
+                 if ($usealias) {
+                     pnModSetAlias($name,'articles');
+                 }
                  // Redirect to the admin view page
                  pnSessionSetVar('statusmsg',
***************
*** 1175,1178 ****
--- 1187,1195 ----
              }
          } elseif ($action == 'update') {
+             if ($usealias) {
+                 pnModSetAlias($pubtypes[$ptid]['name'],'articles');
+             } else {
+                 pnModDelAlias($pubtypes[$ptid]['name'],'articles');
+             }
              if (!pnModAPIFunc('articles',
                                'admin',
***************
*** 1210,1213 ****
--- 1227,1231 ----
              }
          } elseif ($action == 'confirm') {
+             pnModDelAlias($pubtypes[$ptid]['name'],'articles');
              if (!pnModAPIFunc('articles',
                                'admin',
***************
*** 1287,1290 ****
--- 1305,1309 ----
              $data['fields'][] = array('name' => $field, 'descr' => $value);
          }
+         $labels['usealias'] = pnML('Use publication type as alias for articles in short URLs');
      } elseif ($action == 'modify') {
          $labels['title'] = pnML('Edit publication type');
***************
*** 1300,1303 ****
--- 1319,1329 ----
          foreach ($pubtypes[$ptid]['config'] as $field => $value) {
              $data['fields'][] = array('name' => $field, 'descr' => $value);
+         }
+         $labels['usealias'] = pnML('Use publication type as alias for articles in short URLs');
+         $alias = pnModGetAlias($pubtypes[$ptid]['name']);
+         if ($alias == 'articles') {
+             $data['aliaschecked'] = 'checked';
+         } else {
+             $data['aliaschecked'] = '';
          }
      } elseif ($action == 'delete') {

Index: pninit.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pninit.php,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** pninit.php	10 Aug 2002 11:43:09 -0000	1.22
--- pninit.php	16 Aug 2002 15:52:08 -0000	1.23
***************
*** 288,291 ****
--- 288,292 ----
      // Register Block types (this *should* happen at activation/deactivation)
      pnBlockTypeRegister('articles', 'related');
+     pnBlockTypeRegister('articles', 'topitems');
  
      // Initialisation successful
***************
*** 386,389 ****
--- 387,393 ----
      pnModDelVar('articles', 'number_of_categories.4');
      pnModDelVar('articles', 'cids.4');
+ 
+     pnBlockTypeUnregister('articles', 'related');
+     pnBlockTypeUnregister('articles', 'topitems');
  
      // Deletion successful

Index: pnuser.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnuser.php,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** pnuser.php	14 Aug 2002 00:16:51 -0000	1.48
--- pnuser.php	16 Aug 2002 15:52:08 -0000	1.49
***************
*** 38,45 ****
  // TODO: generalize, organize, put stuff in userapi and categories, simplify
  
- // TODO: allow *AND*-ing of categories (also in categories API) !!!
- 
  /**
   * view articles
   */
  function articles_user_view()
--- 38,48 ----
  // TODO: generalize, organize, put stuff in userapi and categories, simplify
  
  /**
   * view articles
+  *
+  * catid=1   : category 1        == cids[0]=1
+  * catid=1-2 : category 1 OR 2   == cids[0]=1&cids[1]=2
+  * catid=1+2 : category 1 AND 2  == cids[0]=1&cids[1]=2&andcids=1
+  *
   */
  function articles_user_view()
***************
*** 48,54 ****
--- 51,61 ----
      list($startnum,
           $cids,
+          $andcids,
+          $catid,
           $ptid,
           $authorid) = pnVarCleanFromInput('startnum',
                                            'cids',
+                                           'andcids',
+                                           'catid',
                                            'ptid',
                                            'authorid');
***************
*** 61,65 ****
  // Example : show only frontpage-approved news articles by default
      // publication type ID (for news, sections, reviews, ...)
!     if (!isset($cids) && !isset($ptid) && !isset($authorid)) {
          $ishome = 1;
          // news articles
--- 68,72 ----
  // Example : show only frontpage-approved news articles by default
      // publication type ID (for news, sections, reviews, ...)
!     if (!isset($catid) && !isset($cids) && !isset($ptid) && !isset($authorid)) {
          $ishome = 1;
          // news articles
***************
*** 91,94 ****
--- 98,107 ----
          return;
      }
+     // allow articles to work without comments
+     if (!pnModAvailable('comments') || !pnModAPILoad('comments', 'user')) {
+         $skipcomments = 1;
+     } else {
+         $skipcomments = 0;
+     }
  
  // TODO: show this *after* category list when we start from categories :)
***************
*** 122,125 ****
--- 135,160 ----
      }
  
+     // turn catid into cids array (and set andcids)
+     if (!empty($catid)) {
+         if (strpos($catid,' ')) {
+             $cids = explode(' ',$catid);
+             $andcids = true;
+         } elseif (strpos($catid,'+')) {
+             $cids = explode('+',$catid);
+             $andcids = true;
+         } else {
+             $cids = explode('-',$catid);
+             $andcids = false;
+         }
+     } else {
+         $catid = null;
+         if (empty($cids)) {
+             $cids = array();
+         }
+         if (empty($andcids)) {
+             $andcids = false;
+         }
+     }
+ 
      // Get articles
      $articles = pnModAPIFunc('articles',
***************
*** 128,131 ****
--- 163,167 ----
                               array('startnum' => $startnum,
                                     'cids' => $cids,
+                                    'andcids' => $andcids,
                                     'ptid' => (isset($ptid) ? $ptid : null),
                                     'authorid' => $authorid,
***************
*** 162,166 ****
  
  // TODO: make this dependent on publication type too ?
!         $data['catlabel'] = pnML('Browse in');
          $data['backlabel'] = pnML('All');
          $data['backlink'] = pnModURL('articles', 'user', 'view',
--- 198,206 ----
  
  // TODO: make this dependent on publication type too ?
!         if ($andcids) {
!             $data['catlabel'] = pnML('Selected filter');
!         } else {
!             $data['catlabel'] = pnML('Browse in');
!         }
          $data['backlabel'] = pnML('All');
          $data['backlink'] = pnModURL('articles', 'user', 'view',
***************
*** 174,177 ****
--- 214,218 ----
                                      array('status' => array(3,2),
                                            'cids' => $cids,
+                                     //      'andcids' => $andcids,
                                            'ptid' => $ptid,
                                            'reverse' => 1));
***************
*** 205,209 ****
                                            'user',
                                            'view',
!                                           array('cids' => array($info['cid']),
                                                  'ptid' => $ptid));
                  $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
--- 246,250 ----
                                            'user',
                                            'view',
!                                           array('catid' => $info['cid'],
                                                  'ptid' => $ptid));
                  $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
***************
*** 212,216 ****
                  } else {
                      $item['pjoin'] = '';
!                     $item['plink'] = '';
                      if (!empty($info['image'])) {
                          $data['icons'][] = array('image' => $info['image'],
--- 253,259 ----
                  } else {
                      $item['pjoin'] = '';
!                     if (!$andcids) {
!                         $item['plink'] = '';
!                     }
                      if (!empty($info['image'])) {
                          $data['icons'][] = array('image' => $info['image'],
***************
*** 225,229 ****
          //TODO: only show 1-st level children, horizontally ?
          // show child categories (when only 1 category is selected)
- //        if (count($cids) == 1 && empty($articles)) {
          if (count($cids) == 1) {
              if (!pnModAPILoad('categories', 'visual')) {
--- 268,271 ----
***************
*** 267,271 ****
          // TODO: show icons instead of (or in addition to) a link if available ?
                  $info['link'] = pnModURL('articles','user','view',
!                                          array('cids' => array($info['id']),
                                                 'ptid' => $ptid));
                  $info['name'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
--- 309,313 ----
          // TODO: show icons instead of (or in addition to) a link if available ?
                  $info['link'] = pnModURL('articles','user','view',
!                                          array('catid' => $info['id'],
                                                 'ptid' => $ptid));
                  $info['name'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
***************
*** 284,303 ****
              $string = pnModGetVar('articles','cids');
          }
- // TODO: make 1 call to get all
          $rootcats = split(';',$string);
          $isfirst = 1;
          $data['catlinks'] = array();
!         foreach ($rootcats as $cid) {
!             if (empty($cid)) {
!                 continue;
!             }
!             $info = pnModAPIFunc('categories',
!                                  'user',
!                                  'getcatinfo',
!                                  array('cid' => $cid));
              $item = array();
              $item['cattitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              $item['catlink'] = pnModURL('articles','user','view',
!                                         array('cids' => array($info['cid']),
                                                'ptid' => $ptid));
              if ($isfirst) {
--- 326,341 ----
              $string = pnModGetVar('articles','cids');
          }
          $rootcats = split(';',$string);
          $isfirst = 1;
          $data['catlinks'] = array();
!         $catlist = pnModAPIFunc('categories',
!                                 'user',
!                                 'getcatinfo',
!                                 array('cids' => $rootcats));
!         foreach ($catlist as $cid => $info) {
              $item = array();
              $item['cattitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              $item['catlink'] = pnModURL('articles','user','view',
!                                         array('catid' => $info['cid'],
                                                'ptid' => $ptid));
              if ($isfirst) {
***************
*** 309,312 ****
--- 347,355 ----
              $data['catlinks'][] = $item;
          }
+     } elseif (!empty($authorid)) {
+         $data['catlabel'] = pnML('Browse by author');
+         $data['author'] = pnUserGetVar('name', $authorid);
+     } else {
+         $data['catlabel'] = pnML('TODO: Now what ?');
      }
  
***************
*** 316,320 ****
          return $data;
      }
- 
      $out = '';
      foreach ($articles as $article)
--- 359,362 ----
***************
*** 323,327 ****
                                      array('aid' => $article['aid'],
                                            'ptid' => $article['pubtypeid'],
!                                           'cids' => $cids));
          $bodylen = strlen($article['body']);
          if ($bodylen > 0) {
--- 365,369 ----
                                      array('aid' => $article['aid'],
                                            'ptid' => $article['pubtypeid'],
!                                           'catid' => $catid));
          $bodylen = strlen($article['body']);
          if ($bodylen > 0) {
***************
*** 333,340 ****
          }
  
!         if ($article['pubtypeid'] == 1) {
              $article['date'] = strftime(_DATETIMELONG, $article['pubdate']);
!         // TODO: use some comments user API function to get comment count
!             $article['comments'] = '';
          // TODO: to be defined
              $article['topic_icons'] = '';
--- 375,398 ----
          }
  
!         $curptid = $article['pubtypeid'];
!         if (!empty($pubtypes[$curptid]['config']['pubdate'])) {
              $article['date'] = strftime(_DATETIMELONG, $article['pubdate']);
!         // TODO: make configurable too, and/or put in API
!             if ($skipcomments) {
!                 $article['comments'] = '';
!             } else {
!                 $article['comments'] = pnModAPIFunc('comments',
!                                                     'user',
!                                                     'TotalCount',
!                                 array('modid' => pnModGetIDFromName('articles'),
!                                       'itemid' => $article['aid']));
!                 if (!$article['comments']) {
!                     $article['comments'] = pnML('no comments');
!                 } elseif ($article['comments'] == 1) {
!                     $article['comments'] .= ' ' . pnML('comment');
!                 } else {
!                     $article['comments'] .= ' ' . pnML('comments');
!                 }
!             }
          // TODO: to be defined
              $article['topic_icons'] = '';
***************
*** 355,358 ****
--- 413,417 ----
                     pnModAPIFunc('articles', 'user', 'countitems',
                                  array('cids' => $cids,
+                                       'andcids' => $andcids,
                                        'ptid' => (isset($ptid) ? $ptid : null),
                                        'authorid' => $authorid,
***************
*** 362,366 ****
                              'user',
                              'view',
!                             array('cids' => $cids,
                                    'ptid' => $ptid,
                                    'startnum' => '%%')),
--- 421,425 ----
                              'user',
                              'view',
!                             array('catid' => $catid,
                                    'ptid' => $ptid,
                                    'startnum' => '%%')),
***************
*** 479,483 ****
                                      'user',
                                      'view',
!                                     array('cids' => array($info['cid']),
                                            'ptid' => $ptid));
              $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
--- 538,542 ----
                                      'user',
                                      'view',
!                                     array('catid' => $info['cid'],
                                            'ptid' => $ptid));
              $item['ptitle'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
***************
*** 492,496 ****
                  $icons .= '<a href="' .
                            pnModURL('articles','user','view',
!                                    array('cids' => array($info['cid']),
                                           'ptid' => $ptid)) .
                            '"><img src="' . $info['image'] . '" border="0" ' .
--- 551,555 ----
                  $icons .= '<a href="' .
                            pnModURL('articles','user','view',
!                                    array('catid' => $info['cid'],
                                           'ptid' => $ptid)) .
                            '"><img src="' . $info['image'] . '" border="0" ' .
***************
*** 868,872 ****
                                           'user',
                                           'view',
!                                          array('cids' => array($info['id'])));
              $list[$i]['name'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              if (isset($catcount[$info['id']])) {
--- 927,931 ----
                                           'user',
                                           'view',
!                                          array('catid' => $info['id']));
              $list[$i]['name'] = pnVarPrepForDisplay(pnVarCensor($info['name']));
              if (isset($catcount[$info['id']])) {
***************
*** 889,893 ****
                  $cattree[$cid][$j]['link'] = pnModURL('articles','user','view',
                               array('ptid' => $ptid,
!                                    'cids' => array($childcid)));
                  if (isset($pubcatcount[$ptid][$childcid])) {
                      $cattree[$cid][$j]['count'] = $pubcatcount[$ptid][$childcid];
--- 948,952 ----
                  $cattree[$cid][$j]['link'] = pnModURL('articles','user','view',
                               array('ptid' => $ptid,
!                                    'catid' => $childcid));
                  if (isset($pubcatcount[$ptid][$childcid])) {
                      $cattree[$cid][$j]['count'] = $pubcatcount[$ptid][$childcid];
***************
*** 909,917 ****
                                   // frontpage or approved
                                   array('status' => array(3,2),
!                                        'numcids' => 2, // depends on ptid cids.
                                         'reverse' => 1));
      $dump = 'TODO: show matrix/pivottable for categories (under construction)<br />';
      list($one,$two) = $publinks[0]['rootcats'];
!     if (count($cattree[$one]) < count($cattree[$two])) {
          $three = $one;
          $one = $two;
--- 968,983 ----
                                   // frontpage or approved
                                   array('status' => array(3,2),
!                                        'groupcids' => 2, // depends on ptid cids.
                                         'reverse' => 1));
      $dump = 'TODO: show matrix/pivottable for categories (under construction)<br />';
+ 
+     $dump .= '<form method="post">' . pnML('Publication') . ' <select name="ptid"><option value=""> ' . pnML(' ALL ');
+     foreach ($publinks as $pub) {
+         $dump .= '<option value="' . $pub['pubid'] . '"> ' . $pub['pubtitle'];
+     }
+     $dump .= '</select></form><br />';
+ 
      list($one,$two) = $publinks[0]['rootcats'];
!     if (count($cattree[$one]) <= count($cattree[$two])) {
          $three = $one;
          $one = $two;
***************
*** 942,947 ****
      foreach ($matrix as $cid1 => $list) {
          foreach ($list as $cid2 => $val) {
!             $link = pnModURL('articles','user','view',array('cids' => array($cid2)));
!             $dump .= '<td><a href="' . $link . '">' . $name[$cid2] . '</a></td>';
          }
          break;
--- 1008,1019 ----
      foreach ($matrix as $cid1 => $list) {
          foreach ($list as $cid2 => $val) {
!             $link = pnModURL('articles','user','view',array('catid' => $cid2));
! //            $dump .= '<td><a href="' . $link . '">' . $name[$cid2] . '</a></td>';
! //$names = '';
! //for ($i=0; $i < strlen($name[$cid2]); $i++) {
! //    $names .= substr($name[$cid2],$i,1) . '<br>';
! //}
! $showname = wordwrap($name[$cid2],9,'<br>',1);
!             $dump .= '<td valign="top" align="middle"><a href="' . $link . '">' . $showname . '</a></td>';
          }
          break;
***************
*** 949,961 ****
      $dump .= '</tr>';
      foreach ($matrix as $cid1 => $list) {
!         $link = pnModURL('articles','user','view',array('cids' => array($cid1)));
          $dump .= '<td><a href="' . $link . '">' . $name[$cid1] . '</a></td>';
          foreach ($list as $cid2 => $val) {
              if ($val > 0) {
  // TODO: support andcids as parameter :-)
!                 $cidlist = array($cid1,$cid2);
!                 sort($cidlist,SORT_NUMERIC);
!                 $cids = join('+',$cidlist);
!                 $link = pnModURL('articles','user','view',array('cids' => $cids));
                  $dump .= '<td align="center"><a href="' . $link . '">&nbsp;' .$val . '&nbsp;</a></td>';
              } else {
--- 1021,1033 ----
      $dump .= '</tr>';
      foreach ($matrix as $cid1 => $list) {
!         $link = pnModURL('articles','user','view',array('catid' => $cid1));
          $dump .= '<td><a href="' . $link . '">' . $name[$cid1] . '</a></td>';
          foreach ($list as $cid2 => $val) {
              if ($val > 0) {
  // TODO: support andcids as parameter :-)
!                 $cids = array($cid1,$cid2);
!                 sort($cids,SORT_NUMERIC);
!                 $catid = join('+',$cids);
!                 $link = pnModURL('articles','user','view',array('catid' => $catid));
                  $dump .= '<td align="center"><a href="' . $link . '">&nbsp;' .$val . '&nbsp;</a></td>';
              } else {

Index: pnuserapi.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pnuserapi.php,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** pnuserapi.php	13 Aug 2002 22:14:48 -0000	1.38
--- pnuserapi.php	16 Aug 2002 15:52:08 -0000	1.39
***************
*** 50,60 ****
   * @param $args['numitems'] number of articles to get
   * @param $args['startnum'] starting article number
   * @param $args['authorid'] the ID of the author
   * @param $args['ptid'] publication type ID (for news, sections, reviews, ...)
   * @param $args['status'] array of requested status(es) for the articles
!  * @param $args['cids'] array of category IDs for which to get articles (OR)
   *                      (for all categories donīt set it)
! // TODO : better name for params
!  * @param $args['andcids'] array of category IDs for which to get articles (AND)
   * @param $args['startdate'] articles published at startdate or later
   *                           (unix timestamp format)
--- 50,60 ----
   * @param $args['numitems'] number of articles to get
   * @param $args['startnum'] starting article number
+  * @param $args['aids'] array of article ids to get
   * @param $args['authorid'] the ID of the author
   * @param $args['ptid'] publication type ID (for news, sections, reviews, ...)
   * @param $args['status'] array of requested status(es) for the articles
!  * @param $args['cids'] array of category IDs for which to get articles (OR/AND)
   *                      (for all categories donīt set it)
!  * @param $args['andcids'] true means AND-ing categories listed in cids
   * @param $args['startdate'] articles published at startdate or later
   *                           (unix timestamp format)
***************
*** 79,84 ****
          $cids = array();
      }
!     if (empty($andcids)) {
!         $andcids = array();
      }
  
--- 79,84 ----
          $cids = array();
      }
!     if (!isset($andcids)) {
!         $andcids = false;
      }
  
***************
*** 113,117 ****
      $required['title'] = 1;
      // force cids as required when categories are given
!     if (count($cids) > 0 || count($andcids) > 0) {
          $required['cids'] = 1;
      }
--- 113,117 ----
      $required['title'] = 1;
      // force cids as required when categories are given
!     if (count($cids) > 0) {
          $required['cids'] = 1;
      }
***************
*** 194,199 ****
  
          // add this for SQL compliance when there are multiple JOINs
!         if (!empty($required['counter']) || count($cids) > 0 ||
!                 count($andcids) > 0) {
              $from = '(' . $from . ')';
          }
--- 194,198 ----
  
          // add this for SQL compliance when there are multiple JOINs
!         if (!empty($required['counter']) || count($cids) > 0) {
              $from = '(' . $from . ')';
          }
***************
*** 205,209 ****
  
          // add this for SQL compliance when there are multiple JOINs
!         if (count($cids) > 0 || count($andcids) > 0) {
              $from = '(' . $from . ')';
          }
--- 204,208 ----
  
          // add this for SQL compliance when there are multiple JOINs
!         if (count($cids) > 0) {
              $from = '(' . $from . ')';
          }
***************
*** 230,234 ****
          $where[] = $hitcountdef['where'];
      }
!     if (count($cids) > 0 || count($andcids) > 0) {
          // we rely on leftjoin() to create the necessary categories clauses
          $where[] = $categoriesdef['where'];
--- 229,233 ----
          $where[] = $hitcountdef['where'];
      }
!     if (count($cids) > 0) {
          // we rely on leftjoin() to create the necessary categories clauses
          $where[] = $categoriesdef['where'];
***************
*** 252,255 ****
--- 251,255 ----
          $msg = pnML('Database error for #(1) function #(2)() in module #(3)',
                      'user', 'getall', 'Articles');
+ $msg .= $dbconn->ErrorMsg() . ' ' . $sql;
          pnExceptionSet(PN_SYSTEM_EXCEPTION, 'DATABASE_ERROR',
                         new SystemException($msg));
***************
*** 276,280 ****
      $result->Close();
  
!     if ($required['cids'] && count($articles) > 0) {
          // Get all the categories at once
          $aids = array();
--- 276,280 ----
      $result->Close();
  
!     if (!empty($required['cids']) && count($articles) > 0) {
          // Get all the categories at once
          $aids = array();
***************
*** 497,503 ****
   * @param $args['status'] array of requested status(es) for the articles
   * @param $args['ptid'] publication type ID
!  * @param $args['cids'] array of category IDs (OR)
!  * @param $args['andcids'] array of category IDs (AND), or
!  * @param $args['numcids'] number of categories to group by (AND)
   * @param $args['reverse'] default is ptid => cid, reverse (1) is cid => ptid
   * @returns array
--- 497,503 ----
   * @param $args['status'] array of requested status(es) for the articles
   * @param $args['ptid'] publication type ID
!  * @param $args['cids'] array of category IDs (OR/AND)
!  * @param $args['andcids'] true means AND-ing categories listed in cids
!  * @param $args['groupcids'] the number of categories you want items grouped by
   * @param $args['reverse'] default is ptid => cid, reverse (1) is cid => ptid
   * @returns array
***************
*** 664,669 ****
   * count number of items depending on additional module criteria
   *
!  * @param $args['cids'] array of cids that we are counting for (OR)
!  * @param $args['andcids'] array of cids that we are counting for (AND)
   *
   * @param $args['authorid'] the ID of the author
--- 664,669 ----
   * count number of items depending on additional module criteria
   *
!  * @param $args['cids'] array of cids that we are counting for (OR/AND)
!  * @param $args['andcids'] true means AND-ing categories listed in cids
   *
   * @param $args['authorid'] the ID of the author
***************
*** 696,702 ****
      }
      if (!isset($args['andcids'])) {
!         $args['andcids'] = array();
      }
!     if (count($args['cids']) > 0 || count($args['andcids']) > 0) {
          // Load API
          if (!pnModAPILoad('categories', 'user')) {
--- 696,702 ----
      }
      if (!isset($args['andcids'])) {
!         $args['andcids'] = false;
      }
!     if (count($args['cids']) > 0) {
          // Load API
          if (!pnModAPILoad('categories', 'user')) {
***************
*** 1080,1126 ****
          }
          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 . '/';
--- 1080,1132 ----
          }
          if (isset($ptid) && isset($pubtypes[$ptid])) {
!             $alias = pnModGetAlias($pubtypes[$ptid]['name']);
!             if ($alias == $module) {
!                 // OK, we can use a 'fake' module name here
!                 $path = '/' . $pubtypes[$ptid]['name'] . '/';
!             } else {
!                 $path = '/' . $module . '/' . $pubtypes[$ptid]['name'] . '/';
!             }
          }
!         if (!empty($catid)) {
!             if (isset($ptid) && isset($pubtypes[$ptid])) {
!                 if (isset($bycat)) {
!                     $path = '/' . $module . '/c' . $catid
!                             . '/' . $pubtypes[$ptid]['name'] . '/';
!                 } else {
!                     $alias = pnModGetAlias($pubtypes[$ptid]['name']);
!                     if ($alias == $module) {
!                         // OK, we can use a 'fake' module name here
!                         $path = '/' . $pubtypes[$ptid]['name']
!                                 . '/c' . $catid . '/';
                      } else {
                          $path = '/' . $module . '/' . $pubtypes[$ptid]['name']
!                                 . '/c' . $catid . '/';
                      }
                  }
+             } else {
+                 $path = '/' . $module . '/c' . $catid . '/';
+             }
  /*
  // 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) .'/';
                  }
              }
+ */
          } elseif (empty($path)) {
              $path = '/' . $module . '/';
***************
*** 1128,1132 ****
      } elseif ($func == 'display' && isset($aid)) {
          if (isset($ptid) && isset($pubtypes[$ptid])) {
!             $path = '/' . $module . '/' . $pubtypes[$ptid]['name'] . "/$aid.html";
          } else {
              $path = '/' . $module . "/$aid.html";
--- 1134,1144 ----
      } elseif ($func == 'display' && isset($aid)) {
          if (isset($ptid) && isset($pubtypes[$ptid])) {
!             $alias = pnModGetAlias($pubtypes[$ptid]['name']);
!             if ($alias == $module) {
!                 // OK, we can use a 'fake' module name here
!                 $path = '/' . $pubtypes[$ptid]['name'] . "/$aid.html";
!             } else {
!                 $path = '/' . $module . '/' . $pubtypes[$ptid]['name'] . "/$aid.html";
!             }
          } else {
              $path = '/' . $module . "/$aid.html";
***************
*** 1144,1147 ****
--- 1156,1166 ----
          //}
      } elseif ($func == 'archive') {
+         if (isset($ptid) && isset($pubtypes[$ptid])) {
+             $alias = pnModGetAlias($pubtypes[$ptid]['name']);
+             if ($alias == $module) {
+                 // OK, we can use a 'fake' module name here
+                 $module = $pubtypes[$ptid]['name'];
+             }
+         }
          if (isset($month)) {
              if ($month == 'all') {
***************
*** 1159,1162 ****
--- 1178,1182 ----
      // anything else does not have a short URL equivalent
  
+ // TODO: add *any* extra args we didn't use yet here
      // add some other module arguments as standard URL parameters
      if (!empty($path) && isset($startnum)) {
***************
*** 1178,1181 ****
--- 1198,1217 ----
  {
      $args = array();
+ 
+     // Check if we're dealing with an alias here
+     if ($params[0] != 'articles') {
+         $alias = pnModGetAlias($params[0]);
+         if ($alias == 'articles') {
+             // yup, looks like it
+             $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
+             foreach ($pubtypes as $id => $pubtype) {
+                 if ($params[0] == $pubtype['name']) {
+                     $args['ptid'] = $id;
+                     break;
+                 }
+             }
+         }
+     }
+ 
      if (empty($params[1])) {
          return array('view', $args);
***************
*** 1207,1213 ****
          }
  
!     } elseif (preg_match('/^c(\d+)/',$params[1],$matches)) {
!         $cids[0] = $matches[1];
!         $args['cids'] = $cids;
          if (!empty($params[2])) {
              $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
--- 1243,1249 ----
          }
  
!     } elseif (preg_match('/^c([0-9 +-]+)/',$params[1],$matches)) {
!         $catid = $matches[1];
!         $args['catid'] = $catid;
          if (!empty($params[2])) {
              $pubtypes = pnModAPIFunc('articles','user','getpubtypes');
***************
*** 1235,1241 ****
                          $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') {
--- 1271,1277 ----
                          $args['aid'] = $aid;
                          return array('display', $args);
!                     } elseif (preg_match('/^c([0-9 +-]+)/',$params[2],$matches)) {
!                         $catid = $matches[1];
!                         $args['catid'] = $catid;
                          return array('view', $args);
                      } elseif ($params[2] == 'archive') {


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