uawdijnntqw1x1x1
IP : 216.73.216.109
Hostname : premium160.web-hosting.com
Kernel : Linux premium160.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
batcwwjx
/
.
/
old
/
public_html
/
wp-content
/
themes
/
wpnull24
/
framework
/
templates
/
elements
/
itext.php
/
/
<?php defined( 'ABSPATH' ) OR die( 'This script cannot be accessed directly.' ); /** * Interactive Text */ $classes = ' type_' . $animation_type . ' align_' . $align; if ( $dynamic_bold ) { $classes .= ' dynamic_bold'; } if ( ! empty( $css ) AND function_exists( 'vc_shortcode_custom_css_class' ) ) { $classes .= ' ' . vc_shortcode_custom_css_class( $css ); } $classes .= ( ! empty( $el_class ) ) ? ( ' ' . $el_class ) : ''; $el_id = ( ! empty( $el_id ) ) ? ( ' id="' . esc_attr( $el_id ) . '"' ) : ''; // Allows to use nbsps and other entities $texts = html_entity_decode( $texts ); $texts_arr = explode( "\n", strip_tags( $texts ) ); $js_data = array( 'duration' => intval( $duration ) * 1000, 'delay' => intval( floatval( $delay ) * 1000 ), ); if ( ! empty( $dynamic_color ) ) { $js_data['dynamicColor'] = $dynamic_color; } // Getting words and their delimiters to work on this level of abstraction $_parts = array(); foreach ( $texts_arr as $index => $text ) { preg_match_all( '~[\w\-]+|[^\w\-]+~u', $text, $matches ); $_parts[ $index ] = $matches[0]; } // Getting the whole set of parts with all the intermediate values (part_index => part_states) $groups = array(); foreach ( $_parts[0] as $part ) { $groups[] = array( $part ); } for ( $i_index = count( $_parts ) - 1; $i_index > 0; $i_index -- ) { $f_index = isset( $_parts[ $i_index + 1 ] ) ? ( $i_index + 1 ) : 0; $initial = &$_parts[ $i_index ]; $final = &$_parts[ $f_index ]; // Counting arrays edit distance for the strings parts to find the common parts $dist = array(); for ( $i = 0; $i <= count( $initial ); $i ++ ) { $dist[ $i ] = array( $i ); } for ( $j = 1; $j <= count( $final ); $j ++ ) { $dist[0][ $j ] = $j; for ( $i = 1; $i <= count( $initial ); $i ++ ) { if ( $initial[ $i - 1 ] == $final[ $j - 1 ] ) { $dist[ $i ][ $j ] = $dist[ $i - 1 ][ $j - 1 ]; } else { $dist[ $i ][ $j ] = min( $dist[ $i - 1 ][ $j ], $dist[ $i ][ $j - 1 ], $dist[ $i - 1 ][ $j - 1 ] ) + 1; } } } for ( $i = count( $initial ), $j = count( $final ); $i > 0 OR $j > 0; $i --, $j -- ) { $min = $dist[ $i ][ $j ]; if ( $i > 0 ) { $min = min( $min, $dist[ $i - 1 ][ $j ], ( $j > 0 ) ? $dist[ $i - 1 ][ $j - 1 ] : $min ); } if ( $j > 0 ) { $min = min( $min, $dist[ $i ][ $j - 1 ] ); } if ( $min >= $dist[ $i ][ $j ] ) { $groups[ $j - 1 ][ $i_index ] = $initial[ $i - 1 ]; continue; } if ( $i > 0 AND $j > 0 AND $min == $dist[ $i - 1 ][ $j - 1 ] ) { // Modify $groups[ $j - 1 ][ $i_index ] = $initial[ $i - 1 ]; } elseif ( $j > 0 AND $min == $dist[ $i ][ $j - 1 ] ) { // Remove $groups[ $j - 1 ][ $i_index ] = ''; $i ++; } elseif ( $min == $dist[ $i - 1 ][ $j ] ) { // Insert if ( $j == 0 ) { array_unshift( $groups, '' ); } else { array_splice( $groups, $j, 0, '' ); } $groups[ $j ] = array_fill( 0, count( $_parts ), '' ); $groups[ $j ][ $i_index ] = $initial[ $i - 1 ]; $j ++; } } // Updating final parts $_parts[ $i_index ] = array(); foreach ( $groups as $parts_group ) { $_parts[ $i_index ][] = $parts_group[ $i_index ]; } } // Finding the dynamic parts and their animation indexes $group_changes = array(); $nbsp_char = html_entity_decode( ' ' ); foreach ( $groups as $index => $group ) { $group_changes[ $index ] = array(); for ( $i = 0; $i < count( $_parts ); $i ++ ) { if ( $group[ $i ] != $group[ isset( $group[ $i + 1 ] ) ? ( $i + 1 ) : 0 ] OR $group[ $i ] === '' ) { $group_changes[ $index ][] = $i; } // HTML won't show spans with spaces at all, so replacing them with nbsps // A bit sophisticated check to speed up this frequent action if ( strlen( $group[ $i ] ) AND $group[ $i ][0] == ' ' AND preg_match( '~^ +$~u', $group[ $i ][0] ) ) { $groups[ $index ][ $i ] = str_replace( ' ', $nbsp_char, $group[ $i ] ); } } } // Combining groups that are either static, or are changed at the same time for ( $i = 1; $i < count( $group_changes ); $i ++ ) { if ( $group_changes[ $i - 1 ] == $group_changes[ $i ] ) { // Combining with the previous element foreach ( $groups[ $i - 1 ] AS $index => $part ) { $groups[ $i - 1 ][ $index ] .= $groups[ $i ][ $index ]; } array_splice( $groups, $i, 1 ); array_splice( $group_changes, $i, 1 ); $i --; } } // Generate inline styles $inline_css = us_prepare_inline_css( array( 'font-family' => $font, 'font-weight' => $font_weight, 'text-transform' => $text_transform, 'font-style' => $font_style, 'font-size' => $font_size, 'line-height' => $line_height, 'color' => $color, ), TRUE, $tag ); $responsive_css = ''; if ( ! empty( $font_size_mobiles ) OR ! empty( $line_height_mobiles ) ) { global $us_itext_id; $us_itext_id = isset( $us_itext_id ) ? ( $us_itext_id + 1 ) : 1; $classes .= ' us_itext_' . $us_itext_id; $responsive_css .= '<style>'; $responsive_css .= '@media (max-width: 600px) {.us_itext_' . $us_itext_id . '{'; $responsive_css .= ! empty( $font_size_mobiles ) ? ( 'font-size:' . $font_size_mobiles . '!important;' ) : ''; $responsive_css .= ! empty( $line_height_mobiles ) ? ( 'line-height:' . $line_height_mobiles . '!important;' ) : ''; $responsive_css .= '}}'; $responsive_css .= '</style>'; } // Output the element $output = '<' . $tag . ' class="w-itext' . $classes . '"'; $output .= $el_id . $inline_css; $output .= us_pass_data_to_js( $js_data ); $output .= '>'; foreach ( $groups as $index => $group ) { ksort( $group ); if ( empty( $group_changes[ $index ] ) ) { // Static part $output .= $group[0]; } else { $output .= '<span class="w-itext-part'; // Animation classes (just in case site editor wants some custom styling for them) foreach ( $group_changes[ $index ] as $changesat ) { $output .= ' changesat_' . $changesat; } if ( in_array( '0', $group_changes[ $index ] ) ) { // Highlighting dynamic parts at start $output .= ' dynamic"' . us_prepare_inline_css( array( 'color' => $dynamic_color ) ); } else { $output .= '"'; } $output .= us_pass_data_to_js( $group ) . '>' . preg_replace( '/\s/', ' ', htmlentities( $group[0] ) ) . '</span>'; } } $output .= '</' . $tag . '>'; $output .= $responsive_css; echo $output;
/home/batcwwjx/./old/public_html/wp-content/themes/wpnull24/framework/templates/elements/itext.php