type ) { case 0: case 1: //Text $type = 'text'; switch ( $newfield->format ) { default: case 'text': $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'string' ); break; case 'stars': case 'number': $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'double' ); break; case 'url': $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'url' ); break; } break; case 2: //multiline $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'multistring' ); break; case 3: //dropdown $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'string' ); break; case 4: //yesno $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'string' ); switch ( $fieldvalue ) { default: case '': $fieldvalue = null; break; case '0': $fieldvalue = '0'; break; case '1'; $fieldvalue = '1'; break; } break; case 5: //html $fieldvalue = ATKPTools::get_post_parameter( ATKP_PRODUCT_POSTTYPE . '_' . $fieldname, 'html' ); break; default: throw new exception( 'unknown newfield->type: ' . $newfield->type ); } return $fieldvalue; } public function create_control( $newfield, $controlname, $value, $isnewfield = false ) { $result = ''; if ( $newfield != null ) { $newfield->isnewfield = $isnewfield; } switch ( $newfield->type ) { default: case 1: //Text $type = 'text'; $attributes = ''; switch ( $newfield->format ) { case 'text': $type = 'text'; break; case 'number': $type = 'number'; $attributes = ' step="0.01" '; break; case 'url': $type = 'url'; break; case 'email': $type = 'email'; break; case 'date': $type = 'date'; break; case 'stars': $type = 'number'; $attributes = ' step="0.5" min="0" max="5" '; break; } $result = ' '; break; case 2: //multiline $result = ''; break; case 3: //dropdown if ( $isnewfield ) { $values = explode( "\n", $newfield->values ); } else { $values = explode( ';', $newfield->format ); } $result = ''; break; case 4: //yesno $result .= ''; break; case 5: //html ob_start(); wp_editor( $value, $controlname, array( 'media_buttons' => false, 'textarea_name' => $controlname, 'textarea_rows' => 5, ) ); $result = ob_get_contents(); ob_end_clean(); break; } echo $result; } public function get_minmaxvalue( $newfield, $order = 'ASC' ) { $minvalue = 0; if ( $newfield->name == 'price' ) { $fieldname = ATKP_PRODUCT_POSTTYPE . '_salepricefloat'; } else if ( ! $newfield->isnewfield ) { $fieldname = ATKP_PRODUCT_POSTTYPE . '_customfield_' . $newfield->name; } else { $fieldname = ATKP_PRODUCT_POSTTYPE . '_cf_' . $newfield->name; } $args = array( 'post_type' => ATKP_PRODUCT_POSTTYPE, 'post_status' => array( 'publish' ), 'orderby' => 'meta_value_num', 'meta_key' => $fieldname, 'order' => $order, 'limit' => 1, ); $the_query = new WP_Query( $args ); while ( $the_query->have_posts() ) { try { $the_query->the_post(); $prd = $the_query->post; $minvalue = ATKPTools::get_post_setting( $prd->ID, $fieldname ); break; } catch ( Exception $e ) { //TODO: logfile, falls ein wert nicht geparst werden kann? } } wp_reset_postdata(); return $minvalue; } public function create_frontendcontrol( $newfield, $taxonomy, $controlname, $value, $isnewfield = false ) { $result = ''; if ( $newfield != null ) { $newfield->isnewfield = $isnewfield; } if ( $taxonomy != null ) { $caption = sprintf( __( 'select %s', ATKP_PLUGIN_PREFIX ), $taxonomy->caption ); $intvals = array(); if ( ATKPTools::exists_get_parameter( $controlname ) ) { $intvals = ATKPTools::get_get_parameter( $controlname, 'intarray' ); } $result .= ''; } else if ( $newfield != null ) { switch ( $newfield->type ) { case 1: //Text $type = 'text'; switch ( $newfield->format ) { case 'text': break; case 'number': $maxvalue_value = 0; $minvalue_value = 0; $maxvalue = $this->get_minmaxvalue( $newfield, $order = 'DESC' ); $minvalue = 0; //$this->get_minmaxvalue($newfield, $order = 'ASC'); if ( ATKPTools::exists_get_parameter( 'min' . $controlname ) ) { $minvalue_value = ATKPTools::get_get_parameter( 'min' . $controlname, 'int' ); } else { $minvalue_value = $minvalue; } if ( ATKPTools::exists_get_parameter( 'max' . $controlname ) ) { $maxvalue_value = ATKPTools::get_get_parameter( 'max' . $controlname, 'int' ); } else { $maxvalue_value = $maxvalue; } $result = '
' . $newfield->prefix . ' ' . $newfield->suffix . '
' . $newfield->prefix . ' ' . $newfield->suffix . '
'; break; case 'url': break; case 'stars': $minvalue_value = $minvalue = 0; $maxvalue_value = $maxvalue = 5; $result = '
' . $newfield->prefix . ' ' . $newfield->suffix . '
' . $newfield->prefix . ' ' . $newfield->suffix . '
'; break; } break; case 2: //multiline //$result = ''; break; case 3: //dropdown if ( $isnewfield ) { $values = explode( "\n", $newfield->values ); } else { $values = explode( ';', $newfield->format ); } $caption = sprintf( __( 'select %s', ATKP_PLUGIN_PREFIX ), $newfield->caption ); $stringvals = ATKPTools::get_get_parameter( $controlname, 'stringarray' ); $result = ''; break; case 4: //yesno $boolval = ATKPTools::get_get_parameter( $controlname, 'bool' ); $result .= '
'; $result .= '
'; break; case 5: //html /*ob_start(); wp_editor($value, $controlname, array( 'media_buttons' => false, 'textarea_name' => $controlname, 'textarea_rows' => 5, )); $result = ob_get_contents(); ob_end_clean();*/ break; } } else { //product dropdown switch ( $controlname ) { case 'search': $strval = ATKPTools::get_get_parameter( $controlname, 'string' ); $result .= ''; break; case 'submit': $result .= ''; break; case 'orderby': //neuheiten //bewertungen //preis auf bzw. absteigend //produktname auf bzw. absteigend $values = array( 'price-asc' => __( 'Price', ATKP_PLUGIN_PREFIX ), 'price-desc' => __( 'Price (descending)', ATKP_PLUGIN_PREFIX ), 'titlerank-asc' => __( 'Alphabetic (A to Z)', ATKP_PLUGIN_PREFIX ), 'titlerank-desc' => __( 'Alphabetic (Z to A)', ATKP_PLUGIN_PREFIX ), ); $caption = __( 'sort by', ATKP_PLUGIN_PREFIX ); $stringvals = ATKPTools::get_get_parameter( $controlname, 'string' ); $result = ''; break; case "product1": case "product2": case "product3": case "product4": case "product5": $caption = __( 'select product', ATKP_PLUGIN_PREFIX ); $stringvals = ATKPTools::get_get_parameter( $controlname, 'string' ); $productid = ATKPTools::get_get_parameter( $controlname, 'int' ); $searchnounce = wp_create_nonce( 'atkp-search-nonce' ); $inputtooshort = __( 'You must enter at least 3 characters.', ATKP_PLUGIN_PREFIX ); $result = ''; break; } } return $result; } public function create_backendcontrol( $newfield, $taxonomy, $controlname, $value, $isnewfield = false ) { $result = ''; if ( $taxonomy != null ) { $caption = sprintf( __( 'select %s', ATKP_PLUGIN_PREFIX ), $taxonomy->caption ); $intvals = array(); $result .= ''; } else if ( $newfield != null ) { switch ( $newfield->type ) { case 1: //Text $type = 'text'; switch ( $newfield->format ) { case 'text': break; case 'number': $maxvalue = 0; $minvalue = 0; //$this->get_minmaxvalue($newfield, $order = 'ASC'); $result = ' - '; break; case 'url': break; } break; case 2: //multiline //$result = ''; break; case 3: //dropdown if ( $isnewfield ) { $values = explode( "\n", $newfield->values ); } else { $values = explode( ';', $newfield->format ); } $caption = sprintf( __( 'select %s', ATKP_PLUGIN_PREFIX ), $newfield->caption ); $result = ''; break; case 4: //yesno $result .= '
'; $result .= '
'; break; case 5: //html /*ob_start(); wp_editor($value, $controlname, array( 'media_buttons' => false, 'textarea_name' => $controlname, 'textarea_rows' => 5, )); $result = ob_get_contents(); ob_end_clean();*/ break; } } else { //product dropdown switch ( $controlname ) { case 'orderby': //neuheiten //bewertungen //preis auf bzw. absteigend //produktname auf bzw. absteigend $values = array( 'price-asc' => __( 'Price', ATKP_PLUGIN_PREFIX ), 'price-desc' => __( 'Price (descending)', ATKP_PLUGIN_PREFIX ), 'titlerank-asc' => __( 'Alphabetic (A to Z)', ATKP_PLUGIN_PREFIX ), 'titlerank-desc' => __( 'Alphabetic (Z to A)', ATKP_PLUGIN_PREFIX ), ); $caption = __( 'sort by', ATKP_PLUGIN_PREFIX ); $result = ''; break; case "product1": case "product2": case "product3": case "product4": case "product5": $caption = __( 'input productid', ATKP_PLUGIN_PREFIX ); $inputtooshort = __( 'You must enter at least 3 characters.', ATKP_PLUGIN_PREFIX ); //atkp-product-box $disable_select2 = true; // ATKPTools::get_setting(ATKP_PLUGIN_PREFIX.'_disableselect2', false); if ( $disable_select2 ) { $result = ' '; } else { $result = ''; } break; } } return $result; } } ?>