Форумы / National / Russian / Тех. поддержка / Как создать подкатегории?

<<<123>>>

Объясните пожалуйста, как создать подкатегории!

Kabak
#16 04.02.2024 06:50

Есть сильное подозрение что PAGE_ROW_TEXT_CUT это УЖЕ обрезанный текст средствами cot_cut_more. Я бы выводил {PAGE_ROW_TEXT|cot_string_truncate($this,350,true,false,'...')} во избежание всяких конфликтов

 

В последней версии движка в TPL который по умолчанию выводит новости на главной странице прописан {PAGE_ROW_TEXT_CUT}

( прежде чем публиковать точную информацию я проверил на своём сайте )

Kopusha
#17 04.02.2024 08:41

Тег сам называется Страницы вЦикле Текст Обрезать)

Разверну - и тег PAGE_ROW_TEXT и PAGE_ROW_TEXT_CUT выведуь одно и те же - содержимое таблицы pages столбец page_text. Ну или типа того. Но если в этом содержимом есть [more] то PAGE_ROW_TEXT выведет весь текст а PAGE_ROW_TEXT_CUT все до этого [more] - отработает cot_cut_more

Может в новых ревизиях чото то по другому - но сильно сомневаюсь.

 

 

Pahan
#18 04.02.2024 08:48
#47733 Kabak:

Можно ссылку на сайт или скриншот титульной страницы сайта, чтобы я увидел что и как ?

 

По-моему,  в каталоге темы Nemesis нужно созадть папку каталог_сайта/themes/nemesis/plugins/indexnews/indexnews.tpl

в этот файл скопировать содержимое файла из оригинального находящегося по адресу  каталог_сайта/plugins/indexnews/indexnews.tpl

и заменить в файле каталог_сайта/themes/nemesis/plugins/indexnews/indexnews.tpl

строку № 28 

{PAGE_ROW_TEXT_CUT}

на такую

    {PAGE_ROW_TEXT_CUT|cot_string_truncate($this,350,true,false,'...')}

350 - желаемое количество символов

 

Это решение в лоб.

 

Ваше решение помогло, в шаблоне nemesis вообще отсутстовала папка plugins, не говоря уже о папке indexnews. Такой способ сработал и на других шаблонах, спасибо! В шаблоне tpl который я скопировал было прописано просто {PAGE_ROW_TEXT_CUT}.

Добавлено 3 минуты спустя:

Но мой второй вопрос остается в силе, как сделать сетку (grid) на главной странице.Я не нашел ни одного шаблона с таким оформлением, чтобы посмотреть как делается. Совершенно без разницы сетка на bootstrap 5 или своими CSS, я html просто привел для примера, чтобы было понятно.

Добавлено 5 минут спустя:

Чтобы визуально было понятно, что надо, вот пример:

Hueman

Отредактировано: Pahan (04.02.2024 09:01, 2 месяца назад)
Kabak
#19 04.02.2024 09:18

Ваше решение помогло, в шаблоне nemesis вообще отсутстовала папка plugins, не говоря уже о папке indexnews.

Потому что тема по умолчанию и в ней нет модификаций под чьи-нибудь нужды.  поэтому нет папок для модификаций других TPL из базовой поставки движка.

Рекомендую всегда создавать в вашей теме с небазовым названием папки и TPL , а не модифицировать TPL прямо в движке в плагинах или модулях.  Потому что при обновлении движка всё содержимое движка включая базовые темы NEMESIS и т.д. вернётся к базовому состоянию и ваши изменения пропадут.  Создайте копию темы , например NEMESIS с другим имененем и модифицируйте TPL в этой теме, а не в базовой,  Ваша тема не повредится при обновленіі движка.

Как быстро создать свою тему для Cotonti ?

Мой блог

 

Но мой второй вопрос остается в силе, как сделать сетку (grid) на главной странице.Я не нашел ни одного шаблона с таким оформлением, чтобы посмотреть как делается. Совершенно без разницы сетка на bootstrap 5 или своими CSS, я html просто привел для примера, чтобы было понятно.

Я не силён в сетках и никогда не использую Bootstrap.  Я рисую скины сам и сам пишу стили для своих скинов.  Для изящного и быстрого Cotonti  библиотека Bootstrap громоздка.  Это моё личное мнение. 

Вам придётся модифицировать TPL от вашего скина самостоятельно чтобы применить CSS от Bootstap к вашему скину.  Оберните всё самостоятельно во внешний вид из Bootstrap

Отредактировано: Kabak (04.02.2024 09:31, 2 месяца назад)
Pahan
#20 04.02.2024 09:34

Да не проблема в 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
#21 04.02.2024 09:41

"Сетка" - это скин = внешний вид титульной страницы или любой иной страницы сайта.  

Главная страницы сайта  - index.tpl  хранящийся в корневом каталоге любой темы для Cotonti.

Модифицируйте вашу тему ( Index.tpl и *.tpl  с исполььзованием CSS из Bootstrap так, чтобы сайт выгялдел как хочется вам. )   

Добавлено 2 минуты спустя:

#47752 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 штук.

Это нужно модифицировать TPL от плагина который выводит новости.  В вашем случае indexnews.tpl     Так , чтобы выводило как нужно вам   

 

Добавлено 4 минуты спустя:

т.е. в прямом смысле руками в нужных TPL  модифицировать HTML + CSS + JS = создавть внешний вид вашей страницы.

Что не понятно ?

Pahan
#22 04.02.2024 09:51

Как модифицировать 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, 2 месяца назад)
Kabak
#23 04.02.2024 09:54

Блок 

<!-- BEGIN: PAGE_ROW -->

...

<!-- END: PAGE_ROW -->

 

Выводит каждую новость в этом блоке  пока не закончится список новостей подлежащих отображению

 измените внешний вид всего что находится в этом блоке

Kopusha
#24 04.02.2024 09:57

Там где создается цикл чего угодно можно (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
#25 04.02.2024 09:58

Как модифицировать indexnews.tpl чтобы выводило по три новости за такт! 

Что значит по три новости за такт ?

Kopusha
#26 04.02.2024 09:59

Собственно можно прямо в 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:

Как модифицировать indexnews.tpl чтобы выводило по три новости за такт! 

Что значит по три новости за такт ?

типа первые три большие а потом поменьше

Pahan
#27 04.02.2024 10:02

Понял спасибо!

 

Kabak
#28 04.02.2024 10:08

Я тупой, я не понимаю! Как сделать блок из трех новостей? Не из одной, а из трех, из одной и ежу понятно!

Этот плагин выводит одну новость за такт.  Хотите блоками по три новости в блоке, нужно

1) оформить CSS так , чтобы новоти выводились по три

или

2) писать свой плагин на базе indexnews. Переименуйте копию этого плагина и смодифиицруйте его под ваши нужды. 

Отредактировано: Kabak (04.02.2024 10:18, 2 месяца назад)
Kopusha
#29 04.02.2024 10:14
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:

2) писать свой плагин на базе indexnews. Переименуйте копию этого плагина и смодифиицруйте его под ваши нужды. 

да там и нет плагина - там просто подключение 1 функции что можно сдлеать прямо в тпл

Pahan
#30 04.02.2024 17:22

Вообщем сделал попростому пока, потом переделаю нормально. Как-то так:

<!-- 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 минута спустя:

Я имею ввиду изображение статьи, а не изображение в тексте статьи. Использовать экстраполя?

<<<123>>>