yourock Опубликовано 17 ноября, 2015 Жалоба Поделиться Опубликовано 17 ноября, 2015 Написал более 9 строк текста. Ввиду того, что краткость сестра таланта, всё стёр и постараюсь кратко перефразировать. Как выдернуть из базы значение одной определенной характеристики? Поясню: генерирую налету meta_description прямо в шаблоне, и хочу чтобы мета-описание было такого вида: "Купить инверторный сварочный аппарат Ресанта САИ-220 с доставкой в Екатеринбурге. Отзывы о Ресанта САИ-220, лучший инверторный сварочный аппарат по лучшей цене, бесплатно без смс, нувыпонели." Слова "Ресанта САИ-220" - это название товара, тут всё ясно.Слова "инверторный сварочный аппарат" - это значение свойства "ТИП ПРИБОРА", которое я выдергиваю вот таким вот макаром (в index.tpl): {if $product->features} {foreach $product->features as $f} {if $f->name == "Тип прибора"}{$product_type = $f->value}{/if} {/foreach} {/if} но что-то мне подсказывает что это мега-костыль. Варианты обхода:Слова "инверторный сварочный аппарат" можно запихнуть например в название товара - но не катит, ибо не православное seo получится и всё такое. К тому же нельзя будет вставлять отдельно от названия модели "Ресанта САИ-220". Как вариант зафигачить в админке дополнительное поле "ТИП ПРИБОРА" и хранить эту характеристику отдельно от свойств, но тоже как-то геморно, и лишнее время на заполнение.Вообще насколько всё костыльно? Текста всё равно получилось более 9 строк. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 ноября, 2015 Жалоба Поделиться Опубликовано 17 ноября, 2015 По-моему, все у Вас сделано очень даже хорошо и правильно.Можно, конечно, сделать немного рациональнее, но для этого надо приложить усилия. И экономия будет малюсенькая.Не переживайте. В Simpla есть и стандартные костыли, намного хуже:http://simpla-tuning.com/sosednie-produkty---neratsionalno-do-krajnosti Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 20 ноября, 2015 Жалоба Поделиться Опубликовано 20 ноября, 2015 Я бы на Вашем месте не писал такое в шаблонных файлах.Для этого можно взять /view/ProductView.php и вместо этой строчки https://github.com/pikusov/Simpla/blob/master/view/ProductView.php#L176 можно сгенерировать свой тег meta_description Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 ноября, 2015 Жалоба Поделиться Опубликовано 20 ноября, 2015 Я бы на Вашем месте не писал такое в шаблонных файлах. Для этого можно взять /view/ProductView.php и вместо этой строчки https://github.com/pikusov/Simpla/blob/master/view/ProductView.php#L176 можно сгенерировать свой тег meta_descriptionИ в чем особая разница? Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 20 ноября, 2015 Жалоба Поделиться Опубликовано 20 ноября, 2015 Одна дает - другая дразнится. Вот в этом вся и разница))) к примеру взять паттерн проектирования mvc, в случае выполнения какой-либо операции над объектом, контроллер не должен знать как именно выполнять эту операцию — это задача «М». В случае отображения объекта он не должен знать как именно отображать объект — это задача «V». По факту, контроллер должен просто взять нужный объект(ы), и сказать ему(им) что делать. Так вот, класс ProductView, должен подготовить этот объект и отдать файлу представлению(в нашем случае index.tpl) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 ноября, 2015 Жалоба Поделиться Опубликовано 20 ноября, 2015 Теория Ваша хороша. Если б Вы ее еще расписали применительно к конкретной ситуации - было б совсем чудно... Пока даже не очень понятно по Вашей теории, что должен-то - то ли "просто взять нужный объект(ы), и сказать", то ли "должен подготовить этот объект и отдать"... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.