Update Docker configuration and plugin versions
- Upgrade MariaDB from 10.6 to 11 with auto-upgrade support
- Add WordPress debug environment variable to FPM container
- Update PHP-FPM Dockerfile base image
- Update Include Mastodon Feed plugin with bug fixes and improvements
- Update Portfolio plugin (v2.58) with latest translations and demo data enhancements
- Remove old README.md from Mastodon Feed plugin
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
<?php
//page editing
add_action( 'admin_menu', 'hybrid_create_meta_box_page' );
add_action( 'save_post', 'hybrid_save_meta_data_page' );
function hybrid_create_meta_box_page() {
global $theme_name;
add_meta_box( 'page-meta-boxes', __('Page options','pego_tr'), 'page_meta_boxes', 'page', 'normal', 'high' );
}
function hybrid_page_meta_boxes() {
/* Array of the meta box options. */
$meta_boxes = array(
'show_page_in_menu' => array(
'name' => 'show_page_in_menu',
'title' => __('Show page in menu?','pego_tr'),
'description' => __('Select Yes if you want the page to be displayed in the menu. ','pego_tr'),
'type' => "select",
'std' => 'No',
'options' => array('No', 'Yes')),
'page_template' => array(
'name' => 'page_template',
'title' => __('Choose page template','pego_tr'),
'description' => __('Choose a template if you want. ','pego_tr'),
'type' => "select",
'std' => 'None',
'options' => array('None', 'Home', 'Portfolio', 'Contact', 'Blog', 'News')),
'short_desc' => array(
'name' => 'short_desc',
'title' => __('Short page description','pego_tr'),
'description' => __('Enter a short page description. It will be added in the page title.','pego_tr'),
'type' => 'text' ),
'external_page_link' => array(
'name' => 'external_page',
'title' => __('External page url:','pego_tr'),
'description' => __('Isert link to have an external page in menu.','pego_tr'),
'type' => 'text' )
);
return apply_filters( 'hybrid_page_meta_boxes', $meta_boxes );
}
function page_meta_boxes() {
global $post;
$meta_boxes = hybrid_page_meta_boxes(); ?>
<table class="form-table">
<?php foreach ( $meta_boxes as $meta ) :
$value = stripslashes( get_post_meta( $post->ID, $meta['name'], true ) );
if ( $meta['type'] == 'text' )
get_meta_text_input_page( $meta, $value );
elseif ( $meta['type'] == 'textarea' )
get_meta_textarea_page( $meta, $value );
elseif ( $meta['type'] == 'select' )
get_meta_select_page( $meta, $value );
endforeach; ?>
</table>
<?php
}
function get_meta_text_input_page( $args = array(), $value = false ) {
extract( $args ); ?>
<tr>
<th style="width:30%;">
<label for="<?php echo $name; ?>"><b><?php echo $title; ?></b><br/><span style="color:#777777;"><?php echo $description; ?></span></label>
</th>
<td>
<input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" value="<?php echo esc_html( $value ); ?>" size="30" tabindex="30" style="width: 97%;" />
<input type="hidden" name="<?php echo $name; ?>_noncename" id="<?php echo $name; ?>_noncename" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</td>
</tr>
<?php
}
function get_meta_select_page( $args = array(), $value = false ) {
extract( $args ); ?>
<tr>
<th style="width:30%;">
<label for="<?php echo $name; ?>"><b><?php echo $title; ?></b><br/><span style="color:#777777;" ><?php echo $description; ?></span></label>
</th>
<td>
<select style="width:90px;" name="<?php echo $name; ?>" id="<?php echo $name; ?>">
<?php foreach ( $options as $option ) : ?>
<option <?php if ( htmlentities( $value, ENT_QUOTES ) == $option ) echo ' selected="selected"'; ?>>
<?php echo $option; ?>
</option>
<?php endforeach; ?>
</select>
<input type="hidden" name="<?php echo $name; ?>_noncename" id="<?php echo $name; ?>_noncename" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</td>
</tr>
<?php
}
function get_meta_color_page( $args = array(), $value = false ) {
extract( $args ); ?>
<tr>
<th style="width:30%;">
<label for="<?php echo $name; ?>"><b><?php echo $title; ?></b><br/><span style="color:#777777;" ><?php echo $description; ?></span></label>
</th>
<td>
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/functions/css/colorpicker.css" type="text/css" media="screen" />
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/functions/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/functions/js/colorpicker.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/functions/js/eye.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/functions/js/layout.js?ver=1.0.2"></script>
#<input type="text" maxlength="6" size="6" name="<?php echo $name; ?>" id="colorpickerField1" value="<?php echo esc_html( $value ); ?>" />
<input type="hidden" name="<?php echo $name; ?>_noncename" id="<?php echo $name; ?>_noncename" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</td>
</tr>
<?php
}
function get_meta_textarea_page( $args = array(), $value = false ) {
extract( $args ); ?>
<tr>
<th style="width:30%;">
<label for="<?php echo $name; ?>"><b><?php echo $title; ?></b><br/><span style="color:#777777;"><?php echo $description; ?></span></label>
</th>
<td>
<textarea name="<?php echo $name; ?>" id="<?php echo $name; ?>" cols="60" rows="4" tabindex="30" style="width: 97%;"><?php echo esc_html( $value ); ?></textarea>
<input type="hidden" name="<?php echo $name; ?>_noncename" id="<?php echo $name; ?>_noncename" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
</td>
</tr>
<?php
}
function hybrid_save_meta_data_page( $post_id ) {
global $post;
$meta_boxes = array_merge( hybrid_page_meta_boxes() );
foreach ( $meta_boxes as $meta_box ) :
if ( !wp_verify_nonce( $_POST[$meta_box['name'] . '_noncename'], plugin_basename( __FILE__ ) ) )
return $post_id;
if ( 'page' == $_POST['post_type'] && !current_user_can( 'edit_page', $post_id ) )
return $post_id;
elseif ( 'post' == $_POST['post_type'] && !current_user_can( 'edit_post', $post_id ) )
return $post_id;
$data = stripslashes( $_POST[$meta_box['name']] );
if ( get_post_meta( $post_id, $meta_box['name'] ) == '' )
add_post_meta( $post_id, $meta_box['name'], $data, true );
elseif ( $data != get_post_meta( $post_id, $meta_box['name'], true ) )
update_post_meta( $post_id, $meta_box['name'], $data );
elseif ( $data == '' )
delete_post_meta( $post_id, $meta_box['name'], get_post_meta( $post_id, $meta_box['name'], true ) );
endforeach;
}
?>