Gregar Posted September 1, 2015 Report Share Posted September 1, 2015 Всем привет. Решил сделать краткие описания товаров автоматическими используя при этом информацию их характеристик, категорий и брендов. На данный момент у меня в характеристиках к товару имеется к примеру: "цвет - черный", в описании мне необходимо произвести склонение данного свойства чтобы было черный = черная и т.п.Подскажите пожалуйста как это правильно реализовать и написать на Smarty??? Если у кого-то есть какие-то идеи касательно автоматического краткого описания пишите суда. Спасибо.. Quote Link to post Share on other sites
jonny008 Posted September 1, 2015 Report Share Posted September 1, 2015 Может как то по аналогии. Найдено в интернете: Нужно сохранить код приведенный ниже в файл function.decliner.php в каталоге с плагинами Smarty <?php /** * Smarty {decliner} function plugin * * Type: function<br> * Name: decliner<br> * Purpose: handle word declines based on quantity number<br> * @param array $params * <pre> * Params: qty: number of items to choose correct declining form * word: declining forms of word. Ex: день, дня, дней. * </pre> * @param Smarty * @return string */ function smarty_function_decliner($params, &$smarty) { // be sure equation parameter is present if (empty($params['qty'])) $params['qty']=0; if (empty ($params['word'])) { $smarty->trigger_error("decliner: missing required parameter"); return; } $forms=explode(',',$params['word']); $params['qty'] = abs($params['qty']) % 100; $n1 = $params['qty'] % 10; if ( $params['qty'] > 10 && $params['qty'] < 20) return $forms[2]; else if ($n1 > 1 && $n1 < 5) return $forms[1]; else if ($n1 == 1) return $forms[0]; return $forms[2]; } /* vim: set expandtab: */ ?> Затем в шаблонах можно использовать вот так. {decliner qty=4 word='письма, письма, писем'} Quote Link to post Share on other sites
Kors Posted September 2, 2015 Report Share Posted September 2, 2015 Определить форму склонения на ходу вряд ли удастся. Словари объемные подключать - нелегкое решение. Особенно если встречается цвет "мокрый асфальт" или "морская волна"... Можно значения свойств вводить в разных видах по падежам. Тогда вывод будет совсем несложный. Но в админке работы больше будет. И с экспортом-импортом повозиться... Quote Link to post Share on other sites
SerSport Posted September 2, 2015 Report Share Posted September 2, 2015 Воспользуйтесь api яндекса! К стати, на форуме где-то уже было нечто подобное. Quote Link to post Share on other sites
mishanya Posted September 3, 2015 Report Share Posted September 3, 2015 вот я уже описывал готовое решение с применением яндекс апи Quote Link to post Share on other sites
Kors Posted September 3, 2015 Report Share Posted September 3, 2015 Если на странице товара будет вывод пары десятка свойств, это решение даст дополнительно пару десятков запросов к базе. Надо этот момент как-то оптимизировать... Во вторых, ТС просил ...имеется к примеру: "цвет - черный", в описании мне необходимо произвести склонение данного свойства чтобы было черный = черная и т.п. То есть речь не о склонении по падежам, а еще и род надо менять... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.