/**
  * Get definitions for editable params
  *
  * @see Plugin::GetDefaultSettings()
  * @param local params like 'for_editing' => true
  */
 function get_param_definitions($params)
 {
     load_funcs('files/model/_image.funcs.php');
     /**
      * @var ItemTypeCache
      */
     $ItemTypeCache =& get_ItemTypeCache();
     $item_type_options = array('' => T_('All')) + $ItemTypeCache->get_option_array();
     $r = array_merge(array('title' => array('label' => T_('Block title'), 'note' => T_('Title to display in your skin.'), 'size' => 40, 'defaultvalue' => T_('Recent photos')), 'item_type' => array('label' => T_('Item type'), 'note' => T_('What kind of items do you want to list?'), 'type' => 'select', 'options' => $item_type_options, 'defaultvalue' => '1'), 'thumb_size' => array('label' => T_('Thumbnail size'), 'note' => T_('Cropping and sizing of thumbnails'), 'type' => 'select', 'options' => get_available_thumb_sizes(), 'defaultvalue' => 'crop-80x80'), 'thumb_layout' => array('label' => T_('Layout'), 'note' => T_('How to lay out the thumbnails'), 'type' => 'select', 'options' => array('grid' => T_('Grid'), 'list' => T_('List')), 'defaultvalue' => 'grid'), 'disp_image_title' => array('label' => T_('Display image title'), 'note' => T_('Check this to display image title. This falls back to post title if image title is not set.'), 'type' => 'checkbox', 'defaultvalue' => false), 'grid_nb_cols' => array('label' => T_('Columns'), 'note' => T_('Number of columns in grid mode.'), 'size' => 4, 'defaultvalue' => 2), 'limit' => array('label' => T_('Max items'), 'note' => T_('Maximum number of items to display.'), 'size' => 4, 'defaultvalue' => 3), 'order_by' => array('label' => T_('Order by'), 'note' => T_('How to sort the items'), 'type' => 'select', 'options' => get_available_sort_options(), 'defaultvalue' => 'datestart'), 'order_dir' => array('label' => T_('Direction'), 'note' => T_('How to sort the items'), 'type' => 'radio', 'options' => array(array('ASC', T_('Ascending')), array('DESC', T_('Descending'))), 'defaultvalue' => 'DESC'), 'blog_ID' => array('label' => T_('Blogs'), 'note' => T_('IDs of the blogs to use, leave empty for the current blog. Separate multiple blogs by commas.'), 'size' => 4)), parent::get_param_definitions($params));
     return $r;
 }
 /**
  * Get definitions for editable params
  *
  * @see Plugin::GetDefaultSettings()
  * @param local params like 'for_editing' => true
  */
 function get_param_definitions($params)
 {
     load_funcs('files/model/_image.funcs.php');
     /**
      * @var ItemTypeCache
      */
     $ItemTypeCache =& get_ItemTypeCache();
     $item_type_options = array('' => T_('All')) + $ItemTypeCache->get_option_array();
     $r = array_merge(array('title' => array('label' => T_('Block title'), 'note' => T_('Title to display in your skin.'), 'size' => 40, 'defaultvalue' => T_('Recent photos')), 'item_visibility' => array('label' => T_('Item visibility'), 'note' => T_('What post statuses should be included in the list?'), 'type' => 'radio', 'field_lines' => true, 'options' => array(array('public', T_('show public images (cacheable)')), array('all', T_('show all images the current user is allowed to see (not cacheable)'))), 'defaultvalue' => 'all'), 'item_type' => array('label' => T_('Post type'), 'note' => T_('What kind of items do you want to list?'), 'type' => 'select', 'options' => $item_type_options, 'defaultvalue' => '1'), 'thumb_size' => array('label' => T_('Thumbnail size'), 'note' => T_('Cropping and sizing of thumbnails'), 'type' => 'select', 'options' => get_available_thumb_sizes(), 'defaultvalue' => 'crop-80x80'), 'thumb_layout' => array('label' => T_('Layout'), 'note' => T_('How to lay out the thumbnails'), 'type' => 'select', 'options' => array('grid' => T_('Grid'), 'list' => T_('List'), 'flow' => T_('Flowing Blocks')), 'defaultvalue' => 'flow'), 'disp_image_title' => array('label' => T_('Display image title'), 'note' => T_('Check this to display image title. This falls back to post title if image title is not set.'), 'type' => 'checkbox', 'defaultvalue' => false), 'grid_nb_cols' => array('label' => T_('Columns'), 'note' => T_('Number of columns in grid mode.'), 'size' => 4, 'defaultvalue' => 2), 'limit' => array('label' => T_('Max items'), 'note' => T_('Maximum number of items to display.'), 'size' => 4, 'defaultvalue' => 3), 'order_by' => array('label' => T_('Order by'), 'note' => T_('How to sort the items'), 'type' => 'select', 'options' => get_available_sort_options(), 'defaultvalue' => 'datestart'), 'order_dir' => array('label' => T_('Direction'), 'note' => T_('How to sort the items'), 'type' => 'radio', 'options' => array(array('ASC', T_('Ascending')), array('DESC', T_('Descending'))), 'defaultvalue' => 'DESC'), 'blog_ID' => array('label' => T_('Collection'), 'note' => T_('ID of the collection to use, leave empty for the current collection.'), 'size' => 4, 'type' => 'integer', 'allow_empty' => true)), parent::get_param_definitions($params));
     return $r;
 }
Пример #3
0
 /**
  * Get definitions for editable params
  *
  * @see Plugin::GetDefaultSettings()
  * @param local params like 'for_editing' => true
  */
 function get_param_definitions($params)
 {
     load_funcs('files/model/_image.funcs.php');
     /**
      * @var ItemTypeCache
      */
     $ItemTypeCache =& get_ItemTypeCache();
     $item_type_options = array('#' => T_('Default'), '' => T_('All')) + $ItemTypeCache->get_option_array();
     $r = array_merge(array('title' => array('label' => T_('Block title'), 'note' => T_('Title to display in your skin.'), 'size' => 60, 'defaultvalue' => T_('Items')), 'title_link' => array('label' => T_('Link to blog'), 'note' => T_('Link the block title to the blog?'), 'type' => 'checkbox', 'defaultvalue' => false), 'item_type' => array('label' => T_('Item type'), 'note' => T_('What kind of items do you want to list?'), 'type' => 'select', 'options' => $item_type_options, 'defaultvalue' => '#'), 'thumb_size' => array('label' => T_('Thumbnail size'), 'note' => T_('Cropping and sizing of thumbnails'), 'type' => 'select', 'options' => get_available_thumb_sizes(), 'defaultvalue' => 'crop-80x80'), 'follow_mainlist' => array('label' => T_('Follow Main List'), 'note' => T_('Do you want to restrict to contents related to what is displayed in the main area?'), 'type' => 'radio', 'options' => array(array('no', T_('No')), array('tags', T_('By tags'))), 'defaultvalue' => 'no'), 'blog_ID' => array('label' => T_('Blog'), 'note' => T_('ID of the blog to use, leave empty for the current blog.'), 'size' => 4), 'item_group_by' => array('label' => T_('Group by'), 'note' => T_('Do you want to group the Items?'), 'type' => 'radio', 'options' => array(array('none', T_('None')), array('chapter', T_('By category/chapter'))), 'defaultvalue' => 'none'), 'order_by' => array('label' => T_('Order by'), 'note' => T_('How to sort the items'), 'type' => 'select', 'options' => get_available_sort_options(), 'defaultvalue' => 'datestart'), 'order_dir' => array('label' => T_('Direction'), 'note' => T_('How to sort the items'), 'type' => 'radio', 'options' => array(array('ASC', T_('Ascending')), array('DESC', T_('Descending'))), 'defaultvalue' => 'DESC'), 'limit' => array('label' => T_('Max items'), 'note' => T_('Maximum number of items to display.'), 'size' => 4, 'defaultvalue' => 20), 'disp_title' => array('label' => T_('Titles'), 'note' => T_('Display title.'), 'type' => 'checkbox', 'defaultvalue' => true), 'item_title_link_type' => array('label' => T_('Link titles'), 'note' => T_('Where should titles be linked to?'), 'type' => 'select', 'options' => array('auto' => T_('Automatic'), 'permalink' => T_('Item permalink'), 'linkto_url' => T_('Item URL'), 'none' => T_('Nowhere')), 'defaultvalue' => 'auto'), 'attached_pics' => array('label' => T_('Attached pictures'), 'note' => '', 'type' => 'radio', 'options' => array(array('none', T_('None')), array('first', T_('Display first')), array('all', T_('Display all'))), 'defaultvalue' => 'none'), 'item_pic_link_type' => array('label' => T_('Link pictures'), 'note' => T_('Where should pictures be linked to?'), 'type' => 'select', 'options' => array('auto' => T_('Automatic'), 'permalink' => T_('Item permalink'), 'linkto_url' => T_('Item URL'), 'none' => T_('Nowhere')), 'defaultvalue' => 'auto'), 'disp_excerpt' => array('label' => T_('Excerpt'), 'note' => T_('Display excerpt for each item.'), 'type' => 'checkbox', 'defaultvalue' => false), 'disp_teaser' => array('label' => T_('Content teaser'), 'type' => 'checkbox', 'defaultvalue' => false, 'note' => T_('Display content teaser for each item.')), 'disp_teaser_maxwords' => array('label' => T_('Max Words'), 'type' => 'integer', 'defaultvalue' => 20, 'note' => T_('Max number of words for the teasers.'))), parent::get_param_definitions($params));
     // pre_dump( $r['item_type']['options'] );
     return $r;
 }
 /**
  * Get definitions for editable params
  *
  * @see Plugin::GetDefaultSettings()
  * @param local params like 'for_editing' => true
  */
 function get_param_definitions($params)
 {
     load_funcs('files/model/_image.funcs.php');
     /**
      * @var ItemTypeCache
      */
     $ItemTypeCache =& get_ItemTypeCache();
     $item_type_options = array('#' => T_('Default'), '' => T_('All')) + $ItemTypeCache->get_option_array();
     $r = array_merge(array('title' => array('label' => T_('Block title'), 'note' => T_('Title to display in your skin.'), 'size' => 60, 'defaultvalue' => T_('Items')), 'title_link' => array('label' => T_('Link to blog'), 'note' => T_('Link the block title to the blog?'), 'type' => 'checkbox', 'defaultvalue' => false), 'item_visibility' => array('label' => T_('Item visibility'), 'note' => T_('What post statuses should be included in the list?'), 'type' => 'radio', 'field_lines' => true, 'options' => array(array('public', T_('show public posts')), array('all', T_('show all posts the current user is allowed to see'))), 'defaultvalue' => 'all'), 'item_type' => array('label' => T_('Post type'), 'note' => T_('What kind of items do you want to list?'), 'type' => 'select', 'options' => $item_type_options, 'defaultvalue' => '#'), 'follow_mainlist' => array('label' => T_('Follow Main List'), 'note' => T_('Do you want to restrict to contents related to what is displayed in the main area?'), 'type' => 'radio', 'options' => array(array('no', T_('No')), array('tags', T_('By tags'))), 'defaultvalue' => 'no'), 'blog_ID' => array('label' => T_('Collections'), 'note' => T_('List collection IDs separated by \',\', \'*\' for all collections, \'-\' for current collection without aggregation or leave empty for current collection including aggregation.'), 'size' => 4, 'type' => 'text', 'valid_pattern' => array('pattern' => '/^(\\d+(,\\d+)*|-|\\*)?$/', 'error' => T_('Invalid list of Collection IDs.')), 'defaultvalue' => ''), 'cat_IDs' => array('label' => T_('Categories'), 'note' => T_('List category IDs separated by ,'), 'size' => 15, 'type' => 'text', 'valid_pattern' => array('pattern' => '/^(\\d+(,\\d+)*|-|\\*)?$/', 'error' => T_('Invalid list of Category IDs.'))), 'item_group_by' => array('label' => T_('Group by'), 'note' => T_('Do you want to group the Items?'), 'type' => 'radio', 'options' => array(array('none', T_('None')), array('chapter', T_('By category/chapter'))), 'defaultvalue' => 'none'), 'order_by' => array('label' => T_('Order by'), 'note' => T_('How to sort the items'), 'type' => 'select', 'options' => get_available_sort_options(), 'defaultvalue' => 'datestart'), 'order_dir' => array('label' => T_('Direction'), 'note' => T_('How to sort the items'), 'type' => 'radio', 'options' => array(array('ASC', T_('Ascending')), array('DESC', T_('Descending'))), 'defaultvalue' => 'DESC'), 'limit' => array('label' => T_('Max items'), 'note' => T_('Maximum number of items to display.'), 'size' => 4, 'defaultvalue' => 20), 'disp_title' => array('label' => T_('Titles'), 'note' => T_('Display title.'), 'type' => 'checkbox', 'defaultvalue' => true), 'item_title_link_type' => array('label' => T_('Link titles to'), 'note' => T_('Where should titles be linked to?'), 'type' => 'select', 'options' => array('auto' => T_('Automatic'), 'permalink' => T_('Item permalink'), 'linkto_url' => T_('Item URL'), 'none' => T_('Nowhere')), 'defaultvalue' => 'permalink'), 'attached_pics' => array('label' => T_('Attached pictures'), 'note' => '', 'type' => 'radio', 'options' => array(array('none', T_('None')), array('first', T_('Display first picture')), array('all', T_('Display all pictures'))), 'defaultvalue' => 'none'), 'disp_first_image' => array('label' => T_('First picture'), 'note' => '', 'type' => 'radio', 'options' => array(array('special', T_('Special placement before title')), array('normal', T_('No special treatment (same as other pictures)'))), 'defaultvalue' => 'normal'), 'max_pics' => array('label' => T_('Max pictures'), 'note' => T_('Maximum number of pictures to display after the title.'), 'size' => 4, 'type' => 'integer', 'defaultvalue' => '', 'allow_empty' => true), 'thumb_size' => array('label' => T_('Image size'), 'note' => T_('Cropping and sizing of thumbnails'), 'type' => 'select', 'options' => get_available_thumb_sizes(), 'defaultvalue' => 'crop-80x80'), 'item_pic_link_type' => array('label' => T_('Link pictures'), 'note' => T_('Where should pictures be linked to?'), 'type' => 'select', 'options' => array('auto' => T_('Automatic'), 'permalink' => T_('Item permalink'), 'linkto_url' => T_('Item URL'), 'none' => T_('Nowhere')), 'defaultvalue' => 'auto'), 'disp_excerpt' => array('label' => T_('Excerpt'), 'note' => T_('Display excerpt for each item.'), 'type' => 'checkbox', 'defaultvalue' => false), 'disp_teaser' => array('label' => T_('Content teaser'), 'type' => 'checkbox', 'defaultvalue' => false, 'note' => T_('Display content teaser for each item.')), 'disp_teaser_maxwords' => array('label' => T_('Max Words'), 'type' => 'integer', 'defaultvalue' => 20, 'note' => T_('Max number of words for the teasers.'))), parent::get_param_definitions($params));
     if (isset($r['allow_blockcache'])) {
         // Disable "allow blockcache" because this widget uses the selected items
         $r['allow_blockcache']['defaultvalue'] = false;
         $r['allow_blockcache']['disabled'] = 'disabled';
         $r['allow_blockcache']['note'] = T_('This widget cannot be cached in the block cache.');
     }
     return $r;
 }
Пример #5
0
    /**
     * Generate search query based on set filters and obtain count of results
     */
    function query_init()
    {
        global $current_User;
        // Call reset to init the ItemQuery
        // This prevents from adding the same conditions twice if the ItemQuery was already initialized
        $this->reset();
        if (empty($this->filters)) {
            // Filters have not been set before, we'll use the default filterset:
            // If there is a preset filter, we need to activate its specific defaults:
            $this->filters['filter_preset'] = param($this->param_prefix . 'filter_preset', 'string', $this->default_filters['filter_preset'], true);
            $this->activate_preset_filters();
            // Use the default filters:
            $this->set_filters($this->default_filters);
        }
        // echo '<br />ItemListLight query';
        //pre_dump( $this->filters );
        // GENERATE THE QUERY:
        /*
         * Filtering stuff:
         */
        if (!is_null($this->Blog)) {
            // Get the posts only for current Blog
            $this->ItemQuery->where_chapter2($this->Blog, $this->filters['cat_array'], $this->filters['cat_modifier'], $this->filters['cat_focus'], $this->filters['coll_IDs']);
        } else {
            // If we want to get the posts from all blogs
            // Save for future use (permission checks..)
            $this->ItemQuery->blog = 0;
            $this->ItemQuery->Blog = $this->Blog;
        }
        $this->ItemQuery->where_tags($this->filters['tags']);
        $this->ItemQuery->where_author($this->filters['authors']);
        $this->ItemQuery->where_author_logins($this->filters['authors_login']);
        $this->ItemQuery->where_assignees($this->filters['assignees']);
        $this->ItemQuery->where_assignees_logins($this->filters['assignees_login']);
        $this->ItemQuery->where_author_assignee($this->filters['author_assignee']);
        $this->ItemQuery->where_locale($this->filters['lc']);
        $this->ItemQuery->where_statuses($this->filters['statuses']);
        $this->ItemQuery->where_types($this->filters['types']);
        $this->ItemQuery->where_keywords($this->filters['keywords'], $this->filters['phrase'], $this->filters['exact'], $this->filters['keyword_scope']);
        $this->ItemQuery->where_ID($this->filters['post_ID'], $this->filters['post_title']);
        $this->ItemQuery->where_ID_list($this->filters['post_ID_list']);
        $this->ItemQuery->where_datestart($this->filters['ymdhms'], $this->filters['week'], $this->filters['ymdhms_min'], $this->filters['ymdhms_max'], $this->filters['ts_min'], $this->filters['ts_max']);
        $this->ItemQuery->where_datecreated($this->filters['ts_created_max']);
        $this->ItemQuery->where_visibility($this->filters['visibility_array'], $this->filters['coll_IDs']);
        $this->ItemQuery->where_featured($this->filters['featured']);
        /*
         * ORDER BY stuff:
         */
        if ($this->filters['post_ID_list'] && $this->filters['orderby'] == 'ID_list') {
            $order_by = 'FIELD(' . $this->Cache->dbIDname . ', ' . $this->filters['post_ID_list'] . ')';
        } elseif ($this->filters['orderby'] == 'ID_list') {
            // Use blog setting here because 'orderby' might be set to 'ID_list' as default filter
            $this->filters['orderby'] = $this->Blog->get_setting('orderby');
        }
        if (empty($order_by)) {
            $available_fields = array_keys(get_available_sort_options());
            // Extend general list to allow order posts by these fields as well for some special cases
            $available_fields[] = 'creator_user_ID';
            $available_fields[] = 'assigned_user_ID';
            $available_fields[] = 'pst_ID';
            $available_fields[] = 'datedeadline';
            $available_fields[] = 'T_categories.cat_name';
            $available_fields[] = 'T_categories.cat_order';
            $order_by = gen_order_clause($this->filters['orderby'], $this->filters['order'], $this->Cache->dbprefix, $this->Cache->dbIDname, $available_fields);
        }
        $this->ItemQuery->order_by($order_by);
        /*
         * GET TOTAL ROW COUNT:
         */
        if ($this->single_post) {
            // Single post: no paging required!
            $this->total_rows = 1;
            $this->total_pages = 1;
            $this->page = 1;
        } elseif ($this->filters['unit'] == 'days' || $this->filters['unit'] == 'all') {
            $this->total_rows = NULL;
            // unknown!
            $this->total_pages = 1;
            $this->page = 1;
        } elseif ($this->filters['unit'] == 'posts') {
            // Calculate a count of the posts
            if ($this->ItemQuery->get_group_by() == '') {
                // SQL query without GROUP BY clause
                $sql_count = 'SELECT COUNT( DISTINCT ' . $this->Cache->dbIDname . ' )' . $this->ItemQuery->get_from() . $this->ItemQuery->get_where() . $this->ItemQuery->get_limit();
            } else {
                // SQL query with GROUP BY clause, Summarize a count of each grouped result
                $sql_count = 'SELECT SUM( cnt_tbl.cnt ) FROM (
						SELECT COUNT( DISTINCT ' . $this->Cache->dbIDname . ' ) AS cnt ' . $this->ItemQuery->get_from() . $this->ItemQuery->get_where() . $this->ItemQuery->get_group_by() . $this->ItemQuery->get_limit() . '
					) AS cnt_tbl ';
            }
            parent::count_total_rows($sql_count);
        } else {
            debug_die('Unhandled LIMITING mode in ItemList:' . $this->filters['unit'] . ' (paged mode is obsolete)');
        }
        /*
         * Paging LIMITs:
         */
        if ($this->single_post) {
            // Single post: no paging required!
        } elseif ($this->filters['unit'] == 'all') {
            // We want ALL results!
        } elseif ($this->filters['unit'] == 'posts') {
            // TODO: dh> check if $limit is NULL!? - though it should not arrive at $page>1 then..
            // echo 'LIMIT POSTS ';
            $pgstrt = '';
            if ($this->page > 1) {
                // We have requested a specific page number
                $pgstrt = (intval($this->page) - 1) * $this->limit . ', ';
            }
            $this->ItemQuery->LIMIT($pgstrt . $this->limit);
        } elseif ($this->filters['unit'] == 'days') {
            // We are going to limit to x days:
            // echo 'LIMIT DAYS ';
            if (empty($this->filters['ymdhms_min'])) {
                // We have no start date, we'll display the last x days:
                if (!empty($this->filters['keywords']) || !empty($this->filters['cat_array']) || !empty($this->filters['authors'])) {
                    // We are in DAYS mode but we can't restrict on these! (TODO: ?)
                    $limits = '';
                } else {
                    // We are going to limit to LAST x days:
                    $lastpostdate = $this->get_lastpostdate();
                    $lastpostdate = mysql2date('Y-m-d 00:00:00', $lastpostdate);
                    $lastpostdate = mysql2date('U', $lastpostdate);
                    // go back x days
                    $otherdate = date('Y-m-d H:i:s', $lastpostdate - ($this->limit - 1) * 86400);
                    $this->ItemQuery->WHERE_and($this->Cache->dbprefix . 'datestart > \'' . $otherdate . '\'');
                }
            } else {
                // We have a start date, we'll display x days starting from that point:
                // $dstart_mysql has been calculated earlier
                // TODO: this is redundant with previous dstart processing:
                // Add trailing 0s: YYYYMMDDHHMMSS
                $dstart0 = $this->filters['ymdhms_min'] . '00000000000000';
                $dstart_mysql = substr($dstart0, 0, 4) . '-' . substr($dstart0, 4, 2) . '-' . substr($dstart0, 6, 2) . ' ' . substr($dstart0, 8, 2) . ':' . substr($dstart0, 10, 2) . ':' . substr($dstart0, 12, 2);
                $dstart_ts = mysql2timestamp($dstart_mysql);
                // go forward x days
                $enddate_ts = date('Y-m-d H:i:s', $dstart_ts + $this->limit * 86400);
                $this->ItemQuery->WHERE_and($this->Cache->dbprefix . 'datestart < \'' . $enddate_ts . '\'');
            }
        } else {
            debug_die('Unhandled LIMITING mode in ItemList:' . $this->filters['unit'] . ' (paged mode is obsolete)');
        }
    }
Пример #6
0
if (!defined('EVO_MAIN_INIT')) {
    die('Please, do not access this page directly.');
}
/**
 * @var Blog
 */
global $edited_Blog;
$Form = new Form(NULL, 'coll_features_checkchanges');
$Form->begin_form('fform');
$Form->add_crumb('collection');
$Form->hidden_ctrl();
$Form->hidden('action', 'update');
$Form->hidden('tab', 'features');
$Form->hidden('blog', $edited_Blog->ID);
$Form->begin_fieldset(T_('Post list') . get_manual_link('item-list-features'));
$Form->select_input_array('orderby', $edited_Blog->get_setting('orderby'), get_available_sort_options(), T_('Order by'), T_('Default ordering of posts.'));
$Form->select_input_array('orderdir', $edited_Blog->get_setting('orderdir'), array('ASC' => T_('Ascending'), 'DESC' => T_('Descending')), T_('Direction'));
$Form->radio('what_to_show', $edited_Blog->get_setting('what_to_show'), array(array('days', T_('days')), array('posts', T_('posts'))), T_('Display unit'), false, T_('Do you want to restrict on the number of days or the number of posts?'));
$Form->text('posts_per_page', $edited_Blog->get_setting('posts_per_page'), 4, T_('Posts/Days per page'), T_('How many days or posts do you want to display on the home page?'), 4);
$Form->radio('timestamp_min', $edited_Blog->get_setting('timestamp_min'), array(array('yes', T_('yes')), array('no', T_('no')), array('duration', T_('only the last'))), T_('Show past posts'), true);
$Form->duration_input('timestamp_min_duration', $edited_Blog->get_setting('timestamp_min_duration'), '');
$Form->radio('timestamp_max', $edited_Blog->get_setting('timestamp_max'), array(array('yes', T_('yes')), array('no', T_('no')), array('duration', T_('only the next'))), T_('Show future posts'), true);
$Form->duration_input('timestamp_max_duration', $edited_Blog->get_setting('timestamp_max_duration'), '');
$Form->end_fieldset();
$Form->begin_fieldset(T_('Post options') . get_manual_link('blog_features_settings'));
$Form->select_input_array('default_post_status', $edited_Blog->get_setting('default_post_status'), get_visibility_statuses('notes-string'), T_('Default status'), T_('Default status for new posts'));
$Form->radio('require_title', $edited_Blog->get_setting('require_title'), array(array('required', T_('Always'), T_('The blogger must provide a title')), array('optional', T_('Optional'), T_('The blogger can leave the title field empty')), array('none', T_('Never'), T_('No title field'))), T_('Post titles'), true);
$Form->checkbox('allow_html_post', $edited_Blog->get_setting('allow_html_post'), T_('Allow HTML'), T_('Check to allow HTML in posts.') . ' (' . T_('HTML code will pass several sanitization filters.') . ')');
$Form->radio('enable_goto_blog', $edited_Blog->get_setting('enable_goto_blog'), array(array('no', T_('No'), T_('Check this to view list of the posts.')), array('blog', T_('View home page'), T_('Check this to automatically view the blog after publishing a post.')), array('post', T_('View new post'), T_('Check this to automatically view the post page.'))), T_('View blog after publishing'), true);
$Form->radio('editing_goto_blog', $edited_Blog->get_setting('editing_goto_blog'), array(array('no', T_('No'), T_('Check this to view list of the posts.')), array('blog', T_('View home page'), T_('Check this to automatically view the blog after editing a post.')), array('post', T_('View edited post'), T_('Check this to automatically view the post page.'))), T_('View blog after editing'), true);
// FP> TODO: