<?php
// Add new input type "pages"
if ( function_exists('smile_add_input_type'))
{
	smile_add_input_type('pages' , 'pages_settings_field' );
}

/**
* Function to handle new input type "pages"
*
* @param $settings		- settings provided when using the input type "pages"
* @param $value			- holds the default / updated value
* @return string/html 	- html output generated by the function
*/
function pages_settings_field($name, $settings, $value)
{
	$input_name = $name;
	$type = isset($settings['type']) ? $settings['type'] : '';
	$class = isset($settings['class']) ? $settings['class'] : '';
	ob_start();
	?>
<select name="<?php echo esc_attr( $input_name ); ?>" id="smile_<?php echo esc_attr( $input_name ); ?>" class="select2-pages-dropdown form-control smile-input <?php echo esc_attr( 'smile-'.$type.' '.$input_name.' '.$type.' '.$class ); ?>" multiple="multiple" style="width:260px;"> 
	<optgroup label="<?php echo esc_attr( __( 'Pages' ) ); ?>">
	<?php 
    $pages = get_pages();
	$val_arr = explode( ",", $value );
    foreach ( $pages as $page ) {
		$selected = ( in_array( $page->ID, $val_arr) ) ? 'selected="selected"' : '';
		$option = '<option value="' . $page->ID . '" ' . $selected . '>';
		$option .= $page->post_title;
		$option .= '</option>';
		echo $option;
    }
    ?>
    </optgroup>
	<optgroup label="<?php echo esc_attr( __( 'Posts' ) ); ?>">
    <?php
	$args = array( 'posts_per_page' => -1 );
	$myposts = get_posts( $args );
    foreach ( $myposts as $post ) {
		$selected = ( in_array( $post->ID, $val_arr) ) ? 'selected="selected"' : '';
		$option = '<option value="' . $post->ID . '" ' . $selected . '>';
		$option .= $post->post_title;
		$option .= '</option>';
		echo $option;
    }
	?>
    </optgroup>
</select>
<script type="text/javascript">
jQuery(document).ready(function() {
	jQuery('select.select2-pages-dropdown').select2({
		 placeholder: "Select pages / posts",
	});
});
	
</script>
    <?php
	return ob_get_clean();
}