shooroop Posted September 28, 2017 Report Share Posted September 28, 2017 собственно как правильно задать условие к заголовку <h1>{page->name}</h1> что бы в конструкцию вставить </br> в адинке значится name как "Высоковольтные кабели" на странице в h1 выводится соответственно сейчас <h1>Высокольтные кабели</h1> а нужно чтоб выводилось <h1>Высокольтные </br> кабели</h1> те после первого слова выводился </br> какое условие смарти надо прописать, нид хелп Quote Link to post Share on other sites
shooroop Posted September 28, 2017 Author Report Share Posted September 28, 2017 (edited) такая конструкция дает </br> после каждого слова а мненадо только после первого слова {textformat wrap=1 indent=1 indent_char='</br>'}{$page->name}{/textformat} результат <h1></br>Высокольтные </br> кабели</br></h1> Edited September 28, 2017 by shooroop Quote Link to post Share on other sites
chocolate_moles Posted September 28, 2017 Report Share Posted September 28, 2017 (edited) какое условие смарти надо прописать, нид хелп {$page->name|regex_replace:'/^([^ ]+?)( )(.*)$/':'\1<br>\3'} Edited September 28, 2017 by chocolate_moles Quote Link to post Share on other sites
Solution loxter Posted September 28, 2017 Solution Report Share Posted September 28, 2017 Чуть попроще {$page->name|regex_replace:'/^([^ ]*) /':'\1<br>'} Quote Link to post Share on other sites
shooroop Posted September 28, 2017 Author Report Share Posted September 28, 2017 Спасибо всем Quote Link to post Share on other sites
yr4ik Posted September 28, 2017 Report Share Posted September 28, 2017 {$h1 = ' ':$page->name|explode:2}{$h1[0]}<br>{$h1[1]} так же можно через substr_replace и strpos. Но мне кажется explode удобней Quote Link to post Share on other sites
Артемий Posted September 28, 2017 Report Share Posted September 28, 2017 Попробуйте так: {$page->name|replace:' ':'<br>'} Quote Link to post Share on other sites
loxter Posted September 28, 2017 Report Share Posted September 28, 2017 Попробуйте так: {$page->name|replace:' ':'<br>'} Так совсем неправильно. ТС ведь четко написал в первом посте: те после первого слова выводился </br> А по Вашему методу КАЖДЫЙ пробел заменится на <br>... Quote Link to post Share on other sites
Артемий Posted September 28, 2017 Report Share Posted September 28, 2017 Так совсем неправильно. ТС ведь четко написал в первом посте: А по Вашему методу КАЖДЫЙ пробел заменится на <br>...Да верно каждый, но ведь и ТС написал пример с ОДНИМ пробелом, о том что их будет несколько речи не было, и я не обязан это учитывать. Quote Link to post Share on other sites
shooroop Posted September 28, 2017 Author Report Share Posted September 28, 2017 У Владимира самый верный вариант Quote Link to post Share on other sites
loxter Posted September 28, 2017 Report Share Posted September 28, 2017 (edited) Да верно каждый, но ведь и ТС написал пример с ОДНИМ пробелом, о том что их будет несколько речи не было, и я не обязан это учитывать. Очень правильное замечание. Безусловно, не обязан. Вы даже вообще не обязаны были в тему писать, особенно после того, как вопрос решился...Стало быть, Вы прямо герой труда - не обязан, а написал... Edited September 28, 2017 by loxter Quote Link to post Share on other sites
Артемий Posted September 28, 2017 Report Share Posted September 28, 2017 У Владимира самый верный вариантВерный но не самый простой. Quote Link to post Share on other sites
shooroop Posted September 28, 2017 Author Report Share Posted September 28, 2017 Верный но не самый простой. Я не увидел простой ответ от вас. Покажите? Quote Link to post Share on other sites
Артемий Posted September 28, 2017 Report Share Posted September 28, 2017 Я не увидел простой ответ от вас. Покажите?Ещё не придумал, если вас устроит вариант предложенный выше, то думаю не стоит на это тратить время. Quote Link to post Share on other sites
get31 Posted August 11, 2023 Report Share Posted August 11, 2023 В 28.09.2017 в 14:42, loxter сказал: Чуть попроще {$page->name|regex_replace:'/^([^ ]*) /':'\1<br>'} а как вывести после 3-го слова? Quote Link to post Share on other sites
phukortsin Posted August 11, 2023 Report Share Posted August 11, 2023 Чуть изменить способ yr4ik: {$h1 = ' ':$page->name|explode:3} {$h1[0]} {$h1[1]}<br>{$h1[2]} Quote Link to post Share on other sites
get31 Posted August 11, 2023 Report Share Posted August 11, 2023 (edited) 3 минуты назад, phukortsin сказал: Чуть изменить способ yr4ik: {$h1 = ' ':$page->name|explode:3} {$h1[0]} {$h1[1]}<br>{$h1[2]} такой способ и сайт летит: Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "W:\home\localhost\www\site\design\wo\html\index.tpl" on line 262 "{$h1 = ' ':$p->name|explode:3}" - Unexpected ":", expected one of: "}" <-- thrown in W:\home\localhost\www\site\Smarty\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 262 ругается на {$h1 = ' ':$p->name|explode:3} Edited August 11, 2023 by get31 Quote Link to post Share on other sites
phukortsin Posted August 12, 2023 Report Share Posted August 12, 2023 (edited) {$h1 = $page->name|explode:4} {$h1[0]} {$h1[1]} {$h1[2]}<br>{$h1[3]} Edited August 12, 2023 by phukortsin Quote Link to post Share on other sites
get31 Posted August 12, 2023 Report Share Posted August 12, 2023 1 час назад, phukortsin сказал: {$h1 = $page->name|explode:4} {$h1[0]} {$h1[1]} {$h1[2]}<br>{$h1[3]} вместо названия - Warning: explode() expects at least 2 parameters, 1 given in W:\home\localhost\www\smart\Smarty\libs\sysplugins\smarty_internal_templatebase.php(165) : eval()'d code on line 527 Quote Link to post Share on other sites
phukortsin Posted August 13, 2023 Report Share Posted August 13, 2023 {$h1 = explode(' ',$page->name,4)} {$h1[0]} {$h1[1]} {$h1[2]}<br>{$h1[3]} Quote Link to post Share on other sites
get31 Posted August 13, 2023 Report Share Posted August 13, 2023 1 час назад, phukortsin сказал: {$h1 = explode(' ',$page->name,4)} {$h1[0]} {$h1[1]} {$h1[2]}<br>{$h1[3]} Работает, спасибо! 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.