';
$content = str_replace($placeholder, $scriptTag, $content);
}
}
}
return $content;
}//Perfmatters Compatibility
add_filter('ez_toc_pro_inline_css','ez_toc_perfmatters_touch_css');
function ez_toc_perfmatters_touch_css($css){
if('css' == ezTOC_Option::get( 'toc_loading' ) && class_exists('Perfmatters\Config') && !empty(Perfmatters\Config::$options['assets']['delay_js']) && !empty(Perfmatters\Config::$options['assets']['fastclick'])) {
$css .= 'label > * { pointer-events:none; }';
}
return $css;
}
/**
* Woodmart + WPbakery Gallery compatibility
* @since 2.0.58
*/
function ez_toc_woodmart_gallery_fix(){
if(function_exists('woodmart_load_classes') && class_exists('Vc_Manager')){
if(!wp_style_is('el-section-title')){
wp_register_style( 'el-section-title', WOODMART_THEME_DIR.'/css/parts/el-section-title.min.css', array() ,ezTOC::VERSION );
wp_enqueue_style( 'el-section-title' );
}
if(!wp_style_is('wd-section-title-style-simple-and-brd')){
wp_register_style( 'wd-section-title-style-simple-and-brd', WOODMART_THEME_DIR.'/css/parts/el-section-title-style-simple-and-brd.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-section-title-style-simple-and-brd' );
}
if(!wp_style_is('wd-owl-carousel')){
wp_register_style( 'wd-owl-carousel', WOODMART_THEME_DIR.'/css/parts/lib-owl-carousel.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-owl-carousel' );
}
if(!wp_style_is('wd-image-gallery')){
wp_register_style( 'wd-image-gallery', WOODMART_THEME_DIR.'/css/parts/el-gallery.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-image-gallery' );
}if(!wp_style_is('wd-accordion')){
wp_register_style( 'wd-accordion', WOODMART_THEME_DIR.'/css/parts/el-accordion.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-accordion' );
}
if(!wp_style_is('wd-tabs')){
wp_register_style( 'wd-tabs', WOODMART_THEME_DIR.'/css/parts/el-tabs.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-tabs' );
}if(!wp_style_is('wd-team-member')){
wp_register_style( 'wd-team-member', WOODMART_THEME_DIR.'/css/parts/el-team-member.min.css', array() ,ezTOC::VERSION);
wp_enqueue_style( 'wd-team-member' );
}
}
}
add_action('wp_enqueue_scripts', 'ez_toc_woodmart_gallery_fix');/**
* Ad inserter plugin compatibility
* url : https://wordpress.org/plugins/ad-inserter/
* When toc shortcode being added inside ad inserter block, it runs infinite loop. Below code is the solution for it.
* @since 2.0.62
* return boolean
*/
add_filter('ez_toc_apply_filter_status_manually', 'ez_toc_adinserter_block_has_toc_shortcode',10,1);function ez_toc_adinserter_block_has_toc_shortcode($status){
if ( in_array( 'ad-inserter/ad-inserter.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
global $block_object;
for ($block = 0; $block <= 96; $block ++) {
if(isset($block_object [$block])){
$obj = $block_object [$block];
if(is_object($obj) && is_array($obj->wp_options)){
if(has_shortcode( $obj->wp_options['code'] , 'ez-toc' ) || has_shortcode( $obj->wp_options['code'] , 'toc' )){
$status = false;
break;
}
}
}
}}
return $status;
}/**
* Current Year, Symbols and IP Shortcode compatibility
* shortcode were not being parse for heading title in elementor
* plugin url : https://wordpress.org/plugins/current-year-shortcode/
* @since 2.0.62
*/
add_filter('ez_toc_table_heading_title_anchor', 'ez_toc_parse_curreny_year_shortcode',10,1);
add_filter('ez_toc_content_heading_title', 'ez_toc_parse_curreny_year_shortcode',10,1);
add_filter('ez_toc_content_heading_title_anchor', 'ez_toc_parse_curreny_year_shortcode',10,1);function ez_toc_parse_curreny_year_shortcode($content){
if ( in_array( 'current-year-shortcode/year-kgm.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) )) {
$content = do_shortcode($content);
}
return $content;
}/** Pressbook theme Compatiblity
* @since 2.0.63
* @param bool $status The current status of applying the TOC filter.
* @return bool The updated status of applying the TOC filter.
*/
add_filter('ez_toc_apply_filter_status_manually', 'ez_toc_press_books_theme_compatibility',10,1);
function ez_toc_press_books_theme_compatibility($status){
if(function_exists('wp_get_theme')){
$active_theme = wp_get_theme();
if(!empty($active_theme) && $active_theme->get( 'Name' ) == 'McLuhan'){
$status = false;
}
}
return $status;
}/**
* Divi Builder Compatibility
* @since 2.0.64
*/
add_filter(
'ez_toc_strip_shortcodes_with_inner_content',
function( $tags_to_remove ) {
$shortcodes = array (
'et_pb_text'
);
$tags_to_remove = array_merge( $tags_to_remove, $shortcodes );
return $tags_to_remove;
});/**
* To fix icon issue in TOC for the woo category page description
* @param mixed $allowed_tags
* @return mixed
*/
function eztoc_woo_category_toc_fix($allowed_tags) {
if( function_exists('is_product_category') && is_product_category() && true == ezTOC_Option::get( 'include_product_category', false)) {
$allowed_tags['svg'] = array(
'width' => true,
'height' => true,
'viewbox' => true,
'xmlns' => true,
'fill' => true,
'stroke' => true,
'style' => true,
'class'=> true
);
$allowed_tags['path'] = array(
'd' => true,
'fill' => true,
'stroke' => true,
);
$allowed_tags['span']['style'] = true;
}return $allowed_tags;
}
add_filter('wp_kses_allowed_html', 'eztoc_woo_category_toc_fix', 10, 2);/*
*Compatibility for Customize Post Categories for WPBakery Page Builder plugin
*@see https://github.com/ahmedkaludi/easy-table-of-contents/issues/843
*//**
* Custom post categories for Customize Post Categories for WPBakery Page Builder plugin
* @param string $content
* @return string
*/
add_filter('ez_toc_modify_process_page_content', 'ez_toc_post_categories_for_wpbakery_page_builder', 10, 1);function ez_toc_post_categories_for_wpbakery_page_builder($content) {
if (function_exists('Vc_Manager') && function_exists('POST_CATEGORY_WPBAKERY_PAGE_BUILDER\plugin_init') && is_category( ) ) {
global $wpdb;
$template_id = ez_toc_wpbakery_get_template_id();
if($template_id){
$content = get_post_field('post_content', $template_id);
}
}
return $content;
}/**
* Start buffer for Customize Post Categories for WPBakery Page Builder plugin
*/
add_action('template_redirect', 'ez_toc_start_buffer_for_wpbakery_category');
function ez_toc_start_buffer_for_wpbakery_category() {
if (function_exists('Vc_Manager') && is_category() && function_exists('POST_CATEGORY_WPBAKERY_PAGE_BUILDER\plugin_init')) {
ob_start('ez_toc_modify_wpbakery_category_template');
}
}/**
* Modify the category template for WPBakery Page Builder with Post Categories plugin
* @param string $buffer
* @return string
*/
function ez_toc_modify_wpbakery_category_template($buffer) {
$template_id =ez_toc_wpbakery_get_template_id();
if($template_id){
$post = ezTOC::get( $template_id );
if($post){
$find = $post->getHeadings();
$replace = $post->getHeadingsWithAnchors();
if ( !empty( $find ) && !empty( $replace ) && !empty( $buffer ) ){
return mb_find_replace($find, $replace, $buffer);
}
}
}return $buffer;
}/**
* Get template id for Customize Post Categories for WPBakery Page Builder plugin
* @return mixed
*/
function ez_toc_wpbakery_get_template_id(){
global $wpdb;
$template_id = false ;
$category_id = get_queried_object_id();
$template_id = get_term_meta($category_id, 'mst_post_cat_template', true);
if( $template_id && $template_id != 'active'){
return $template_id;
}else{
$template_id = $wpdb->get_var( $wpdb->prepare("
SELECT p.ID
FROM {$wpdb->posts} p
INNER JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id
WHERE p.post_type = %s
AND p.post_status = %s
AND pm.meta_key = %s
AND pm.meta_value = %s
LIMIT 1
",
'category_wpb',
'publish',
'mst_active',
'1'
));}return $template_id;
}/**
* Add js backup fix for Customize Post Categories for WPBakery Page Builder plugin
*/
add_action('wp_footer', 'ez_toc_js_to_footer_for_wpbakery_category');
function ez_toc_js_to_footer_for_wpbakery_category() {
$js_fallback_fix = false;if (function_exists('Vc_Manager') && is_category() && function_exists('POST_CATEGORY_WPBAKERY_PAGE_BUILDER\plugin_init')) {
$template_id = ez_toc_wpbakery_get_template_id();
if ($template_id) {
$post = ezTOC::get($template_id);
if ($post) {
$find = $post->getHeadings();
$replace = $post->getHeadingsWithAnchors();
if (!empty($find) && !empty($replace)) {
$js_fallback_fix = '
document.addEventListener("DOMContentLoaded", function () {
function eztocfindAndReplaceContent(findArray, replaceArray) {
if (!Array.isArray(findArray) || !Array.isArray(replaceArray) || findArray.length !== replaceArray.length) {
console.error("The find and replace arrays must be of the same length.");
return;
}let bodyContent = document.body.innerHTML;
findArray.forEach((findText, index) => {
const replaceText = replaceArray[index];
const regex = new RegExp(findText, "g");
bodyContent = bodyContent.replace(regex, replaceText);
});document.body.innerHTML = bodyContent;
}const findArray = ' . wp_json_encode($find) . ';
const replaceArray = ' . wp_json_encode($replace) . ';
eztocfindAndReplaceContent(findArray, replaceArray);
});
';
}
}
}
} elseif (class_exists('Publisher') && is_singular()) {
$post = ezTOC::get(get_the_ID());
if ($post) {
$find = $post->getHeadings();
$replace = $post->getHeadingsWithAnchors();
if (!empty($find)) {
$js_fallback_fix = '
document.addEventListener("DOMContentLoaded", function () {function eztocExtractHeadingTexts(inputArray) {
return inputArray.map((input) => {
if (input.length <= 6) {
return "";
}
return input.substring(1, input.length - 5);
});
}
function eztocStripTags(input) {
return input.replace(/<[^>]*>.*?<\/[^>]*>/gis, \'\');
}const findArray = eztocExtractHeadingTexts(' . wp_json_encode($find) . ');
const replaceArray = eztocExtractHeadingTexts(' . wp_json_encode($replace) . ');
const elements = document.querySelectorAll(\'h1:not(:has(span.ez-toc-section)), h2:not(:has(span.ez-toc-section)), h3:not(:has(span.ez-toc-section)), h4:not(:has(span.ez-toc-section)), h5:not(:has(span.ez-toc-section)), h6:not(:has(span.ez-toc-section))\');
if(elements.length){
elements.forEach(function(item, index){
let heading_inner = item.innerHTML;
let heading_txt = eztocStripTags(heading_inner);
const find_index = findArray.indexOf(heading_txt.trim());
if (find_index !== -1){
heading_inner = heading_inner.replace(findArray[find_index],replaceArray[find_index]);
item.innerHTML = heading_inner;
}
});
}});
';
}
}
}if ($js_fallback_fix) {
?>
أبريل 10, 2024 - شركة admsco
التجاوز إلى المحتوى
افضل شركة صبغ في الشارقة 0551615724 نحن نفخر بأنفسنا على أننا واحدة من أفضل شركة صبغ في الشارقة.0551615724 لدينا سمعة ممتازة في تقديم خدمات صبغ عالية الجودة وفقًا لأعلى المعايير المهنية. فريقنا مؤهل ومدرب بشكل جيد، ويستخدم أحدث التقنيات والمعدات لضمان تنفيذ العمل بدقة وفعالية. ما يميزنا عن الشركات الأخره عندما تختارنا كشركة صبغ لمشروعك، فإننا نضمن لك الحصول على نتائج مذهلة. نحن نعمل بشكل وثيق معك لفهم رؤيتك واحتياجاتك، ونوفر لك الاستشارة المهنية والإرشاد لاختيار الألوان المناسبة والتشطيبات الملائمة. سواء كنت ترغب في ألوان زاهية ومبهجة أو ألوان هادئة ومريحة، فإننا نقدم لك مجموعة واسعة من الخيارات لتلبية ذوقك وتفضيلاتك. بغض النظر عن حجم مشروعك، فإننا نهتم بكل التفاصيل الصغيرة لضمان تنفيذ العمل بدقة واحترافية. نحن نستخدم مواد ذات جودة عالية وطلاءات متينة لضمان…
شركة صبغ في دبي0551615724خصم 40% بالإضافة إلى ذلك، نحن نقدم مجموعة واسعة من الخدمات في مجال الصبغ. سواء كنت ترغب في تغيير لون الجدران الداخلية أو الخارجية، أو تجديد الدهانات القديمة، أو إضافة تأثيرات خاصة مثل الجص المغربي أو الديكورات الجدارية، فإننا نستطيع تلبية جميع احتياجاتك وتحويل أي مساحة إلى عمل فني رائع. أهمية الصبغ والدهانات نحن نفهم أهمية اللون والتصميم في خلق جو مناسب للمكان، ولذلك نقدم استشارات مجانية لعملائنا. سيقوم فريقنا المتخصص بمساعدتك في اختيار الألوان المناسبة وتصميم الديكور الذي يعكس ذوقك الشخصي ويناسب أسلوب حياتك. بغض النظر عن حجم المشروع، فإننا نضمن لك تجربة ممتعة وسهلة. سنقوم بتنظيف المكان قبل البدء في العمل، ونلتزم بالانتهاء في الوقت المحدد وبأعلى مستويات الجودة. كما أننا نقدم خدمات ما بعد البيع، حيث سنكون في تواصل…
شركة جلي وتلميع الرخام شركتنا تعلم وتفهم أهمية الرخام في تصميم المباني والديكورات الداخلية، ولذلك نحرص على تقديم خدماتنا بأعلى مستوى من الجودة والاحترافية. نحن نستخدم أحدث التقنيات والأدوات في عمليات جلي وتلميع الرخام، مما يضمن لك الحصول على نتائج مذهلة ومبهرة. وعالية الجودة عندما تختار شركتنا لخدمات جلي وتلميع الرخام، فإنك تضمن أن يتم التعامل مع رخامك بعناية وحرفية عالية. نحن نفهم أن كل قطعة رخام فريدة من نوعها وتحتاج إلى معاملة خاصة لتحقيق أفضل النتائج. بغض النظر عن حجم المشروع الخاص بك، سواء كانت تلميع أرضية رخامية كبيرة أو تنظيف جدران رخامية صغيرة، فإننا نقدم لك خدماتنا بأقصى درجات الاحترافية والجودة. نحن نعمل على إزالة الخدوش والبقع والأوساخ من سطح الرخام، ونقدم لها لمعانًا رائعًا يعزز جمالها الطبيعي. شركة تنظيف وتلميع الرخام بالإضافة…
تجديد وترميم الحمامات الحمام هو واحد من أهم الأماكن في المنزل، فهو المكان الذي نستخدمه للاسترخاء والاستمتاع بوقتنا الخاص. ومع مرور الوقت، قد يصبح الحمام قديمًا ومتهالكًا، مما يؤثر على جمالية المكان ويقلل من متعته. لذا، فإن تجديد وترميم الحمامات يعد خيارًا رائعًا لإعطاء روح جديدة لمساحة الاستحمام الخاصة بك. أهمية تجديد الحمامات تجديد الحمامات له العديد من الفوائد، فهو يساعد في تحسين جودة الحياة اليومية ويضيف لمسة من الأناقة والفخامة إلى المنزل. وإليك بعض الأسباب التي تجعل تجديد الحمامات ضروريًا: 1. تحسين الجمالية والمظهر العام عندما يكون الحمام قديمًا ومتهالكًا، فإنه يفقد جاذبيته ويصبح غير جذاب. بفضل تكسير وتجديد وترميم الحمامات، يمكنك تحويله من مكان عادي إلى مساحة جميلة ومريحة. يمكنك تركيب بورسلان جديد وتغيير ألوان الجدران والأرضيات لتناسب ذوقك الشخصي وتحقيق المظهر الذي…