public static function getAvailableFastestHashAlgoHasShortest() { $k = 'gavfhahs'; if (!isset(self::$_tempData[$k])) { $tmp = 'crc32'; if (Hash::has_algos('adler32')) { $tmp = 'adler32'; } else { if (Hash::has_algos('fnv132')) { $tmp = 'fnv132'; } else { if (Hash::has_algos('crc32b')) { $tmp = 'crc32b'; } } } self::$_tempData[$k] = $tmp; } return self::$_tempData[$k]; }
public function frequencyOfAppearanceKeywordsInText($keywords, $text) { $classMethodKey = Hash::crc32b(__CLASS__ . '_' . __METHOD__); $keyCache1 = Utils::hashKey(array($classMethodKey, $keywords, $text)); $resultData = TempDataAndCacheFile::get_cache($keyCache1); if (null === $resultData) { $resultData = array(); $text = self::analysisKeyword_PrepareContents($text); $text = explode(' ', $text); $wordsCountInText = array_count_values($text); unset($text); $keywords = $this->_frequencyOfAppearanceKeywordsInText_PrepareKeywords($keywords); foreach ($keywords as $key1 => $value1) { unset($keywords[$key1]); $resultData[$key1] = 0; foreach ($value1 as $key2 => $value2) { if (isset($wordsCountInText[$value2])) { $resultData[$key1] += $wordsCountInText[$value2]; } } if ($resultData[$key1]) { $resultData[$key1] = $resultData[$key1] * strlen($key1) * 2.8; } } TempDataAndCacheFile::set_cache($keyCache1, $resultData); } return $resultData; }
public function create_traffic_module_options($input_parameters = false) { $resultData = array('module' => '', 'module_id' => ''); if (!$input_parameters) { $input_parameters = array(); } $moduleId = ''; if (isset($input_parameters['module_id']) && $input_parameters['module_id']) { $moduleId = $input_parameters['module_id']; } if (!$moduleId) { $moduleId = Hash::crc32b(Utils::randomHash()); } $resultData['module_id'] = $moduleId; if ('traffic_module_sample_id' === $moduleId) { $input_parameters['moduleOptionsData']['enable_thumbnails'] = 'on'; $input_parameters['moduleOptionsData']['enable_items_title'] = 'on'; $input_parameters['moduleOptionsData']['enable_items_excerpt'] = 'on'; $input_parameters['moduleOptionsData']['title_of_module'] = 'Related articles :'; $input_parameters['moduleOptionsData']['enable_open_links_in_new_windows'] = 'on'; } if (!isset($input_parameters['moduleOptionsData']['maximum_number_characters_items_title'])) { $input_parameters['moduleOptionsData']['maximum_number_characters_items_title'] = '60'; } if (!isset($input_parameters['moduleOptionsData']['maximum_number_characters_items_excerpt'])) { $input_parameters['moduleOptionsData']['maximum_number_characters_items_excerpt'] = '120'; } $resultData['module'] .= ' <div id="' . $moduleId . '" class="wppepvn_green_block optimize_traffic_module_container"> <h5 class="optimize_traffic_module_container_head">Traffic Module - ID : <span>' . $moduleId . '</span> - <a href="#" class="optimize_traffic_module_button_remove">Remove Module</a> - <a href="#" style="font-size: 80%;" class="optimize_traffic_module_button_minimize_maximize">Minimize/Maximize</a></h5> <input type="hidden" name="optimize_traffic_modules[' . $moduleId . '][module_id]" value="' . $moduleId . '" /> <div class="optimize_traffic_module_container_body"> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">Module Type</span> : <select name="optimize_traffic_modules[' . $moduleId . '][module_type]" style="width: 200px;margin-left: 2%;"> <option value="fixed" ' . (isset($input_parameters['moduleOptionsData']['module_type']) && 'fixed' === $input_parameters['moduleOptionsData']['module_type'] ? ' selected="selected" ' : '') . ' >Fixed</option> <option value="flyout" ' . (isset($input_parameters['moduleOptionsData']['module_type']) && 'flyout' === $input_parameters['moduleOptionsData']['module_type'] ? ' selected="selected" ' : '') . ' >Flyout</option> </select> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>Fixed : ' . __('Module will appear at fixed location as your choice in post\'s content', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> <li>Flyout : ' . __('Module will appear on the right or left of user\'s screen', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">Module Style</span> : <select name="optimize_traffic_modules[' . $moduleId . '][module_style]" style="width: 200px;margin-left: 2%;"> <option value="style_1" ' . (isset($input_parameters['moduleOptionsData']['module_style']) && 'style_1' === $input_parameters['moduleOptionsData']['module_style'] ? ' selected="selected" ' : '') . ' >Style 1</option> <option value="style_2" ' . (isset($input_parameters['moduleOptionsData']['module_style']) && 'style_2' === $input_parameters['moduleOptionsData']['module_style'] ? ' selected="selected" ' : '') . ' >Style 2</option> </select> </h6> </div> <div class="optimize_traffic_module_options postbox wppepvn_hide" style="padding-top: 12px; padding-bottom: 12px;display:none;"> <h6> <span class="optimize_traffic_module_options_tilte">Display Animation Type</span> : <select name="optimize_traffic_modules[' . $moduleId . '][animation_type]" style="width: 200px;margin-left: 2%;"> <option value="slideout">Slideout</option> <option value="fade">Fade</option> </select> </h6> </div> <div class="optimize_traffic_module_options postbox wppepvn_hide" style="padding-top: 12px; padding-bottom: 12px;"> <h6> ' . __('When should the Module appear?', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' </h6> <br /> <h6> <span class="optimize_traffic_module_options_tilte">' . __('When user scroll length of site\'s height', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '(px or %)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][module_appear_when_user_scroll_length]" value="' . (isset($input_parameters['moduleOptionsData']['module_appear_when_user_scroll_length']) ? $input_parameters['moduleOptionsData']['module_appear_when_user_scroll_length'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('When the user scrolls to the location you set, the module will appear.', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> <li>' . __('You can set up the "80%" or "80" (px). All values are based on the height of the site', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> <br /> <h6> <span class="optimize_traffic_module_options_tilte">' . __('When user view for seconds', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][module_appear_when_user_read_for_seconds]" value="' . (isset($input_parameters['moduleOptionsData']['module_appear_when_user_read_for_seconds']) ? $input_parameters['moduleOptionsData']['module_appear_when_user_read_for_seconds'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('When the user access and view your website in number of seconds, the module will appear.', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> </div> <div class="optimize_traffic_module_options postbox wppepvn_hide" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">Margin bottom (px)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][module_margin_bottom]" value="' . (isset($input_parameters['moduleOptionsData']['module_margin_bottom']) ? $input_parameters['moduleOptionsData']['module_margin_bottom'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> <h6> <span class="optimize_traffic_module_options_tilte">Margin left (px)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][module_margin_left]" value="' . (isset($input_parameters['moduleOptionsData']['module_margin_left']) ? $input_parameters['moduleOptionsData']['module_margin_left'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> '; $resultData['module'] .= ' <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Position of Module', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <select name="optimize_traffic_modules[' . $moduleId . '][module_position]" style="width: 200px;margin-left: 2%;" pepvn_data_val="' . (isset($input_parameters['moduleOptionsData']['module_position']) ? $input_parameters['moduleOptionsData']['module_position'] : '') . '" >'; $resultData['module'] .= ' </select> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('When the position is %, module will appear in post\'s content corresponding to the value you set', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> <li>' . __('When the position is Left/Right, module will appear on Left/Right side of user\'s screen', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Title of Module', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][title_of_module]" value="' . (isset($input_parameters['moduleOptionsData']['title_of_module']) ? $input_parameters['moduleOptionsData']['title_of_module'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">Custom class (CSS) of Module</span> : <input name="optimize_traffic_modules[' . $moduleId . '][custom_class_css_of_module]" value="' . (isset($input_parameters['moduleOptionsData']['custom_class_css_of_module']) ? $input_parameters['moduleOptionsData']['custom_class_css_of_module'] : '') . '" type="text" style="width:300px;margin-left: 2%;" placeholder="Ex : your_custom_class_1 your_custom_class_2" /> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('This option will help you design module according to your wishes through CSS', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> <h6 style="display:none;"> <span class="optimize_traffic_module_options_tilte">Custom ID (CSS) of Module</span> : <input name="optimize_traffic_modules[' . $moduleId . '][custom_id_css_of_module]" type="text" style="width:300px;margin-left: 2%;" placeholder="Ex : your_custom_id" /> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Maximum Number of Items', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <select name="optimize_traffic_modules[' . $moduleId . '][module_mumber_of_items]" style="width: 200px;margin-left: 2%;">'; for ($iOne = 1; $iOne < 11; $iOne++) { $resultData['module'] .= ' <option value="' . $iOne . '" ' . (isset($input_parameters['moduleOptionsData']['module_mumber_of_items']) && $iOne == $input_parameters['moduleOptionsData']['module_mumber_of_items'] ? ' selected="selected" ' : '') . ' >' . $iOne . '</option>'; } $resultData['module'] .= ' </select> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('Maximum number of items (posts) in this module', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">Thumbnails</span> : <input name="optimize_traffic_modules[' . $moduleId . '][enable_thumbnails]" type="checkbox" style="margin-left: 2%;" ' . (isset($input_parameters['moduleOptionsData']['enable_thumbnails']) ? ' checked="checked" ' : '') . ' /> ' . __('Enable Thumbnails', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' </h6> <div class="wppepvn_hide wpoptimizebyxtraffic_enabled_thumbnails"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Default Thumbnail Url (include http:// or https://)', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][default_thumbnail_url]" value="' . (isset($input_parameters['moduleOptionsData']['default_thumbnail_url']) ? $input_parameters['moduleOptionsData']['default_thumbnail_url'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> <span class="wppepvn_help_icon wppepvn_tooltip" title="" data_content="' . base64_encode('<ul> <li>' . __('When the item does not have thumbnail image, plugin will get this image to make an thumbnail', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</li> </ul>') . '"></span> </h6> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Thumbnail Width', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' (px)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][thumbnail_width]" value="' . (isset($input_parameters['moduleOptionsData']['thumbnail_width']) ? (int) $input_parameters['moduleOptionsData']['thumbnail_width'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Thumbnail Height', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' (px)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][thumbnail_height]" value="' . (isset($input_parameters['moduleOptionsData']['thumbnail_height']) ? (int) $input_parameters['moduleOptionsData']['thumbnail_height'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Maximum width of each item?', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' (px)</span> : <input name="optimize_traffic_modules[' . $moduleId . '][maximum_width_each_item]" value="' . (isset($input_parameters['moduleOptionsData']['maximum_width_each_item']) ? (int) $input_parameters['moduleOptionsData']['maximum_width_each_item'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Items\'s Title', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][enable_items_title]" type="checkbox" style="margin-left: 2%;" ' . (isset($input_parameters['moduleOptionsData']['enable_items_title']) ? ' checked="checked" ' : '') . ' /> Enable Items\'s Title </h6> <div class="wppepvn_hide wpoptimizebyxtraffic_enabled_items_title"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Maximum number of characters for items\'s title?', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][maximum_number_characters_items_title]" value="' . (isset($input_parameters['moduleOptionsData']['maximum_number_characters_items_title']) ? (int) $input_parameters['moduleOptionsData']['maximum_number_characters_items_title'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Items\'s Excerpt', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][enable_items_excerpt]" type="checkbox" style="margin-left: 2%;" ' . (isset($input_parameters['moduleOptionsData']['enable_items_excerpt']) ? ' checked="checked" ' : '') . ' /> ' . __('Enable Items\'s Excerpt', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' </h6> <div class="wppepvn_hide wpoptimizebyxtraffic_enabled_items_excerpt"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Maximum number of characters for items\'s excerpt?', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][maximum_number_characters_items_excerpt]" value="' . (isset($input_parameters['moduleOptionsData']['maximum_number_characters_items_excerpt']) ? (int) $input_parameters['moduleOptionsData']['maximum_number_characters_items_excerpt'] : '') . '" type="text" style="width:300px;margin-left: 2%;" /> </h6> </div> </div> <div class="optimize_traffic_module_options postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Open Links In New Window', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</span> : <input name="optimize_traffic_modules[' . $moduleId . '][enable_open_links_in_new_windows]" type="checkbox" style="margin-left: 2%;" ' . (isset($input_parameters['moduleOptionsData']['enable_open_links_in_new_windows']) ? ' checked="checked" ' : '') . ' /> ' . __('Enable Open Links In New Window', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' </h6> </div> <div class="optimize_traffic_module_options optimize_traffic_module_preview_container postbox" style="padding-top: 12px; padding-bottom: 12px;"> <h6> <span class="optimize_traffic_module_options_tilte">' . __('Preview Module', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . ' ( <a href="#" class="optimize_traffic_module_preview_button_show_me"><b>' . __('Show me', WP_OPTIMIZE_BY_XTRAFFIC_PLUGIN_SLUG) . '</b></a> )</span> : </h6> <div class="optimize_traffic_module_preview postbox" style="padding: 12px;margin-top: 26px;"> </div> </div> </div> </div> '; return $resultData; }
public static function parse_load_html_scripts_by_tag($input_parameters) { $resultData = ''; if (isset($input_parameters['url']) || isset($input_parameters['code'])) { if (isset($input_parameters['url'])) { $input_parameters['url'] = self::removeProtocolUrl($input_parameters['url']); if (!isset($input_parameters['id'])) { $input_parameters['id'] = Hash::crc32b($input_parameters['url']); } } else { if (isset($input_parameters['code'])) { if (!isset($input_parameters['id'])) { $input_parameters['id'] = Hash::crc32b(md5($input_parameters['code'])); } } } $loaderId = Hash::crc32b($input_parameters['id'] . '_loader'); $loadTimeDelay = 5; if ('js' === $input_parameters['type']) { $loadTimeDelay = 5; } else { if (!isset($input_parameters['media'])) { $input_parameters['media'] = 'all'; } } $loadTimeDelay = (int) $loadTimeDelay; if ($loadTimeDelay < 1) { $loadTimeDelay = 1; } if ('js' === $input_parameters['load_by']) { if ('js' === $input_parameters['type']) { $resultData = ' <script data-cfasync="false" language="javascript" type="text/javascript" id="' . $loaderId . '" defer async> /*<![CDATA[*/ setTimeout(function() { (function(e) { var t, n, r, s, i = "' . $input_parameters['id'] . '"; if(e.getElementById(i)) { return 0; } t = document.location.protocol; if(-1 !== t.indexOf("https")) { n = "https:"; } else { n = "http:"; } r = e.createElement("script"); r.setAttribute("data-cfasync","false"); r.id = i; r.setAttribute("language","javascript"); r.setAttribute("type","text/javascript"); r.async = true; r.src = n + "//' . $input_parameters['url'] . '"; s = e.getElementById("' . $loaderId . '"); s.parentNode.insertBefore(r, s); s.parentNode.removeChild(s); })(document); }, ' . $loadTimeDelay . '); /*]]>*/ </script> '; } else { if ('css' === $input_parameters['type']) { if (!isset($input_parameters['append_to'])) { $input_parameters['append_to'] = 'head'; } if ('head' === $input_parameters['append_to']) { $resultData = ' <script language="javascript" type="text/javascript" id="' . $loaderId . '" defer async> /*<![CDATA[*/ setTimeout(function() { (function(e) { var t, n, r, s, hd = document.getElementsByTagName("head")[0], i = "' . $input_parameters['id'] . '"; if(e.getElementById(i)) { return 0; } t = document.location.protocol; if(-1 !== t.indexOf("https")) { n = "https:"; } else { n = "http:"; } r = e.createElement("link"); r.id = i; r.setAttribute("rel","stylesheet"); r.setAttribute("type","text/css"); r.setAttribute("media","' . $input_parameters['media'] . '"); r.async = true; r.href = n + "//' . $input_parameters['url'] . '"; hd.appendChild(r); s = e.getElementById("' . $loaderId . '"); s.parentNode.removeChild(s); })(document); }, ' . (1 * $loadTimeDelay + 2) . '); /*]]>*/ </script> '; } else { $resultData = ' <script language="javascript" type="text/javascript" id="' . $loaderId . '"> /*<![CDATA[*/ setTimeout(function() { (function(e) { var t, n, r, s, i = "' . $input_parameters['id'] . '"; if(e.getElementById(i)) { return 0; } t = document.location.protocol; if(-1 !== t.indexOf("https")) { n = "https:"; } else { n = "http:"; } r = e.createElement("link"); r.id = i; r.setAttribute("rel","stylesheet"); r.setAttribute("type","text/css"); r.setAttribute("media","' . $input_parameters['media'] . '"); r.async = true; r.href = n + "//' . $input_parameters['url'] . '"; s = e.getElementById("' . $loaderId . '"); s.parentNode.insertBefore(r, s); s.parentNode.removeChild(s); })(document); }, ' . $loadTimeDelay . '); /*]]>*/ </script> '; } } } } else { if ('div_tag' === $input_parameters['load_by'] || 'js_data' === $input_parameters['load_by']) { $configs = array('delay' => $loadTimeDelay, 'loader_id' => $loaderId, 'id' => $input_parameters['id'], 'type' => $input_parameters['type']); if (isset($input_parameters['url'])) { $configs['url'] = $input_parameters['url']; } else { if (isset($input_parameters['code'])) { $configs['code'] = $input_parameters['code']; } } if (isset($input_parameters['media'])) { $configs['media'] = $input_parameters['media']; } if ('div_tag' === $input_parameters['load_by']) { $resultData = ' <div class="wp-optimize-speed-by-xtraffic-loader-data-' . $input_parameters['type'] . '" id="' . $loaderId . '" data-pepvn-configs="' . Utils::encodeVar($configs) . '" style="display:none;"></div> '; } else { if ('js_data' === $input_parameters['load_by']) { $keyStoreJs = 'window.wppepvnloaderdata' . $input_parameters['type']; $resultData = ' <script language="javascript" type="text/javascript" id="' . $loaderId . '"> if(typeof(' . $keyStoreJs . ') === "undefined") { ' . $keyStoreJs . ' = new Array(); } ' . $keyStoreJs . '.push("' . Utils::encodeVar($configs) . '"); </script> '; } } } } } return $resultData; }
public function process_text($text) { $options = self::getOption(); $classMethodKey = Hash::crc32b(__CLASS__ . '_' . __METHOD__); $textChecksum = Utils::hashKey($text); $keyCacheProcessText = Utils::hashKey(array($classMethodKey, $textChecksum, 'keyCacheProcessText', $options)); $tmp = TempDataAndCacheFile::get_cache($keyCacheProcessText, true); if (null !== $tmp) { return $tmp; } global $post; $wpExtend = $this->di->getShared('wpExtend'); $analyzeText = $this->di->getShared('analyzeText'); $rsGetTerms = $wpExtend->getTermsByPostId($post->ID); $autolinks_case_sensitive = false; if (isset($options['autolinks_case_sensitive']) && 'on' === $options['autolinks_case_sensitive']) { $autolinks_case_sensitive = true; } $maxlinks = (int) $options['maxlinks']; if ($maxlinks < 0) { $maxlinks = 0; } $currentPostId = 0; if (isset($post->ID) && $post->ID) { $currentPostId = (int) $post->ID; } $currentPostType = ''; if (isset($post->post_type) && $post->post_type) { $currentPostType = $post->post_type; } $patternsEscaped = array(); $rsOne = PepVN_Data::escapeHtmlTagsAndContents($text, 'a;pre;script;style;link;meta;input;textarea;iframe;video;audio;object'); $text = $rsOne['content']; if (!empty($rsOne['patterns'])) { $patternsEscaped = array_merge($patternsEscaped, $rsOne['patterns']); } unset($rsOne); if (isset($options['exclude_heading']) && 'on' === $options['exclude_heading']) { //escape a and h1 -> h6 $rsOne = PepVN_Data::escapeHtmlTagsAndContents($text, 'a;h1;h2;h3;h4;h5;h6'); $text = $rsOne['content']; if (!empty($rsOne['patterns'])) { $patternsEscaped = array_merge($patternsEscaped, $rsOne['patterns']); } unset($rsOne); } $rsOne = PepVN_Data::escapeHtmlTags($text); $text = $rsOne['content']; if (!empty($rsOne['patterns'])) { $patternsEscaped = array_merge($patternsEscaped, $rsOne['patterns']); } unset($rsOne); $text = ' ' . trim($text) . ' '; $group_keywords1 = $this->_get_data_custom_keywords(); $numberTotalLinksAdded = 0; $targetPostTypesForSearch = array('post', 'page'); if ($group_keywords1) { if (!empty($group_keywords1)) { //calculate weights of keywords $group_keywords2 = array_keys($group_keywords1); if (!$autolinks_case_sensitive) { $group_keywords2 = implode(';', $group_keywords2); $group_keywords2 = PepVN_Data::strtolower($group_keywords2); $group_keywords2 = $analyzeText->frequencyOfAppearanceKeywordsInText($group_keywords2, PepVN_Data::strtolower($text)); } else { $group_keywords2 = implode(';', $group_keywords2); $group_keywords2 = $analyzeText->frequencyOfAppearanceKeywordsInText($group_keywords2, $text); } if (!empty($group_keywords2)) { arsort($group_keywords2); $numberTotalLinks = 0; foreach ($group_keywords2 as $key1 => $value1) { if ($maxlinks > 0) { if ($numberTotalLinksAdded >= $maxlinks) { break; } } $targetKeywordClean = PepVN_Data::strtolower(PepVN_Data::cleanKeyword($key1)); $checkStatus1 = false; $targetLink1 = false; if (isset($group_keywords1[$key1])) { $targetLink2 = false; $targetLinkTitle2 = false; if ($group_keywords1[$key1] && !empty($group_keywords1[$key1])) { $targetLinks1 = $group_keywords1[$key1]; if (!empty($targetLinks1)) { shuffle($targetLinks1); foreach ($targetLinks1 as $key2 => $value2) { $value2 = trim($value2); if ($value2) { if (!isset(PepVN_Data::$cacheData[$classMethodKey]['linksAdded'][$value2])) { $targetLink2 = $value2; $targetLinkTitle2 = $key1; break; } } } } } if (!$targetLink2) { if ($targetPostTypesForSearch && !empty($targetPostTypesForSearch)) { $rsTwo = $analyzeText->search_posts(array('keyword' => $key1, 'post_types' => $targetPostTypesForSearch)); foreach ($rsTwo as $keyTwo => $valueTwo) { unset($rsTwo[$keyTwo]); $checkStatus2 = false; if ($valueTwo['post_id'] != $currentPostId) { $checkStatus2 = true; } else { if ($currentPostType === 'post') { if ('on' === $options['link_to_postself']) { $checkStatus2 = true; } } else { if ($currentPostType === 'page') { if ('on' === $options['link_to_pageself']) { $checkStatus2 = true; } } } } if ($checkStatus2) { if (isset(PepVN_Data::$cacheData[$classMethodKey]['linksAdded'][$valueTwo['post_link']])) { $checkStatus2 = false; } } if ($checkStatus2) { $targetLink2 = $valueTwo['post_link']; $targetLinkTitle2 = $valueTwo['post_title']; break; } } unset($rsTwo); } } if ($targetLink2) { $patterns2 = '#([\\s ,;\\.\\t]+)(' . Utils::preg_quote($key1) . ')([\\s ,;\\.\\t]+)#'; if (!$autolinks_case_sensitive) { $patterns2 .= 'i'; } $replace2 = '\\1<a href="' . $targetLink2 . '" ' . ('on' === $options['autolinks_new_window'] ? ' target="_bank" ' : '') . ' title="'; if ($targetLinkTitle2) { $targetLinkTitle2 = PepVN_Data::cleanKeyword($targetLinkTitle2); } if ($targetLinkTitle2) { $replace2 .= $targetLinkTitle2 . '">'; } else { $replace2 .= '\\2">'; } $replace2 .= '<strong>\\2</strong></a>\\3'; $text = preg_replace($patterns2, $replace2, $text, 1, $count2); $count2 = (int) $count2; if ($count2 > 0) { PepVN_Data::$cacheData[$classMethodKey]['linksAdded'][$targetLink2] = 1; PepVN_Data::$cacheData[$classMethodKey]['keywordsAdded'][$targetKeywordClean] = 1; $rsTwo = PepVN_Data::escapeHtmlTagsAndContents($text, 'a;strong'); $text = $rsTwo['content']; if (!empty($rsTwo['patterns'])) { $patternsEscaped = array_merge($patternsEscaped, $rsTwo['patterns']); } unset($rsTwo); $numberTotalLinksAdded += $count2; if ($maxlinks > 0) { if ($numberTotalLinksAdded >= $maxlinks) { break; } } } } } } } } } if (!empty($patternsEscaped)) { $text = str_replace(array_values($patternsEscaped), array_keys($patternsEscaped), $text); } unset($patternsEscaped); $text = $this->process_attributes_links($text); $text = trim($text); TempDataAndCacheFile::set_cache($keyCacheProcessText, $text, true); return $text; }