Hello,

I just upgraded (with drush, "drush up tagorder") from 6.x-1.3 to 6.x-1.4 per the latest security recommendation. On the first page refresh after upgrading, I get:

"warning: Missing argument 1 for tagorder_menu() in /blah/sites/all/modules/tagorder/tagorder.module on line 13".

Then tagorder does not appear in the menu and is no longer sorting tags. Old database "tagorder" table is still in the database.

So then I disabled tagorder, uninstalled with drush (tagorder database table removed), and removed the directory. Did a clean install of 6.x-1.4, but same thing. Same warning message and tagorder does not work.

I went back to 6.x-1.3 and everything is working normally. Am I doing something wrong? Let me know if you need any more info.

Thanks,
Joe

Comments

junro’s picture

Exactly same warning: Missing argument 1 for tagorder_menu() in /www/sites/all/modules/tagorder/tagorder.module on line 13.

jobs@tidal.ca’s picture

Same here.

peterjmag’s picture

It appears that the .module and .install files are effectively identical between 6.x-1.4 and 5.x-1.4, which probably means that the maintainer that committed 1.4 accidentally committed the same code to both branches, leaving the 6.x branch with a bunch of (obviously) incompatible D5 code.

This specific error is a result of tagorder_menu() looking for an argument that is no longer provided to hook_menu() in D6: http://api.drupal.org/api/function/hook_menu/6. However, this is only one of many errors that you might get from 6.x-1.4.

My recommendation: Revert to 6.x-1.3 until the maintainer is made aware of this issue.

pwolanin’s picture

Looking at the last commits (for the secrity advisory), the maintainer committed to the DRUPAL-5 branch and HEAD but not to the DRUPAL-6--1 branch.

Likely he tagged a Drupal 6 release on HEAD instead of the DRUPAL-6--1 branch, and maybe HEAD is stale Drupal 5.x code from the initial import?

To fix this the maintainer probably need to check out the DRUPAL-6--1 branch, apply the security fix, commit and tag and make a new release on that branch.

titouille’s picture

Two problems :

first is about the param in tagorder_menu hook. Solved if I put a default value on the param like this :

function tagorder_menu($may_cache=true) {

second is on the nodeapi hook :

<?php 
      $terms_array = tagorder_taglist($tags, $vocabid);
      $i=1;
      foreach ($terms_array AS $tid) {
        $result = db_query("INSERT INTO {tagorder} SET nid = %d, vid = %d, vocabid = %d, tid = %d, weight = %d", $node->nid, $node->vid, $vocabid, $tid, $i);
        $i++;
      }
?>

when $term_array is not an array, a warning apply on the second foreach. Solved with a test is_array :

<?php
      $terms_array = tagorder_taglist($tags, $vocabid);
      $i=1;
      if( is_array( $terms_array ) ) {
        foreach ($terms_array AS $tid) {
          $result = db_query("INSERT INTO {tagorder} SET nid = %d, vid = %d, vocabid = %d, tid = %d, weight = %d", $node->nid, $node->vid, $vocabid, $tid, $i);
          $i++;
        }
      }
?>

But if it's the 5.x version, I don't know if it's better to revert from old version (6.x.1.3) or simply apply this two modifs...

jrstmartin’s picture

The problem is now fixed for me in 6.x-1.5. Thanks!

tagorder’s picture

Status: Active » Closed (fixed)