Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Fatal error: Call to undefined method Menu::AddTab()

edited July 2006 in Vanilla 1.0 Help
I just started using Vanilla. Well, I actually have not started yet. I can run the setup, but when I try to access to application for the first time I get the following error:
Fatal error: Call to undefined method Menu::AddTab() in /home/breese/majordojo/web/htdocs/vanilla/appg/init_vanilla.php on line 79
Any ideas? I am running Apache 1.3.x, PHP 5.1 and MySQL 4.1.x. Could this be a PHP compatibility issue? And if so, how might I solve it?

Comments

  • edited July 2006
    Have you check the common mistakes?
  • It doesn't look like it could be a compatibility issue. Are you running a stable 1.0 release or something off of the subversion repository?
  • Still no dice. Just to be sure I started over and did a clean install. I paid special attention to instructions and made sure that I was setting file permissions properly. I was able to go through the automated setup process which took me to a login screen. I logged in and was presented with the following screen:

    You are signed in

    * Click here to continue to the discussions
    * Click here to continue to the categories

    However, clicking on either of these links yields the same error as before:

    Fatal error: Call to undefined method Menu::AddTab() in /home/breese/majordojo/web/htdocs/vanilla/appg/init_vanilla.php on line 79

    phpinfo() yields the following information:

    http://www.majordojo.com/vanilla/info.php

    I am stumped. I am sure this is an environment configuration issue - I have a hard time believing that I have uncovered a bug given how many people have got this to work just fine.
  • Ok, to be clear this is a totally clean install of version 1 without any extensions or anything, right? No previous /conf/ or /appg/ files, just straight up fresh install. and it's still barfing?
  • Totally clean. Straight out of the box - just trying to get a plain vanilla Vanilla working. :-D When I did a fresh install, I complete dropped the old database and recreated, I deleted all files out of my /home/breese/vanilla directory, re-downloaded Vanilla-1.zip and started completely from scratch.
  • That's completely odd, I think that the only person that would know what in going on here is Mark. I can't think of any good reason why building the menu would kill it like that. Not to leave you on your own though, someone else may have a better explanation because I'm stumped at the present. Mark, you around? :)
  • In the event that there is some software/server configuration issue, you can access a script that outputs phpinfo() here.

    I won't leave it there forever, as I tend not to like advertising the info to the world, but for the time being it should be fine.
  • Maybe try upgrading to PHP 5.1.4 ?
  • I just upgraded to PHP 5.1.4. No dice. Same error.

    Out of curiousity - is there anything anyone sees wrong with how I did this:

    > cd tmp
    > wget http://.../Vanilla-1.zip
    > unzip Vanilla-1.zip
    > cp -a Vanilla-1/* /home/www/htdocs/vanilla/
    > cd /home/www/htdocs/vanilla
    > sudo chmod 777 ./conf
    > sudo chmod --recursive 755 ./extensions
    > sudo chmod --recursive 755 ./languages
    > sudo chmod --recursive 755 ./setup
    > sudo chmod --recursive 755 ./themes

    > mysqladmin create -u root -p vanilla
    > // insert magic to create user and assign permissions to vanilla database, etc.

    Load up:
    http://www.majordojo.com/vanilla/

    Which redirects me to setup, which I then go through. Then I get the error. Do these steps look right?
  • BTW - Here is how I configured PHP (5.1.4):

    './configure' '--enable-track-vars' '--enable-force-cgi-redirect' '--with-getext' '--with-mysql' '--enable-cli' '--with-apxs=/usr/local/apache/bin/apxs' '--with-zlib' '--with-pear'

    And here is how I configured Apache (1.3.29):

    ./configure \
    "--with-layout=Apache" \
    "--prefix=/usr/local/apache" \
    "--enable-shared=max" \
    "--disable-rule=EAPI" \
    "--enable-module=ssl"

    Could these be possible culprits?
  • I'll setup a VPS later and see if I can reproduce this error.
  • (that's not the subject, but why are you using apache 1.3.29 and not the last release of apache 1.3?)
  • I am using Apache 1.3.29 as opposed to the more recent 1.3.36 or even 2.0 for a bad reason: laziness. :-( I am actually in the process of upgrading to the most recent Apache 1.3.x version...
  • Just upgraded to Apache 1.3.36. No change - error still appears.

    I want to upgrade to 2.0 but that is a little more involved so it will have to wait. But Apache shouldn't matter should it?
  • Installing Apache2 tonight. Please work. Please?
  • Ok. Upgrading to Apache 2 (compiled with the same directives as apache 1.3.36) had no effect. I am now attempting to recompile PHP without support for cgi-redirect and track-vars. Let's see what happens.
  • Ok this is getting really annoying. I just recompiled PHP several times, slowly remove one compile-time option after another. Finally I did a build of PHP 5.1.4 with the following configure options:

    ./configure --with-apxs=/usr/local/apache/bin/apxs --with-zlib --with-pear --enable-cli --with-mysql

    I installed the PHP .so and still, same freaking error. I am running out of ideas now. I have tried to trace the code, but I still haven't figured anything out. Sleuthing continues. But please, if anyone has any ideas, please share them. Anything.
  • Important Update - figured it out. In my httpd.conf I had this line:

    php_value auto_prepend_file "/home/breese/majordojo/web/code/global.php"

    Here are the files contents:

    <?
    require_once("utils.inc");

    $MD_DBHOST = "xxxxxx";
    $MD_DBUSER = "xxxxxxxxxx";
    $MD_DBPASS = "xxxxxxx";
    $MD_DB = "xxxxxxx";

    $UPLOADED_FILE_PATH = "/home/breese/majordojo/uploaded_files";

    #function returnto_url() {
    # global $SCRIPT_NAME, $QUERY_STRING;
    # if ($QUERY_STRING)
    # return rawurlencode($SCRIPT_NAME . "?" . $QUERY_STRING);
    # else
    # return rawurlencode($SCRIPT_NAME);
    #}
    #function pull_down($list,$selected="",$two_dim=1) {
    # while (list($key,$val) = each($list)) {
    # echo "<option".($two_dim ? " value=\"$key\"" : "");
    # if ((!$two_dim && $selected == $val) || ($two_dim && $selected == $key)) {
    # echo " selected";
    # }
    # echo ">$val";
    # }
    #}
    ?>

    I have no idea what could have been the root cause of this... utils.inc may not have been found, or one of my other apps that has a utils class could have had something in it that caused some kind of error? I have no idea. I am just happy to have Vanilla 1 working.
This discussion has been closed.