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; }