Генерация по шаблону описаний товара

идем по адресу /administrator/components/com_virtuemart/views/product/tmpl/product_edit_description.php и после

defined('_JEXEC') or die('Restricted access');?>

дописываем скрипт

<script>
function getVarList(){
var varList = {};
jQuery("#adminForm input, #adminForm select").each(function(i,e){ varList[e.id] = e.value;
});
return varList;
}

function getDescription(listOfVars){
	if(typeof listOfVars == "object"){
		var tpl_short = "Купите супер-пупер продукт {PRODUCT_NAME}";
		var tpl = "какой-то текст {PRODUCT_NAME}. наш продукт стоит ${MPRICES_BASE}. и тут что-то еще.";
		for(var itm in listOfVars){
		tpl_short = tpl_short.replace("{" + itm.toUpperCase() + "}",listOfVars[itm]);
		tpl = tpl.replace("{" + itm.toUpperCase() + "}",listOfVars[itm]);
		}
		console.log(tpl_short);
		console.log(tpl);
		jQuery('#product_s_desc').val('').val(tpl_short);
		jQuery('#product_desc').val('').val(tpl);
	return tpl;
	}
	return false;
}

//getDescription(getVarList())
</script>

далее в удобном месте ниже добавляем кнопку для автоматической генерации описания

<input type="button" value="Generate description" onclick="getDescription(getVarList())" style="width:auto;height:50px;background:orange;float: right;font-size: 16px;">

скрипт ищет ID нужных инпутов. берет их значения и вставляет в тексте в нужных местах. если у инптов нет своих ID — добавьте.

 

  • Стас

    Уже очень давно ищу генерацию по шаблону Title и meta name=»description». Может у Вас есть готовое решение, буду очень признателен!

    • Roman NMSK

      в коде можно внести правки и для продуктов будет свое генерировать. по идее ковырять нужно этот файл: /components/com_virtuemart/views/productdetails/tmpl/default.php ( Подробнее: http://coding.dp.ua/joomla/1606-virtuemart-open-graph-meta-tag.html#comment-656 )

      так же как ОГ-теги выставляются можно создать свои тайтлы и дескрипшины. вот пример кода по смене тайтла:

      foreach($this->product->customfieldsSorted['normal'] as $object) if ($object->virtuemart_custom_id == "6") { $custom_stock = $object->custom_value; break;}
      $curtitle = $document->title." (stock #$custom_stock)";
      $document->setTitle( $curtitle );
      

      тут я вытягивал кастомное значения сток-номера и добавлял в тайтл товара. юзай еще такое:

      $document->setMetaData( 'description', 'my description' );
      $document->setMetaData( 'keywords', 'my keyword' );