add simple options page
This commit is contained in:
parent
83a5955ff0
commit
ba387cd1c2
@ -10,10 +10,10 @@ $blogcat = "1";
|
|||||||
$comic_folder = "comics";
|
$comic_folder = "comics";
|
||||||
|
|
||||||
//RSS COMIC FOLDER - the folder your comic files are in for the RSS feed (default "comics").
|
//RSS COMIC FOLDER - the folder your comic files are in for the RSS feed (default "comics").
|
||||||
$rss_comic_folder = "comics-rss";
|
$rss_comic_folder = "comics";
|
||||||
|
|
||||||
//ARCHIVE COMIC FOLDER - the folder your comic files are in for your archive pages (default "comics").
|
//ARCHIVE COMIC FOLDER - the folder your comic files are in for your archive pages (default "comics").
|
||||||
$archive_comic_folder = "comics-archive";
|
$archive_comic_folder = "comics";
|
||||||
|
|
||||||
//ARCHIVE COMIC WIDTH - the width your comics will appear on archive or search results (default "380").
|
//ARCHIVE COMIC WIDTH - the width your comics will appear on archive or search results (default "380").
|
||||||
$archive_comic_width = "380";
|
$archive_comic_width = "380";
|
||||||
|
120
functions.php
120
functions.php
@ -32,6 +32,15 @@ $comic_filename_filters['default'] = "{date}*.*";
|
|||||||
|
|
||||||
// load all of the comic & non-comic category information
|
// load all of the comic & non-comic category information
|
||||||
add_action('init', 'get_all_comic_categories');
|
add_action('init', 'get_all_comic_categories');
|
||||||
|
add_action('init', 'comicpress_handle_options_changes');
|
||||||
|
add_action('admin_menu', 'comicpress_add_options_menu');
|
||||||
|
add_action('admin_notices', 'comicpress_admin_notices');
|
||||||
|
|
||||||
|
$__comicpress_notices = array();
|
||||||
|
|
||||||
|
function comicpress_add_options_menu() {
|
||||||
|
add_theme_page(__("ComicPress Config", 'comicpress'), __('ComicPress Config', 'comicpress'), 'edit_themes', basename(__FILE__), 'comicpress_options_menu');
|
||||||
|
}
|
||||||
|
|
||||||
function get_first_comic() {
|
function get_first_comic() {
|
||||||
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string());
|
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string());
|
||||||
@ -41,6 +50,117 @@ function get_last_comic() {
|
|||||||
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string(), false);
|
return get_terminal_post_in_category(get_all_comic_categories_as_cat_string(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function comicpress_admin_notices() {
|
||||||
|
global $__comicpress_notices;
|
||||||
|
|
||||||
|
if (!empty($__comicpress_notices) && is_array($__comicpress_notices)) {
|
||||||
|
echo '<div class="updated fade">';
|
||||||
|
foreach ($__comicpress_notices as $notice) { echo '<p>' . $notice . '</p>'; }
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function comicpress_handle_options_changes() {
|
||||||
|
global $__comicpress_notices;
|
||||||
|
|
||||||
|
include(get_template_directory() . '/comicpress-config.php');
|
||||||
|
|
||||||
|
if (isset($_POST['cp'])) {
|
||||||
|
if (wp_verify_nonce($_POST['cp']['_nonce'], 'comicpress')) {
|
||||||
|
foreach ($_POST['cp'] as $field => $value) {
|
||||||
|
${$field} = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$lines = file(get_template_directory() . '/comicpress-config.php', FILE_IGNORE_NEW_LINES);
|
||||||
|
for ($i = 0, $il = count($lines); $i < $il; ++$i) {
|
||||||
|
if (preg_match('#\$([^\ ]+)#', $lines[$i], $matches) > 0) {
|
||||||
|
if (!empty(${$matches[1]})) {
|
||||||
|
$lines[$i] = "\${$matches[1]} = \"" . ${$matches[1]} . "\";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($fh = fopen(get_template_directory() . '/comicpress-config.php', "w")) !== false) {
|
||||||
|
foreach ($lines as $line) { fwrite($fh, $line . "\n"); }
|
||||||
|
fclose($fh);
|
||||||
|
$__comicpress_notices[] = __('ComicPress options updated.', 'comicpress');
|
||||||
|
} else {
|
||||||
|
$__comicpress_notices[] = __("Unable to write file. Check your theme directory's permissions.", 'comicpress');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function comicpress_options_menu() {
|
||||||
|
include(get_template_directory() . '/comicpress-config.php');
|
||||||
|
|
||||||
|
$categories = get_all_category_ids();
|
||||||
|
|
||||||
|
echo '<div class="wrap">';
|
||||||
|
_e('<h2>ComicPress Config</h2>', 'comicpress');
|
||||||
|
|
||||||
|
echo '<form method="post">';
|
||||||
|
echo '<input type="hidden" name="cp[_nonce]" value="' . wp_create_nonce('comicpress') . '" />';
|
||||||
|
echo '<table>';
|
||||||
|
foreach (array(
|
||||||
|
'blogcat' => array(
|
||||||
|
'type' => 'category',
|
||||||
|
'label' => __('Blog category', 'comicpress')
|
||||||
|
),
|
||||||
|
'comiccat' => array(
|
||||||
|
'type' => 'category',
|
||||||
|
'label' => __('Comic category', 'comicpress')
|
||||||
|
),
|
||||||
|
'comic_folder' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('Comic folder', 'comicpress')
|
||||||
|
),
|
||||||
|
'rss_comic_folder' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('RSS comic folder', 'comicpress')
|
||||||
|
),
|
||||||
|
'archive_comic_folder' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('Archive comic folder', 'comicpress')
|
||||||
|
),
|
||||||
|
'archive_comic_width' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('Archive comic width', 'comicpress')
|
||||||
|
),
|
||||||
|
'rss_comic_width' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('RSS comic width', 'comicpress')
|
||||||
|
),
|
||||||
|
'blog_postcount' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __('Blog postcount', 'comicpress')
|
||||||
|
)
|
||||||
|
) as $field => $parameters) {
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<th scope="row">' . $parameters['label'] . '</th>';
|
||||||
|
echo '<td>';
|
||||||
|
switch ($parameters['type']) {
|
||||||
|
case "category":
|
||||||
|
echo '<select name="cp[' . $field . ']">';
|
||||||
|
foreach ($categories as $category_id) {
|
||||||
|
echo '<option value="' . $category_id . '"' . ((${$field} == $category_id) ? 'selected="selected"' : "") . '>' . get_cat_name($category_id) . '</option>';
|
||||||
|
}
|
||||||
|
echo '</select>';
|
||||||
|
break;
|
||||||
|
case "text":
|
||||||
|
echo '<input type="text" name="cp[' . $field . ']" value="' . ${$field} . '" />';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<tr><td></td><td><input type="submit" /></td></tr>';
|
||||||
|
echo '</table>';
|
||||||
|
echo '</form>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the hyperlink to the first comic post in the database.
|
* Get the hyperlink to the first comic post in the database.
|
||||||
* @return string The hyperlink to the first comic post, or false.
|
* @return string The hyperlink to the first comic post, or false.
|
||||||
|
Loading…
Reference in New Issue
Block a user