/** * shortcode to include ads in frontend * * @since 0.9.4 * @param array $atts */ function quads_shortcode_display_ad($atts) { if (!quads_ad_is_allowed()) { return; } //return quads_check_meta_setting('NoAds'); if (quads_check_meta_setting('NoAds') === '1') { return; } $id = isset($atts['id']) ? (int) $atts['id'] : 0; return quads_get_ad($id); }
/** * Whether a registered ad location has an ad assigned to it. * * @param string $location Location id * @return bool */ function quads_has_ad($location) { global $quads_options; $result = false; $location_settings = quads_get_ad_location_settings($location); if ($location_settings['status'] && !empty($location_settings['ad'])) { $result = true; } if (!quads_ad_is_allowed() || quads_ad_reach_max_count()) { $result = false; } /** * Filter whether an ad is assigned to the specified location. */ return apply_filters('quads_has_ad', $result, $location); }
/** * Main processing for the_content filter * * @global arr $quads_options all plugin settings * @global int $ShownAds number of active content ads (reseted internally so we have to use a similar global below for external purposes: $ad_count_content) * @global arr $AdsId Whitespace trimmed array of ad codes * @global int $numberWidgets number of ad widgets * @global int $numberAds number of ads * @global string $AdsWidName name of widget * @global int $ad_count_content number of active content ads * @global int $ad_count_shortcode number of active shortcode ads * @param string $content * * @return string * * @since 0.9.0 */ function quads_process_content($content) { global $quads_options, $ShownAds, $AdsId, $numberWidgets, $numberAds, $AdsWidName, $ad_count_content, $ad_count_shortcode; // Return original content if QUADS is not allowed if (!quads_ad_is_allowed($content)) { $content = quads_clean_tags($content); return $content; } $AdsToShow = $quads_options['maxads']; if (strpos($content, '<!--OffWidget-->') === false) { for ($i = 1; $i <= $numberWidgets; $i++) { $wadsid = sanitize_title(str_replace(array('(', ')'), '', sprintf($AdsWidName, $i))); $AdsToShow -= is_active_widget('', '', $wadsid) ? 1 : 0; } } if ($ShownAds + $ad_count_shortcode >= $AdsToShow) { // ShownAds === 0 or larger/equal than $AdsToShow $content = quads_clean_tags($content); return $content; } // remove whitespaces at beginning and end of all ad codes if (count($AdsId) === 0) { // for ($i = 1; $i <= $numberAds; $i++) { $tmp = trim($quads_options['ad' . $i]['code']); if (!empty($tmp)) { $AdsId[] = $i; } } } // Ad code array is empty so break here if (count($AdsId) === 0) { $content = quads_clean_tags($content); return $content; } /* ... Tidy up content ... */ $content = str_replace("<p></p>", "##QA-TP1##", $content); $content = str_replace("<p> </p>", "##QA-TP2##", $content); $offdef = strpos($content, '<!--OffDef-->') !== false; if (!$offdef) { $AdsIdCus = array(); $cusads = 'CusAds'; $cusrnd = 'CusRnd'; $begn1 = isset($quads_options['pos1']['BegnAds']) ? true : false; $begn2 = isset($quads_options['pos1']['BegnRnd']) ? $quads_options['pos1']['BegnRnd'] : 0; $midd1 = isset($quads_options['pos2']['MiddAds']) ? true : false; $midd2 = isset($quads_options['pos2']['MiddRnd']) ? $quads_options['pos2']['MiddRnd'] : 0; $endi1 = isset($quads_options['pos3']['EndiAds']) ? true : false; $endi2 = isset($quads_options['pos3']['EndiRnd']) ? $quads_options['pos3']['EndiRnd'] : 0; $more1 = isset($quads_options['pos4']['MoreAds']) ? true : false; $more2 = isset($quads_options['pos4']['MoreRnd']) ? $quads_options['pos4']['MoreRnd'] : 0; $lapa1 = isset($quads_options['pos5']['LapaAds']) ? true : false; $lapa2 = isset($quads_options['pos5']['LapaRnd']) ? $quads_options['pos5']['LapaRnd'] : 0; $rc = 3; $default = 5; for ($i = 1; $i <= $rc; $i++) { $key = $default + $i; // 6;7;8 $para1[$i] = isset($quads_options['pos' . $key]['Par' . $i . 'Ads']) ? $quads_options['pos' . $key]['Par' . $i . 'Ads'] : 0; $para2[$i] = isset($quads_options['pos' . $key]['Par' . $i . 'Rnd']) ? $quads_options['pos' . $key]['Par' . $i . 'Rnd'] : 0; $para3[$i] = isset($quads_options['pos' . $key]['Par' . $i . 'Nup']) ? $quads_options['pos' . $key]['Par' . $i . 'Nup'] : 0; $para4[$i] = isset($quads_options['pos' . $key]['Par' . $i . 'Con']) ? $quads_options['pos' . $key]['Par' . $i . 'Con'] : 0; } $imageActive = isset($quads_options['pos9']['Img1Ads']) ? $quads_options['pos9']['Img1Ads'] : false; $imageAdNo = isset($quads_options['pos9']['Img1Rnd']) ? $quads_options['pos9']['Img1Rnd'] : false; $imageNo = isset($quads_options['pos9']['Img1Nup']) ? $quads_options['pos9']['Img1Nup'] : false; $imageCaption = isset($quads_options['pos9']['Img1Con']) ? $quads_options['pos9']['Img1Con'] : false; if ($begn2 == 0) { $b1 = $cusrnd; } else { $b1 = $cusads . $begn2; array_push($AdsIdCus, $begn2); } if ($more2 == 0) { $r1 = $cusrnd; } else { $r1 = $cusads . $more2; array_push($AdsIdCus, $more2); } if ($midd2 == 0) { $m1 = $cusrnd; } else { $m1 = $cusads . $midd2; array_push($AdsIdCus, $midd2); } if ($lapa2 == 0) { $g1 = $cusrnd; } else { $g1 = $cusads . $lapa2; array_push($AdsIdCus, $lapa2); } if ($endi2 == 0) { $b2 = $cusrnd; } else { $b2 = $cusads . $endi2; array_push($AdsIdCus, $endi2); } for ($i = 1; $i <= $rc; $i++) { if ($para2[$i] == 0) { $b3[$i] = $cusrnd; } else { $b3[$i] = $cusads . $para2[$i]; array_push($AdsIdCus, $para2[$i]); } } // Check if image ad is random one if ($imageAdNo == 0) { $b4 = $cusrnd; } else { $b4 = $cusads . $imageAdNo; array_push($AdsIdCus, $imageAdNo); } // Check if image ad is middle one if ($midd1 && strpos($content, '<!--OffMiddle-->') === false) { if (substr_count(strtolower($content), '</p>') >= 2) { $sch = "</p>"; $content = str_replace("</P>", $sch, $content); $arr = explode($sch, $content); $nn = 0; $mm = strlen($content) / 2; for ($i = 0; $i < count($arr); $i++) { $nn += strlen($arr[$i]) + 4; if ($nn > $mm) { if ($mm - ($nn - strlen($arr[$i])) > $nn - $mm && $i + 1 < count($arr)) { $arr[$i + 1] = '<!--' . $m1 . '-->' . $arr[$i + 1]; } else { $arr[$i] = '<!--' . $m1 . '-->' . $arr[$i]; } break; } } $content = implode($sch, $arr); } } // Check if image ad is "More Tag" one if ($more1 && strpos($content, '<!--OffAfMore-->') === false) { $mmr = '<!--' . $r1 . '-->'; $postid = get_the_ID(); $content = str_replace('<span id="more-' . $postid . '"></span>', $mmr, $content); } if ($begn1 && strpos($content, '<!--OffBegin-->') === false) { $content = '<!--' . $b1 . '-->' . $content; } if ($endi1 && strpos($content, '<!--OffEnd-->') === false) { $content = $content . '<!--' . $b2 . '-->'; } if ($lapa1 && strpos($content, '<!--OffBfLastPara-->') === false) { $sch = "<p>"; $content = str_replace("<P>", $sch, $content); $arr = explode($sch, $content); if (count($arr) > 2) { $content = implode($sch, array_slice($arr, 0, count($arr) - 1)) . '<!--' . $g1 . '-->' . $sch . $arr[count($arr) - 1]; } } for ($i = $rc; $i >= 1; $i--) { if ($para1[$i]) { $sch = "</p>"; $content = str_replace("</P>", $sch, $content); $arr = explode($sch, $content); if ((int) $para3[$i] < count($arr)) { $content = implode($sch, array_slice($arr, 0, $para3[$i])) . $sch . '<!--' . $b3[$i] . '-->' . implode($sch, array_slice($arr, $para3[$i])); } elseif ($para4[$i]) { $content = implode($sch, $arr) . '<!--' . $b3[$i] . '-->'; } } } if ($imageActive) { // Sanitation $imgtag = "<img"; $delimiter = ">"; $caption = "[/caption]"; $atag = "</a>"; $content = str_replace("<IMG", $imgtag, $content); $content = str_replace("</A>", $atag, $content); // Start $arr = explode($imgtag, $content); if ((int) $imageNo < count($arr)) { $arrImages = explode($delimiter, $arr[$imageNo]); if (count($arrImages) > 1) { $tss = explode($caption, $arr[$imageNo]); $ccp = count($tss) > 1 ? strpos(strtolower($tss[0]), '[caption ') === false : false; $arrAtag = explode($atag, $arr[$imageNo]); $cdu = count($arrAtag) > 1 ? strpos(strtolower($arrAtag[0]), '<a href') === false : false; if ($imageCaption && $ccp) { $arr[$imageNo] = implode($caption, array_slice($tss, 0, 1)) . $caption . "\r\n" . '<!--' . $b4 . '-->' . "\r\n" . implode($caption, array_slice($tss, 1)); } else { if ($cdu) { $arr[$imageNo] = implode($atag, array_slice($arrAtag, 0, 1)) . $atag . "\r\n" . '<!--' . $b4 . '-->' . "\r\n" . implode($atag, array_slice($arrAtag, 1)); } else { $arr[$imageNo] = implode($delimiter, array_slice($arrImages, 0, 1)) . $delimiter . "\r\n" . '<!--' . $b4 . '-->' . "\r\n" . implode($delimiter, array_slice($arrImages, 1)); } } } $content = implode($imgtag, $arr); } } } /* * Tidy up content */ $content = '<!--EmptyClear-->' . $content . "\n" . '<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>'; $content = quads_clean_tags($content, true); /* * Replace Beginning/Middle/End Ads1-10 */ if (!$offdef) { for ($i = 1; $i <= count($AdsIdCus); $i++) { if (strpos($content, '<!--' . $cusads . $AdsIdCus[$i - 1] . '-->') !== false && in_array($AdsIdCus[$i - 1], $AdsId)) { $content = quads_replace_ads($content, $cusads . $AdsIdCus[$i - 1], $AdsIdCus[$i - 1]); $AdsId = quads_del_element($AdsId, array_search($AdsIdCus[$i - 1], $AdsId)); $ShownAds += 1; quads_set_ad_count_content(); if (quads_ad_reach_max_count() || !count($AdsId)) { $content = quads_clean_tags($content); return $content; } /*if( ($ShownAds+$ad_count_shortcode) >= $AdsToShow || !count($AdsId) ){ $content = quads_clean_tags($content); return $content; };*/ } } } /** * Replace Quicktags Ads1 to Ads10 **/ $tcn = count($AdsId); $tt = 0; for ($i = 1; $i <= $tcn; $i++) { if (strpos($content, '<!--Ads' . $AdsId[$tt] . '-->') !== false) { $content = quads_replace_ads($content, 'Ads' . $AdsId[$tt], $AdsId[$tt]); $AdsId = quads_del_element($AdsId, $tt); $ShownAds += 1; quads_set_ad_count_content(); if (quads_ad_reach_max_count() || !count($AdsId)) { $content = quads_clean_tags($content); return $content; } /*if( $ShownAds+$ad_count_shortcode >= $AdsToShow || !count($AdsId) ){ $content = quads_clean_tags($content); return $content; };*/ } else { $tt += 1; } } /* ... Replace Beginning/Middle/End random Ads ... */ if (!$offdef) { if (strpos($content, '<!--' . $cusrnd . '-->') !== false && ($showall || is_singular())) { $tcx = count($AdsId); $tcy = substr_count($content, '<!--' . $cusrnd . '-->'); for ($i = $tcx; $i <= $tcy - 1; $i++) { array_push($AdsId, -1); } shuffle($AdsId); for ($i = 1; $i <= $tcy; $i++) { $content = quads_replace_ads($content, $cusrnd, $AdsId[0]); $AdsId = quads_del_element($AdsId, 0); $ShownAds += 1; quads_set_ad_count_content(); if (quads_ad_reach_max_count() || !count($AdsId)) { $content = quads_clean_tags($content); return $content; } /*if( ($ShownAds+$ad_count_shortcode) >= $AdsToShow || !count($AdsId) ){ $content = quads_clean_tags($content); return $content; };*/ } } } /* * Replace RndAds Random Ads */ if (strpos($content, '<!--RndAds-->') !== false && ($showall || is_singular())) { $AdsIdTmp = array(); shuffle($AdsId); for ($i = 1; $i <= $AdsToShow - $ShownAds; $i++) { if ($i <= count($AdsId)) { array_push($AdsIdTmp, $AdsId[$i - 1]); } } $tcx = count($AdsIdTmp); $tcy = substr_count($content, '<!--RndAds-->'); for ($i = $tcx; $i <= $tcy - 1; $i++) { array_push($AdsIdTmp, -1); } shuffle($AdsIdTmp); for ($i = 1; $i <= $tcy; $i++) { $tmp = $AdsIdTmp[0]; $content = quads_replace_ads($content, 'RndAds', $AdsIdTmp[0]); $AdsIdTmp = quads_del_element($AdsIdTmp, 0); if ($tmp != -1) { $ShownAds += 1; } quads_set_ad_count_content(); if (quads_ad_reach_max_count() || !count($AdsIdTmp)) { $content = quads_clean_tags($content); return $content; } /*if( $ShownAds >= $AdsToShow || !count($AdsIdTmp) ){ $content = clean_tags($content); return $content; };*/ } } //$content = $ad_count; /* ... That's it. DONE :) ... */ $content = quads_clean_tags($content); // Reset ad_count - Important!!! $ad_count_content = 0; return $content; }