Gregar Опубликовано 1 сентября, 2015 Жалоба Поделиться Опубликовано 1 сентября, 2015 Всем привет. Решил сделать краткие описания товаров автоматическими используя при этом информацию их характеристик, категорий и брендов. На данный момент у меня в характеристиках к товару имеется к примеру: "цвет - черный", в описании мне необходимо произвести склонение данного свойства чтобы было черный = черная и т.п.Подскажите пожалуйста как это правильно реализовать и написать на Smarty??? Если у кого-то есть какие-то идеи касательно автоматического краткого описания пишите суда. Спасибо.. Цитата Ссылка на сообщение Поделиться на другие сайты
jonny008 Опубликовано 1 сентября, 2015 Жалоба Поделиться Опубликовано 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='письма, письма, писем'} Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 2 сентября, 2015 Жалоба Поделиться Опубликовано 2 сентября, 2015 Определить форму склонения на ходу вряд ли удастся. Словари объемные подключать - нелегкое решение. Особенно если встречается цвет "мокрый асфальт" или "морская волна"... Можно значения свойств вводить в разных видах по падежам. Тогда вывод будет совсем несложный. Но в админке работы больше будет. И с экспортом-импортом повозиться... Цитата Ссылка на сообщение Поделиться на другие сайты
SerSport Опубликовано 2 сентября, 2015 Жалоба Поделиться Опубликовано 2 сентября, 2015 Воспользуйтесь api яндекса! К стати, на форуме где-то уже было нечто подобное. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 3 сентября, 2015 Жалоба Поделиться Опубликовано 3 сентября, 2015 вот я уже описывал готовое решение с применением яндекс апи Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 3 сентября, 2015 Жалоба Поделиться Опубликовано 3 сентября, 2015 Если на странице товара будет вывод пары десятка свойств, это решение даст дополнительно пару десятков запросов к базе. Надо этот момент как-то оптимизировать... Во вторых, ТС просил ...имеется к примеру: "цвет - черный", в описании мне необходимо произвести склонение данного свойства чтобы было черный = черная и т.п. То есть речь не о склонении по падежам, а еще и род надо менять... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.