/** *Manipulate the controls on the publish page * *@param FormUI $form The form that is used on the publish page *@param Post $post The post being edited **/ public function action_form_publish($form, $post) { if ($form->content_type->value == Post::type('plugin')) { // remove silos we don't need them, do we? $form->remove($form->silos); // add guid after title $guid = $form->append('text', 'plugin_details_guid', 'null:null', 'GUID'); $guid->value = $post->info->guid; $guid->template = $post->slug ? 'admincontrol_text' : 'guidcontrol'; $form->move_after($form->plugin_details_guid, $form->title); // add instructions after content $instructions = $form->append('textarea', 'plugin_details_instructions', 'null:null', 'Instructions'); $instructions->value = $post->info->instructions; $instructions->class[] = 'resizable'; $instructions->template = 'admincontrol_textarea'; $form->move_after($form->plugin_details_instructions, $form->content); // todo Fix all the tabindexes - there are two #2s right now and GUID has none. // todo Remove the settings tab, as it's not needed $plugin_details = array('url' => $post->info->url, 'screenshot' => $post->info->screenshot, 'author' => $post->info->author, 'author_url' => $post->info->author_url, 'license' => $post->info->license); $plugin_form_fields = $form->publish_controls->append('fieldset', 'plugin_details', 'Plugin Details'); foreach ($plugin_details as $field => $value) { $plugin_field = $plugin_form_fields->append('text', 'plugin_details_' . $field, 'null:null', ucfirst(str_replace('_', ' ', $field))); $plugin_field->value = $value; $plugin_field->template = 'tabcontrol_text'; } $plugin_versions = $form->publish_controls->append('fieldset', 'plugin_versions', 'Plugin Versions'); if ($post->slug != '') { $form->plugin_versions->append('static', 'current_versions', 'Current Versions'); foreach ((array) $post->versions as $version) { $version_info = $version->status . ": " . $post->title . " " . $version->version . " -- " . $version->description; $plugin_versions->append('static', 'version_info', $version_info); } } $form->plugin_versions->append('static', 'new_version', 'Add New Version'); $version = $plugin_versions->append('text', 'plugin_version_version', 'null:null', _t('Version Number')); $version->template = 'tabcontrol_text'; $description = $plugin_versions->append('text', 'plugin_version_description', 'null:null', _t('Version Description')); $description->template = 'tabcontrol_text'; $url = $plugin_versions->append('text', 'plugin_version_url', 'null:null', _t('Archive URL')); $url->template = 'tabcontrol_text'; $habari_version = $plugin_versions->append('text', 'plugin_version_habari_version', 'null:null', _t('Compatible Habari Version <br> ("x" is a wildcard, eg. 0.5.x)')); $habari_version->template = 'tabcontrol_text'; $status = $plugin_versions->append('select', 'plugin_version_status', 'null:null', 'Status'); $status->template = 'tabcontrol_select'; $status->options = array('release' => 'Release', 'critical' => 'Critical', 'bugfix' => 'Bugfix', 'feature' => 'Feature'); $requires = $plugin_versions->append('text', 'plugin_version_requires', 'null:null', _t('Requires')); $requires->template = 'tabcontrol_text'; $provides = $plugin_versions->append('text', 'plugin_version_provides', 'null:null', _t('Provides')); $provides->template = 'tabcontrol_text'; $recommends = $plugin_versions->append('text', 'plugin_version_recommends', 'null:null', _t('Recommends')); $recommends->template = 'tabcontrol_text'; $sourcelink = $plugin_versions->append('text', 'plugin_version_source_link', 'null:null', _t('Link to Source')); $sourcelink->template = 'tabcontrol_text'; /* @todo validate sourcelink */ } else { if ($form->content_type->value == Post::type('license')) { // clean up the form a little... $form->remove($form->silos); $form->remove($form->content); $form->remove($form->tags); $settings = $form->publish_controls->settings; $settings->minor_edit->remove(); $settings->comments_enabled->remove(); $settings->pubdate->remove(); // add shortname after title $shortname = $form->append('text', 'license_shortname', 'null:null', _t('Short Name')); $shortname->value = $post->info->shortname; $shortname->template = 'admincontrol_text'; $form->move_after($form->license_shortname, $form->title); // add simpletext after shortname $simpletext = $form->append('textarea', 'license_simpletext', 'null:null', _t('Simplified Text')); $simpletext->value = $post->info->simpletext; $simpletext->class[] = 'resizable'; $simpletext->template = 'admincontrol_textarea'; $form->move_after($form->license_simpletext, $form->license_shortname); // add link after simpletext $link = $form->append('text', 'license_link', 'null:null', _t('Link')); $link->value = $post->info->link; $link->template = 'admincontrol_text'; $form->move_after($form->license_link, $form->license_simpletext); } } }