Files
grzanieplus.pl/apps/backend/modules/stProduct/lib/helper/stProductPickerHelper.php
2025-03-12 17:06:23 +01:00

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>';
}";
}