Example #1
0
 public function setUp()
 {
     parent::setUp();
     $this->hasColumn('symfony_version_min', 'string', '255', array('length' => '255', 'type' => 'string'));
     $this->hasColumn('symfony_version_max', 'string', '255', array('length' => '255', 'type' => 'string'));
 }
$plugin_project->title = $title;
$plugin_project->description = $description;
$plugin_project->tags = string_to_tag_array($tags);
$plugin_project->plugincat = $plugincat;
$plugin_project->license = $license;
$plugin_project->summary = $summary;
$plugin_project->homepage = $homepage;
$plugin_project->repo = $repo;
$plugin_project->donate = $donate;
$plugin_project->digg = 0;
$plugin_project->plugin_type = $plugin_type;
$plugin_project->save();
// Extract file and save to default filestore (for now)
$prefix = "plugins/";
$filestorename = $prefix . strtolower(time() . $_FILES['upload']['name']);
$release = new PluginRelease();
$release->title = $plugin_project->title;
$release->setFilename($filestorename);
$release->setMimetype($mimetype);
$release->originalfilename = $_FILES['upload']['name'];
$release->access_id = $release_access_id;
$release->container_guid = $plugin_project->getGUID();
$release->version = $version;
$release->release_notes = $release_notes;
$release->elgg_version = $elgg_version;
$release->comments = $comments;
$release->save();
if ($release->savePluginFile('upload') != TRUE) {
    register_error(elgg_echo("plugins:error:uploadfailed"));
    forward(REFERER);
}
function getReleaseConfig(PluginRelease $release, PluginProject $pluginProject)
{
    //FIXME need way better guessing of title (manifest id and dir name)
    $title = elgg_get_friendly_title($project->title);
    $owner = $release->getOwnerEntity();
    if (!($name = guessName($release, $extension))) {
        return false;
    }
    $versions = $release->elgg_version;
    if (!is_array($versions) && $versions) {
        $versions = array($versions);
    }
    //	var_dump($versions);
    //filter out invalid values like '1' for very old plugins
    foreach ($versions as $key => $version) {
        if (strlen($version) >= 3) {
            $versions[$key] = '~' . $version;
        } else {
            unset($versions[$key]);
        }
    }
    //	var_dump('FILTERED', $versions);
    $requires = array("composer/installers" => ">=1.0.8");
    if (count($versions)) {
        $requires['elgg/elgg'] = implode('|', $versions);
    }
    $arr = array('type' => 'package', 'package' => array('name' => $owner->username . '/' . $name, 'homepage' => $pluginProject->homepage, 'version' => $release->version, "type" => "elgg-plugin", "description" => $pluginProject->summary, "dist" => array("url" => elgg_normalize_url("plugins/download/" . $release->guid), "type" => $extension), 'authors' => array(array('name' => $owner->name, 'homepage' => $owner->getURL(), "role" => "Maintainer")), "require" => $requires));
    return $arr;
}