Объясните пожалуйста, как создать подкатегории!
| Kabak |
|
|---|---|
В последней версии движка в TPL который по умолчанию выводит новости на главной странице прописан {PAGE_ROW_TEXT_CUT} ( прежде чем публиковать точную информацию я проверил на своём сайте ) |
| Kopusha |
|
|---|---|
|
Тег сам называется Страницы вЦикле Текст Обрезать) Разверну - и тег PAGE_ROW_TEXT и PAGE_ROW_TEXT_CUT выведуь одно и те же - содержимое таблицы pages столбец page_text. Ну или типа того. Но если в этом содержимом есть [more] то PAGE_ROW_TEXT выведет весь текст а PAGE_ROW_TEXT_CUT все до этого [more] - отработает cot_cut_more Может в новых ревизиях чото то по другому - но сильно сомневаюсь.
|
| Pahan |
|
|---|---|
#47733 Kabak: Ваше решение помогло, в шаблоне nemesis вообще отсутстовала папка plugins, не говоря уже о папке indexnews. Такой способ сработал и на других шаблонах, спасибо! В шаблоне tpl который я скопировал было прописано просто {PAGE_ROW_TEXT_CUT}. Добавлено 3 минуты спустя: Но мой второй вопрос остается в силе, как сделать сетку (grid) на главной странице.Я не нашел ни одного шаблона с таким оформлением, чтобы посмотреть как делается. Совершенно без разницы сетка на bootstrap 5 или своими CSS, я html просто привел для примера, чтобы было понятно. Добавлено 5 минут спустя: Чтобы визуально было понятно, что надо, вот пример:
Отредактировано: Pahan (04.02.2024 09:01, 1 год назад)
|
| Kabak |
|
|---|---|
Потому что тема по умолчанию и в ней нет модификаций под чьи-нибудь нужды. поэтому нет папок для модификаций других TPL из базовой поставки движка. Рекомендую всегда создавать в вашей теме с небазовым названием папки и TPL , а не модифицировать TPL прямо в движке в плагинах или модулях. Потому что при обновлении движка всё содержимое движка включая базовые темы NEMESIS и т.д. вернётся к базовому состоянию и ваши изменения пропадут. Создайте копию темы , например NEMESIS с другим имененем и модифицируйте TPL в этой теме, а не в базовой, Ваша тема не повредится при обновленіі движка. Как быстро создать свою тему для Cotonti ?
Я не силён в сетках и никогда не использую Bootstrap. Я рисую скины сам и сам пишу стили для своих скинов. Для изящного и быстрого Cotonti библиотека Bootstrap громоздка. Это моё личное мнение. Вам придётся модифицировать TPL от вашего скина самостоятельно чтобы применить CSS от Bootstap к вашему скину. Оберните всё самостоятельно во внешний вид из Bootstrap
Отредактировано: Kabak (04.02.2024 09:31, 1 год назад)
|
| Pahan |
|
|---|---|
|
Да не проблема в HTML (скине), а как программно вывести сетку? В скине Wordpress есть function.php в котором можно написать что угодно и использовать как угодно. А в Cotonti как делать? Грубо говоря мне нужно, чтобы каждые три новости из 30 штук выводило вот такую байду:
<div class="row mb-3 text-center">
<div class="col-4 themed-grid-col">Статья 1</div>
<div class="col-4 themed-grid-col">Статья 2</div>
<div class="col-4 themed-grid-col">Статья 3</div>
</div>
и так далее до 30 штук! В итоге получиться 3 колонки в каждой по 10 штук. |
| Kabak |
|
|---|---|
|
"Сетка" - это скин = внешний вид титульной страницы или любой иной страницы сайта. Главная страницы сайта - index.tpl хранящийся в корневом каталоге любой темы для Cotonti. Модифицируйте вашу тему ( Index.tpl и *.tpl с исполььзованием CSS из Bootstrap так, чтобы сайт выгялдел как хочется вам. ) Добавлено 2 минуты спустя: #47752 Pahan: Это нужно модифицировать TPL от плагина который выводит новости. В вашем случае indexnews.tpl Так , чтобы выводило как нужно вам
Добавлено 4 минуты спустя: т.е. в прямом смысле руками в нужных TPL модифицировать HTML + CSS + JS = создавть внешний вид вашей страницы. Что не понятно ? |
| Pahan |
|
|---|---|
|
Как модифицировать indexnews.tpl чтобы выводило по три новости за такт! Вот пример PHP кода:
$data = array(
array('title' => "TITLE1", 'link' => "LINK1"),
array('title' => "TITLE2", 'link' => "LINK2"),
array('title' => "TITLE3", 'link' => "LINK3"),
array('title' => "TITLE4", 'link' => "LINK4"),
array('title' => "TITLE5", 'link' => "LINK5"),
array('title' => "TITLE6", 'link' => "LINK6"),
array('title' => "TITLE7", 'link' => "LINK7"),
array('title' => "TITLE8", 'link' => "LINK8"),
array('title' => "TITLE9", 'link' => "LINK9"),
array('title' => "TITLE10", 'link' => "LINK10"),
);
$rowCounter = 1;
$dataCounter = 0;
$newRow = true;
while($dataCounter < count($data))
{
if($newRow == true)
{
echo '<div class="row mb-3 text-center">'."\n";
$newRow = false;
}
echo "\t".'<div class="col-4 themed-grid-col"><a href="'.$data[$dataCounter]['link'].'">'.$data[$dataCounter]['title'].'</a></div>'."\n";
if(($rowCounter / 3) == 1 OR ($rowCounter % 3) == 0 OR (count($data) - $dataCounter) < 3)
{
echo '</div>'."\n";
$newRow = true;
}
$rowCounter++;
$dataCounter++;
}
Отредактировано: Pahan (04.02.2024 09:57, 1 год назад)
|
| Kabak |
|
|---|---|
|
Блок <!-- BEGIN: PAGE_ROW --> ... <!-- END: PAGE_ROW -->
Выводит каждую новость в этом блоке пока не закончится список новостей подлежащих отображению |
| Kopusha |
|
|---|---|
|
Там где создается цикл чего угодно можно (something) сделать так (если в файле something.list) еще этого нет
foreach($sqllist_rowset as $item)
{
$jj++;
$t->assign(array(
"SOMETHING_ROW_ODDEVEN" => cot_build_oddeven($jj),
"SOMETHING_ROW_NUM" => $jj,
));
}
это даст возможность в TPL <!-- IF {SOMETHING_ROW_NUM} == 3 OR {SOMETHING_ROW_NUM} == 18 -->
|
| Kabak |
|
|---|---|
Что значит по три новости за такт ? |
| Kopusha |
|
|---|---|
|
Собственно можно прямо в TPL делать if(($rowCounter / 3) == 1 OR ($rowCounter % 3) == 0 OR (count($data) - $dataCounter) < 3) и тому подобное конечно это через жопу но уже что то. Added 47 seconds later: <!-- IF {SOMETHING_ROW_NUM} / 3 == 0 OR {SOMETHING_ROW_NUM} < 3 --> ну и тд Added 30 seconds later: советую найти в документации доки по тегам и вычисленям в них и прочитать - не будет таких вопросов Added 1 minute later: #47757 Kabak: типа первые три большие а потом поменьше |
| Pahan |
|
|---|---|
|
Понял спасибо!
|
| Kabak |
|
|---|---|
Этот плагин выводит одну новость за такт. Хотите блоками по три новости в блоке, нужно 1) оформить CSS так , чтобы новоти выводились по три или 2) писать свой плагин на базе indexnews. Переименуйте копию этого плагина и смодифиицруйте его под ваши нужды.
Отредактировано: Kabak (04.02.2024 10:18, 1 год назад)
|
| Kopusha |
|
|---|---|
indexnews.index.tags.php имеет такой код
$indexnews_html = cot_page_enum($cfg['plugin']['indexnews']['category'], $cfg['plugin']['indexnews']['maxpages'],
cot_tplfile('indexnews', 'plug'), '', '', true, true, false, '', 'd', (int)$cfg['plugin']['indexnews']['cache_ttl']);
соответственно он использует функцию cot_page_enum о которой на этом форуме написано уже много и подробно
ей можно делать практически что угодно
прошу обратить внимание что она кеширует - или отключть кеш или чистить в админке что бы увидеть изменения
Added 3 minutes later: если коротко то /** * Generates page list widget * @param mixed $categories Custom parent categories code * @param integer $count Number of items to show. 0 - all items * @param string $template Path for template file * @param string $order Sorting order (SQL) * @param string $condition Custom selection filter (SQL) * @param mixed $active_only Custom parent category code * @param boolean $use_subcat Include subcategories TRUE/FALSE * @param boolean $exclude_current Exclude the current page from the rowset for pages. * @param string $blacklist Category black list, semicolon separated * @param string $pagination Pagination symbol * @param integer $cache_ttl Cache lifetime in seconds, 0 disables cache * @return string Parsed HTML */ function cot_page_enum($categories = '', $count = 0, $template = '', $order = '', $condition = '', $active_only = true, $use_subcat = true, $exclude_current = false, $blacklist = '', $pagination = '', $cache_ttl=null)
Added 1 minute later: #47760 Kabak: да там и нет плагина - там просто подключение 1 функции что можно сдлеать прямо в тпл |
| Pahan |
|
|---|---|
|
Вообщем сделал попростому пока, потом переделаю нормально. Как-то так:
<!-- IF {PAGE_ROW_NUM} == 1 OR {PAGE_ROW_NUM} == 4 -->
<div class="row mb-3 text-center">
<!-- ENDIF -->
<div class="col-4 themed-grid-col">
{PAGE_ROW_TEXT_CUT|cot_string_truncate($this,150,true,false,'...')}
<br /><a href="{PAGE_ROW_URL}" class="btn btn-small btn-primary">{PHP.L.ReadMore}</a>
</div>
<!-- IF {PAGE_ROW_NUM} == 3 OR {PAGE_ROW_NUM} == 6 -->
</div>
<!-- ENDIF -->
Народ, кто-нибудь может сделать нормальную документацию? Даже самого простого нет! Как добавить изображение к статье? Добавлено 1 минута спустя: Я имею ввиду изображение статьи, а не изображение в тексте статьи. Использовать экстраполя? |