56 lines
1.9 KiB
PHP
56 lines
1.9 KiB
PHP
<?php
|
|
|
|
|
|
use_helper('I18N');
|
|
use_stylesheet('backend/stProductEdit.css?v='.stApplication::getApplicationVersion('stProduct'));
|
|
|
|
function st_product_picker_tag($name, array $productIds, array $options = [])
|
|
{
|
|
$results_formatter = _token_input_product_results_formatter();
|
|
$token_formatter = _token_input_product_token_formatter();
|
|
|
|
$c = new Criteria();
|
|
$c->add(ProductPeer::ID, $productIds, Criteria::IN);
|
|
|
|
if (!empty($productIds))
|
|
{
|
|
$c->addOrderByField(ProductPeer::ID, $productIds);
|
|
}
|
|
|
|
$defaults = ProductPeer::doSelectTokens($c);
|
|
|
|
$options = array_merge(array(
|
|
'preventDuplicates' => true,
|
|
'resultsFormatter' => $results_formatter,
|
|
'tokenFormatter' => $token_formatter,
|
|
'hintText' => __('Wpisz kod/nazwę szukanego produktu', null, 'stProduct'),
|
|
'additionalDataFields' => array('code'),
|
|
'tokenLimit' => 20
|
|
), $options);
|
|
|
|
return st_tokenizer_input_tag($name, st_url_for('@stProductEdit?action=ajaxProductsToken&id=0'), $defaults, array('tokenizer' => $options));
|
|
}
|
|
|
|
function object_st_product_picker_tag($object, $method, $options = array(), $default_value = null)
|
|
{
|
|
$options = _parse_attributes($options);
|
|
$value = _get_object_value($object, $method, $default_value);
|
|
$name = _convert_method_to_name($method, $options);
|
|
|
|
return st_product_picker_tag($name, $value, $options);
|
|
}
|
|
|
|
function _token_input_product_token_formatter()
|
|
{
|
|
return "function (item) {
|
|
return '<li class=\"product_token\">'+item.name+'<span class=\"code\">('+item.code+')</span></li>';
|
|
}";
|
|
}
|
|
|
|
function _token_input_product_results_formatter()
|
|
{
|
|
return "function (item, token_input, query) {
|
|
return '<li class=\"product_token bs-d-flex bs-align-items-center\"><div class=\"image\"><div style=\"background-image: url('+item.image+')\"></div></div><span class=\"name\">'+item.name+'<span class=\"code\">('+item.code+')</span></span></li>';
|
|
}";
|
|
}
|