get_list_products( $id, $limit, $randomsort, $product_ids, $parseparams, $itemsPerPage, $filter, $max_num_pages, $found_posts ); return $this->get_list_output2( $outputprds, $id, $template, $content, $buttontype, $elementcss, $containercss, $hidedisclaimer, $tracking_id, $offerstemplate, $imagetemplate, $itemsPerPage, $max_num_pages, $found_posts ); } public function get_list_products( $id, $limit = 10, $randomsort = false, $product_ids = array(), $parseparams = false, $itemsPerPage = 0, $filter = '', &$max_num_pages = 0, &$found_posts = 0 ) { if ( $itemsPerPage <= 0 ) { $itemsPerPage = 25; } if($limit<= 0){ //wenn items per page mitgegeben wurde, dann wird das limit übersteuert $limit = 999; } $productlist = array(); $max_num_pages = 0; $found_posts = 0; if ( $parseparams || $filter != '' ) { //TODO: parameter parsen und productids laden $filterhelper = new atkp_filter_helper(); $productlist = $filterhelper->parse_params_products( $itemsPerPage, $parseparams, $filter, $limit ); $max_num_pages = $filterhelper->max_num_pages; $found_posts = $filterhelper->found_posts; if($limit > 0 && $limit <= $itemsPerPage) { $max_num_pages = 1; } if ( $productlist == null || ! is_array( $productlist ) ) { return $productlist; } } else if ( count( $product_ids ) > 0 ) { foreach ( $product_ids as $productid ) { if ( is_array( $productid ) ) { $productlist[] = $productid; } else { $item = array(); $item['type'] = 'productid'; $item['value'] = $productid; $productlist[] = $item; } } } else { $atkp_listtable_helper = new atkp_listtable_helper(); $selectedshopid = ATKPTools::get_post_setting( $id, ATKP_LIST_POSTTYPE . '_shopid' ); $productlist = $atkp_listtable_helper->load_list( $id, $selectedshopid ); if ( $productlist == null || count( $productlist ) == 0 ) { $productlist = ATKPTools::get_post_setting( $id, ATKP_LIST_POSTTYPE . '_productlist' ); } } $preferlocalproductinfo = ATKPTools::get_post_setting( $id, ATKP_LIST_POSTTYPE . '_preferlocalproduct' ); $outputprds = array(); if ( $productlist != null ) { if ( $randomsort ) { shuffle( $productlist ); } $counter = 0; foreach ( $productlist as $product ) { try { $type = $product['type']; $value = $product['value']; $shop_id = $product['shop_id'] ?? ''; $list_id = $product['list_id'] ?? $id; if ( $value == '' ) { continue; } if ( $counter >= $limit ) { break; } $counter = $counter + 1; switch ( $type ) { case 'product': //nur nach lokalen produkten suchen wenn in der if ( $preferlocalproductinfo ) { $prdfound = atkp_product::loadbyasin( $value->asin ); if ( $prdfound != null ) { $prodcollection = atkp_product_collection::load( $prdfound->productid, $shop_id ); if ( $prodcollection != null ) { $value = $prodcollection->get_main_product( $shop_id ); $value->shopid = $shop_id; $value->listid = $list_id; } else { $value = null; } } } else if ( $value != null ) { $value->listid = $list_id; } break; case 'productid': if ( get_post_status( $value ) == 'publish' || get_post_status( $value ) == 'draft' ) { $prodcollection = atkp_product_collection::load( $value, $shop_id ); if ( $prodcollection != null ) { $value = $prodcollection->get_main_product( $shop_id ); $value->listid = $list_id; } else { $value = null; } } else { $value = null; } break; } if ( $value != null ) { $shopid = $shop_id != '' ? $shop_id : ATKPTools::get_post_setting( $id, ATKP_LIST_POSTTYPE . '_shopid' ); $value->init_list( $id, $shopid ); $value->listid = $list_id; $outputprds[] = $value; } } catch ( Exception $e ) { //TODO: 'Exception: ', $e->getMessage(), "\n"; } } } return $outputprds; } public function get_list_output2( $productlist, $listid, $template = 'wide', $content = '', $buttontype = 'notset', $elementcss = '', $containercss = '', $hidedisclaimer = false, $tracking_id = '', $offerstemplate = '', $imagetemplate = '', $itemsPerPage = 0, $max_num_pages = 1, $found_posts = 0 ) { $templatehelper = new atkp_template_helper(); $templatehelper->ajax_mode = $this->ajax_mode; $resultValue = $templatehelper->createOutput( $productlist, $content, $template, $containercss, $elementcss, $buttontype, $listid, $hidedisclaimer, 0, $tracking_id, $offerstemplate, $imagetemplate, $itemsPerPage, $max_num_pages, $found_posts ); $resultValue = apply_filters( 'atkp_modify_output_list', $resultValue, $productlist, $template ); return $resultValue; } /** * @param atkp_template_helper $templatehelper * @param atkp_product $product * @param int|string $template * @param bool $isavailable * * @return mixed|string */ private function override_notavailable_template($templatehelper, $product, $template, &$isavailable ) { $isavailable = true; if ( ! atkp_options::$loader->get_show_nota_template() ) { return $template; } $formatter = new atkp_formatter( $templatehelper, null ); $saleprice = $formatter->get_saleprice_value($product); //$saleprice = ATKPTools::get_post_setting( $product->productid, ATKP_PRODUCT_POSTTYPE . '_saleprice' ); //$message = ATKPTools::get_post_setting( $productid, ATKP_PRODUCT_POSTTYPE . '_message' ); $temp = atkp_options::$loader->get_nota_template(); if ( $saleprice <= 0) { $template = $temp == '' ? 'notavailable' : $temp; $isavailable = false; } return $template; } public function get_product_output( $id, $template = 'box', $content = '', $buttontype = 'notset', $field = null, $link = false, $elementcss = '', $containercss = '', $hidedisclaimer = false, $tracking_id = '', $offerstemplate = '', $imagetemplate = '' ) { $isavailable = true; $templatehelper = new atkp_template_helper(); $templatehelper->ajax_mode = $this->ajax_mode; $resultValue = ''; if ( get_post_status( $id ) == 'trash' ) { throw new Exception( 'product is trashed' ); } if ( ( get_post_status( $id ) != 'publish' && get_post_status( $id ) != 'draft' ) ) { if ( $content == '' ) { $content = __( 'Product', 'affiliate-toolkit-starter' ); } return $link == true ? $content : ''; } if ( ! $isavailable && atkp_options::$loader->get_nota_disable_link() && $link ) { return $content; } $products = atkp_product_collection::load( $id ); if ( $products == null ) { return $content; } $prd = $products->get_main_product(); $template = $this->override_notavailable_template( $templatehelper, $prd, $template, $isavailable ); $template = apply_filters( 'atkp_modify_template', $template ); $template = apply_filters( 'atkp_modify_template_product', $template, $id, $content ); if ( $field != '' ) { $placeholders = $templatehelper->createPlaceholderArray( $prd, 1, $containercss, $elementcss, $content, $buttontype, '', '', $tracking_id ); foreach ( array_keys( $placeholders ) as $key ) { if ( $key == $field ) { $resultValue = $placeholders[ $key ]; break; } } if ( $containercss != '' ) { $resultValue = '
' . $resultValue . '
'; } } else { $resultValue = $templatehelper->createOutput( array( $prd ), $content, $template, $containercss, $elementcss, $buttontype, '', $hidedisclaimer, 0, $tracking_id, $offerstemplate, $imagetemplate ); } if ( $link == true ) { $placeholders = $templatehelper->createPlaceholderArray( $prd, 1, $containercss, $elementcss, $content, $buttontype, '', '', $tracking_id ); $link = $placeholders['productlink']; if ( $field != '' ) { $content = $resultValue; } else if ( $content == '' ) { $content = $prd->title; } if ( atkp_options::$loader->get_mark_links() == 1 && strpos( $content, 'img src' ) == false ) { $content .= atkp_options::$loader->get_affiliatechar(); } $link = apply_filters( 'atkp_modify_output_product_link', $link, $templatehelper, $prd, $tracking_id); if ( ATKPSettings::$access_mark_links == 1 && strpos( $content, 'img src' ) == true ) { $capt = __( 'Advertising', 'affiliate-toolkit-starter' ); $resultValue = ''; } else { $resultValue = '' . $content . ''; } } $resultValue = apply_filters( 'atkp_modify_output_product', $resultValue, $prd, $template ); return $resultValue; } public function get_js_url() { return plugins_url( '/dist/script.js', ATKP_PLUGIN_FILE ); } public function get_css_url() { return plugins_url( '/dist/style.css', ATKP_PLUGIN_FILE ); } /** * @param $parameters atkp_template_parameters|null * * @return string */ public function get_css_inline( $parameters = null ) { $custom_css = array(); if ( $parameters == null ) { $parameters = new atkp_template_parameters(); $shortcode_params = array(); $parameters->buildTemplateParameters( '', $shortcode_params ); } $classprefix = ''; if ( $parameters->templateid != '' && is_numeric( $parameters->templateid ) && $parameters->get_custom_styles() ) { $classprefix = ' .atkp-template-' . $parameters->templateid . ' '; } $custom_css[] = ( $classprefix == '' ? '.atkp-container' : $classprefix ) . ' a, ' . ( $classprefix == '' ? '.atkp-container' : $classprefix ) . ' a:visited { color: ' . $parameters->get_box_textlink_color() . '}'; $custom_css[] = ( $classprefix == '' ? '.atkp-container' : $classprefix ) . ' a:hover { color: ' . $parameters->get_box_textlink_hovercolor() . '}'; $custom_css[] = $classprefix . ' .atkp-moreoffersinfo a, ' . $classprefix . ' .atkp-moreoffersinfo a:visited { color: ' . $parameters->get_dropdown_textlink_color() . '} ' . $classprefix . ' .atkp-moreoffersinfo a:hover { color: ' . $parameters->get_dropdown_textlink_hovercolor() . ';}'; $custom_css[] = $classprefix . '.atkp-listprice { color: ' . $parameters->get_listprice_color() . ' !important; } '; $custom_css[] = $classprefix . '.atkp-saleprice { color: ' . $parameters->get_price_color() . ' !important; } '; $custom_css[] = $classprefix . '.atkp-savedamount { color: ' . $parameters->get_amountsaved_color() . ' !important; } '; $custom_css[] = $classprefix . '.atkp-ribbon span { background: ' . $parameters->get_box_badge_color() . ' !important; } '; $atkp_box = array(); $atkp_box[] = 'background-color:' . $parameters->get_box_background_color() . ';'; $atkp_box[] = 'border: 1px solid ' . $parameters->get_box_border_color() . ';'; $atkp_box[] = 'border-radius: ' . $parameters->get_box_border_radius() . 'px;'; $atkp_box[] = 'color: ' . $parameters->get_box_text_color(); $custom_css[] = $classprefix . '.atkp-box { ' . implode( ' ', $atkp_box ) . ' }'; $custom_css[] = $classprefix . '.atkp-box .atkp-predicate-highlight1, ' . $classprefix . '.atkp-box .atkp-predicate-highlight2, ' . $classprefix . '.atkp-box .atkp-predicate-highlight3 {border-radius: ' . $parameters->get_box_border_radius() . 'px ' . $parameters->get_box_border_radius() . 'px 0 0;}'; if ( $parameters->get_box_show_shadow() ) { $custom_css[] = $classprefix . '.atkp-box { box-shadow: 5px 5px 10px 0 ' . $parameters->get_box_border_color() . '; }'; } $padding = 'padding: 5px 15px;font-size:14px;'; $padding2 = 'padding: 5px 15px;'; switch ( $parameters->get_primbtn_size() ) { case "normal": break; case "small": $padding = 'padding: 2px 10px;font-size:12px;'; break; case "big": $padding = 'padding: 10px 15px;font-size:16px;'; break; case "hide": $padding = 'display:none !important;'; break; } switch ( $parameters->get_secbtn_size() ) { case "normal": break; case "small": $padding2 = 'padding: 2px 10px;font-size:12px;'; break; case "big": $padding2 = 'padding: 10px 15px;font-size:16px;'; break; case "hide": $padding2 = 'display:none !important;'; break; } //$shadow = 'box-shadow: 0 1px 2px rgb(0 0 0 / 30%), inset 0 0 40px rgb(0 0 0 / 10%);'; $custom_css[] = $classprefix . '.atkp-button { margin: 0 auto; ' . $padding . ' display: inline-block; background-color: ' . $parameters->get_primbtn_background_color() . '; border: 1px solid ' . $parameters->get_primbtn_border_color() . '; color: ' . $parameters->get_primbtn_foreground_color() . ' !important; font-weight: 400; -webkit-border-radius: ' . $parameters->get_btn_radius() . 'px; border-radius: ' . $parameters->get_btn_radius() . 'px; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; text-decoration: none !important; } ' . $classprefix . ' .atkp-button:hover { background-color: ' . $parameters->get_primbtn_hoverbackground_color() . '; text-decoration: none; }'; $custom_css[] = $classprefix . '.atkp-secondbutton { margin: 0 auto; ' . $padding2 . ' display: inline-block; background-color: ' . $parameters->get_secbtn_background_color() . '; border: 1px solid ' . $parameters->get_secbtn_border_color() . '; color: ' . $parameters->get_secbtn_foreground_color() . ' !important; font-weight: 400; -webkit-border-radius: ' . $parameters->get_btn_radius() . 'px; border-radius: ' . $parameters->get_btn_radius() . 'px; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; text-decoration: none !important; } ' . $classprefix . ' .atkp-secondbutton:hover { background-color: ' . $parameters->get_secbtn_hoverbackground_color() . '; text-decoration: none; }'; $btn_image_url = ''; switch ( $parameters->get_primbtn_image() ) { case 'no_image': break; case 'amz_black': $btn_image_url = plugins_url( '/images/icon-amazon-black.svg', ATKP_PLUGIN_FILE ); break; case 'amz_white': $btn_image_url = plugins_url( '/images/icon-amazon-white.svg', ATKP_PLUGIN_FILE ); break; case 'cart_black': $btn_image_url = plugins_url( '/images/icon-cart-black.svg', ATKP_PLUGIN_FILE ); break; case 'cart_white': $btn_image_url = plugins_url( '/images/icon-cart-white.svg', ATKP_PLUGIN_FILE ); break; } if ( $btn_image_url != '' ) { $custom_css[] = $classprefix . '.atkp-button { padding-left: 32px; position: relative; }'; $custom_css[] = $classprefix . '.atkp-button:before { background-position: 9px; background-repeat: no-repeat; background-size: 14px 14px; bottom: 0; content: ""; left: 0; position: absolute; right: 0; top: 0; background-image: url(' . $btn_image_url . '); } '; } $secbtn_image_url = ''; switch ( $parameters->get_secbtn_image() ) { case 'no_image': break; case 'amz_black': $secbtn_image_url = plugins_url( '/images/icon-amazon-black.svg', ATKP_PLUGIN_FILE ); break; case 'amz_white': $secbtn_image_url = plugins_url( '/images/icon-amazon-white.svg', ATKP_PLUGIN_FILE ); break; case 'cart_black': $secbtn_image_url = plugins_url( '/images/icon-cart-black.svg', ATKP_PLUGIN_FILE ); break; case 'cart_white': $secbtn_image_url = plugins_url( '/images/icon-cart-white.svg', ATKP_PLUGIN_FILE ); break; } if ( $secbtn_image_url != '' ) { $custom_css[] = $classprefix . '.atkp-secondbutton { padding-left: 32px; position: relative; }'; $custom_css[] = $classprefix . '.atkp-secondbutton:before { background-position: 9px; background-repeat: no-repeat; background-size: 14px 14px; bottom: 0; content: ""; left: 0; position: absolute; right: 0; top: 0; background-image: url(' . $secbtn_image_url . '); } '; } $custom_css[] = $classprefix . ' .atkp-producttable-button a { width: 100%; padding-left: 0px; padding-right: 0px; }'; $custom_css = apply_filters( 'atkp_custom_css_inline', $custom_css ); return implode( "\r\n", $custom_css ); } public function get_css_output() { $custom_css = array(); //generate dynamic button styles $parameters = new atkp_template_parameters(); $parameters->buildTemplateParameters( '', array() ); if ( atkp_options::$loader->get_css_inline() == atkp_css_type::CssFile || atkp_options::$loader->get_css_inline() == atkp_css_type::InlineHead ) { $custom_css[] .= '/* Begin (global) */' . "\r\n" . $this->get_css_inline( $parameters ) . "\r\n" . '/* End (global) */' . "\r\n"; } //load css from own templates $args = array( 'post_type' => ATKP_TEMPLATE_POSTTYPE, 'posts_per_page' => 300, 'post_status' => array( 'publish', 'draft' ) ); $posts_array = get_posts( $args ); foreach ( $posts_array as $prd ) { $template_css = ''; $parameters = new atkp_template_parameters(); $parameters->buildTemplateParameters( $prd->ID, array() ); if ( atkp_options::$loader->get_css_inline() == atkp_css_type::CssFile || atkp_options::$loader->get_css_inline() == atkp_css_type::InlineHead ) { $ownstyles = ATKPTools::get_post_setting( $prd->ID, ATKP_TEMPLATE_POSTTYPE . '_custom_styles' ); if ( $ownstyles ) { $template_css .= $this->get_css_inline( $parameters ) . "\r\n"; } } $css = ATKPTools::get_post_setting( $prd->ID, ATKP_TEMPLATE_POSTTYPE . '_css' ); if ( $css != '' ) { $template_css .= $css . "\r\n"; } if ( $template_css != '' ) { $custom_css[] .= '/* Begin (#' . $prd->ID . ') */' . "\r\n" . $template_css . '/* End (#' . $prd->ID . ') */' . "\r\n"; } } $custom_css = apply_filters( 'atkp_custom_css_output', $custom_css ); return implode( "\r\n", $custom_css); } public function get_js_output() { $custom_script = array(); $custom_script[] = ' function atkp_open_link(link, mode, trackingtype, linktype, linkcaption) { if (trackingtype == 1 && typeof ga !== "undefined") ga("send", "event", linktype, "click", linkcaption); else if (trackingtype == 2 && typeof _gaq !== "undefined") _gaq.push(["_trackEvent", linktype, "click", linkcaption]); else if (trackingtype == 3 && typeof gtag !== "undefined") gtag("event", linktype, {"event_category": "click", "event_label": linkcaption}); else if (trackingtype == 4 && typeof _paq !== "undefined") _paq.push(["_trackEvent", "Clicks",linktype, linkcaption]); window.open(link, mode); }'; $custom_script = apply_filters( 'atkp_custom_script_output', $custom_script ); return implode( "\r\n", $custom_script); } } ?>