' . Ai1ec_I18n::__( 'Calendar page' ) . ''
. '
' .
$this->_get_pages_selector() . $this->_get_page_view_link() . '
';
return parent::render( $output );
}
/**
* Generate link to open selected page in new window.
*
* @return string HTML snippet.
*/
protected function _get_page_view_link() {
if ( empty( $this->_args['value'] ) ) {
return '';
}
$post = get_post( $this->_args['value'] );
if ( empty( $post->ID ) ) {
return '';
}
$args = array(
'view' => Ai1ec_I18n::__( 'View' ),
'link' => get_permalink( $post->ID ),
'title' => apply_filters(
'the_title',
$post->post_title,
$post->ID
),
);
return $this->_registry->get( 'theme.loader' )
->get_file( 'setting/calendar-page-selector.twig', $args, true )
->get_content();
}
/**
* Generate dropdown selector to choose page.
*
* @return string HTML snippet.
*/
protected function _get_pages_selector() {
$html = '';
return $html;
}
/**
* Make a map of page IDs and titles for selection snippet.
*
* @return array Map of page keys and titles.
*/
protected function _get_pages() {
$pages = get_pages();
if ( ! is_array( $pages ) ) {
$pages = array();
}
$output = array(
'__auto_page:Calendar' => Ai1ec_I18n::__(
'- Auto-Create New Page -'
),
);
foreach ( $pages as $key => $value ) {
$output[$value->ID] = $value->post_title;
}
return $output;
}
}