Example #1
0
        $plugins_array = array();
        if (preg_match_all('/(<gap:plugin [^>]+)(\\/>|>(.*)<\\/gap:plugin>)/sU', $plugins_xml, $matches)) {
            foreach ($matches[1] as $i => $match) {
                $name = '';
                $version = '';
                $source = '';
                if (preg_match('/name="([^"]+)"/', $match, $name_match) && strlen($name_match[1]) > 0) {
                    if (preg_match('/version="([^"]+)"/', $match, $version_match) && strlen($version_match[1]) > 0) {
                        $version = $version_match[1];
                    }
                    if (preg_match('/source="([^"]+)"/', $match, $source_match) && strlen($source_match[1]) > 0) {
                        $source = $source_match[1];
                    }
                    // Include params if any
                    $params = array();
                    if (!empty($matches[3][$i]) && preg_match_all('/<param ([^>]+)>/U', $matches[3][$i], $param_matches)) {
                        foreach ($param_matches[1] as $param_match) {
                            if (preg_match('/name="([^"]+)"/', $param_match, $param_name_match) && strlen($param_name_match[1]) > 0 && preg_match('/value="([^"]+)"/', $param_match, $param_value_match) && strlen($param_value_match[1]) > 0) {
                                $params[$param_name_match[1]] = array('name' => $param_name_match[1], 'value' => $param_value_match[1]);
                            }
                        }
                    }
                    $plugins_array[$name_match[1]] = array('version' => $version, 'source' => $source, 'params' => array_values($params));
                }
            }
        }
        return $plugins_array;
    }
}
WpakApps::hooks();