static function check_widget($widget)
 {
     if (!MValidate::ext_name($widget)) {
         return false;
     }
     if (!mapi_include_abs_path($widget, 'widgets/' . $widget)) {
         return false;
     }
     $widget_function = 'mwidget_' . strtolower($widget);
     if (!function_exists($widget_function)) {
         return false;
     }
     $markdown = self::markdown('widget', $widget);
     if (!isset($markdown['title']) || !strlen($markdown['title']) > 1) {
         return false;
     }
     if (!isset($markdown['version']) || !strlen($markdown['version']) > 0) {
         return false;
     }
     return true;
 }
 protected function valid($extension)
 {
     $this->set_type();
     if (!$extension) {
         return false;
     }
     if (!MValidate::ext_name($extension)) {
         return false;
     }
     if (!in_array($extension, $this->get_availables())) {
         return false;
     }
     return true;
 }