options_group, $assignment_desk->get_plugin_option_fullname('general'), array(&$this, 'validate_general_settings') );
/* General */
add_settings_section( 'general', 'General', array(&$this, 'general_setting_section'), $assignment_desk->top_level_page );
add_settings_field( 'default_new_assignment_status', 'Default assignment status', array(&$this, 'default_new_assignment_status_option'), $assignment_desk->top_level_page, 'general' );
add_settings_field( 'default_workflow_status', 'Default workflow status', array(&$this, 'default_workflow_status_option'), $assignment_desk->top_level_page, 'general' );
/* Assignment Management */
add_settings_section( 'assignment_management', 'Assignment Management', array(&$this, 'assignment_management_setting_section'), $assignment_desk->top_level_page );
add_settings_field( 'assignment_email_notifications_enabled', 'Enable assignment email notifications', array(&$this, 'assignment_email_notifications_enabled_option'), $assignment_desk->top_level_page, 'assignment_management' );
add_settings_field( 'assignment_email_template_subject', 'Subject template for notifications', array(&$this, 'assignment_email_template_subject_option'), $assignment_desk->top_level_page, 'assignment_management' );
add_settings_field( 'assignment_email_template', 'Template for notifications', array(&$this, 'assignment_email_template_option'), $assignment_desk->top_level_page, 'assignment_management' );
register_setting( $assignment_desk->pitch_form_options_group, $assignment_desk->get_plugin_option_fullname('pitch_form'), array($this, 'validate_pitch_form_settings') );
/* Pitch form */
add_settings_section( 'story_pitches', 'Story Pitches', array(&$this, 'story_pitches_setting_section'), $assignment_desk->pitch_form_settings_page );
add_settings_field( 'pitch_form_enabled', 'Enable pitch forms', array(&$this, 'pitch_form_enabled_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
add_settings_field( 'pitch_form_elements', 'Pitch form elements', array(&$this, 'pitch_form_elements_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
add_settings_field( 'pitch_form_success_message', 'Success message', array(&$this, 'pitch_form_success_message_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
add_settings_field( 'pitch_form_notification_emails', 'Send email for new pitches', array(&$this, 'pitch_form_notification_emails_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
add_settings_field( 'pitch_form_email_template_subject', 'Subject template for notifications', array(&$this, 'pitch_form_email_template_subject_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
add_settings_field( 'pitch_form_email_template', 'Template for notifications', array(&$this, 'pitch_form_email_template_option'), $assignment_desk->pitch_form_settings_page, 'story_pitches' );
register_setting( $assignment_desk->public_facing_options_group, $assignment_desk->get_plugin_option_fullname('public_facing'), array($this, 'validate_public_facing_settings'));
/* Public-facing */
add_settings_section( 'public_facing_views', 'Public-Facing Views', array(&$this, 'public_facing_views_setting_section'), $assignment_desk->public_facing_settings_page );
add_settings_field( 'public_facing_assignment_statuses[]', 'Public-facing assignment statuses', array(&$this, 'public_facing_assignment_statuses'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
add_settings_field( 'public_facing_filtering', 'Public-facing filtering', array(&$this, 'public_facing_filtering_option'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
add_settings_field( 'public_facing_elements', 'Public-facing elements', array(&$this, 'public_facing_elements_option'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
add_settings_field( 'public_facing_functionality', 'Public-facing functionality', array(&$this, 'public_facing_functionality_option'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
add_settings_field( 'public_facing_no_pitches_message', 'Message to show if no pitches', array(&$this, 'public_facing_no_pitches_message_option'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
add_settings_field( 'public_facing_logged_out_message', 'Message to show if logged out', array(&$this, 'public_facing_logged_out_message_option'), $assignment_desk->public_facing_settings_page, 'public_facing_views' );
}
/**
* Define all of the default settings.
*/
function setup_defaults() {
global $assignment_desk, $wpdb;
$options = $assignment_desk->general_options;
if ( $assignment_desk->edit_flow_enabled() ) {
global $edit_flow;
$default_workflow_status = get_term_by('slug', $edit_flow->options['custom_status_default_status'],
$edit_flow->custom_status->status_taxonomy);
$options['default_workflow_status'] = $default_workflow_status->term_id;
}
// @todo - Why does get_term_by not work during activation?
// $new_status = get_term_by('slug', 'new', $assignment_desk->custom_taxonomies->assignment_status_label);
$new_status = $wpdb->get_results("SELECT t.*, tt.*
FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = '{$assignment_desk->custom_taxonomies->assignment_status_label}'
AND t.slug = 'new' LIMIT 1");
$new_status = $new_status[0];
$options['default_new_assignment_status'] = $new_status->term_id;
$options['assignment_email_notifications_enabled'] = true;
$options['assignment_email_template_subject'] = _("[%blogname%] You've been assigned to %title%");
$options['assignment_email_template'] =
_(
"Hello %display_name%,
You've been assigned to the story %title%.
Please login to %dashboard_link% to accept or decline.
Thanks
Blog Editor");
update_option($assignment_desk->get_plugin_option_fullname('general'), $options);
// Public facing defaults
$public_facing_options = $assignment_desk->public_facing_options;
$approved_status = $wpdb->get_results("SELECT t.*, tt.*
FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = '{$assignment_desk->custom_taxonomies->assignment_status_label}'
AND t.slug = 'approved' LIMIT 1");
$approved_status = $approved_status[0];
$public_facing_options['public_facing_assignment_statuses'] = array($approved_status->term_id);
// Public facing pitch elements
$public_facing_options['public_facing_post_status_enabled'] = true;
$public_facing_options['public_facing_description_enabled'] = true;
$public_facing_options['public_facing_duedate_enabled'] = true;
$public_facing_options['public_facing_location_enabled'] = true;
$public_facing_options['public_facing_categories_enabled'] = true;
$public_facing_options['public_facing_tags_enabled'] = true;
$public_facing_options['public_facing_pitched_by_enabled'] = true;
$public_facing_options['public_facing_filtering_post_status_enabled'] = true;
$public_facing_options['public_facing_filtering_participant_type_enabled'] = true;
$public_facing_options['public_facing_filtering_sort_by_enabled'] = true;
$public_facing_options['public_facing_volunteering_enabled'] = true;
$public_facing_options['public_facing_voting_enabled'] = true;
$public_facing_options['public_facing_commenting_enabled'] = true;
$public_facing_options['public_facing_no_pitches_message'] = _('No stories right now.');
$public_facing_options['public_facing_logged_out_message'] = _('Sorry, you must be logged in to vote or volunteer.');
update_option($assignment_desk->get_plugin_option_fullname('public_facing'), $public_facing_options);
// Pitch form defaults
$pitch_form_options = $assignment_desk->pitch_form_options;
$pitch_form_options['pitch_form_enabled'] = true;
$pitch_form_options['pitch_form_description_enabled'] = true;
$pitch_form_options['pitch_form_categories_enabled'] = true;
$pitch_form_options['pitch_form_tags_enabled'] = true;
$pitch_form_options['pitch_form_duedate_enabled'] = true;
$pitch_form_options['pitch_form_location_enabled'] = true;
$pitch_form_options['pitch_form_volunteer_enabled'] = true;
$pitch_form_options['pitch_form_email_template_subject'] = _("[%blogname%] A new pitch was submitted. %title%");
$pitch_form_options['pitch_form_email_template'] =
_(
"Hello,
You've received a new pitch from %submitter_display_name%: %title%.
Please login to %dashboard_link% to check it out.
Once logged in you can view the pitch at %post_link%.
Thanks
%blogname%");
update_option($assignment_desk->get_plugin_option_fullname('pitch_form'), $pitch_form_options);
}
function default_new_assignment_status_option() {
global $assignment_desk;
$options = $assignment_desk->general_options;
$assignment_statuses = $assignment_desk->custom_taxonomies->get_assignment_statuses();
if ( count($assignment_statuses) ) {
echo '';
} else {
echo "No statuses set. Please custom_taxonomies->assignment_status_label . "'>create at least one assignment status.";
}
}
/**
* default_workflow_status_option()
* Define post status for newly submitted pitches
* @requires Edit Flow
*/
function default_workflow_status_option() {
global $assignment_desk;
if ( $assignment_desk->edit_flow_enabled( 'custom_post_statuses' ) ) {
global $edit_flow;
$options = $assignment_desk->general_options;
$post_statuses = $edit_flow->custom_status->get_custom_statuses();
echo ' ' .
_('Template supports the following tokens') .
': %blogname%, %title%, %excerpt%, %description%, %duedate%, %role%, %display_name%, %location%, %post_link%, and %dashboard_link%.
';
echo 'Indicate the status in your workflow a new story pitch should be given.';
} else {
echo 'Please enable Edit Flow to define custom workflow statuses. Without Edit Flow, new pitches will be saved with a post status of "draft"';
}
} // END default_workflow_status_option()
function general_setting_section() {
global $assignment_desk;
}
function assignment_management_setting_section() {
global $assignment_desk;
}
function assignment_email_notifications_enabled_option() {
global $assignment_desk;
$options = $assignment_desk->general_options;
echo '';
}
function assignment_email_template_subject_option() {
global $assignment_desk;
$options = $assignment_desk->general_options;
echo '';
}
function assignment_email_template_option() {
global $assignment_desk;
$options = $assignment_desk->general_options;
echo '';
echo '<!--$assignment_desk->pitch_form_key--> where you'd it to appear.";
}
function pitch_form_enabled_option() {
global $assignment_desk;
$options = $assignment_desk->pitch_form_options;
echo '';
}
/**
* Enable/disable data elements on pitch form
*/
function pitch_form_elements_option() {
global $assignment_desk;
if ($assignment_desk->edit_flow_enabled()) {
global $edit_flow;
}
$options = $assignment_desk->pitch_form_options;
echo '';
// Title
echo '
';
// Tags
echo '
' . _('Optional: Enter a custom success message') . '
'; echo '' . _('Message supports the following tokens') . ': %title%.
'; } function pitch_form_notification_emails_option() { global $assignment_desk; $options = $assignment_desk->pitch_form_options; echo ''; echo '' . _('Enter comma separated list of email addresses to receive notifications on form submissions. You can notify the submitter by adding %submitter_email%') . '
'; } function pitch_form_email_template_subject_option() { global $assignment_desk; $options = $assignment_desk->pitch_form_options; echo 'get_plugin_option_fullname('pitch_form') . '[pitch_form_email_template_subject]"' . 'size="60" maxlength="60" value="'; if ( isset( $options['pitch_form_email_template_subject'] ) ) { echo htmlentities( $options['pitch_form_email_template_subject'] ); } echo '">'; } function pitch_form_email_template_option() { global $assignment_desk; $options = $assignment_desk->pitch_form_options; echo ''; echo '' . _('Template supports the following tokens') . ': %blogname%, %title%, %excerpt%, %description%, %duedate%, %submitter_email%, %submitter_display_name%, %location%, %post_link%, and %dashboard_link%.
'; } function public_facing_views_setting_section() { global $assignment_desk; echo "Enable public access to pitches and stories in progress by dropping<!--$assignment_desk->all_posts_key--> in a page.";
}
/**
* Admin can choose which assignment statuses will be visible on the public-facing views.
*/
function public_facing_assignment_statuses() {
global $assignment_desk;
$options = $assignment_desk->public_facing_options;
$public_statuses = $options['public_facing_assignment_statuses'];
if ( !is_array($public_statuses) ) {
$public_statuses = array((int)$public_statuses);
}
echo "";
echo "Indicate the different ways the user can filter posts.'; } function public_facing_elements_option() { global $assignment_desk; if ($assignment_desk->edit_flow_enabled()) { global $edit_flow; } $options = $assignment_desk->public_facing_options; echo 'Which elements of the pitch to show on the public pitch listing.'; echo '