array(0.0,'int'), 'custom_price_by_letter'=>array(0.0,'bool') ); $this->setConfigParameterable('customfield_params',$varsToPush); } // get product param for this plugin on edit function plgVmOnProductEdit($field, $product_id, &$row,&$retValue) { if ($field->custom_element != $this->_name) return ''; //VmConfig::$echoDebug = true; //vmdebug('plgVmOnProductEdit',$field); $html ='
'. vmText::_('VMCUSTOM_TEXTINPUT') .' '.VmHTML::row('input','VMCUSTOM_TEXTINPUT_SIZE','customfield_params['.$row.'][custom_size]',$field->custom_size); $options = array(0=>'VMCUSTOM_TEXTINPUT_PRICE_BY_INPUT',1=>'VMCUSTOM_TEXTINPUT_PRICE_BY_LETTER'); $html .= VmHTML::row('select','VMCUSTOM_TEXTINPUT_PRICE_BY_LETTER_OR_INPUT','customfield_params['.$row.'][custom_price_by_letter]',$options,$field->custom_price_by_letter,'','value','text',false); //$html .= ($field->custom_price_by_letter==1)?vmText::_('VMCUSTOM_TEXTINPUT_PRICE_BY_LETTER'):vmText::_('VMCUSTOM_TEXTINPUT_PRICE_BY_INPUT'); $html .='
'; $retValue .= $html; $row++; return true ; } function plgVmOnDisplayProductFEVM3(&$product,&$group) { if ($group->custom_element != $this->_name) return ''; $group->display .= $this->renderByLayout('default',array(&$product,&$group) ); return true; } /** * Function for vm3 * @see components/com_virtuemart/helpers/vmCustomPlugin::plgVmOnViewCart() * @author Patrick Kohl */ function plgVmOnViewCart($product,$row,&$html) { if (empty($product->productCustom->custom_element) or $product->productCustom->custom_element != $this->_name) return ''; if (!$plgParam = $this->GetPluginInCart($product)) return '' ; foreach($plgParam as $k => $item){ if(!empty($item['comment']) ){ if($product->productCustom->virtuemart_customfield_id==$k){ $html .=''.vmText::_($product->productCustom->custom_title).' '.$item['comment'].''; } } } return true; } /** * Trigger for VM3 * @author Max Milbers * @param $product * @param $productCustom * @param $html * @return bool|string */ function plgVmOnViewCartVM3(&$product, &$productCustom, &$html) { if (empty($productCustom->custom_element) or $productCustom->custom_element != $this->_name) return false; if(empty($product->customProductData[$productCustom->virtuemart_custom_id][$productCustom->virtuemart_customfield_id])) return false; foreach( $product->customProductData[$productCustom->virtuemart_custom_id] as $k =>$item ) { if($productCustom->virtuemart_customfield_id == $k) { if(isset($item['comment'])){ $html .=''.vmText::_($productCustom->custom_title).' '.$item['comment'].''; } } } return true; } function plgVmOnViewCartModuleVM3( &$product, &$productCustom, &$html) { return $this->plgVmOnViewCartVM3($product,$productCustom,$html); } function plgVmDisplayInOrderBEVM3( &$product, &$productCustom, &$html) { $this->plgVmOnViewCartVM3($product,$productCustom,$html); } function plgVmDisplayInOrderFEVM3( &$product, &$productCustom, &$html) { $this->plgVmOnViewCartVM3($product,$productCustom,$html); } /** * * vendor order display BE */ function plgVmDisplayInOrderBE(&$item, $productCustom, &$html) { if(!empty($productCustom)){ $item->productCustom = $productCustom; } if (empty($item->productCustom->custom_element) or $item->productCustom->custom_element != $this->_name) return ''; $this->plgVmOnViewCart($item,$productCustom,$html); //same render as cart } /** * * shopper order display FE */ function plgVmDisplayInOrderFE(&$item, $productCustom, &$html) { if(!empty($productCustom)){ $item->productCustom = $productCustom; } if (empty($item->productCustom->custom_element) or $item->productCustom->custom_element != $this->_name) return ''; $this->plgVmOnViewCart($item,$productCustom,$html); //same render as cart } /** * Trigger while storing an object using a plugin to create the plugin internal tables in case * * @author Max Milbers */ public function plgVmOnStoreInstallPluginTable($psType,$data,$table) { if($psType!=$this->_psType) return false; if(empty($table->custom_element) or $table->custom_element!=$this->_name ){ return false; } if(empty($table->is_input)){ vmInfo('COM_VIRTUEMART_CUSTOM_IS_CART_INPUT_SET'); $table->is_input = 1; $table->store(); } //Should the textinput use an own internal variable or store it in the params? //Here is no getVmPluginCreateTableSQL defined //return $this->onStoreInstallPluginTable($psType); } /** * Declares the Parameters of a plugin * @param $data * @return bool */ function plgVmDeclarePluginParamsCustomVM3(&$data){ return $this->declarePluginParams('custom', $data); } function plgVmGetTablePluginParams($psType, $name, $id, &$xParams, &$varsToPush){ return $this->getTablePluginParams($psType, $name, $id, $xParams, $varsToPush); } function plgVmSetOnTablePluginParamsCustom($name, $id, &$table,$xParams){ return $this->setOnTablePluginParams($name, $id, $table,$xParams); } /** * Custom triggers note by Max Milbers */ function plgVmOnDisplayEdit($virtuemart_custom_id,&$customPlugin){ return $this->onDisplayEditBECustom($virtuemart_custom_id,$customPlugin); } public function plgVmPrepareCartProduct(&$product, &$customfield,$selected,&$modificatorSum){ if ($customfield->custom_element !==$this->_name) return ; //$product->product_name .= 'Ice Saw'; //vmdebug('plgVmPrepareCartProduct we can modify the product here'); if (!empty($selected['comment'])) { if ($customfield->custom_price_by_letter ==1) { $charcount = strlen (html_entity_decode ($selected['comment'])); } else { $charcount = 1.0; } $modificatorSum += $charcount * $customfield->customfield_price ; } else { $modificatorSum += 0.0; } return true; } public function plgVmDisplayInOrderCustom(&$html,$item, $param,$productCustom, $row ,$view='FE'){ $this->plgVmDisplayInOrderCustom($html,$item, $param,$productCustom, $row ,$view); } public function plgVmCreateOrderLinesCustom(&$html,$item,$productCustom, $row ){ // $this->createOrderLinesCustom($html,$item,$productCustom, $row ); } function plgVmOnSelfCallFE($type,$name,&$render) { $render->html = ''; } } // No closing tag