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;
}
}
?>