/**
* Theme functions and definitions
*
* @package HelloElementor
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
define( 'HELLO_ELEMENTOR_VERSION', '3.4.4' );
define( 'EHP_THEME_SLUG', 'hello-elementor' );
define( 'HELLO_THEME_PATH', get_template_directory() );
define( 'HELLO_THEME_URL', get_template_directory_uri() );
define( 'HELLO_THEME_ASSETS_PATH', HELLO_THEME_PATH . '/assets/' );
define( 'HELLO_THEME_ASSETS_URL', HELLO_THEME_URL . '/assets/' );
define( 'HELLO_THEME_SCRIPTS_PATH', HELLO_THEME_ASSETS_PATH . 'js/' );
define( 'HELLO_THEME_SCRIPTS_URL', HELLO_THEME_ASSETS_URL . 'js/' );
define( 'HELLO_THEME_STYLE_PATH', HELLO_THEME_ASSETS_PATH . 'css/' );
define( 'HELLO_THEME_STYLE_URL', HELLO_THEME_ASSETS_URL . 'css/' );
define( 'HELLO_THEME_IMAGES_PATH', HELLO_THEME_ASSETS_PATH . 'images/' );
define( 'HELLO_THEME_IMAGES_URL', HELLO_THEME_ASSETS_URL . 'images/' );
if ( ! isset( $content_width ) ) {
$content_width = 800; // Pixels.
}
if ( ! function_exists( 'hello_elementor_setup' ) ) {
/**
* Set up theme support.
*
* @return void
*/
function hello_elementor_setup() {
if ( is_admin() ) {
hello_maybe_update_theme_version_in_db();
}
if ( apply_filters( 'hello_elementor_register_menus', true ) ) {
register_nav_menus( [ 'menu-1' => esc_html__( 'Header', 'hello-elementor' ) ] );
register_nav_menus( [ 'menu-2' => esc_html__( 'Footer', 'hello-elementor' ) ] );
}
if ( apply_filters( 'hello_elementor_post_type_support', true ) ) {
add_post_type_support( 'page', 'excerpt' );
}
if ( apply_filters( 'hello_elementor_add_theme_support', true ) ) {
add_theme_support( 'post-thumbnails' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support(
'html5',
[
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'script',
'style',
'navigation-widgets',
]
);
add_theme_support(
'custom-logo',
[
'height' => 100,
'width' => 350,
'flex-height' => true,
'flex-width' => true,
]
);
add_theme_support( 'align-wide' );
add_theme_support( 'responsive-embeds' );
/*
* Editor Styles
*/
add_theme_support( 'editor-styles' );
add_editor_style( 'editor-styles.css' );
/*
* WooCommerce.
*/
if ( apply_filters( 'hello_elementor_add_woocommerce_support', true ) ) {
// WooCommerce in general.
add_theme_support( 'woocommerce' );
// Enabling WooCommerce product gallery features (are off by default since WC 3.0.0).
// zoom.
add_theme_support( 'wc-product-gallery-zoom' );
// lightbox.
add_theme_support( 'wc-product-gallery-lightbox' );
// swipe.
add_theme_support( 'wc-product-gallery-slider' );
}
}
}
}
add_action( 'after_setup_theme', 'hello_elementor_setup' );
function hello_maybe_update_theme_version_in_db() {
$theme_version_option_name = 'hello_theme_version';
// The theme version saved in the database.
$hello_theme_db_version = get_option( $theme_version_option_name );
// If the 'hello_theme_version' option does not exist in the DB, or the version needs to be updated, do the update.
if ( ! $hello_theme_db_version || version_compare( $hello_theme_db_version, HELLO_ELEMENTOR_VERSION, '<' ) ) {
update_option( $theme_version_option_name, HELLO_ELEMENTOR_VERSION );
}
}
if ( ! function_exists( 'hello_elementor_display_header_footer' ) ) {
/**
* Check whether to display header footer.
*
* @return bool
*/
function hello_elementor_display_header_footer() {
$hello_elementor_header_footer = true;
return apply_filters( 'hello_elementor_header_footer', $hello_elementor_header_footer );
}
}
if ( ! function_exists( 'hello_elementor_scripts_styles' ) ) {
/**
* Theme Scripts & Styles.
*
* @return void
*/
function hello_elementor_scripts_styles() {
if ( apply_filters( 'hello_elementor_enqueue_style', true ) ) {
wp_enqueue_style(
'hello-elementor',
HELLO_THEME_STYLE_URL . 'reset.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
if ( apply_filters( 'hello_elementor_enqueue_theme_style', true ) ) {
wp_enqueue_style(
'hello-elementor-theme-style',
HELLO_THEME_STYLE_URL . 'theme.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
if ( hello_elementor_display_header_footer() ) {
wp_enqueue_style(
'hello-elementor-header-footer',
HELLO_THEME_STYLE_URL . 'header-footer.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
}
}
add_action( 'wp_enqueue_scripts', 'hello_elementor_scripts_styles' );
if ( ! function_exists( 'hello_elementor_register_elementor_locations' ) ) {
/**
* Register Elementor Locations.
*
* @param ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager $elementor_theme_manager theme manager.
*
* @return void
*/
function hello_elementor_register_elementor_locations( $elementor_theme_manager ) {
if ( apply_filters( 'hello_elementor_register_elementor_locations', true ) ) {
$elementor_theme_manager->register_all_core_location();
}
}
}
add_action( 'elementor/theme/register_locations', 'hello_elementor_register_elementor_locations' );
if ( ! function_exists( 'hello_elementor_content_width' ) ) {
/**
* Set default content width.
*
* @return void
*/
function hello_elementor_content_width() {
$GLOBALS['content_width'] = apply_filters( 'hello_elementor_content_width', 800 );
}
}
add_action( 'after_setup_theme', 'hello_elementor_content_width', 0 );
if ( ! function_exists( 'hello_elementor_add_description_meta_tag' ) ) {
/**
* Add description meta tag with excerpt text.
*
* @return void
*/
function hello_elementor_add_description_meta_tag() {
if ( ! apply_filters( 'hello_elementor_description_meta_tag', true ) ) {
return;
}
if ( ! is_singular() ) {
return;
}
$post = get_queried_object();
if ( empty( $post->post_excerpt ) ) {
return;
}
echo '' . "\n";
}
}
add_action( 'wp_head', 'hello_elementor_add_description_meta_tag' );
// Settings page
require get_template_directory() . '/includes/settings-functions.php';
// Header & footer styling option, inside Elementor
require get_template_directory() . '/includes/elementor-functions.php';
if ( ! function_exists( 'hello_elementor_customizer' ) ) {
// Customizer controls
function hello_elementor_customizer() {
if ( ! is_customize_preview() ) {
return;
}
if ( ! hello_elementor_display_header_footer() ) {
return;
}
require get_template_directory() . '/includes/customizer-functions.php';
}
}
add_action( 'init', 'hello_elementor_customizer' );
if ( ! function_exists( 'hello_elementor_check_hide_title' ) ) {
/**
* Check whether to display the page title.
*
* @param bool $val default value.
*
* @return bool
*/
function hello_elementor_check_hide_title( $val ) {
if ( defined( 'ELEMENTOR_VERSION' ) ) {
$current_doc = Elementor\Plugin::instance()->documents->get( get_the_ID() );
if ( $current_doc && 'yes' === $current_doc->get_settings( 'hide_title' ) ) {
$val = false;
}
}
return $val;
}
}
add_filter( 'hello_elementor_page_title', 'hello_elementor_check_hide_title' );
/**
* BC:
* In v2.7.0 the theme removed the `hello_elementor_body_open()` from `header.php` replacing it with `wp_body_open()`.
* The following code prevents fatal errors in child themes that still use this function.
*/
if ( ! function_exists( 'hello_elementor_body_open' ) ) {
function hello_elementor_body_open() {
wp_body_open();
}
}
require HELLO_THEME_PATH . '/theme.php';
HelloTheme\Theme::instance();
The post Как работают JSON и XML форматы данных appeared first on Yayasan Lentera Jagad Nusantara Sejahtera.
]]>Актуальные веб-приложения регулярно обмениваются сведениями между серверами, базами информации и пользовательскими устройствами. Для транспортировки организованных сведений программисты используют выделенные текстовые форматы, которые распознают разные системы и языки программирования. Два наиболее распространённых формата — JSON и XML — обеспечивают организовать данные в понятном виде.
JSON представляет данные в виде пар ключ-значение, заключенных в фигурные скобки. Стандарт применяет минимальное количество служебных элементов, что создает документы небольшими. Создатели задействуют казино онлайн для транспортировки информации между браузером и сервером.
XML структурирует сведения через механизм меток, схожих на HTML-разметку. Каждый элемент заключается открывающим и закрывающим элементом. Стандарт обеспечивает параметры и сложную вложенность элементов.
Программы и службы функционируют на разных системах, написаны на разнообразных языках программирования и применяют несовместимые собственные организации сведений. Без общего стандарта передачи данных каждая платформа сохраняла бы сведения в собственном стандарте. Разработчикам пришлось бы создавать индивидуальные адаптеры для каждой пары взаимодействующих приложений.
Единообразные форматы решают задачу совместимости. Программа на Python может передать сведения приложению на Java, если обе стороны применяют универсальный формат представления информации. Сервер воспринимает запросы от мобильного программы, веб-браузера и десктопной приложения благодаря 10 лучших казино онлайн.
Текстовые стандарты обеспечивают читаемость сведений пользователем. Разработчик может открыть документ в текстовом редакторе и осознать организацию данных без дополнительных средств. Тестирование приложений становится легче, когда видны отправляемые информация.
Форматы передачи данными обеспечивают сложные организации: встроенные сущности, массивы, различные виды данных. Платформа может отправить не только простые числа и строки, но и полные структуры взаимосвязанных объектов. Универсальный формат облегчает внедрение внешних служб и создание распределённых архитектур.
JSON расшифровывается как JavaScript Object Notation — запись сущностей JavaScript. Стандарт появился в старте 2000-х годов как часть грамматики языка JavaScript. Дуглас Крокфорд стандартизировал JSON и описал его требования в спецификации. Ныне формат поддерживается всеми современными платформами разработки.
Основное использование JSON — передача сведений между клиентом и сервером в веб-приложениях. Обозреватель отправляет запрос и получает результат в виде организованного файла. Стандарт применяется в REST API, где каждый требование выдает сведения для анализа онлайн казино.
Портативные программы передают сведениями с серверами через JSON. Формат отправляет данные клиентов, перечни товаров и результаты поиска. Легковесность файлов сберегает трафик и ускоряет загрузку на устройствах с медленным соединением.
Настроечные файлы приложений нередко создаются в стандарте JSON. Программисты определяют конфигурации приложений и параметры сборки проектов. Документы package.json в Node.js хранят служебную информацию и каталоги модулей.
JSON основывается на двух главных конструкциях: объектах и массивах. Элемент описывает несортированную совокупность пар ключ-значение, помещенную в фигурные скобки. Ключ указывается как последовательность в двойных кавычках, после которой ставится двоеточие и данное. Несколько пар разделяются запятыми.
Коллекция содержит упорядоченный набор элементов, помещенный в квадратные скобки. Компоненты массива отделяются запятыми и могут содержать разнообразные типы данных. Один массив может включать числа, тексты, элементы и встроенные массивы.
Формат поддерживает шесть типов данных: последовательности, числа, логические значения true и false, null, объекты и списки. Тексты помещаются в двойные кавычки. Значения записываются без кавычек и поддерживают полные числа, дроби и экспоненциальную нотацию.
Вложенность структур позволяет строить многоуровневые организации информации. Элемент может содержать иные сущности и списки в роли значений. Программисты задействуют казино онлайн для отображения иерархических организаций и взаимосвязанных сведений.
XML расшифровывается как Extensible Markup Language — масштабируемый язык структурирования. Консорциум W3C создал спецификацию в 1996 году для единого описания структурированных сведений. Стандарт позволяет генерировать индивидуальные элементы и определять нормы валидации документов через шаблоны.
Файл XML начинается с заголовка, которая указывает версию стандарта и представление элементов. После объявления идет главный компонент, хранящий полную структуру информации. Каждый элемент заключается начальным и завершающим маркером с одинаковым именем.
Базовые части XML содержат несколько категорий элементов:
Формат подразумевает неукоснительного выполнения грамматики. Все элементы должны быть закрыты, имена компонентов восприимчивы к написанию, значения свойств оборачиваются в кавычки. Программисты используют 10 лучших казино онлайн в платформах с высокими критериями к проверке данных. XML поддерживает области названий для избежания коллизий между элементами из разных шаблонов.
Элементы в XML формируются разработчиком в согласии с стандартами разработки. Обозначение маркера может включать буквы, числа, тире и подчёркивания. Начальный элемент указывается в угловых скобках, конечный включает косую линию перед названием. Пустые компоненты можно указать единственным автозакрывающимся элементом.
Параметры помещаются внутри открывающего элемента и присоединяют служебную информацию к компоненту. Каждый атрибут складывается из обозначения, символа равенства и значения в кавычках. Один элемент может содержать несколько атрибутов, разделенных интервалами. Атрибуты применяются для идентификаторов и служебных параметров.
Вложенность компонентов создаёт иерархическую структуру документа. Родительский компонент может включать несколько подчиненных компонентов, которые содержат индивидуальные встроенные компоненты. Глубина вложенности не лимитирована стандартом.
Верная организация требует соблюдения порядка закрытия маркеров. Элемент, открытый крайним, должен закрыться изначально. Разработчики задействуют онлайн казино для представления сложных отношений между информацией.
JSON генерирует более компактные документы благодаря наименьшему количеству служебных символов. Стандарт не требует завершающих элементов и применяет фигурные скобки для группировки данных. XML включает больше знаков разметки: каждый компонент подразумевает открывающего и закрывающего элемента.
Скорость анализа JSON больше в преимущественном числе актуальных языков программирования. Анализаторы преобразуют файл прямо в объекты и коллекции. XML требует создания иерархической организации DOM или пошагового чтения через SAX-парсер.
XML обеспечивает продвинутые функции проверки через схемы XSD и DTD. Схемы задают допустимые компоненты, их последовательность и категории информации. JSON поддерживает проверку через JSON Schema, но этот стандарт менее используем.
Читаемость JSON оценивается выше для разработчиков, привыкших к грамматике JavaScript. Формат содержит меньше графического мусора. XML больше годится для файлов со многоуровневой архитектурой. Программисты определяют казино онлайн в соответствии от критериев проекта.
API представляет собой механизм для взаимодействия между программами через сетевые запросы. Пользовательское приложение передает HTTP-запрос на сервер и получает ответ с сведениями в структурированном виде. Форматы определяют метод организации сведений для отправки между платформами.
REST API обычно всего применяет JSON для транспортировки сведениями. Клиент задает предпочитаемый формат через параметр Accept, сервер предоставляет данные с параметром Content-Type. Обращение может содержать данные в теле сообщения, а результат включает требуемые данные.
SOAP API основан на основе XML и предполагает неукоснительного выполнения спецификации. Каждый обращение оборачивается в оболочку SOAP с параметрами и телом сообщения. Стандарт обеспечивает устойчивость через встроенные механизмы преобразования ошибок.
GraphQL обеспечивает клиенту требовать только необходимые элементы данных. Обращения и результаты отправляются в стандарте JSON. Программисты применяют 10 лучших казино онлайн для гибкого извлечения информации без лишней данных. Стандарт уменьшает число обращений между пользователем и сервером.
Синтаксические неполадки возникают при несоблюдении норм структурирования документов. Утраченная запятая, незакрытая кавычка или избыточная скобка создают файл некорректным. Обработчик не может обработать такой документ и предоставляет извещение об неполадке с указанием линии и позиции ошибочного элемента.
Распространенные сбои при обращении с стандартами информации включают несколько типов:
Сложности с представлением символов ведут к повреждению текстовых информации. Файл может включать знаки в одной представлении, а объявление указывать альтернативную. Специальные символы подразумевают экранирования через escape-последовательности. Программисты задействуют онлайн казино для корректной транспортировки информации с различными системами письма.
Ошибки валидации появляются при несоответствии файла установленной схеме. Компонент может включать недопустимое данное или нарушать порядок расположения вложенных компонентов. Системы используют казино онлайн для автоматической проверки структуры перед преобразованием. Фиксация ошибок позволяет отследить затруднения в ходе программирования и функционирования.
The post Как работают JSON и XML форматы данных appeared first on Yayasan Lentera Jagad Nusantara Sejahtera.
]]>