コード例 #1
0
ファイル: PepVN_Data.php プロジェクト: Bushzhao/rvbwebsite
    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;
    }
コード例 #2
0
    public function create_traffic_module($input_parameters)
    {
        $keyCache1 = Utils::hashKey(array(__CLASS__ . __METHOD__, $input_parameters));
        $resultData = TempDataAndCacheFile::get_cache($keyCache1);
        if (null !== $resultData) {
            return $resultData;
        }
        $wpExtend = $this->di->getShared('wpExtend');
        global $wpdb;
        $resultData = array('module' => '', 'module_id' => '');
        if (isset($input_parameters['option']['module_id']) && $input_parameters['option']['module_id']) {
            $nsModule = 'wppepvn_module_traffic';
            $resultData['module_id'] = $input_parameters['option']['module_id'];
            $isModuleNoText = true;
            if (isset($input_parameters['option']['enable_items_title']) && $input_parameters['option']['enable_items_title']) {
                $isModuleNoText = false;
            }
            if (isset($input_parameters['option']['enable_items_excerpt']) && $input_parameters['option']['enable_items_excerpt']) {
                $isModuleNoText = false;
            }
            if ($isModuleNoText) {
                $input_parameters['option']['module_style'] = 'style_2';
            }
            if (!isset($input_parameters['option']['title_of_module'])) {
                $input_parameters['option']['title_of_module'] = '';
                //Related article
            }
            if (!isset($input_parameters['option']['custom_class_css_of_module'])) {
                $input_parameters['option']['custom_class_css_of_module'] = '';
            }
            if (!isset($input_parameters['option']['custom_id_css_of_module'])) {
                $input_parameters['option']['custom_id_css_of_module'] = '';
            }
            if (!isset($input_parameters['option']['module_type'])) {
                $input_parameters['option']['module_type'] = 'fixed';
            }
            if (!isset($input_parameters['option']['module_mumber_of_items'])) {
                $input_parameters['option']['module_mumber_of_items'] = 1;
            }
            $input_parameters['option']['module_mumber_of_items'] = abs((int) $input_parameters['option']['module_mumber_of_items']);
            if ($input_parameters['option']['module_mumber_of_items'] > 10) {
                $input_parameters['option']['module_mumber_of_items'] = 10;
            } else {
                if ($input_parameters['option']['module_mumber_of_items'] < 1) {
                    $input_parameters['option']['module_mumber_of_items'] = 1;
                }
            }
            if (!isset($input_parameters['option']['thumbnail_width'])) {
                $input_parameters['option']['thumbnail_width'] = 0;
            }
            $input_parameters['option']['thumbnail_width'] = abs((int) $input_parameters['option']['thumbnail_width']);
            if (!isset($input_parameters['option']['thumbnail_height'])) {
                $input_parameters['option']['thumbnail_height'] = 0;
            }
            $input_parameters['option']['thumbnail_height'] = abs((int) $input_parameters['option']['thumbnail_height']);
            if (!isset($input_parameters['option']['maximum_width_each_item'])) {
                $input_parameters['option']['maximum_width_each_item'] = 0;
            }
            $input_parameters['option']['maximum_width_each_item'] = abs((int) $input_parameters['option']['maximum_width_each_item']);
            if (isset($input_parameters['option']['maximum_number_characters_items_title']) && $input_parameters['option']['maximum_number_characters_items_title']) {
            } else {
                $input_parameters['option']['maximum_number_characters_items_title'] = 60;
            }
            $input_parameters['option']['maximum_number_characters_items_title'] = abs((int) $input_parameters['option']['maximum_number_characters_items_title']);
            if (isset($input_parameters['option']['maximum_number_characters_items_excerpt']) && $input_parameters['option']['maximum_number_characters_items_excerpt']) {
            } else {
                $input_parameters['option']['maximum_number_characters_items_excerpt'] = 120;
            }
            $input_parameters['option']['maximum_number_characters_items_excerpt'] = abs((int) $input_parameters['option']['maximum_number_characters_items_excerpt']);
            if (isset($input_parameters['option']['module_appear_when_user_scroll_length']) && $input_parameters['option']['module_appear_when_user_scroll_length']) {
            } else {
                $input_parameters['option']['module_appear_when_user_scroll_length'] = '80%';
            }
            if (isset($input_parameters['option']['module_appear_when_user_read_for_seconds']) && $input_parameters['option']['module_appear_when_user_read_for_seconds']) {
            } else {
                $input_parameters['option']['module_appear_when_user_read_for_seconds'] = 0;
            }
            $input_parameters['option']['module_appear_when_user_read_for_seconds'] = abs((int) $input_parameters['option']['module_appear_when_user_read_for_seconds']);
            if (isset($input_parameters['option']['module_margin_bottom']) && $input_parameters['option']['module_margin_bottom']) {
            } else {
                $input_parameters['option']['module_margin_bottom'] = 0;
            }
            $input_parameters['option']['module_margin_bottom'] = (int) $input_parameters['option']['module_margin_bottom'];
            if (isset($input_parameters['option']['module_margin_left']) && $input_parameters['option']['module_margin_left']) {
            } else {
                $input_parameters['option']['module_margin_left'] = 0;
            }
            $input_parameters['option']['module_margin_left'] = (int) $input_parameters['option']['module_margin_left'];
            if (isset($input_parameters['data']['posts_ids']) && !PepVN_Data::isEmptyArray($input_parameters['data']['posts_ids'])) {
            } else {
                $input_parameters['data']['posts_ids'] = array();
                $queryString1 = '
SELECT ID
FROM `' . $wpdb->posts . '`
WHERE ( ( post_status = "publish") AND ( post_type = "post" ) )
ORDER BY RAND()
LIMIT 0,' . $input_parameters['option']['module_mumber_of_items'];
                $rsOne = $wpdb->get_results($queryString1);
                if ($rsOne && !empty($rsOne)) {
                    foreach ($rsOne as $keyOne => $valueOne) {
                        if ($valueOne) {
                            if (isset($valueOne->ID) && $valueOne->ID) {
                                $input_parameters['data']['posts_ids'][] = $valueOne->ID;
                            }
                        }
                    }
                }
            }
            $input_parameters['data']['posts_ids'] = (array) $input_parameters['data']['posts_ids'];
            $input_parameters['data']['posts_ids'] = array_unique($input_parameters['data']['posts_ids']);
            $moduleDataPlus = array();
            $moduleClassPlus = array();
            $moduleClassPlus[] = $nsModule . '_' . $input_parameters['option']['module_type'];
            $moduleClassPlus[] = $nsModule . '_' . $input_parameters['option']['module_style'];
            $moduleClassPlus[] = $input_parameters['option']['custom_class_css_of_module'];
            if (isset($input_parameters['option']['enable_thumbnails']) && $input_parameters['option']['enable_thumbnails']) {
                $moduleClassPlus[] = $nsModule . '_enable_thumbnails';
            }
            if ('flyout' === $input_parameters['option']['module_type']) {
                if (isset($input_parameters['option']['module_position']) && $input_parameters['option']['module_position']) {
                    $moduleClassPlus[] = $nsModule . '_side_' . $input_parameters['option']['module_position'];
                }
                $moduleClassPlus[] = 'wpoptxtr_shawy';
            }
            $moduleStylePlus = array();
            if ('flyout' === $input_parameters['option']['module_type']) {
                if ('style_1' === $input_parameters['option']['module_style']) {
                    if ($input_parameters['option']['maximum_width_each_item'] > 0) {
                        $valueTemp = $input_parameters['option']['maximum_width_each_item'];
                        $valueTemp = $valueTemp * 1.1;
                        $valueTemp = (int) $valueTemp;
                        $moduleStylePlus[] = 'width:' . $valueTemp . 'px;max-width:' . $valueTemp . 'px;';
                    }
                }
            }
            if (0 != $input_parameters['option']['module_margin_bottom']) {
                $valueTemp = (int) $input_parameters['option']['module_margin_bottom'];
                $moduleStylePlus[] = 'margin-bottom:' . $valueTemp . 'px;';
            }
            if (0 != $input_parameters['option']['module_margin_left']) {
                $valueTemp = (int) $input_parameters['option']['module_margin_left'];
                $moduleStylePlus[] = 'margin-left:' . $valueTemp . 'px;';
            }
            $moduleDataPlus[] = 'pepvn_data_module_appear_when_user_read_for_seconds="' . $input_parameters['option']['module_appear_when_user_read_for_seconds'] . '"';
            $moduleDataPlus[] = 'pepvn_data_module_appear_when_user_scroll_length="' . $input_parameters['option']['module_appear_when_user_scroll_length'] . '"';
            $moduleDataPlus[] = 'pepvn_data_module_position="' . $input_parameters['option']['module_position'] . '"';
            $moduleDataPlus[] = 'pepvn_data_module_id="' . $input_parameters['option']['module_id'] . '"';
            $resultData['module'] .= '
	
			<div class="wppepvn_module_traffic ' . implode(' ', $moduleClassPlus) . '" id="' . $input_parameters['option']['module_id'] . '" pepvn_data_options="' . Utils::encodeVar($input_parameters['option']) . '" style="' . implode(';', $moduleStylePlus) . '" ' . implode(' ', $moduleDataPlus) . ' >';
            if ('flyout' === $input_parameters['option']['module_type']) {
                $resultData['module'] .= '
				<span class="wppepvn_module_traffic_button_show_wrapper"></span>
				
				<span class="wppepvn_module_traffic_button_close"></span>
				';
            }
            $resultData['module'] .= '
				
				<span class="wppepvn_module_traffic_title"><strong>' . $input_parameters['option']['title_of_module'] . '</strong></span>
				
				<ul>';
            foreach ($input_parameters['data']['posts_ids'] as $keyOne => $valueOne) {
                if ($valueOne) {
                    $valueOne = (int) $valueOne;
                    if ($valueOne > 0) {
                        $rsGetPost1 = $wpExtend->getAndParsePostByPostId($valueOne);
                        if ($rsGetPost1) {
                            $rsGetPost1 = (object) $rsGetPost1;
                            if (isset($rsGetPost1->postPermalink) && $rsGetPost1->postPermalink) {
                                $thumbnailUrl1 = '';
                                if (isset($input_parameters['option']['enable_thumbnails']) && $input_parameters['option']['enable_thumbnails']) {
                                    if (isset($input_parameters['option']['default_thumbnail_url']) && $input_parameters['option']['default_thumbnail_url']) {
                                        $thumbnailUrl1 = $input_parameters['option']['default_thumbnail_url'];
                                    }
                                    if (isset($rsGetPost1->postThumbnailUrl) && $rsGetPost1->postThumbnailUrl) {
                                        $thumbnailUrl1 = $rsGetPost1->postThumbnailUrl;
                                    } else {
                                        if (isset($rsGetPost1->postImages) && $rsGetPost1->postImages && !PepVN_Data::isEmptyArray($rsGetPost1->postImages)) {
                                            $postImages1 = $rsGetPost1->postImages;
                                            shuffle($postImages1);
                                            $thumbnailUrl1 = $postImages1[0]['src'];
                                        }
                                    }
                                }
                                $thumbnailUrl1 = trim($thumbnailUrl1);
                                $itemClassPlus = array();
                                if ($thumbnailUrl1) {
                                    $itemClassPlus[] = $nsModule . '_item_has_thumbnail';
                                }
                                $resultData['module'] .= '
					<li class="wppepvn_module_traffic_item ' . implode(' ', $itemClassPlus) . '" style="';
                                if ($input_parameters['option']['maximum_width_each_item'] > 0) {
                                    $resultData['module'] .= 'width:' . $input_parameters['option']['maximum_width_each_item'] . 'px;max-width:' . $input_parameters['option']['maximum_width_each_item'] . 'px;';
                                }
                                $resultData['module'] .= '" >
					
						<a href="' . $rsGetPost1->postPermalink . '" class="wppepvn_module_traffic_item_anchor" ' . (isset($input_parameters['option']['enable_open_links_in_new_windows']) ? ' target="_blank" ' : '') . ' title="' . $rsGetPost1->post_title . '" >';
                                if ($thumbnailUrl1) {
                                    $styleImg1 = '';
                                    if ($input_parameters['option']['thumbnail_width'] > 0) {
                                        $styleImg1 .= 'width:' . $input_parameters['option']['thumbnail_width'] . 'px;max-width:' . $input_parameters['option']['thumbnail_width'] . 'px;';
                                    }
                                    if ($input_parameters['option']['thumbnail_height'] > 0) {
                                        $styleImg1 .= 'height:' . $input_parameters['option']['thumbnail_height'] . 'px;max-height:' . $input_parameters['option']['thumbnail_height'] . 'px;';
                                    }
                                    if ('style_1' === $input_parameters['option']['module_style']) {
                                        $resultData['module'] .= '
							<img class="wppepvn_module_traffic_item_img" src="' . $thumbnailUrl1 . '" style="' . $styleImg1 . '" /> ';
                                    } else {
                                        $resultData['module'] .= '
						<span class="wppepvn_module_traffic_item_img" style="' . $styleImg1 . '" >
							<img src="' . $thumbnailUrl1 . '" style="' . $styleImg1 . '" />
						</span>';
                                    }
                                }
                                $postTitle1 = $rsGetPost1->post_title;
                                $postTitle1 = Text::removeShortcode($postTitle1);
                                if ($input_parameters['option']['maximum_number_characters_items_title'] > 0) {
                                    if (PepVN_Data::mb_strlen($postTitle1) > $input_parameters['option']['maximum_number_characters_items_title']) {
                                        $postTitle1 = PepVN_Data::mb_substr($postTitle1, 0, $input_parameters['option']['maximum_number_characters_items_title']) . '...';
                                    }
                                }
                                $postExcerpt1 = $rsGetPost1->post_excerpt;
                                if (!$postExcerpt1) {
                                    $postExcerpt1 = $rsGetPost1->postContentRawText;
                                    $postExcerpt1 = PepVN_Data::mb_substr($postExcerpt1, 0, 350) . '...';
                                }
                                $postExcerpt1 = Text::removeShortcode($postExcerpt1);
                                if ($input_parameters['option']['maximum_number_characters_items_excerpt'] > 0) {
                                    if (PepVN_Data::mb_strlen($postExcerpt1) > $input_parameters['option']['maximum_number_characters_items_excerpt']) {
                                        $postExcerpt1 = PepVN_Data::mb_substr($postExcerpt1, 0, $input_parameters['option']['maximum_number_characters_items_excerpt']) . '...';
                                    }
                                }
                                if ('style_1' === $input_parameters['option']['module_style']) {
                                    if (isset($input_parameters['option']['enable_items_title']) && $input_parameters['option']['enable_items_title']) {
                                        $resultData['module'] .= '<strong class="wppepvn_module_traffic_item_title">' . $postTitle1 . '</strong>';
                                    }
                                    if (isset($input_parameters['option']['enable_items_excerpt']) && $input_parameters['option']['enable_items_excerpt']) {
                                        if ($postExcerpt1) {
                                            $resultData['module'] .= '<br /><span class="wppepvn_module_traffic_item_excerpt">' . $postExcerpt1 . '</span>';
                                        }
                                    }
                                } else {
                                    $resultData['module'] .= '
						<span class="wppepvn_module_traffic_item_text">';
                                    if (isset($input_parameters['option']['enable_items_title']) && $input_parameters['option']['enable_items_title']) {
                                        $resultData['module'] .= '
							<span class="wppepvn_module_traffic_item_title"><strong>' . $postTitle1 . '</strong></span>';
                                    }
                                    if (isset($input_parameters['option']['enable_items_excerpt']) && $input_parameters['option']['enable_items_excerpt']) {
                                        if ($postExcerpt1) {
                                            $resultData['module'] .= '
							<span class="wppepvn_module_traffic_item_excerpt">' . $postExcerpt1 . '</span>';
                                        }
                                    }
                                    $resultData['module'] .= '
						</span>';
                                }
                                $resultData['module'] .= '
						</a>
					</li>';
                            }
                        }
                    }
                }
            }
            $resultData['module'] .= '
				</ul>
			</div>';
        }
        TempDataAndCacheFile::set_cache($keyCache1, $resultData);
        return $resultData;
    }