public function registerPluginViews($path, &$failed_dir = '')
{
$path = rtrim($path, "\\/");
$view_dir = "{$path}/views/";
// plugins don't have to have views.
if (!is_dir($view_dir)) {
return true;
}
// but if they do, they have to be readable
$handle = opendir($view_dir);
if (!$handle) {
$failed_dir = $view_dir;
return false;
}
while (false !== ($view_type = readdir($handle))) {
$view_type_dir = $view_dir . $view_type;
if ('.' !== substr($view_type, 0, 1) && is_dir($view_type_dir)) {
if ($this->autoregisterViews('', $view_type_dir, $view_type)) {
elgg_register_viewtype($view_type);
} else {
$failed_dir = $view_type_dir;
return false;
}
}
}
return true;
}