• Изменено

Да, я уже понял что это проблема у меня.
Удалил все статьи из таблицы БД и импортнул их по новому. У меня при переезде сайта у категорий поменялся id, поэтому я в ручную проставляю категории статьям.

Я пару статьям назначил категории и открыл посмотреть страницу не сломалась ли. Выводило 2 статьи у первой субкатегории и одна у второй субкатегории.
Потом назначил ещё категории 20 статьям, но они уже не выводятся. Как будто страницу где то закешировало, так же выводится 2 - 1.
Но открываю странице субкатегории - статьи выводятся все.

У меня стоит RainLab.Blog, я его пока не удаляю. Там так же вручную статьям категории назначал. И есть тоже странность что в админке на странице категорий, где подсчёт кол-ва материалов у категории всего 2.
По моему я двум статьям добавил категории и открыл страницу категорий. Так вот по сей день там показывает что у одной из категорий 2 статьи, а все остальные категории пустые, хотя я многим статьям успел назначить категорию.

Может какую настройку нужно поменять?

  • reazzon ответили на это сообщение.

    Koresh зайди напрямую в базу и проверь что в статьях стоит в столбце category_id.

    • Koresh ответили на это сообщение.
      • Изменено

      reazzon зайди напрямую в базу и проверь что в статьях стоит в столбце category_id.

      По умолчанию category_id проставился ноль. Запись в создании БД $table->integer('category_id');, но я заливал статьи через импорт.
      Есть статьи где уже назначил категорию, там целые положительные числа.

      • reazzon ответили на это сообщение.

        Koresh По умолчанию должно стоять NULL, 0 - это уже запись для Eloquent.

        • Koresh ответили на это сообщение.

          reazzon По умолчанию должно стоять NULL, 0 - это уже запись для Eloquent.

          Это я исправил.
          Всё равно статьи для подкатегорий выводит по непонятному. Есть где у подкатегорий выводит далеко задесяток статей, есть где только 2 статьи, а есть подкатегории у которых вообще статьи не выводит. При том что открываю страницы подкатегорий - там статьи есть.
          Мне нужно что бы у меня выводилось по три статьи для каждой подкатегории. Сортировку я пока не вспоминаю, так как и без неё выводит некоректно.

          Вот мой код, правда я добавил if sub_cat.published и if article.published == 1 в условия циклов (нашёл в документации что вроде так можно делать), так как у меня и для категорий и для статей есть параметр "Опубликовано" со значениями

          • 0 - неопубликовано
          • 1 - опубликовано
          <h1>{{ category.name }}</h1>
          {{ category.description|raw }}
          
          
          {% for sub_cat in category.getChildren() if sub_cat.published == 1 %}
              
              <h2><a href="/{{ category.slug }}/{{ sub_cat.slug }}">{{ sub_cat.name }}</a></h2>
              {{ sub_cat.description|raw }}
              
              <div class="row">
                  {% for article in sub_cat.articles|slice(3) if article.published == 1 %} <!-- Берем 3 статьи по связи hasMany -->
                      <div class="col-md-4">
                                  <h5>
                                      <a href="/{{ category.slug }}/{{ sub_cat.slug }}/{{ article.slug }}">
                                          {{ article .name }}
                                      </a>
                                  </h5>
                                  
                                  <a href="/{{ category.slug }}/{{ sub_cat.slug }}/{{ article .slug }}" >Подробнее</a>
                      </div>
                  {% endfor %}
              </div>
              <hr/>
              
          {% endfor %}

          Может ли быть проблема из за того что у меня для статей в БД есть поле order (заложено для сортировки вывода статей, пока у всех статей значение 0)? Я уже натыкался что название столбцов может приносить проблемы.

          • BlackCat ответили на это сообщение.
            месяц спустя
            • Изменено

            Koresh Вот вспомни, что я тебе говорил про проверку публикации в твиг.

            {% for article in sub_cat.articles|slice(3) if article.published == 1 %}

            Ты тут пишешь перебрать 3 статьи в категории и вывести их. Если выводится одна статья значит, две статьи в этом стаке не опубликованы.

            articles | slice(3) - вот это может быть таким массивом
            $articles = [
               [ 'name' => 'Первый пост', 'is_public' => 1 ],
               [ 'name' => 'Второй пост', 'is_public' => 0 ],
               [ 'name' => 'Третий пост', 'is_public' => 0 ],
            ]

            Попробуй, убери проверку на бупликацию, если выведет 3 статьи, то я прав

            • Koresh ответили на это сообщение.

              BlackCat Я ни в коем случае не спорю с вами - у меня знаний мало, опыта ещё меньше. Если мне первый месяц было сложно смотреть доки октября, то сейчас более менее привыкаю.

              Но понимаете в чём дело, у меня выводится не по три статьи и меньше, а вообще не понятно сколько: где десять, где две, где вообще ничего не выводит.

              • BlackCat ответили на это сообщение.

                Koresh Вы уже пробовали убрать проверку на публикацию? Если убрали изменилось ли что-нибудь.

                • Koresh ответили на это сообщение.

                  BlackCat Вы уже пробовали убрать проверку на публикацию? Если убрали изменилось ли что-нибудь.

                  Вот только что специально убрал две проверки на published == 1 (код выше). Положительных изменений не наблюдается.

                  • reazzon ответили на это сообщение.

                    Koresh Выложи свою папку /plugins и /themes на GitHub, трудно оценивать так ситуацию.

                    • Koresh ответили на это сообщение.

                      reazzon Выложи свою папку /plugins и /themes на GitHub, трудно оценивать так ситуацию.

                      Это сайт который я хотел перевести с джумлы на октябрь. Помимо этой проблемы у меня там есть ещё ряд затруднений. Я этот сайт пока отложил, поэтому попозже выложу плагин и тему.

                      Сейчас я запускаю новый сайт, который изначально сделан на OctoberCMS. Когда сайт не один - тогда легче и проще изучать систему, и можно брать готовые решения с одного сайта и применять их на другом.
                      Мне до запуска первого сайта на October осталось буквально пару штришков сделать - решить вопрос с доступом к неопубликованому, расставить в вёрстке микроразметку и зарегистрировать в поисковиках. А так у меня всё готово - плагин контента, оптимизация, карта сайта, вёрстка и т.д.

                      Сейчас у меня в приоритете запустить новый сайт, а потом уже вернусь к проблемам с переездом с джумлы.