Имелось в виду, что от количества товара в категории не зависит. Однако, возможность вставки текста под Н1 или других зонах документа, поможет поэкспериментировать над сниппетом в выдаче.
Иными словами - гибкое управление контентом. Не только лишь статья/листинг/карточка, но и другие текстовые/медийные блоки. В асиде над/под меню, до виджета товара, под ним, перед "с этим покупают", после и т.д.
Вышесказанное, касается и этого
OffTop:
Еще и комбинации перечисленного могут быть, для своей внутренней, в итоге пришлось к php, sqlite, mongo еще и python добавить для сначала для склонения:
$titletpl = "Продажа %item% в %city%";
"Продажа слоны в Москва" проигрывает "Продажа слонов в Москве"
A потом и генсим c lsi.
Как от количества и ассортимента сниппет то конкретного документа зависит?
Задача
В том, что вы процитировали, было слово актуально. Что значит, просто хтмл блок не катит, а нужно, что то похожее на
Трафик с ПС, при прочих равных, не будет лишним. Само собой:
Сказал гуру Веб-строительства. Может, подождем сеошников, чтобы нам сказали, где им лучше разместить утп в карточке/категории, чтобы он в сниппет с большей вероятностью вошел.
Не только лишь всех. Коммерческих. Магазин там какой/витрина/каталог. В идеале, если родятся базовые пункты ТЗ, чтобы было удобно для сео, то тема не напрасно.
Для инфо-сайтов (они ведь тоже заработать хотят) тоже может быть интересно, ну там легко вставить актуальную подборку товаров с партнерки в свою статью. Но, это лучше в другом месте обсудить.
да ладно
yum install nodejs
Что значит покажите? Любой интернет магазин откройте и увидите, что в ваших терминах, каждая станица имеет четкую структуру, часто сложную, реже, но встречаются у которых она еще и гибкая - ну типа карточки разных категорий имеют явно разные шаблоны. Логично ведь, как минимум, предположить, что не будет структурированного сайта, если нет структурированного подхода к его отображению.
Раскусили, только смысла не увидели:D
Кто же вас знает. Может из-за
а может из-за
$pp = new XSLTProcessor();$pp->importStylesheet($xsl);
Вы поймите, скепсис, который тут нарисовался, вызван безапелляционными утверждениями -
И еще, если это для сайтов типа "мой новый блог на Вордпрессе SND" это одно. Если более сложный проект, это другое. Там одних шаблонов для вывода легко с десяток может быть - шаблон документа, листинга товаров, карточки товара, тайтл, дескрипшн, опенграф:тайтл+, товарный обвес, поисковая подсказка, формы заказа, формы майлов и т.д. Так что хмл не лучший вариант.
-----добавлю
Более того, сам контент из базы тоже может быть шаблоном
Каждый отдельный элемент, который можно доверить пользователю редактируется в админке. Более, того он же может добавить новый элемент туда и изменив шаблон увидеть это. Это легко реализуется с помощью любого фреймворка
[new_fignay] => <h3>Эту фигню добавим в футер</h3> #twig <footer> <div class="container"> <div class="xrow"> <div class="col xs-tc"> <p class="xs-fs16">{{ sitename }}</p> <br>{{ email }} <br>{{ phone }} <br>{{ fax }} </div> <div class="col x2 xs-tc"> <div>{{ footermenu }}</div> </div> <div class="col"> {{ socialbuttons }} {{ counters }} {{ new_fignay }} </div> </div> </div> </footer>
Не до конца, ясно на чем основывается такое утверждение. Вот тут например, примерно тоже самое что и у вас.
Элемент из объекста
#в виде массива, в предыдущем сообщении jslib, был вырезан [usrlink] => <a href="/usr/">Кабинет пользователя</a> [css_list] => /assets/themes/default/css/custom.min.css,/assets/css/usr.min.css,/assets/vendor/tiny-edit/src/tinyeditor.min.css [jslib] => Array ( [0] => /assets/vendor/peppermint/peppermint.min.js [1] => /assets/js/elm.min.js [2] => /assets/vendor/codemirror/dist/codemirror.js [3] => /assets/vendor/tiny-edit/src/tinyeditor.min.js [4] => /assets/js/adm.min.js [5] => /assets/vendor/autocomplete/autocomplete.min.js ) [CSRF] => 3be8e88683e5e11a265db6cc198d7804 [STKN] => Dc3FmziB
Вставка в шаблоне
<script data-sid="{{ STKN }}">const cssList='{{ css_list }}';/*sys_js*/(function(){aapp.STKN="{{ STKN }}";})();</script> <script defer src="/assets/js/before.min.js"></script> {% for lib in jslib %} {% if lib %} <script defer src="{{ lib }}"></script> {% endif %} {% endfor %}
Хотя, у меня собственные решения, не вижу причин, почему к этому нельзя прийти в контроллере-моделе любого из популярных фреймворков и отобразить в вьюхе.
private function twig_out() { logger( 'Start render page by TWIG' ); $template = is_array($this->tpl) ? _arr($this->tpl, 'template') : null; if(!$template) throw new \Exception('Wrong template', 3010); if( !Core::outcheck() ) throw new \Exception('Wrong out array', 3011); $icons = require _ETC . 'view/icons.php'; Core::outset('icons', $icons); print_r( Core::outget() ); exit; $area = _arr($this->tpl, 'area'); $this->twig = new \Twig_Environment( new \Twig_Loader_Filesystem( $area ), [ 'charset'=>'utf-8', 'cache' => _VAR . 'cache/twig_cache/', 'auto_reload' => true ] ); logger( 'TWIG loaded' ); $this->twig->addExtension( new TwigExtension ); logger( 'TwigExtension loaded' ); $this->html = $this->twig->render( $template, Core::outget() ); logger( 'HTML ready' ); }#пяток строк не для чужих глаз вырезаны
При этом, между Start render page by TWIG и HTML ready не более 10мс для довольно увесистого Core::outget() (под 100 элементов, в т.ч хтмл контент)
Вот тут, если я правильно понял, в точку.
Скорость
Class Aapp\Response\RenderHtml ready 15.34 ms 0.56 ms 1.19/2.00, mbStart render page by TWIG 15.36 ms 0.02 ms 1.19/2.00, mbTWIG loaded 21.81 ms 6.45 ms 1.76/4.00, mbTwigExtension loaded 21.93 ms 0.12 ms 1.77/4.00, mbHTML ready 23.74 ms 1.81 ms 1.89/4.00, mbJs/Css included 24.24 ms 0.50 ms 1.93/4.00, mbDebug data 24.25 ms 0.01 ms 1.93/4.00, mbEnd 24.26 ms 0.01 ms 1.94/4.00, mb
Профайлер сказал, что твиг 6,45+1,81 из суммарных 25, что много но оправдано. А простой стр_реплейс
Js/Css included 24.24 ms 0.50 ms 1.93/4.00, mb
за 0.5мс вставил
$css = file_get_contents( _WEBDIR . '/assets/css/start.min.css'); if($css) $this->html = str_replace('/*css*/', $css, $this->html ); $css = null; $js = file_get_contents( _WEBDIR . '/assets/js/js.scripts.min.js'); $js = Core::tkn($js); if($js) $this->html = str_replace('/*sys_js*/', $js, $this->html ); $js = null; //$this->html = preg_replace('/\s{2,}/', ' ', $this->html); logger( 'Js/Css included' );
Как то так.
А в целом, тема идеальной кмс недостижима, но приличную построить можно. Но, придется учитывать море факторов.
вставили. Дело в облегчении и структуировании создания страниц для сайта.
А в чем облегчение?
Вы говорите
Может кода от разметки? Но тут же
if($sg)$lm='<li><a class=active>'.$val['des'].'</a></li>'; else $lm='<li><a href='.$val['lnk'].'>'.$val['des'].'</a></li>';
Про билеберду, это сильно урезанный пример, набора данных нужных для сборки раздела каталога. Не настаиваю, но чтобы гибко управлять любым документом, придется смириться с большим набором исходных данных
Ну типа для карточки товара
'item_title': 'Купить %item_name% в %city[datv]% - запчасти на ' '%group_name% в %shop_name%',
сгенерить тайтл "Купить поршень в Москве - запчасти на двигатель в ООО Рога и копыта "
а
'STKN': 'iDYPOUvy'
один из токенов без чего, никакой пост запрос не будет принят с этого документа.
'ya_goal': {'btn_message': 'soobshen',
говорит о том, что на кнопку #btn_message надо навесить цель яндекс метрики soobshen
Вырвал из контекста, но "смотрите ширше" (с) на построение кмс и успех придет