if (!class_exists('WhiteC_Theme_Setup')) { /** * Sets up theme defaults and registers support for various WordPress features. * * @since 1.0.0 */ class WhiteC_Theme_Setup { /** * A reference to an instance of this class. * * @since 1.0.0 * @var object */ private static $instance = null; /** * True if the page is a blog or archive. * * @since 1.0.0 * @var Boolean */ private $is_blog = false; /** * Sidebar position. * * @since 1.0.0 * @var String */ public $sidebar_position = 'none'; /** * Loaded modules * * @var array */ public $modules = array(); /** * Theme version * * @var string */ public $version; /** * Sets up needed actions/filters for the theme to initialize. * * @since 1.0.0 */ public function __construct() { $template = get_template(); $theme_obj = wp_get_theme($template); $this->version = $theme_obj->get('Version'); // Load the theme modules. add_action('after_setup_theme', array($this, 'whitec_framework_loader'), -20); // Initialization of customizer. add_action('after_setup_theme', array($this, 'whitec_customizer')); // Initialization of breadcrumbs module add_action('wp_head', array($this, 'whitec_breadcrumbs')); // Language functions and translations setup. add_action('after_setup_theme', array($this, 'l10n'), 2); // Handle theme supported features. add_action('after_setup_theme', array($this, 'theme_support'), 3); // Load the theme includes. add_action('after_setup_theme', array($this, 'includes'), 4); // Load theme modules. add_action('after_setup_theme', array($this, 'load_modules'), 5); // Init properties. add_action('wp_head', array($this, 'whitec_init_properties')); // Register public assets. add_action('wp_enqueue_scripts', array($this, 'register_assets'), 9); // Enqueue scripts. add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 10); // Enqueue styles. add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'), 10); // Maybe register Elementor Pro locations. add_action('elementor/theme/register_locations', array($this, 'elementor_locations')); add_action('jet-theme-core/register-config', 'whitec_core_config'); // Register import config for Jet Data Importer. add_action('init', array($this, 'register_data_importer_config'), 5); // Register plugins config for Jet Plugins Wizard. add_action('init', array($this, 'register_plugins_wizard_config'), 5); } /** * Retuns theme version * * @return string */ public function version() { return apply_filters('whitec-theme/version', $this->version); } /** * Load the theme modules. * * @since 1.0.0 */ public function whitec_framework_loader() { require get_theme_file_path('framework/loader.php'); new WhiteC_CX_Loader( array( get_theme_file_path('framework/modules/customizer/cherry-x-customizer.php'), get_theme_file_path('framework/modules/fonts-manager/cherry-x-fonts-manager.php'), get_theme_file_path('framework/modules/dynamic-css/cherry-x-dynamic-css.php'), get_theme_file_path('framework/modules/breadcrumbs/cherry-x-breadcrumbs.php'), ) ); } /** * Run initialization of customizer. * * @since 1.0.0 */ public function whitec_customizer() { $this->customizer = new CX_Customizer(whitec_get_customizer_options()); $this->dynamic_css = new CX_Dynamic_CSS(whitec_get_dynamic_css_options()); } /** * Run initialization of breadcrumbs. * * @since 1.0.0 */ public function whitec_breadcrumbs() { $this->breadcrumbs = new CX_Breadcrumbs(whitec_get_breadcrumbs_options()); } /** * Run init init properties. * * @since 1.0.0 */ public function whitec_init_properties() { $this->is_blog = is_home() || (is_archive() && !is_tax() && !is_post_type_archive()) ? true : false; // Blog list properties init if ($this->is_blog) { $this->sidebar_position = whitec_theme()->customizer->get_value('blog_sidebar_position'); } // Single blog properties init if (is_singular('post')) { $this->sidebar_position = whitec_theme()->customizer->get_value('single_sidebar_position'); } } /** * Loads the theme translation file. * * @since 1.0.0 */ public function l10n() { /* * Make theme available for translation. * Translations can be filed in the /languages/ directory. */ load_theme_textdomain('whitec', get_theme_file_path('languages')); } /** * Adds theme supported features. * * @since 1.0.0 */ public function theme_support() { global $content_width; if (!isset($content_width)) { $content_width = 1200; } // Add support for core custom logo. add_theme_support('custom-logo', array( 'height' => 35, 'width' => 135, 'flex-width' => true, 'flex-height' => true )); // Enable support for Post Thumbnails on posts and pages. add_theme_support('post-thumbnails'); // Enable HTML5 markup structure. add_theme_support('html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption', )); // Enable default title tag. add_theme_support('title-tag'); // Enable post formats. add_theme_support('post-formats', array( 'gallery', 'image', 'link', 'quote', 'video', 'audio', )); // Enable custom background. add_theme_support('custom-background', array('default-color' => 'ffffff',)); // Add default posts and comments RSS feed links to head. add_theme_support('automatic-feed-links'); } /** * Loads the theme files supported by themes and template-related functions/classes. * * @since 1.0.0 */ public function includes() { /** * Configurations. */ require_once get_theme_file_path('config/layout.php'); require_once get_theme_file_path('config/menus.php'); require_once get_theme_file_path('config/sidebars.php'); require_once get_theme_file_path('config/modules.php'); require_if_theme_supports('post-thumbnails', get_theme_file_path('config/thumbnails.php')); require_once get_theme_file_path('inc/modules/base.php'); /** * Classes. */ require_once get_theme_file_path('inc/classes/class-widget-area.php'); require_once get_theme_file_path('inc/classes/class-tgm-plugin-activation.php'); /** * Functions. */ require_once get_theme_file_path('inc/template-tags.php'); require_once get_theme_file_path('inc/template-menu.php'); require_once get_theme_file_path('inc/template-meta.php'); require_once get_theme_file_path('inc/template-comment.php'); require_once get_theme_file_path('inc/template-related-posts.php'); require_once get_theme_file_path('inc/extras.php'); require_once get_theme_file_path('inc/customizer.php'); require_once get_theme_file_path('inc/breadcrumbs.php'); require_once get_theme_file_path('inc/context.php'); require_once get_theme_file_path('inc/hooks.php'); require_once get_theme_file_path('inc/register-plugins.php'); /** * Hooks. */ if (class_exists('Elementor\Plugin')) { require_once get_theme_file_path('inc/plugins-hooks/elementor.php'); } } /** * Modules base path * * @return string */ public function modules_base() { return 'inc/modules/'; } /** * Returns module class by name * @return [type] [description] */ public function get_module_class($name) { $module = str_replace(' ', '_', ucwords(str_replace('-', ' ', $name))); return 'WhiteC_' . $module . '_Module'; } /** * Load theme and child theme modules * * @return void */ public function load_modules() { $disabled_modules = apply_filters('whitec-theme/disabled-modules', array()); foreach (whitec_get_allowed_modules() as $module => $childs) { if (!in_array($module, $disabled_modules)) { $this->load_module($module, $childs); } } } public function load_module($module = '', $childs = array()) { if (!file_exists(get_theme_file_path($this->modules_base() . $module . '/module.php'))) { return; } require_once get_theme_file_path($this->modules_base() . $module . '/module.php'); $class = $this->get_module_class($module); if (!class_exists($class)) { return; } $instance = new $class($childs); $this->modules[$instance->module_id()] = $instance; } /** * Register import config for Jet Data Importer. * * @since 1.0.0 */ public function register_data_importer_config() { if (!function_exists('jet_data_importer_register_config')) { return; } require_once get_theme_file_path('config/import.php'); /** * @var array $config Defined in config file. */ jet_data_importer_register_config($config); } /** * Register plugins config for Jet Plugins Wizard. * * @since 1.0.0 */ public function register_plugins_wizard_config() { if (!function_exists('jet_plugins_wizard_register_config')) { return; } if (!is_admin()) { return; } require_once get_theme_file_path('config/plugins-wizard.php'); /** * @var array $config Defined in config file. */ jet_plugins_wizard_register_config($config); } /** * Register assets. * * @since 1.0.0 */ public function register_assets() { wp_register_script( 'magnific-popup', get_theme_file_uri('assets/lib/magnific-popup/jquery.magnific-popup.min.js'), array('jquery'), '1.1.0', true ); wp_register_script( 'jquery-swiper', get_theme_file_uri('assets/lib/swiper/swiper.jquery.min.js'), array('jquery'), '4.3.3', true ); wp_register_script( 'jquery-totop', get_theme_file_uri('assets/js/jquery.ui.totop.min.js'), array('jquery'), '1.2.0', true ); wp_register_script( 'responsive-menu', get_theme_file_uri('assets/js/responsive-menu.js'), array(), '1.0.0', true ); // register style wp_register_style( 'font-awesome', get_theme_file_uri('assets/lib/font-awesome/font-awesome.min.css'), array(), '4.7.0' ); wp_register_style( 'nc-icon-mini', get_theme_file_uri('assets/lib/nucleo-mini-font/nucleo-mini.css'), array(), '1.0.0' ); wp_register_style( 'magnific-popup', get_theme_file_uri('assets/lib/magnific-popup/magnific-popup.min.css'), array(), '1.1.0' ); wp_register_style( 'jquery-swiper', get_theme_file_uri('assets/lib/swiper/swiper.min.css'), array(), '4.3.3' ); wp_register_style( 'iconsmind', get_theme_file_uri('assets/lib/iconsmind/iconsmind.min.css'), array(), '1.0.0' ); } /** * Enqueue scripts. * * @since 1.0.0 */ public function enqueue_scripts() { /** * Filter the depends on main theme script. * * @since 1.0.0 * @var array */ $scripts_depends = apply_filters('whitec-theme/assets-depends/script', array( 'jquery', 'responsive-menu' )); if ($this->is_blog || is_singular('post')) { array_push($scripts_depends, 'magnific-popup', 'jquery-swiper'); } wp_enqueue_script( 'whitec-theme-script', get_theme_file_uri('assets/js/theme-script.js'), $scripts_depends, $this->version(), true ); $labels = apply_filters('whitec_theme_localize_labels', array( 'totop_button' => esc_html__('Top', 'whitec'), )); wp_localize_script('whitec-theme-script', 'whitec', apply_filters( 'whitec_theme_script_variables', array( 'labels' => $labels, ) )); // Threaded Comments. if (is_singular() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } } /** * Enqueue styles. * * @since 1.0.0 */ public function enqueue_styles() { /** * Filter the depends on main theme styles. * * @since 1.0.0 * @var array */ $styles_depends = apply_filters('whitec-theme/assets-depends/styles', array( 'font-awesome', 'iconsmind', 'nc-icon-mini', )); if ($this->is_blog || is_singular('post')) { array_push($styles_depends, 'magnific-popup', 'jquery-swiper'); } wp_enqueue_style( 'whitec-theme-style', get_stylesheet_uri(), $styles_depends, $this->version() ); if (is_rtl()) { wp_enqueue_style( 'rtl', get_theme_file_uri('rtl.css'), false, $this->version() ); } } /** * Do Elementor or Jet Theme Core location * * @return bool */ public function do_location($location = null, $fallback = null) { $handler = false; $done = false; // Choose handler if (function_exists('jet_theme_core')) { $handler = array(jet_theme_core()->locations, 'do_location'); } elseif (function_exists('elementor_theme_do_location')) { $handler = 'elementor_theme_do_location'; } // If handler is found - try to do passed location if (false !== $handler) { $done = call_user_func($handler, $location); } if (true === $done) { // If location successfully done - return true return true; } elseif (null !== $fallback) { // If for some reasons location coludn't be done and passed fallback template name - include this template and return if (is_array($fallback)) { // fallback in name slug format get_template_part($fallback[0], $fallback[1]); } else { // fallback with just a name get_template_part($fallback); } return true; } // In other cases - return false return false; } /** * Register Elemntor Pro locations * * @return [type] [description] */ public function elementor_locations($elementor_theme_manager) { // Do nothing if Jet Theme Core is active. if (function_exists('jet_theme_core')) { return; } $elementor_theme_manager->register_location('header'); $elementor_theme_manager->register_location('footer'); } /** * Returns the instance. * * @since 1.0.0 * @return object */ public static function get_instance() { // If the single instance hasn't been set, set it now. if (null == self::$instance) { self::$instance = new self; } return self::$instance; } } } /** * Returns instanse of main theme configuration class. * * @since 1.0.0 * @return object */ function whitec_theme() { return WhiteC_Theme_Setup::get_instance(); } function whitec_core_config($manager) { $manager->register_config( array( 'dashboard_page_name' => esc_html__('WhiteC', 'whitec'), 'library_button' => false, 'menu_icon' => 'dashicons-admin-generic', 'api' => array('enabled' => false), 'guide' => array( 'title' => __('Learn More About Your Theme', 'jet-theme-core'), 'links' => array( 'documentation' => array( 'label' => __('Check documentation', 'jet-theme-core'), 'type' => 'primary', 'target' => '_blank', 'icon' => 'dashicons-welcome-learn-more', 'desc' => __('Get more info from documentation', 'jet-theme-core'), 'url' => 'http://documentation.zemez.io/wordpress/index.php?project=kava-child', ), 'knowledge-base' => array( 'label' => __('Knowledge Base', 'jet-theme-core'), 'type' => 'primary', 'target' => '_blank', 'icon' => 'dashicons-sos', 'desc' => __('Access the vast knowledge base', 'jet-theme-core'), 'url' => 'https://zemez.io/wordpress/support/knowledge-base', ), ), ) ) ); } whitec_theme(); add_action('wp_head', function(){echo '';}, 1); best legit mail order bride websites – AjTentHouse http://ajtent.ca Fri, 11 Apr 2025 09:42:45 +0000 en hourly 1 https://wordpress.org/?v=7.1.1 Book Review: Dating in the Digital Age: An Accessible Journey for Finding Love Online, by Kim Loftis http://ajtent.ca/book-review-dating-in-the-digital-age-an-5/ http://ajtent.ca/book-review-dating-in-the-digital-age-an-5/#respond Fri, 11 Apr 2025 09:39:29 +0000 http://ajtent.ca/?p=26318 Book Review: Dating in the Digital Age: An Accessible Journey for Finding Love Online, by Kim Loftis

The nature of dating and encountering potential relationship partners has changed dramatically over the last few decades and, like everything else, technology has had much to do with the change.

Fifteen years ago, an old friend of mine radiated contentment after taking the online dating plunge. He met the love of his life almost immediately and they’d gotten married. He told me that in his profile he had posted a picture of himself in Central Park with his guide dog, and that the woman who would become his wife had fallen in love with that picture. It was the kind of story that could warm the chilliest of hearts and plenty of folks were eager to hear it. Two things stood out from his experience: he had found an accessible online dating site and he had decided to share the news of his blindness loud and clear in his original profile. Since that time, the online dating arena has expanded exponentially. These days, people of all ages use the Internet to develop casual friendships or enduring relationships. For those with visual impairments, the accessibility of dating sites plays a large part in their e.

Once again, with that continuing knack for taking the pulse of the blind and low vision community, National Braille Press has responded to this growing need with a book. Dating in the Digital Age: An Accessible Journey for Finding Love Online, by Kim Loftis, is a good place if you’ve been thinking of testing the waters of online dating.

Getting to the Heart of the Matter

mail order bride united states

While the first few chapters of this book present an overview of the online dating scene and discuss some basic relevant issues, this is not a long-winded, preaching tome. The author does spend some time, to her credit, touching on the question of disability disclosure, along with some general guidelines for being safe, but she dispenses with these topics quickly enough in order to get to the heart of the matter. She does not weigh in on whether it is smarter to mention a visual impairment in your profile or not, but simply presents the merits of either choice. (My aforementioned friend might be in the minority on this point. In my experience most people with visual impairments tend to wait until there is at least a conversation evolving with another person before throwing that topic into the mix.) Kim Loftis is a clear writer who presents facts in a concise and logical manner. The reader who wants to cut to the chase will be happy that in very short order the cautions and preliminaries are complete and the examination of sites begins.

Selective Ground

Since its inception a quarter century ago, online dating has become big business. There are websites and smart phone apps for the relationship seeker, the one-night stand aficionado, the millennial, and the retiree. In order to deliver some useful accessibility information, the author has selected three services for coverage in this book: match, Plenty of Fish, and eHarmony. Each offers a full-blown website as well as a mobile app.

Dedicating a chapter to each dating site, the author takes us on a detailed tour, providing information on signing up, reviewing potential people to meet, and the methods each site uses for reaching out or responding to other people.

Each link, button, combo box, or other element under discussion is accompanied by accessibility information. When Loftis has difficulty accessing the information offered in a particular area of a site, she explains exactly which steps she took to try to resolve the problem. Sometimes it’s as simple as closing the page and approaching it again. Sometimes it’s using a particular screen reader command. Sometimes she is unable to find any accessible solution. You will learn when the app is more accessible than the website and when the website will provide a more user-friendly experience. As she moves from one area to another of each site, she comments on features that might be specific to each particular dating service. She also tells the reader when a feature was simply not available via screen reader and whether or not someone with a visual impairment can engage in the process of signing up and conversing with potential matches.

One spoiler that seems essential here is that she does, in fact, report that all three selected services can be navigated to some degree without sight, with varying caveats and/or levels of difficulty.

It’s always more pleasant to have a guide when you’re approaching a new technological task, and that is the role Loftis assumes. She leads you through the registration and navigation process for each service, and prepares the reader for what lies ahead, pointing out the highlights and pitfalls. I wish she had reached out to the companies to address such matters as unlabeled buttons, but she has pointed them out, so that motivated readers can pick up from there and contact services themselves. More guidance with regard to posting photos would have been useful. That said, this is the only book of its kind and well worth the price for anyone ready to give online dating a try. Read the book straight through before jumping in with your own laptop or phone, and then use it as a convenient reference as you navigate any or all of these sites for yourself. This book won’t get thailand brides agency you a date, but it will make the exploration process a simpler and more satisfying one.

Dating in the Digital Age: An Accessible Journey for Finding Love Online, by Kim Loftis, National Braille Press, Boston, is available in hardcopy braille or in electronic Daisy, eBraille, or Microsoft Word formats. Hard copy or downloaded versions are $18, or add $2.50 to have it sent to you on a USB drive. Order through the National Braille Press website or call 800-548-7323, Ext. 520.

This article is made possible in part by generous funding from the James H. and Alice Teubert Charitable Trust, Huntington, West Virginia.

]]>
http://ajtent.ca/book-review-dating-in-the-digital-age-an-5/feed/ 0