|
|
|
@ -7,10 +7,11 @@
|
|
|
|
|
namespace Aldine\Activation; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Create default page content, importing from Pressbooks Publisher, if possible. |
|
|
|
|
* Create starter content, importing from Pressbooks Publisher, if possible. |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
function create_default_content() { |
|
|
|
|
if ( ! get_option( 'pb_aldine_activated' ) ) { |
|
|
|
|
function get_starter_posts() { |
|
|
|
|
$mods = get_option( 'theme_mods_pressbooks-publisher' ); |
|
|
|
|
if ( $mods === false ) { |
|
|
|
|
$mods = get_option( 'mods_pressbooks-publisher' ); |
|
|
|
@ -31,6 +32,8 @@ function create_default_content() {
|
|
|
|
|
|
|
|
|
|
$default_pages = [ |
|
|
|
|
'about' => [ |
|
|
|
|
'post_type' => 'page', |
|
|
|
|
'comment_status' => 'closed', |
|
|
|
|
'post_title' => __( 'About', 'pressbooks-aldine' ), |
|
|
|
|
'post_content' => apply_filters( |
|
|
|
|
'pb_root_about_page_content', |
|
|
|
@ -47,8 +50,11 @@ function create_default_content() {
|
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
), |
|
|
|
|
|
|
|
|
|
], |
|
|
|
|
'help' => [ |
|
|
|
|
'post_type' => 'page', |
|
|
|
|
'comment_status' => 'closed', |
|
|
|
|
'post_title' => __( 'Help', 'pressbooks-aldine' ), |
|
|
|
|
'post_content' => apply_filters( |
|
|
|
|
'pb_root_help_page_content', |
|
|
|
@ -64,10 +70,14 @@ function create_default_content() {
|
|
|
|
|
), |
|
|
|
|
], |
|
|
|
|
'catalog' => [ |
|
|
|
|
'post_type' => 'page', |
|
|
|
|
'comment_status' => 'closed', |
|
|
|
|
'post_title' => __( 'Catalog', 'pressbooks-aldine' ), |
|
|
|
|
'post_content' => '', |
|
|
|
|
], |
|
|
|
|
'home' => [ |
|
|
|
|
'post_type' => 'page', |
|
|
|
|
'comment_status' => 'closed', |
|
|
|
|
'post_title' => __( 'Home', 'pressbooks-aldine' ), |
|
|
|
|
'post_content' => sprintf( |
|
|
|
|
'<div class="page-section">%s</div>', |
|
|
|
@ -76,132 +86,51 @@ function create_default_content() {
|
|
|
|
|
], |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
// Add our pages |
|
|
|
|
$pages = []; |
|
|
|
|
|
|
|
|
|
foreach ( $default_pages as $slug => $page ) { |
|
|
|
|
$check = get_page_by_path( $slug ); |
|
|
|
|
if ( empty( $check ) ) { |
|
|
|
|
$pages[ $slug ] = wp_insert_post( array_merge( $page, [ 'post_type' => 'page', 'post_status' => 'publish' ] ) ); |
|
|
|
|
} else { |
|
|
|
|
$pages[ $slug ] = $check->ID; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Set front page to Home |
|
|
|
|
update_option( 'show_on_front', 'page' ); |
|
|
|
|
update_option( 'page_on_front', $pages['home'] ); |
|
|
|
|
|
|
|
|
|
// Remove content generated by wp_install_defaults |
|
|
|
|
wp_delete_post( 1, true ); |
|
|
|
|
wp_delete_post( 2, true ); |
|
|
|
|
wp_delete_comment( 1, true ); |
|
|
|
|
|
|
|
|
|
// Add "pb_aldine_activated" option to enable check above |
|
|
|
|
add_option( 'pb_aldine_activated', 1 ); |
|
|
|
|
} |
|
|
|
|
return $default_pages; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Create default primary and footer menus. |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
function create_menus() { |
|
|
|
|
$menu_name = __( 'Primary Menu', 'pressbooks-aldine' ); |
|
|
|
|
|
|
|
|
|
if ( ! wp_get_nav_menu_object( $menu_name ) ) { |
|
|
|
|
$menu_id = wp_create_nav_menu( $menu_name ); |
|
|
|
|
|
|
|
|
|
$catalog = get_page_by_title( __( 'Catalog', 'pressbooks-aldine' ) ); |
|
|
|
|
if ( $catalog && defined( 'PB_PLUGIN_VERSION' ) ) { |
|
|
|
|
wp_update_nav_menu_item( |
|
|
|
|
$menu_id, |
|
|
|
|
0, |
|
|
|
|
[ |
|
|
|
|
'menu-item-title' => __( 'Catalog', 'pressbooks-aldine' ), |
|
|
|
|
'menu-item-type' => 'post_type', |
|
|
|
|
'menu-item-object' => 'page', |
|
|
|
|
'menu-item-object-id' => $catalog->ID, |
|
|
|
|
'menu-item-status' => 'publish', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$menu_name = __( 'Footer Menu', 'pressbooks-aldine' ); |
|
|
|
|
|
|
|
|
|
if ( ! wp_get_nav_menu_object( $menu_name ) ) { |
|
|
|
|
$menu_id = wp_create_nav_menu( $menu_name ); |
|
|
|
|
|
|
|
|
|
$about = get_page_by_title( __( 'About', 'pressbooks-aldine' ) ); |
|
|
|
|
if ( $about ) { |
|
|
|
|
wp_update_nav_menu_item( |
|
|
|
|
$menu_id, |
|
|
|
|
0, |
|
|
|
|
[ |
|
|
|
|
'menu-item-title' => __( 'About', 'pressbooks-aldine' ), |
|
|
|
|
'menu-item-type' => 'post_type', |
|
|
|
|
'menu-item-object' => 'page', |
|
|
|
|
'menu-item-object-id' => $about->ID, |
|
|
|
|
'menu-item-status' => 'publish', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$catalog = get_page_by_title( __( 'Catalog', 'pressbooks-aldine' ) ); |
|
|
|
|
if ( $catalog && defined( 'PB_PLUGIN_VERSION' ) ) { |
|
|
|
|
wp_update_nav_menu_item( |
|
|
|
|
$menu_id, |
|
|
|
|
0, |
|
|
|
|
[ |
|
|
|
|
'menu-item-title' => __( 'Catalog', 'pressbooks-aldine' ), |
|
|
|
|
'menu-item-type' => 'post_type', |
|
|
|
|
'menu-item-object' => 'page', |
|
|
|
|
'menu-item-object-id' => $catalog->ID, |
|
|
|
|
'menu-item-status' => 'publish', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$help = get_page_by_title( __( 'Help', 'pressbooks-aldine' ) ); |
|
|
|
|
if ( $help ) { |
|
|
|
|
wp_update_nav_menu_item( |
|
|
|
|
$menu_id, |
|
|
|
|
0, |
|
|
|
|
[ |
|
|
|
|
'menu-item-title' => __( 'Help', 'pressbooks-aldine' ), |
|
|
|
|
'menu-item-type' => 'post_type', |
|
|
|
|
'menu-item-object' => 'page', |
|
|
|
|
'menu-item-object-id' => $help->ID, |
|
|
|
|
'menu-item-status' => 'publish', |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Check for presence of menus; if they exist, assign them to their locations. |
|
|
|
|
*/ |
|
|
|
|
function assign_menus() { |
|
|
|
|
$locations = get_theme_mod( 'nav_menu_locations' ); |
|
|
|
|
|
|
|
|
|
if ( ! empty( $locations ) ) { |
|
|
|
|
foreach ( $locations as $id => $value ) { |
|
|
|
|
switch ( $id ) { |
|
|
|
|
case 'primary-menu': |
|
|
|
|
$menu = get_term_by( 'name', 'Primary Menu', 'nav_menu' ); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'network-footer-menu': |
|
|
|
|
$menu = get_term_by( 'name', 'Footer Menu', 'nav_menu' ); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( $menu ) { |
|
|
|
|
$locations[ $id ] = $menu->term_id; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
function get_starter_nav_menus() { |
|
|
|
|
$default_menus = [ |
|
|
|
|
'primary-menu' => [ |
|
|
|
|
'name' => __( 'Primary Menu', 'pressbooks-aldine' ), |
|
|
|
|
'items' => [ |
|
|
|
|
'page_catalog' => [ |
|
|
|
|
'title' => __( 'Catalog', 'pressbooks-aldine' ), |
|
|
|
|
'type' => 'post_type', |
|
|
|
|
'object' => 'page', |
|
|
|
|
'object_id' => '{{catalog}}', |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
'network-footer-menu' => [ |
|
|
|
|
'name' => __( 'Footer Menu', 'pressbooks-aldine' ), |
|
|
|
|
'items' => [ |
|
|
|
|
'page_about' => [ |
|
|
|
|
'title' => __( 'About', 'pressbooks-aldine' ), |
|
|
|
|
'type' => 'post_type', |
|
|
|
|
'object' => 'page', |
|
|
|
|
'object_id' => '{{about}}', |
|
|
|
|
], |
|
|
|
|
'page_catalog' => [ |
|
|
|
|
'title' => __( 'Catalog', 'pressbooks-aldine' ), |
|
|
|
|
'type' => 'post_type', |
|
|
|
|
'object' => 'page', |
|
|
|
|
'object_id' => '{{catalog}}', |
|
|
|
|
], |
|
|
|
|
'page_help' => [ |
|
|
|
|
'title' => __( 'Help', 'pressbooks-aldine' ), |
|
|
|
|
'type' => 'post_type', |
|
|
|
|
'object' => 'page', |
|
|
|
|
'object_id' => '{{help}}', |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
set_theme_mod( 'nav_menu_locations', $locations ); |
|
|
|
|
} |
|
|
|
|
return $default_menus; |
|
|
|
|
} |
|
|
|
|