HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/salamatk/takarzan.ir/wp-content/themes/xts-luman/framework/options/portfolio.php
<?php
/**
 * Portfolio options
 *
 * @package xts
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Direct access not allowed.
}

use XTS\Framework\Options;

/**
 * Portfolio.
 */
Options::add_field(
	array(
		'id'          => 'portfolio',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Portfolio post type', 'xts-theme' ),
		'description' => esc_html__( 'You can enable/disable custom post type that used for portfolio functionality.', 'xts-theme' ),
		'section'     => 'portfolio_section',
		'default'     => '1',
		'priority'    => 10,
	)
);

Options::add_field(
	array(
		'id'           => 'portfolio_page',
		'name'         => esc_html__( 'Portfolio page', 'xts-theme' ),
		'description'  => esc_html__( 'You need to create an empty page and select from the dropdown. It will be used as a root page for your portfolio archives.', 'xts-theme' ),
		'section'      => 'portfolio_section',
		'type'         => 'select',
		'empty_option' => true,
		'select2'      => true,
		'options'      => xts_get_pages_array(),
		'priority'     => 20,
	)
);

/**
 * Portfolio archive.
 */
Options::add_field(
	array(
		'id'          => 'portfolio_sidebar_position',
		'name'        => esc_html__( 'Position', 'xts-theme' ),
		'description' => esc_html__( 'Select main content and sidebar alignment.', 'xts-theme' ),
		'group'       => esc_html__( 'Sidebar', 'xts-theme' ),
		'type'        => 'buttons',
		'section'     => 'portfolio_archive_section',
		'options'     => array(
			'disabled' => array(
				'name'  => esc_html__( 'Disabled', 'xts-theme' ),
				'value' => 'disabled',
			),
			'left'     => array(
				'name'  => esc_html__( 'Left', 'xts-theme' ),
				'value' => 'left',
			),
			'right'    => array(
				'name'  => esc_html__( 'Right', 'xts-theme' ),
				'value' => 'right',
			),
		),
		'default'     => 'right',
		'priority'    => 10,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_sidebar_size',
		'name'        => esc_html__( 'Size', 'xts-theme' ),
		'description' => esc_html__( 'You can set different sizes for your projects sidebar', 'xts-theme' ),
		'group'       => esc_html__( 'Sidebar', 'xts-theme' ),
		'type'        => 'buttons',
		'section'     => 'portfolio_archive_section',
		'options'     => array(
			'small'  => array(
				'name'  => esc_html__( 'Small', 'xts-theme' ),
				'value' => 'small',
			),
			'medium' => array(
				'name'  => esc_html__( 'Medium', 'xts-theme' ),
				'value' => 'medium',
			),
			'large'  => array(
				'name'  => esc_html__( 'Large', 'xts-theme' ),
				'value' => 'large',
			),
		),
		'default'     => 'medium',
		'priority'    => 20,
	)
);

/**
 * Layout.
 */
Options::add_field(
	array(
		'id'          => 'portfolio_full_width',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Portfolio full width', 'xts-theme' ),
		'description' => esc_html__( 'Makes container 100% width of the page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'priority'    => 30,
		'default'     => '0',
	)
);

Options::add_field(
	array(
		'id'                  => 'portfolio_columns',
		'name'                => esc_html__( 'Columns', 'xts-theme' ),
		'description'         => esc_html__( 'How many projects you want to show per row.', 'xts-theme' ),
		'group'               => esc_html__( 'Layout', 'xts-theme' ),
		'type'                => 'buttons',
		'section'             => 'portfolio_archive_section',
		'responsive'          => true,
		'responsive_variants' => array( 'desktop', 'tablet', 'mobile' ),
		'desktop_only'        => true,
		'options'             => array(
			2 => array(
				'name'  => 2,
				'value' => 2,
			),
			3 => array(
				'name'  => 3,
				'value' => 3,
			),
			4 => array(
				'name'  => 4,
				'value' => 4,
			),
			5 => array(
				'name'  => 5,
				'value' => 5,
			),
			6 => array(
				'name'  => 6,
				'value' => 6,
			),
		),
		'default'             => 3,
		'priority'            => 40,
	)
);

Options::add_field(
	array(
		'id'                  => 'portfolio_columns_tablet',
		'name'                => esc_html__( 'Columns (tablet)', 'xts-theme' ),
		'description'         => esc_html__( 'How many projects you want to show per row.', 'xts-theme' ),
		'group'               => esc_html__( 'Layout', 'xts-theme' ),
		'type'                => 'buttons',
		'section'             => 'portfolio_archive_section',
		'responsive'          => true,
		'responsive_variants' => array( 'desktop', 'tablet', 'mobile' ),
		'tablet_only'         => true,
		'options'             => array(
			2 => array(
				'name'  => 2,
				'value' => 2,
			),
			3 => array(
				'name'  => 3,
				'value' => 3,
			),
			4 => array(
				'name'  => 4,
				'value' => 4,
			),
			5 => array(
				'name'  => 5,
				'value' => 5,
			),
			6 => array(
				'name'  => 6,
				'value' => 6,
			),
		),
		'priority'            => 50,
	)
);

Options::add_field(
	array(
		'id'                  => 'portfolio_columns_mobile',
		'name'                => esc_html__( 'Columns (mobile)', 'xts-theme' ),
		'description'         => esc_html__( 'How many projects you want to show per row.', 'xts-theme' ),
		'group'               => esc_html__( 'Layout', 'xts-theme' ),
		'type'                => 'buttons',
		'section'             => 'portfolio_archive_section',
		'responsive'          => true,
		'responsive_variants' => array( 'desktop', 'tablet', 'mobile' ),
		'mobile_only'         => true,
		'options'             => array(
			2 => array(
				'name'  => 2,
				'value' => 2,
			),
			3 => array(
				'name'  => 3,
				'value' => 3,
			),
			4 => array(
				'name'  => 4,
				'value' => 4,
			),
			5 => array(
				'name'  => 5,
				'value' => 5,
			),
			6 => array(
				'name'  => 6,
				'value' => 6,
			),
		),
		'priority'            => 60,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_spacing',
		'name'        => esc_html__( 'Space between projects', 'xts-theme' ),
		'description' => esc_html__( 'You can set different spacing between blocks on portfolio page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'type'        => 'buttons',
		'section'     => 'portfolio_archive_section',
		'options'     => xts_get_available_options( 'items_gap' ),
		'default'     => 10,
		'priority'    => 70,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_per_page',
		'name'        => esc_html__( 'Items per page', 'xts-theme' ),
		'description' => esc_html__( 'Number of portfolio projects that will be displayed on one page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'type'        => 'text_input',
		'default'     => 12,
		'priority'    => 80,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_masonry',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Masonry', 'xts-theme' ),
		'description' => esc_html__( 'Masonry library works by placing elements in optimal position based on available vertical space, sort of like a mason fitting stones in a wall.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'default'     => '0',
		'priority'    => 90,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_different_images',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Different images', 'xts-theme' ),
		'description' => esc_html__( 'Double the size of particular elements in the grid by their position indexes.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'default'     => '0',
		'priority'    => 100,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_different_images_position',
		'name'        => esc_html__( 'Wide items position indexes', 'xts-theme' ),
		'description' => esc_html__( 'Set order numbers for items that you want to increase in size. For example: 2,5,8,9', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'type'        => 'text_input',
		'default'     => '2,5,8,9',
		'priority'    => 110,
		'requires'    => array(
			array(
				'key'     => 'portfolio_different_images',
				'compare' => 'equals',
				'value'   => '1',
			),
		),
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_animation_in_view',
		'type'     => 'switcher',
		'name'     => esc_html__( 'Animation in view', 'xts-theme' ),
		'group'    => esc_html__( 'Layout', 'xts-theme' ),
		'section'  => 'portfolio_archive_section',
		'priority' => 120,
		'default'  => '0',
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_animation',
		'name'     => esc_html__( 'Animations', 'xts-theme' ),
		'group'    => esc_html__( 'Layout', 'xts-theme' ),
		'type'     => 'select',
		'section'  => 'portfolio_archive_section',
		'options'  => xts_get_animations_array( 'default' ),
		'default'  => 'short-in-up',
		'class'    => 'xts-col-4',
		'requires' => array(
			array(
				'key'     => 'portfolio_animation_in_view',
				'compare' => 'equals',
				'value'   => '1',
			),
		),
		'priority' => 130,
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_animation_duration',
		'name'     => esc_html__( 'Animation duration', 'xts-theme' ),
		'group'    => esc_html__( 'Layout', 'xts-theme' ),
		'type'     => 'select',
		'section'  => 'portfolio_archive_section',
		'options'  => array(
			'slow'   => array(
				'name'  => esc_html__( 'Slow', 'xts-theme' ),
				'value' => 'slow',
			),
			'normal' => array(
				'name'  => esc_html__( 'Normal', 'xts-theme' ),
				'value' => 'normal',
			),
			'fast'   => array(
				'name'  => esc_html__( 'Fast', 'xts-theme' ),
				'value' => 'fast',
			),
		),
		'default'  => 'fast',
		'class'    => 'xts-col-4',
		'requires' => array(
			array(
				'key'     => 'portfolio_animation_in_view',
				'compare' => 'equals',
				'value'   => '1',
			),
		),
		'priority' => 140,
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_animation_delay',
		'name'     => esc_html__( 'Animation delay', 'xts-theme' ),
		'group'    => esc_html__( 'Layout', 'xts-theme' ),
		'type'     => 'text_input',
		'section'  => 'portfolio_archive_section',
		'default'  => 100,
		'class'    => 'xts-col-4',
		'requires' => array(
			array(
				'key'     => 'portfolio_animation_in_view',
				'compare' => 'equals',
				'value'   => '1',
			),
		),
		'priority' => 150,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_pagination',
		'name'        => esc_html__( 'Pagination', 'xts-theme' ),
		'description' => esc_html__( 'Choose a type for the pagination on your portfolio page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'type'        => 'buttons',
		'section'     => 'portfolio_archive_section',
		'options'     => array(
			'links'     => array(
				'name'  => esc_html__( 'Pagination links', 'xts-theme' ),
				'value' => 'links',
			),
			'load_more' => array(
				'name'  => esc_html__( 'Load more button', 'xts-theme' ),
				'value' => 'load_more',
			),
			'infinite'  => array(
				'name'  => esc_html__( 'Infinite scrolling', 'xts-theme' ),
				'value' => 'infinite',
			),
		),
		'default'     => 'links',
		'priority'    => 160,
	)
);

/**
 * Project options.
 */
Options::add_field(
	array(
		'id'          => 'portfolio_design',
		'name'        => esc_html__( 'Design', 'xts-theme' ),
		'description' => esc_html__( 'You can use different styles for your projects.', 'xts-theme' ),
		'group'       => esc_html__( 'Project options', 'xts-theme' ),
		'type'        => 'select',
		'section'     => 'portfolio_archive_section',
		'options'     => xts_get_available_options( 'portfolio_design' ),
		'default'     => xts_get_default_value( 'portfolio_design' ),
		'priority'    => 170,
	)
);

/**
 * Distortion effect Portfolio_Distortion_Effect (180).
 */

Options::add_field(
	array(
		'id'       => 'portfolio_image_size',
		'name'     => esc_html__( 'Image size', 'xts-theme' ),
		'group'    => esc_html__( 'Project options', 'xts-theme' ),
		'type'     => 'select',
		'section'  => 'portfolio_archive_section',
		'options'  => xts_get_all_image_sizes_names(),
		'default'  => 'large',
		'priority' => 190,
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_image_size_custom',
		'name'     => esc_html__( 'Image size custom', 'xts-theme' ),
		'group'    => esc_html__( 'Project options', 'xts-theme' ),
		'type'     => 'image_dimensions',
		'section'  => 'portfolio_archive_section',
		'requires' => array(
			array(
				'key'     => 'portfolio_image_size',
				'compare' => 'equals',
				'value'   => 'custom',
			),
		),
		'priority' => 200,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_filters_type',
		'type'        => 'buttons',
		'name'        => esc_html__( 'Categories filters', 'xts-theme' ),
		'description' => esc_html__( 'You can switch between links that will lead to project categories and masonry filters within one page only. Or turn off the filters completely.', 'xts-theme' ),
		'group'       => esc_html__( 'Project options', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'options'     => array(
			'without' => array(
				'name'  => esc_html__( 'Without', 'xts-theme' ),
				'value' => 'without',
			),
			'links'   => array(
				'name'  => esc_html__( 'Links', 'xts-theme' ),
				'value' => 'links',
			),
			'masonry' => array(
				'name'  => esc_html__( 'Masonry', 'xts-theme' ),
				'value' => 'masonry',
			),
		),
		'default'     => 'links',
		'priority'    => 210,
	)
);

Options::add_field(
	array(
		'id'          => 'ajax_portfolio',
		'type'        => 'switcher',
		'name'        => esc_html__( 'AJAX portfolio', 'xts-theme' ),
		'description' => esc_html__( 'Use AJAX functionality for portfolio categories links.', 'xts-theme' ),
		'group'       => esc_html__( 'Project options', 'xts-theme' ),
		'section'     => 'portfolio_archive_section',
		'requires'    => array(
			array(
				'key'     => 'portfolio_filters_type',
				'compare' => 'equals',
				'value'   => 'links',
			),
		),
		'default'     => '1',
		'priority'    => 220,
	)
);

/**
 * Single project.
 */
Options::add_field(
	array(
		'id'          => 'portfolio_single_design',
		'name'        => esc_html__( 'Design', 'xts-theme' ),
		'description' => esc_html__( 'You can use different design for your single project page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'type'        => 'select',
		'section'     => 'single_project_section',
		'options'     => array(
			'default'    => array(
				'name'  => esc_html__( 'Default', 'xts-theme' ),
				'value' => 'default',
			),
			'page-title' => array(
				'name'  => esc_html__( 'Image in page title', 'xts-theme' ),
				'value' => 'page-title',
			),
		),
		'default'     => 'default',
		'priority'    => 10,
	)
);

Options::add_field(
	array(
		'id'       => 'portfolio_single_parallax_scroll',
		'type'     => 'switcher',
		'name'     => esc_html__( 'Scale and parallax effect on scroll', 'xts-theme' ),
		'group'    => esc_html__( 'Layout', 'xts-theme' ),
		'section'  => 'single_project_section',
		'requires' => array(
			array(
				'key'     => 'portfolio_single_design',
				'compare' => 'equals',
				'value'   => 'page-title',
			),
		),
		'default'  => '1',
		'priority' => 20,
	)
);

Options::add_field(
	array(
		'id'           => 'portfolio_single_header',
		'name'         => esc_html__( 'Custom header', 'xts-theme' ),
		'description'  => esc_html__( 'You can use different header for your single project page.', 'xts-theme' ),
		'group'        => esc_html__( 'Layout', 'xts-theme' ),
		'type'         => 'select',
		'section'      => 'single_project_section',
		'empty_option' => true,
		'select2'      => true,
		'options'      => xts_get_headers_array(),
		'priority'     => 30,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_single_navigation',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Projects navigation', 'xts-theme' ),
		'description' => esc_html__( 'Next and previous projects links on single project page.', 'xts-theme' ),
		'group'       => esc_html__( 'Layout', 'xts-theme' ),
		'section'     => 'single_project_section',
		'class'       => 'xts-col-6',
		'default'     => '1',
		'priority'    => 40,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_single_related',
		'type'        => 'switcher',
		'name'        => esc_html__( 'Related projects', 'xts-theme' ),
		'description' => esc_html__( 'Show related projects carousel.', 'xts-theme' ),
		'group'       => esc_html__( 'Related projects options', 'xts-theme' ),
		'section'     => 'single_project_section',
		'default'     => '1',
		'priority'    => 50,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_single_related_projects_count',
		'name'        => esc_html__( 'Projects count', 'xts-theme' ),
		'description' => esc_html__( 'The total number of related projects to display.', 'xts-theme' ),
		'group'       => esc_html__( 'Related projects options', 'xts-theme' ),
		'type'        => 'text_input',
		'section'     => 'single_project_section',
		'default'     => 5,
		'priority'    => 60,
	)
);

Options::add_field(
	array(
		'id'          => 'portfolio_single_related_projects_per_row',
		'name'        => esc_html__( 'Columns', 'xts-theme' ),
		'description' => esc_html__( 'How many projects you want to show per row.', 'xts-theme' ),
		'group'       => esc_html__( 'Related projects options', 'xts-theme' ),
		'type'        => 'buttons',
		'section'     => 'single_project_section',
		'options'     => array(
			2 => array(
				'name'  => 2,
				'value' => 2,
			),
			3 => array(
				'name'  => 3,
				'value' => 3,
			),
			4 => array(
				'name'  => 4,
				'value' => 4,
			),
			5 => array(
				'name'  => 5,
				'value' => 5,
			),
			6 => array(
				'name'  => 6,
				'value' => 6,
			),
		),
		'default'     => xts_get_default_value( 'portfolio_single_related_projects_per_row' ),
		'priority'    => 70,
	)
);