1172 lines
44 KiB
PHP
1172 lines
44 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Defines visiting cards / personal info pages using custom post types and meta boxes
|
|
*/
|
|
|
|
|
|
// Register Custom Post Type
|
|
function piratenkleider_person_post_type() {
|
|
$labels = array(
|
|
'name' => _x( 'Business Card', 'Personal information', 'piratenkleider' ),
|
|
'singular_name' => _x( 'Business Card', 'Personal information', 'piratenkleider' ),
|
|
'menu_name' => __( 'Business Card', 'piratenkleider' ),
|
|
);
|
|
$args = array(
|
|
'label' => __( 'Business Card', 'piratenkleider' ),
|
|
'description' => __( 'Manage personal information', 'piratenkleider' ),
|
|
'labels' => $labels,
|
|
'supports' => array( 'title', 'thumbnail', 'editor'),
|
|
'hierarchical' => false,
|
|
'public' => true,
|
|
'menu_position' => 7,
|
|
'menu_icon' => '',
|
|
'can_export' => true,
|
|
'has_archive' => true,
|
|
'exclude_from_search' => true,
|
|
);
|
|
register_post_type( 'person', $args );
|
|
}
|
|
|
|
// Hook into the 'init' action
|
|
add_action( 'init', 'piratenkleider_person_post_type', 0 );
|
|
|
|
function piratenkleider_taxonomies_person() {
|
|
$labels = array();
|
|
$args = array(
|
|
'labels' => $labels,
|
|
'hierarchical' => true,
|
|
);
|
|
register_taxonomy( 'person_category', 'person', $args );
|
|
}
|
|
add_action( 'init', 'piratenkleider_taxonomies_person', 0 );
|
|
|
|
/*
|
|
* Metabox fuer weitere Personeninfo
|
|
*/
|
|
|
|
|
|
function piratenkleider_person_metabox() {
|
|
add_meta_box(
|
|
'piratenkleider_person_metabox',
|
|
__( 'Personal information', 'piratenkleider' ),
|
|
'piratenkleider_person_metabox_content',
|
|
'person',
|
|
'normal',
|
|
'high'
|
|
);
|
|
}
|
|
function piratenkleider_person_metabox_content( $post ) {
|
|
global $defaultoptions;
|
|
global $post;
|
|
$academictitle = array(
|
|
__("Prof.", 'piratenkleider'),
|
|
__("Doc.", 'piratenkleider'),
|
|
__("PD", 'piratenkleider')
|
|
);
|
|
wp_nonce_field( plugin_basename( __FILE__ ), 'person_metabox_content_nonce' );
|
|
?>
|
|
|
|
|
|
<p>
|
|
<label for="person_first_name"><?php _e( "Pre name", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input class="widefat" type="text" name="person_first_name"
|
|
id="person_first_name" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_first_name', true ) ); ?>" size="15" />
|
|
</p>
|
|
<p>
|
|
<label for="person_last_name"><?php _e( "Last name", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input class="widefat" type="text" name="person_last_name"
|
|
id="person_last_name" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_last_name', true ) ); ?>" size="15" />
|
|
</p>
|
|
<p>
|
|
<label for="person_academic"><?php _e( "Academic title", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<select name="person_academic" id="person_academic">
|
|
<option value=""></option>
|
|
<?php
|
|
$current = esc_attr( get_post_meta( $post->ID, 'person_academic', true ) );
|
|
foreach($academictitle as $i) {
|
|
echo "\t\t\t\t";
|
|
echo '<option value="'.$i.'"';
|
|
if ( $i == $current ) {
|
|
echo ' selected="selected"';
|
|
}
|
|
echo '>';
|
|
echo $i;
|
|
echo '</option>';
|
|
echo "\n";
|
|
}
|
|
?>
|
|
</select>
|
|
|
|
</p>
|
|
|
|
|
|
<p>
|
|
<label for="person_shortdesc"><?php _e( "Short description", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input class="widefat" type="text" name="person_shortdesc"
|
|
id="person_shortdesc" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_shortdesc', true ) ); ?>" size="70" />
|
|
</p>
|
|
<p>
|
|
<label for="person_bild"><?php _e( "Personal image", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
|
|
|
|
<?php
|
|
$person_bildid = get_post_meta( $post->ID, 'person_bildid', true );
|
|
$person_bild = get_post_meta( $post->ID, 'person_bild', true );
|
|
|
|
if (isset($person_bildid) && ($person_bildid>0)) {
|
|
$image_attributes = wp_get_attachment_image_src( $person_bildid, 'person-thumb' );
|
|
if (is_array($image_attributes)) {
|
|
echo '<img id="person_bild-show" src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'">';
|
|
$person_bild = $image_attributes[0];
|
|
}
|
|
|
|
} elseif (filter_var($person_bild, FILTER_VALIDATE_URL)) {
|
|
echo '<img id="person_bild-show" src="'.$person_bild.'" alt="" style="width: '.$defaultoptions['person-thumbnail_width'].'px; height: auto;">';
|
|
} else {
|
|
echo '<img id="person_bild-show" src="'.$defaultoptions['src-person_bild_default'].'" alt="" style="width: '.$defaultoptions['person-thumbnail_width'].'px; height: auto;">';
|
|
}
|
|
echo '<br /><span class="custom_default_image" style="display:none">'.$defaultoptions['src-person_bild_default'].'</span>';
|
|
?>
|
|
<input type="text" name="person_bild" size="50" id="person_bild"
|
|
value="<?php echo $person_bild; ?>" />
|
|
<input type="hidden" name="person_bildid" id="person_bildid"
|
|
value="<?php echo $person_bildid; ?>" />
|
|
|
|
|
|
<input type="button" id="person_bild-button" class="button" value="<?php _e( "Select or upload image", 'piratenkleider' ); ?>" />
|
|
<small> <a href="#" class="custom_clear_image_button"><?php _e("Remove image",'piratenkleider'); ?></a></small>
|
|
</p>
|
|
|
|
<p>
|
|
<label for="person_email"><?php _e( "Email", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_email"
|
|
id="person_email" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_email', true ) ); ?>" size="30" />
|
|
</p>
|
|
<p>
|
|
<label for="person_pgp_fingerprint"><?php _e( "PGP Fingerprint", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_pgp_fingerprint"
|
|
id="person_pgp_fingerprint" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_pgp_fingerprint', true ) ); ?>" size="49" />
|
|
</p>
|
|
<p>
|
|
<label for="person_url"><?php _e( "Homepage (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_url"
|
|
id="person_url" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_url', true ) ); ?>" size="30" />
|
|
</p>
|
|
|
|
<p>
|
|
<label for="person_wiki"><?php _e( "Wiki Page (Username)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_wiki"
|
|
id="person_wiki" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_wiki', true ) ); ?>" size="10" />
|
|
</p>
|
|
|
|
<p>
|
|
<label for="person_twitter"><?php _e( "Twitter (Accountname)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_twitter"
|
|
id="person_twitter" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_twitter', true ) ); ?>" size="10" />
|
|
|
|
</p>
|
|
<p>
|
|
<label for="person_facebook"><?php _e( "Facebook (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_facebook"
|
|
id="person_facebook" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_facebook', true ) ); ?>" size="30" />
|
|
|
|
</p>
|
|
<p>
|
|
<label for="person_google"><?php _e( "Google+ (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_google"
|
|
id="person_google" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_google', true ) ); ?>" size="30" />
|
|
|
|
</p>
|
|
<p>
|
|
<label for="person_friendica"><?php _e( "Friendica (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_friendica"
|
|
id="person_google" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_friendica', true ) ); ?>" size="30" />
|
|
|
|
</p>
|
|
<p>
|
|
<label for="person_instagram"><?php _e( "Instagram (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_instagram"
|
|
id="person_google" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_instagram', true ) ); ?>" size="30" />
|
|
|
|
</p>
|
|
<p>
|
|
<label for="person_newsfeed"><?php _e( "Personal Newsfeed (URL)", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
<input type="text" name="person_newsfeed"
|
|
id="person_newsfeed" value="<?php echo esc_attr( get_post_meta( $post->ID, 'person_newsfeed', true ) ); ?>" size="30" />
|
|
</p>
|
|
|
|
|
|
<?php
|
|
|
|
}
|
|
add_action( 'add_meta_boxes', 'piratenkleider_person_metabox' );
|
|
|
|
|
|
function piratenkleider_person_metabox_save( $post_id ) {
|
|
global $options;
|
|
if ( 'person'!= get_post_type() ) {
|
|
return;
|
|
}
|
|
|
|
|
|
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
|
|
return;
|
|
|
|
if ( !wp_verify_nonce( $_POST['person_metabox_content_nonce'], plugin_basename( __FILE__ ) ) )
|
|
return;
|
|
|
|
if ( 'page' == $_POST['post_type'] ) {
|
|
if ( !current_user_can( 'edit_page', $post_id ) )
|
|
return;
|
|
} else {
|
|
if ( !current_user_can( 'edit_post', $post_id ) )
|
|
return;
|
|
}
|
|
|
|
$imgid = intval($_POST['person_bildid']);
|
|
if ($imgid) {
|
|
update_post_meta( $post_id, 'person_bildid', $imgid );
|
|
} else {
|
|
$urlimg = $_POST['person_bild'];
|
|
if (filter_var($urlimg, FILTER_VALIDATE_URL)) {
|
|
update_post_meta( $post_id, 'person_bild', $urlimg );
|
|
} else {
|
|
delete_post_meta( $post_id, 'person_bild' );
|
|
}
|
|
delete_post_meta( $post_id, 'person_bildid' );
|
|
}
|
|
|
|
$url = '';
|
|
if ((isset( $_POST['person_url'] ) && (filter_var($_POST['person_url'], FILTER_VALIDATE_URL)))) {
|
|
$url = $_POST['person_url'];
|
|
} else {
|
|
if ((isset( $_POST['person_url'])) && (preg_match("/^www/i",$_POST['person_url']))) {
|
|
$tryurl = 'http://'.$_POST['person_url'];
|
|
if (filter_var($tryurl, FILTER_VALIDATE_URL)) {
|
|
$url = $tryurl;
|
|
}
|
|
}
|
|
}
|
|
$oldurl = get_post_meta( $post_id, 'person_url', true );
|
|
if ( $url && '' == $oldurl )
|
|
add_post_meta( $post_id, 'person_url', $url, true );
|
|
elseif ( $url && $url != $oldurl )
|
|
update_post_meta( $post_id, 'person_url', $url );
|
|
elseif ( '' == $url && $oldurl )
|
|
delete_post_meta( $post_id, 'person_url', $oldurl );
|
|
|
|
|
|
$newid = ( isset( $_POST['person_email'] ) ? $_POST['person_email'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_EMAIL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_email', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_email', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_email', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_email', $oldid );
|
|
|
|
$newid = ( isset( $_POST['person_facebook'] ) ? $_POST['person_facebook'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_URL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_facebook', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_facebook', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_facebook', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_facebook', $oldid );
|
|
|
|
$newid = ( isset( $_POST['person_google'] ) ? $_POST['person_google'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_URL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_google', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_google', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_google', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_google', $oldid );
|
|
|
|
$newid = ( isset( $_POST['person_friendica'] ) ? $_POST['person_friendica'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_URL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_friendica', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_friendica', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_friendica', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_friendica', $oldid );
|
|
|
|
|
|
$newid = ( isset( $_POST['person_instagram'] ) ? $_POST['person_instagram'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_URL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_instagram', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_instagram', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_instagram', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_instagram', $oldid );
|
|
|
|
|
|
|
|
$newid = ( isset( $_POST['person_newsfeed'] ) ? $_POST['person_newsfeed'] : '' );
|
|
if ((isset($newid)) && (filter_var($newid, FILTER_VALIDATE_URL))) {
|
|
/* URL ok */
|
|
} else {
|
|
$newid = '';
|
|
}
|
|
$oldid = get_post_meta( $post_id, 'person_newsfeed', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_newsfeed', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_newsfeed', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_newsfeed', $oldid );
|
|
|
|
|
|
|
|
$newid = ( isset( $_POST['person_wiki'] ) ? $_POST['person_wiki'] : '' );
|
|
$oldid = get_post_meta( $post_id, 'person_wiki', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'person_wiki', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'person_wiki', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'person_wiki', $oldid );
|
|
|
|
|
|
if( isset( $_POST[ 'person_twitter' ] ) ) {
|
|
update_post_meta( $post_id, 'person_twitter', sanitize_text_field($_POST[ 'person_twitter' ]) );
|
|
}
|
|
|
|
if( isset( $_POST[ 'person_shortdesc' ] ) ) {
|
|
update_post_meta( $post_id, 'person_shortdesc', $_POST[ 'person_shortdesc' ] );
|
|
}
|
|
if( isset( $_POST[ 'person_pgp_fingerprint' ] ) ) {
|
|
update_post_meta( $post_id, 'person_pgp_fingerprint', sanitize_text_field( $_POST[ 'person_pgp_fingerprint' ]) );
|
|
}
|
|
if( isset( $_POST[ 'person_last_name' ] ) ) {
|
|
update_post_meta( $post_id, 'person_last_name', sanitize_text_field( $_POST[ 'person_last_name' ] ) );
|
|
}
|
|
if( isset( $_POST[ 'person_first_name' ] ) ) {
|
|
update_post_meta( $post_id, 'person_first_name', sanitize_text_field( $_POST[ 'person_first_name' ] ) );
|
|
}
|
|
if( isset( $_POST[ 'person_academic' ] ) ) {
|
|
update_post_meta( $post_id, 'person_academic', sanitize_text_field( $_POST[ 'person_academic' ] ) );
|
|
}
|
|
|
|
|
|
}
|
|
add_action( 'save_post', 'piratenkleider_person_metabox_save' );
|
|
|
|
|
|
function piratenkleider_person_metabox_updated_messages( $messages ) {
|
|
global $post, $post_ID;
|
|
$messages['person'] = array(
|
|
0 => '',
|
|
1 => __('Business card updated.', 'piratenkleider'),
|
|
2 => __('Business card updated.', 'piratenkleider'),
|
|
3 => __('Business card removed.', 'piratenkleider'),
|
|
6 => __('Business card publiced.', 'piratenkleider'),
|
|
7 => __('Business card saved.', 'piratenkleider'),
|
|
);
|
|
return $messages;
|
|
}
|
|
add_filter( 'post_updated_messages', 'piratenkleider_person_metabox_updated_messages' );
|
|
|
|
|
|
|
|
|
|
|
|
function piratenkleider_display_person ($post_id = 0, $format = 'full', $profillink = 1) {
|
|
global $options;
|
|
|
|
|
|
$person_shortdesc = get_post_meta( $post_id, 'person_shortdesc', true );
|
|
$person_text = apply_filters('the_content', get_post_field('post_content', $post_id));
|
|
|
|
$person_link = get_permalink( $post_id);
|
|
|
|
$person_last_name = get_post_meta( $post_id, 'person_last_name', true );
|
|
$person_first_name = get_post_meta( $post_id, 'person_first_name', true );
|
|
$person_academic = get_post_meta( $post_id, 'person_academic', true );
|
|
$fullname = '';
|
|
if (isset($person_academic) && strlen($person_academic)>1) {
|
|
$fullname = $person_academic.' ';
|
|
}
|
|
$fullname .= $person_first_name.' '.$person_last_name;
|
|
$person_url = get_post_meta( $post_id, 'person_url', true );
|
|
$person_email = get_post_meta( $post_id, 'person_email', true );
|
|
$person_pgp_fingerprint = get_post_meta( $post_id, 'person_pgp_fingerprint', true );
|
|
|
|
|
|
$person_facebook = get_post_meta( $post_id, 'person_facebook', true );
|
|
$person_twitter = get_post_meta( $post_id, 'person_twitter', true );
|
|
$person_wiki = get_post_meta( $post_id, 'person_wiki', true );
|
|
$person_google = get_post_meta( $post_id, 'person_google', true );
|
|
$person_friendica = get_post_meta( $post_id, 'person_friendica', true );
|
|
$person_instagram = get_post_meta( $post_id, 'person_instagram', true );
|
|
|
|
$person_newsfeed = get_post_meta( $post_id, 'person_newsfeed', true );
|
|
|
|
|
|
$person_imgid = get_post_meta( $post_id, 'person_bildid', true );
|
|
$person_image = get_post_meta( $post_id, 'person_bild', true );
|
|
$bildfullwidth = $bildsmallwidth = $personenbildfull = $personenbildsmall = $personenbildsidebar = '';
|
|
|
|
if ((isset($person_imgid) && ($person_imgid>0)) || (isset($person_image) && (strlen($person_image)))) {
|
|
$alttext = $fullname;
|
|
$coprightcap = '';
|
|
if (isset($person_imgid) && ($person_imgid>0)) {
|
|
$image_attributes = wp_get_attachment_image_src( $person_imgid, 'person-thumb' );
|
|
$image_attributessmall = wp_get_attachment_image_src( $person_imgid, 'post-thumbnails' );
|
|
$image_attributessidebar = wp_get_attachment_image_src( $person_imgid, $options['sidebar-thumbnail_name'] );
|
|
|
|
if (isset($image_attributes["credits"]) && (strlen($image_attributes["credits"])>1)) {
|
|
$alttext .= "\n".' ('.$image_attributes["credits"].')';
|
|
$coprightcap .= '('.$image_attributes["credits"].')';
|
|
}
|
|
if (is_array($image_attributes)) {
|
|
$personenbildfull = '<img itemprop="image" src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'" alt="'.$alttext.'" class="size-full">';
|
|
$personenbildsmall = '<img itemprop="image" src="'.$image_attributessmall[0].'" width="'.$image_attributessmall[1].'" height="'.$image_attributessmall[2].'" alt="'.$alttext.'" class="size-full">';
|
|
$personenbildsidebar = '<img src="'.$image_attributessidebar[0].'" width="'.$image_attributessidebar[1].'" height="'.$image_attributessidebar[2].'" alt="'.$alttext.'">';
|
|
}
|
|
|
|
} elseif (isset($person_image)) {
|
|
$personenbildfull = '<img itemprop="image" src="'.$person_image.'" alt="'.$alttext.'" class="size-full" height="'.$options['person-thumbnail_height'].'" style="width: auto;">';
|
|
$personenbildsmall = '<img itemprop="image" src="'.$person_image.'" alt="'.$alttext.'" class="size-full" height="150" style="width: auto;">';
|
|
$personenbildsidebar = '<img src="'.$person_image.'" alt="'.$alttext.'" width="'.$options['sidebar-thumbnail_width'].'" style="height: auto;">';
|
|
|
|
}
|
|
|
|
$bildfullwidth = '<div style="width: 210px" class="wp-caption alignright">';
|
|
$bildfullwidth .= $personenbildfull;
|
|
$bildfullwidth .= '<p class="wp-caption-text">'.$fullname;
|
|
if (isset($coprightcap) && strlen($coprightcap)>1) {
|
|
$bildfullwidth .= '<br>('.$coprightcap.')';
|
|
}
|
|
$bildfullwidth .= '</p></div>';
|
|
|
|
|
|
$bildsmallwidth = '<div style="width: 160px" class="wp-caption alignleft">';
|
|
$bildsmallwidth .= $personenbildsmall;
|
|
$bildsmallwidth .= '<p class="wp-caption-text">'.$fullname;
|
|
if (isset($coprightcap) && strlen($coprightcap)>1) {
|
|
$bildsmallwidth .= '<br>('.$coprightcap.')';
|
|
}
|
|
$bildsmallwidth .= '</p></div>';
|
|
|
|
}
|
|
|
|
|
|
$out = '';
|
|
|
|
$kontaktdata = '';
|
|
if (isset($person_url) || isset($person_email)
|
|
|| isset($person_facebook) || isset($person_twitter)
|
|
|| isset($person_wiki) || isset($person_google)) {
|
|
$kontaktdata .= '<h3 class="contact">'.__('Contact','piratenkleider').'</h3>';
|
|
$kontaktdata .= "<ul class=\"contact\">\n";
|
|
if (isset($person_email) && strlen($person_email)>1) {
|
|
$kontaktdata .= "<li class=\"email\"><span>E-Mail: </span><a itemprop=\"email\" href=\"mailto:".$person_email."\">".$person_email."</a>";
|
|
$kontaktdata .= "</li>\n";
|
|
}
|
|
if (isset($person_pgp_fingerprint) && strlen($person_pgp_fingerprint)>1) {
|
|
$kontaktdata .= "<li class=\"pgp\"><span>PGP Fingerprint: </span><code>".$person_pgp_fingerprint."</code></li>";
|
|
}
|
|
if (isset($person_url) && strlen($person_url)>1) {
|
|
$kontaktdata .= "<li class=\"website\"><span>Web: </span><a class=\"extern\" itemprop=\"url\" href=\"".$person_url."\">".piratenkleider_display_url($person_url)."</a></li>\n";
|
|
}
|
|
if (isset($person_twitter) && strlen($person_twitter)>1) {
|
|
if (filter_var($person_twitter, FILTER_VALIDATE_URL)) {
|
|
$url = $person_twitter;
|
|
} else {
|
|
$url = 'https://twitter.com/'.$person_twitter;
|
|
}
|
|
$kontaktdata .= "<li class=\"twitter\"><span>Twitter: </span><a href=\"".$url."\">".piratenkleider_display_url($url)."</a></li>\n";
|
|
}
|
|
if (isset($person_facebook) && strlen($person_facebook)>1) {
|
|
$kontaktdata .= "<li class=\"facebook\"><span>Facebook: </span><a href=\"".$person_facebook."\">".piratenkleider_display_url($person_facebook)."</a></li>\n";
|
|
}
|
|
if (isset($person_google) && strlen($person_google)>1) {
|
|
$kontaktdata .= "<li class=\"google\"><span>Google: </span><a href=\"".$person_google."\">".piratenkleider_display_url($person_google)."</a></li>\n";
|
|
}
|
|
if (isset($person_friendica) && strlen($person_friendica)>1) {
|
|
$kontaktdata .= "<li class=\"friendica\"><span>Friendica: </span><a href=\"".$person_friendica."\">".piratenkleider_display_url($person_friendica)."</a></li>\n";
|
|
}
|
|
if (isset($person_instagram) && strlen($person_instagram)>1) {
|
|
$kontaktdata .= "<li class=\"instagram\"><span>Instagram: </span><a href=\"".$person_instagram."\">".piratenkleider_display_url($person_instagram)."</a></li>\n";
|
|
}
|
|
|
|
|
|
if (isset($person_wiki) && strlen($person_wiki)>1) {
|
|
if (filter_var($person_wiki, FILTER_VALIDATE_URL)) {
|
|
$url = $person_wiki;
|
|
} else {
|
|
$url = $options['url-wiki'].'/User:'.$person_wiki;
|
|
}
|
|
$wikiclass = 'piratewiki';
|
|
if (preg_match("/wikipedia\.org/i",$url)) {
|
|
$wikiclass = 'wiki';
|
|
}
|
|
$kontaktdata .= "<li class=\"".$wikiclass."\"><span>Wiki: </span><a href=\"".$url."\">".piratenkleider_display_url($url)."</a></li>\n";
|
|
}
|
|
if (isset($person_newsfeed) && strlen($person_newsfeed)>1) {
|
|
$kontaktdata .= "<li class=\"feed\"><span>Feed: </span><a href=\"".$person_newsfeed."\">".piratenkleider_display_url($person_newsfeed)."</a></li>\n";
|
|
}
|
|
$kontaktdata .= "</ul>\n";
|
|
|
|
}
|
|
|
|
if ($format== 'full') {
|
|
$out .= $bildfullwidth."\n";
|
|
$out .= "<div class=\"textinfo\">\n";
|
|
$out .= '<h3 class="about">'.__('About','piratenkleider').' ';
|
|
if ($profillink==1) $out .= '<a href="'.$person_link.'">';
|
|
$out .= '<span itemprop="name">' . $fullname . '</span>';
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '</h3>';
|
|
$out .= '<p itemprop="description">'.$person_shortdesc."</p>\n";
|
|
$out .= $kontaktdata;
|
|
$out .= $person_text;
|
|
$out .= "</div>\n";
|
|
|
|
if ($options['vcard-showfeed']==1 && isset($person_newsfeed) && strlen($person_newsfeed)>1) {
|
|
if(function_exists('fetch_feed')) {
|
|
include_once(ABSPATH.WPINC.'/feed.php');
|
|
$feed = fetch_feed($person_newsfeed);
|
|
$limit = $feed->get_item_quantity($options['vcard-feed-maxnum']); // specify number of items
|
|
$items = $feed->get_items(0, $limit); // create an array of items
|
|
}
|
|
if ($limit == 0) {
|
|
$out .= '<div class="personfeed skip">'.__("The feed is either empty or unavailable.",'piratenkleider').'</div>';
|
|
} else {
|
|
$out .= '<div class="personfeed">';
|
|
$out .= "<h3>".__('Last posts', 'piratenkleider')."</h3>\n";
|
|
$out .= "<ul>";
|
|
foreach ($items as $item) {
|
|
$out .= '<li><a href="'.$item->get_permalink().'">';
|
|
$out .= $item->get_title();
|
|
$out .= '</a>';
|
|
$out .= ' ('.$item->get_date('j. F Y').')';
|
|
$out .= '</li>';
|
|
}
|
|
$out .= "</ul>";
|
|
$out .= "</div>\n";
|
|
}
|
|
}
|
|
if ($options['vcard-showlocalentries']==1) {
|
|
$searchterm = $fullname;
|
|
$query_args = array( 's' => $searchterm );
|
|
$personposts = new WP_Query( $query_args );
|
|
if ($personposts->have_posts() ) {
|
|
$ppout = $ppoutput = '';
|
|
while ($personposts->have_posts()) : $personposts->the_post();
|
|
$ppout = piratenkleider_post_teaser(1,1,1,200, 1,1,4);
|
|
if (isset($ppout)) {
|
|
$ppoutput .= $ppout;
|
|
}
|
|
endwhile;
|
|
}
|
|
wp_reset_query();
|
|
if (isset($ppoutput)) {
|
|
$out .= '<div class="businesscard-entries">';
|
|
$out .= "<h3>".__('Last entries from this site about', 'piratenkleider')." $fullname</h3>\n";
|
|
$out .= $ppoutput;
|
|
$out .= "</div>\n";
|
|
}
|
|
}
|
|
|
|
|
|
} elseif ($format== 'small') {
|
|
$out .= '<div itemscope itemtype="http://schema.org/Person">';
|
|
$out .= $bildsmallwidth;
|
|
$out .= "<div class=\"textinfo\">\n";
|
|
$out .= '<h3 class="about">';
|
|
if ($profillink==1) $out .= '<a itemprop="url" href="'.$person_link.'">';
|
|
$out .= $fullname;
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '</h3>';
|
|
$out .= '<p>'.$person_shortdesc."</p>\n";
|
|
$out .= $kontaktdata;
|
|
$out .= "</div>\n";
|
|
$out .= "</div>\n";
|
|
} elseif ($format== 'sitebar') {
|
|
$out .= '<section id="steckbrief" itemscope itemtype="http://schema.org/Person">';
|
|
if ($profillink==1) $out .= '<a itemprop="url" href="'.$person_link.'">';
|
|
$out .= $personenbildsidebar;
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '<div class="text">';
|
|
$out .= '<h3 itemprop="name">';
|
|
$out .= $fullname;
|
|
$out .= '</h3>';
|
|
$out .= $kontaktdata;
|
|
$out .= '<p>'.$person_shortdesc."</p>\n";
|
|
|
|
$out .= "</div>\n";
|
|
$out .= "</section>\n";
|
|
} elseif ($format== 'table') {
|
|
$out .= '<tr itemscope itemtype="http://schema.org/Person">';
|
|
$out .= "<td>";
|
|
$out .= $bildsmallwidth;
|
|
$out .= "</td>";
|
|
$out .= "<td>";
|
|
$out .= '<h3 class="about" itemprop="name">';
|
|
if ($profillink==1) $out .= '<a itemprop="url" href="'.$person_link.'">';
|
|
$out .= $fullname;
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '</h3>';
|
|
$out .= $kontaktdata;
|
|
$out .= '<p>'.$person_shortdesc."</p>\n";
|
|
$out .= "</td>";
|
|
$out .= "</tr>";
|
|
} elseif ($format== 'bigtable') {
|
|
$out .= '<tr itemscope itemtype="http://schema.org/Person">';
|
|
$out .= "<td>";
|
|
$out .= $bildfullwidth;
|
|
$out .= "</td>";
|
|
$out .= "<td>";
|
|
$out .= '<h3 class="about" itemprop="name">';
|
|
if ($profillink==1) $out .= '<a itemprop="url" href="'.$person_link.'">';
|
|
$out .= $fullname;
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '</h3>';
|
|
$out .= $kontaktdata;
|
|
$out .= '<p>'.$person_shortdesc."</p>\n";
|
|
$out .= $person_text;
|
|
$out .= "</td>";
|
|
$out .= "</tr>";
|
|
} else {
|
|
$out .= '<div itemscope itemtype="http://schema.org/Person">';
|
|
$out .= $bildsmallwidth;
|
|
$out .= "<div class=\"textinfo\">\n";
|
|
$out .= '<h3 class="about" itemprop="name">';
|
|
if ($profillink==1) $out .= '<a itemprop="url" href="'.$person_link.'">';
|
|
$out .= $fullname;
|
|
if ($profillink==1) $out .= '</a>';
|
|
$out .= '</h3>';
|
|
$out .= $person_shortdesc."\n";
|
|
$out .= $kontaktdata;
|
|
$out .= "</div>\n";
|
|
$out .= "</div>\n";
|
|
}
|
|
|
|
return $out;
|
|
}
|
|
|
|
/*
|
|
* Shortcode CPT Person
|
|
*/
|
|
|
|
|
|
function piratenkleider_person_shortcode( $atts ) {
|
|
global $options;
|
|
|
|
extract( shortcode_atts( array(
|
|
'cat' => '',
|
|
'name' => '',
|
|
'num' => 30,
|
|
'id' => '',
|
|
'format' => 'table',
|
|
'order' => 'ASC',
|
|
'showautor' => 1,
|
|
'listorder' => '',
|
|
'offset' => 0,
|
|
), $atts ) );
|
|
$single = 0;
|
|
$cat = sanitize_text_field($cat);
|
|
$listorder= sanitize_text_field($listorder);
|
|
$name = sanitize_text_field($name);
|
|
$order = strtolower(sanitize_text_field($order));
|
|
$offset = intval($offset);
|
|
|
|
|
|
if ($order != 'desc') {
|
|
$order='ASC';
|
|
} else {
|
|
$order='DESC';
|
|
}
|
|
$format = sanitize_text_field($format);
|
|
$showautor = sanitize_text_field($showautor);
|
|
if ((isset($id)) && ( strlen(trim($id))>0)) {
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'p' => $id
|
|
);
|
|
$single = 1;
|
|
} elseif ((isset($name)) && ( strlen(trim($name))>0)) {
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'meta_query' => array(
|
|
array(
|
|
'key' => 'person_last_name',
|
|
'value' => $name,
|
|
'compare' => 'LIKE',
|
|
)
|
|
)
|
|
);
|
|
$single = 1;
|
|
} elseif ((isset($cat)) && ( strlen(trim($cat))>0)) {
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'tax_query' => array(
|
|
array(
|
|
'taxonomy' => 'person_category',
|
|
'field' => 'slug',
|
|
'terms' => $cat
|
|
)
|
|
),
|
|
'order' => $order,
|
|
'meta_key' => 'person_last_name',
|
|
'orderby' => 'meta_value',
|
|
'posts_per_page' => $num,
|
|
'offset' => $offset
|
|
);
|
|
} elseif ((isset($listorder)) && ( strlen(trim($listorder))>0)) {
|
|
$post_list = explode(",",$listorder);
|
|
$list = array();
|
|
$i=0;
|
|
foreach( $post_list as $post_id ) {
|
|
if (intval(trim($post_id))) {
|
|
$list[$i] = intval(trim($post_id));
|
|
$i= $i +1;
|
|
}
|
|
}
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'post__in' => $list,
|
|
'order' => $order,
|
|
'orderby' => 'post__in',
|
|
'posts_per_page' => $i,
|
|
);
|
|
} else {
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'order' => $order,
|
|
'meta_key' => 'person_last_name',
|
|
'orderby' => 'meta_value',
|
|
'posts_per_page' => $num,
|
|
'offset' => $offset
|
|
|
|
);
|
|
}
|
|
$out = '';
|
|
$person = new WP_Query( $args );
|
|
if( $person->have_posts() ) {
|
|
|
|
if ((isset($format) && ($format=='table') && ($single==0))
|
|
|| (isset($format) && ($format=='bigtable') && ($single==0)))
|
|
{
|
|
$out .= ' <table class="person">';
|
|
} else {
|
|
$out .= ' <div class="person">';
|
|
}
|
|
|
|
while ($person->have_posts() ) {
|
|
$person->the_post();
|
|
$post_id = $person->post->ID;
|
|
if (isset($id) && isset($format) &&($format=='short')) {
|
|
$out .= piratenkleider_display_person($post_id, 'short');
|
|
} elseif (isset($format) && ($format=='table') && ($single==0)) {
|
|
$out .= piratenkleider_display_person($post_id, 'table');
|
|
} elseif (isset($format) && ($format=='bigtable') && ($single==0)) {
|
|
$out .= piratenkleider_display_person($post_id, 'bigtable');
|
|
} else {
|
|
$out .= piratenkleider_display_person($post_id, 'full');
|
|
}
|
|
}
|
|
if ((isset($format) && ($format=='table') && ($single==0))
|
|
|| (isset($format) && ($format=='bigtable') && ($single==0))) {
|
|
$out .= '</table>';
|
|
} else {
|
|
$out .= '</div>';
|
|
}
|
|
|
|
|
|
wp_reset_postdata();
|
|
|
|
} else {
|
|
$out = '<section class="shortcode person"><p>';
|
|
$out .= __('No person found.', 'piratenkleider');
|
|
$out .= "</p></section>\n";
|
|
}
|
|
wp_reset_query();
|
|
return $out;
|
|
}
|
|
add_shortcode( 'person', 'piratenkleider_person_shortcode' );
|
|
|
|
|
|
/* Adding Metabox for setting a link from posts to people */
|
|
|
|
/* Fire our meta box setup function on the post editor screen. */
|
|
add_action( 'load-post.php', 'piratenkleider_post_metabox_person_setup' );
|
|
add_action( 'load-post-new.php', 'piratenkleider_post_metabox_person_setup' );
|
|
|
|
/* Meta box setup function. */
|
|
function piratenkleider_post_metabox_person_setup() {
|
|
/* Add meta boxes on the 'add_meta_boxes' hook. */
|
|
add_action( 'add_meta_boxes', 'piratenkleider_add_post_metabox_person' );
|
|
/* Save post meta on the 'save_post' hook. */
|
|
add_action( 'save_post', 'piratenkleider_save_post_class_meta', 10, 2 );
|
|
}
|
|
/* Create one or more meta boxes to be displayed on the post editor screen. */
|
|
function piratenkleider_add_post_metabox_person() {
|
|
|
|
add_meta_box(
|
|
'piratenkleider-post-class-person', // Unique ID
|
|
esc_html__( 'Business card', 'piratenkleider' ), // Title
|
|
'piratenkleider_post_class_metabox_person', // Callback function
|
|
'post', // Admin page (or post type)
|
|
'advanced', // Context
|
|
'default' // Priority
|
|
);
|
|
}
|
|
/* Display the post meta box. */
|
|
function piratenkleider_post_class_metabox_person( $object, $box ) {
|
|
global $defaultoptions;
|
|
|
|
wp_nonce_field( basename( __FILE__ ), 'piratenkleider_post_class_nonce' );
|
|
?>
|
|
<p>
|
|
<label for="piratenkleider-personalcard-id"><?php _e( "Select someone you want to show with a business card along the article.", 'piratenkleider' ); ?></label>
|
|
<br />
|
|
<select name="piratenkleider-personalcard-id" id="piratenkleider-personalcard-id">
|
|
<option value=""><?php _e( "Do not display any business card", 'piratenkleider' ); ?></option>
|
|
<?php
|
|
|
|
$notice = '';
|
|
$oldid = esc_attr( get_post_meta( $object->ID, 'piratenkleider-personalcard-id', true ) );
|
|
$args = array(
|
|
'post_type' => 'person',
|
|
'order' => 'ASC',
|
|
'meta_key' => 'person_last_name',
|
|
'orderby' => 'meta_value',
|
|
'posts_per_page' => 30,
|
|
|
|
);
|
|
|
|
$out = '';
|
|
$personlist = new WP_Query( $args );
|
|
if( $personlist->have_posts() ) {
|
|
|
|
if ($personlist->post_count > $defaultoptions['vcard-maxnum-selectlist']) {
|
|
$catsortlist = array();
|
|
while ($personlist->have_posts() ) {
|
|
$thisissel = 0;
|
|
$catout = '';
|
|
$personlist->the_post();
|
|
$listid = $personlist->post->ID;
|
|
$person_last_name = get_post_meta( $listid, 'person_last_name', true );
|
|
$person_first_name = get_post_meta( $listid, 'person_first_name', true );
|
|
$fullname = $person_first_name.' '.$person_last_name;
|
|
$firstsel = 0;
|
|
$catout .= '<option value="'.$listid.'"';
|
|
|
|
if ($oldid && $oldid==$listid) {
|
|
$catout .= ' selected="selected"';
|
|
$thisissel = 1;
|
|
}
|
|
$catout .= '>'.$fullname.'</option>'."\n";
|
|
$catout2 = '<option value="'.$listid.'">'.$fullname.'</option>'."\n";
|
|
|
|
|
|
$post_categories = wp_get_object_terms( $listid, 'person_category' );
|
|
if (empty($post_categories) ) {
|
|
$catsortlist['_default'][] = $catout;
|
|
} else {
|
|
foreach($post_categories as $key => $val){
|
|
$thiscatname = $val->name;
|
|
if (($thisissel==1) && ($firstsel==0)) {
|
|
$catsortlist["$thiscatname"][] = $catout;
|
|
$firstsel =1;
|
|
} else {
|
|
$catsortlist["$thiscatname"][] = $catout2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach($catsortlist as $name => $val){
|
|
if ($name == '_default') {
|
|
foreach($val as $entry){
|
|
$out .= $entry;
|
|
}
|
|
} else {
|
|
$out .= '<optgroup label="'.$name.'">';
|
|
foreach($val as $entry){
|
|
$out .= $entry;
|
|
}
|
|
$out .= '</optgroup>';
|
|
}
|
|
}
|
|
} else {
|
|
while ($personlist->have_posts() ) {
|
|
$personlist->the_post();
|
|
$listid = $personlist->post->ID;
|
|
$person_last_name = get_post_meta( $listid, 'person_last_name', true );
|
|
$person_first_name = get_post_meta( $listid, 'person_first_name', true );
|
|
$fullname = $person_first_name.' '.$person_last_name;
|
|
$out .= '<option value="'.$listid.'"';
|
|
if ($oldid && $oldid==$listid) {
|
|
$out .= ' selected="selected"';
|
|
}
|
|
$out .= '>'.$fullname.'</option>'."\n";
|
|
}
|
|
}
|
|
} else {
|
|
$notice = __('No business cards defined yet.', 'piratenkleider');
|
|
}
|
|
wp_reset_query();
|
|
if (isset($out)) {
|
|
echo $out;
|
|
}
|
|
?>
|
|
</select>
|
|
<?php
|
|
if (isset($notice)) {
|
|
echo '<span class="info">'.$notice."</span>\n";
|
|
}
|
|
?>
|
|
</p>
|
|
<div class="visiting-card-manual">
|
|
<p>
|
|
<?php _e( "Alternativly define manually a short text and an image:", 'piratenkleider' ); ?>
|
|
</p>
|
|
|
|
<p>
|
|
<label for="piratenkleider-sidebar-text"><?php _e( "Short text for sidebar", 'piratenkleider' ); ?></label>
|
|
<br />
|
|
<?php
|
|
// Downwards comtability: Version 2 used "text" as meta key, Version 3 "piratenkleider-sidebar-text"
|
|
$textfield = esc_attr( get_post_meta( $object->ID, 'piratenkleider-sidebar-text', true ) );
|
|
if (empty($textfield)) {
|
|
$textfield = esc_attr( get_post_meta( $object->ID, 'text', true ) );
|
|
}
|
|
?>
|
|
|
|
<input class="widefat" type="text" name="piratenkleider-sidebar-text" id="piratenkleider-sidebar-text" value="<?php echo $textfield; ?>" size="30" />
|
|
</p>
|
|
|
|
<p>
|
|
<label for="person_bild"><?php _e( "Picture", 'piratenkleider' ); ?>:</label>
|
|
<br />
|
|
|
|
<?php
|
|
|
|
$person_bildid = get_post_meta( $object->ID, 'piratenkleider-sidebar-image_id', true );
|
|
$person_bild = get_post_meta( $object->ID, 'piratenkleider-sidebar-image_url', true );
|
|
if ((empty($person_bildid)) || (empty($person_bild))) {
|
|
$person_bildid = get_post_meta( $object->ID, 'image_url', true );
|
|
}
|
|
if (isset($person_bildid) && ($person_bildid>0)) {
|
|
$image_attributes = wp_get_attachment_image_src( $person_bildid, 'person-thumb' );
|
|
if (is_array($image_attributes)) {
|
|
echo '<img id="person_bild-show" src="'.$image_attributes[0].'" style="max-width: 200px; height: auto;">';
|
|
$person_bild = $image_attributes[0];
|
|
}
|
|
|
|
} elseif (filter_var($person_bild, FILTER_VALIDATE_URL)) {
|
|
echo '<img id="person_bild-show" src="'.$person_bild.'" alt="" style="max-width: 200px; height: auto;">';
|
|
} else {
|
|
echo '<img id="person_bild-show" src="'.$defaultoptions['src-person_bild_default'].'" alt="" >';
|
|
}
|
|
echo '<br /><span class="custom_default_image" style="display:none">'.$defaultoptions['src-person_bild_default'].'</span>';
|
|
?>
|
|
<input type="text" name="person_bild" size="50" id="person_bild"
|
|
value="<?php echo $person_bild; ?>" />
|
|
<input type="hidden" name="person_bildid" id="person_bildid"
|
|
value="<?php echo $person_bildid; ?>" />
|
|
|
|
|
|
<input type="button" id="person_bild-button" class="button" value="<?php _e( "Select or upload image", 'piratenkleider' ); ?>" />
|
|
<small> <a href="#" class="custom_clear_image_button"><?php _e( "Remove picture", 'piratenkleider' ); ?></a></small>
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<?php }
|
|
|
|
/* Save the meta box's post metadata. */
|
|
function piratenkleider_save_post_class_meta( $post_id, $post ) {
|
|
|
|
/* Verify the nonce before proceeding. */
|
|
if ( !isset( $_POST['piratenkleider_post_class_nonce'] ) || !wp_verify_nonce( $_POST['piratenkleider_post_class_nonce'], basename( __FILE__ ) ) )
|
|
return $post_id;
|
|
|
|
/* Get the post type object. */
|
|
$post_type = get_post_type_object( $post->post_type );
|
|
|
|
/* Check if the current user has permission to edit the post. */
|
|
if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
|
|
return $post_id;
|
|
|
|
$newid = ( isset( $_POST['piratenkleider-personalcard-id'] ) ? sanitize_key( $_POST['piratenkleider-personalcard-id'] ) : '' );
|
|
$oldid = get_post_meta( $post_id, 'piratenkleider-personalcard-id', true );
|
|
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'piratenkleider-personalcard-id', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'piratenkleider-personalcard-id', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'piratenkleider-personalcard-id', $oldid );
|
|
|
|
|
|
$newid = ( isset( $_POST['person_bildid'] ) ? sanitize_key( $_POST['person_bildid'] ) : '' );
|
|
$oldid = get_post_meta( $post_id, 'piratenkleider-sidebar-image_id', true );
|
|
if (empty($oldid)) {
|
|
$oldid =get_post_meta( $post_id, 'image_url', true );
|
|
}
|
|
if ( $newid && '' == $oldid )
|
|
add_post_meta( $post_id, 'piratenkleider-sidebar-image_id', $newid, true );
|
|
elseif ( $newid && $newid != $oldid )
|
|
update_post_meta( $post_id, 'piratenkleider-sidebar-image_id', $newid );
|
|
elseif ( '' == $newid && $oldid )
|
|
delete_post_meta( $post_id, 'piratenkleider-sidebar-image_id', $oldid );
|
|
|
|
// Remove old values from version 2
|
|
$olderid = get_post_meta( $post_id, 'image_url', true );
|
|
if (isset($olderid)) {
|
|
delete_post_meta( $post_id, 'image_url', $olderid );
|
|
}
|
|
|
|
if ((isset( $_POST['person_bild'] ) && (filter_var($_POST['person_bild'], FILTER_VALIDATE_URL)))) {
|
|
$bildurl = $_POST['person_bild'];
|
|
} else {
|
|
$bildurl = '';
|
|
}
|
|
$oldurl = get_post_meta( $post_id, 'piratenkleider-sidebar-image_url', true );
|
|
|
|
if ( $bildurl && '' == $oldurl )
|
|
add_post_meta( $post_id, 'piratenkleider-sidebar-image_url', $bildurl, true );
|
|
elseif ( $bildurl && $bildurl != $oldurl )
|
|
update_post_meta( $post_id, 'piratenkleider-sidebar-image_url', $bildurl );
|
|
elseif ( '' == $bildurl && $oldurl )
|
|
delete_post_meta( $post_id, 'piratenkleider-sidebar-image_url', $oldurl );
|
|
|
|
|
|
$new_text = ( isset( $_POST['piratenkleider-sidebar-text'] ) ? sanitize_text_field( $_POST['piratenkleider-sidebar-text'] ) : '' );
|
|
$oldtext = get_post_meta( $post_id, 'piratenkleider-sidebar-text', true );
|
|
if (empty($oldtext)) {
|
|
$oldtext = get_post_meta( $post_id, 'text', true );
|
|
}
|
|
if ( $new_text && '' == $oldtext )
|
|
add_post_meta( $post_id, 'piratenkleider-sidebar-text', $new_text, true );
|
|
elseif ( $new_text && $new_text != $oldtext )
|
|
update_post_meta( $post_id, 'piratenkleider-sidebar-text', $new_text );
|
|
elseif ( '' == $new_text && $oldtext )
|
|
delete_post_meta( $post_id, 'piratenkleider-sidebar-text', $oldtext );
|
|
|
|
// Remove old values from version 2
|
|
$oldertext = get_post_meta( $post_id, 'text', true );
|
|
if (isset($oldertext)) {
|
|
delete_post_meta( $post_id, 'text', $oldertext );
|
|
}
|
|
}
|
|
|
|
|
|
if ( ! function_exists( 'get_piratenkleider_steckbrief' ) ) :
|
|
/*
|
|
* Anzeige der Steckbrief-Info zu einem Post
|
|
*/
|
|
|
|
function get_piratenkleider_steckbrief(){
|
|
global $post;
|
|
global $options;
|
|
|
|
|
|
$personid = esc_attr( get_post_meta( $post->ID, 'piratenkleider-personalcard-id', true ) );
|
|
if ((isset($personid)) && ($personid>0)) {
|
|
return piratenkleider_display_person($personid,'sitebar');
|
|
}
|
|
|
|
$text = esc_attr( get_post_meta( $post->ID, 'piratenkleider-sidebar-text', true ) );
|
|
if (empty($text)) {
|
|
/* Downwards compatibility */
|
|
$text = esc_attr( get_post_meta( $post->ID, 'text', true ) );
|
|
}
|
|
$image_url = get_post_meta( $post->ID, 'piratenkleider-sidebar-image_url', true );
|
|
$image_id = 0;
|
|
if (empty($image_url)) {
|
|
/* Downwards compatibility */
|
|
$image_url = get_post_meta( $post->ID, 'image_url', true );
|
|
} else {
|
|
$image_id = get_post_meta( $post->ID, 'piratenkleider-sidebar-image_id', true );
|
|
}
|
|
|
|
$out = '';
|
|
if ( ( isset($text)
|
|
&& isset($image_url)
|
|
&& (strlen(trim($text))>0))
|
|
|| (
|
|
(isset($text)
|
|
&& (strlen(trim($text))>0))
|
|
&& (has_post_thumbnail()))
|
|
) {
|
|
$out .= '<div id="steckbrief">';
|
|
if (isset($image_url) ) {
|
|
if ($image_id >0) {
|
|
$out .= wp_get_attachment_image( $image_id, array($options['sidebar-steckbrief-maxwidth'],$options['sidebar-steckbrief-maxheight']) );
|
|
} else {
|
|
$out .= wp_get_attachment_image( $image_url, array($options['sidebar-steckbrief-maxwidth'],$options['sidebar-steckbrief-maxheight']) );
|
|
}
|
|
}
|
|
$out .= "\n";
|
|
$out .= ' <div class="text">';
|
|
$out .= do_shortcode($text);
|
|
$out .= "</div>\n";
|
|
$out .= "</div>\n";
|
|
|
|
}
|
|
return $out;
|
|
|
|
}
|
|
endif;
|
|
|
|
function piratenkleider_display_url($url = '') {
|
|
$outurl = preg_replace('/^(https?:\/\/)/','',$url);
|
|
return $outurl;
|
|
}
|