I was unable to replicate the error in 1.5_STABLE. From looking at the
glob() documentation ( http://php.net/glob ) I note that the glob
function is meant to just return an empty array if it can't find
anything, or false on error. So, it's possible that some environments
may be causing glob to error out, and the code isn't handling that
properly.

There's also this: "Note: On some systems it is impossible to
distinguish between empty match and an error. "

It's unclear whether that means that an empty match returns false, or
whether it means that an error returns an empty array. But the return
value that Jan noted (nearly 1 year ago today) is what you get when you
cast boolean false as an array:

var_dump((array) false);

 array(1) {
   [0]=>
   bool(false)
 }


** Changed in: mahara
    Milestone: 1.8.0 => 1.8.1

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask 
on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1067724

Title:
  Unable to read language directory

Status in Mahara ePortfolio:
  Triaged

Bug description:
  Running Mahara 1.5 here. No relation to system or PHP version I guess.

  On page:
     admin/users/pendingregistrations.php
  I get this error:
     Unable to read language directory lang [full log appended but not 
necessary]
  which is because in lib/mahara.php on line 596 (+/- 5 lines)
      $datarootpaths = (array)glob(get_config('dataroot') . 'langpacks/*', 
GLOB_MARK | GLOB_ONLYDIR);
  assign array(0 => false) to $datarootpaths

  My 3 line patch goes directly below that line and looks like this:
                        foreach($datarootpaths as $key => $path)
                                if(!is_string($path))
                                        unset($datarootpaths[$key]);

  
  *** full error log ***
  Call stack (most recent first):
  log_message("Unable to read language directory lang/", 8, true, true) at 
/srv/http/mahara/testing/mahara_code/lib/errors.php:109
  log_warn("Unable to read language directory lang/") at 
/srv/http/mahara/testing/mahara_code/lib/mahara.php:564
  get_languages() at /srv/http/mahara/testing/mahara_code/lib/web.php:3346
  language_select_form() at /srv/http/mahara/testing/mahara_code/lib/web.php:437
  smarty(array(size 0), array(size 0), array(size 0), array(size 2)) at 
/srv/http/mahara/testing/mahara_code/auth/lib.php:1009
  auth_draw_login_page(null, object(Pieform)) at 
/srv/http/mahara/testing/mahara_code/auth/lib.php:516
  auth_setup() at /srv/http/mahara/testing/mahara_code/init.php:291
  require("/srv/http/mahara/testing/mahara_code/init.php") at 
/srv/http/mahara/testing/mahara_code/admin/users/pendingregistrations.php:30

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1067724/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mahara-contributors
Post to     : mahara-contributors@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mahara-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to