Files
revision/inc/theme-demos.php
2025-08-21 14:40:43 +02:00

245 lines
9.4 KiB
PHP

<?php
/**
* Theme Demos
*
* @package Revision
*/
/**
* Register Demos of Theme
*/
function csco_demos_list() {
$plugins = array(
array(
'name' => 'Regenerate Thumbnails',
'slug' => 'regenerate-thumbnails',
'path' => 'regenerate-thumbnails/regenerate-thumbnails.php',
'required' => false,
'desc' => esc_html__( 'Regenerate the thumbnails for one or more of your image uploads. Useful when changing their sizes or your theme.', 'revision' ),
),
array(
'name' => 'Contact Form 7',
'slug' => 'contact-form-7',
'path' => 'contact-form-7/wp-contact-form-7.php',
'required' => false,
'desc' => esc_html__( 'Just another contact form plugin. Simple but flexible.', 'revision' ),
),
);
$demos = array(
'classic-list' => array(
'name' => esc_html__( 'Classic List', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/',
'thumbnail' => get_template_directory_uri() . '/import/classic-list-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/classic-list-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'classic-grid' => array(
'name' => esc_html__( 'Classic Grid', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=2',
'thumbnail' => get_template_directory_uri() . '/import/classic-grid-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/classic-grid-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'classic-overlay' => array(
'name' => esc_html__( 'Classic Overlay', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=3',
'thumbnail' => get_template_directory_uri() . '/import/classic-overlay-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/classic-overlay-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'hero-slider' => array(
'name' => esc_html__( 'Hero Slider', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=4',
'thumbnail' => get_template_directory_uri() . '/import/hero-slider-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/hero-slider-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'featured-posts' => array(
'name' => esc_html__( 'Featured Posts', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=5',
'thumbnail' => get_template_directory_uri() . '/import/featured-posts-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/featured-posts-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'full-list' => array(
'name' => esc_html__( 'Full List', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=6',
'thumbnail' => get_template_directory_uri() . '/import/full-list-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/full-list-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'full-grid' => array(
'name' => esc_html__( 'Full Grid', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=7',
'thumbnail' => get_template_directory_uri() . '/import/full-grid-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/full-grid-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
'full-overlay' => array(
'name' => esc_html__( 'Full Overlay', 'revision' ),
'preview' => 'https://revision.codesupply.co/revision/?homepage=8',
'thumbnail' => get_template_directory_uri() . '/import/full-overlay-thumbnail.jpg',
'plugins' => $plugins,
'import' => array(
'customizer' => 'https://cloud.codesupply.co/import/revision/full-overlay-customizer.dat',
'widgets' => 'https://cloud.codesupply.co/import/revision/widgets.wie',
'content' => array(
array(
'label' => esc_html__( 'Demo Content', 'revision' ),
'url' => 'https://cloud.codesupply.co/import/revision/content.xml',
'desc' => esc_html__( 'Enabling this option will import demo posts, categories, and secondary pages. It\'s recommended to disable this option for existing', 'revision' ),
),
),
),
),
);
return $demos;
}
add_filter( 'csco_register_demos_list', 'csco_demos_list' );
/**
* Set terms and import associated images for each category.
*
* This function loops through all categories, checks for associated images (logos and icons),
* and imports and assigns them to the corresponding taxonomy meta fields.
*/
function csco_import_terms_images_for_categories() {
$categories = get_terms( array(
'taxonomy' => 'category',
'hide_empty' => false,
) );
$fields = array(
'csco_category_logo' => '_csco_category_logo',
'csco_category_icon' => '_csco_category_icon',
);
foreach ( $categories as $category ) {
foreach ( $fields as $meta_key_id => $meta_key_url ) {
$meta_val = get_term_meta( $category->term_id, $meta_key_url, true );
if ( $meta_val && CSCO_Manager_Import::is_image_url( $meta_val ) ) {
$data = CSCO_Manager_Import::import_custom_image( $meta_val );
if ( ! is_wp_error( $data ) ) {
update_term_meta( $category->term_id, $meta_key_id, $data->attachment_id );
update_term_meta( $category->term_id, $meta_key_url, $data->url );
}
}
}
}
}
/**
* Finish Import
*/
function csco_hook_finish_import() {
/* Set menu locations. */
$nav_menu_locations = array();
$main_menu = get_term_by( 'name', 'Primary', 'nav_menu' );
if ( $main_menu ) {
$nav_menu_locations['primary'] = $main_menu->term_id;
}
$offcanvas_menu = get_term_by( 'name', 'Mobile', 'nav_menu' );
if ( $mobile_menu ) {
$nav_menu_locations['mobile'] = $mobile_menu->term_id;
}
$footer_menu = get_term_by( 'name', 'Footer', 'nav_menu' );
if ( $footer_menu ) {
$nav_menu_locations['footer'] = $footer_menu->term_id;
}
if ( $nav_menu_locations ) {
set_theme_mod( 'nav_menu_locations', $nav_menu_locations );
}
// Call the function directly wherever needed.
if ( ! get_option( 'once_finished_import' ) ) {
csco_import_terms_images_for_categories();
}
/* Add items to main menu */
update_option( 'once_finished_import', true );
}
add_action( 'csco_finish_import', 'csco_hook_finish_import' );