Прошу помочь в решении проблемы.
На страницу с динамическим контентом выводятся материалы — статьи. У статей есть заголовок. Статьи можно объединять в циклы; при этом заголовок принимает вид:
Заголовок. Подзаголовок. Часть n
В CMS заголовок вводится в одно текстовое поле по шаблону:
Заголовок. Часть n. Подзаголовок
Разделители — точки.
Заголовок — переменная %name%.
Подзаголовок — переменная %subname%.
Номер части цикла статей — переменная %peace%.
Из-за того, что переменная, отвечающая за номер части статьи имеет строковый тип данных, нумерация статей нарушается, если их более 9 в цикле. Получается: Часть 1 — Часть 10 — Часть 2 и т. д.
Как добиться нумерации в правильном порядке? Понимаю, что надо изменить тип данных переменной, но не понимаю, как это сделать в текущей реализации.
Вёрстка в шаблоне:
CODE ( html):
скопировать код в буфер обмена
<div class = "col-md-12 hidden-xs snTitle snScaledTitle"> <div class = "col-xs-12 col-sm-10 col-sm-offset-1 col-lg-10 col-lg-offset-1"> <div class = "col-lg-12 col-lg-offset-0 col-xs-8 col-xs-offset-2 snDateTime"> <img src = "/admin/materialtemplate/images/clock.png" alt = ""> <span>{%createdate%}</span> </div> <div class = "col-xs-12"> <p>{%name%}</p> </div> <div class = "col-xs-12"> <p class = "snSubTitle">{%subname%}</p> </div> <div class = "col-xs-12"> <ul class = "snMaterialParts"> {%peace%} </ul> </div> </div> </div>
Код:
PHP:
скопировать код в буфер обмена
$mat_class = AD::model('material'); $filter = new $mat_class(1); $data = $filter->ById($aid); $data_pieces = $filter->getCycleOfArticles($data['NAME']); $alname =explode('.', $data['NAME']); $sendata['name'] =$alname[0]; $sendata['subname'] = strlen($alname[2 ]) > 3 ? $alname[2 ] : $alname[1 ]; $sendata['peace'] = ''; if($data_pieces){ foreach ($data_pieces as $dp) { if ( $dp['SEL'] == 'Y') { $dst = ' class="active"'; $al1 = ''; $al2 = ''; } else { $al1 = '<a href="'.$dp['LINK'].'">'; $al2 = '</a>'; $dst =''; } $sendata['peace'] .= '<li '.$dst.' >'.$al1.' ' . $dp['NAME'] . ' '.$al2.'</li>'; } }
|