Вход • Регистрация

Добавление нового атрибута для

  • 04 апреля 2019 г.
  • Здравствуйте, задача добавить новый атрибут для show_block модуля Новости, вроде бы везде всё прописал, но проблема теперь в том если не указан атрибут, то есть вообще не прописан, ничего не выводится, а если прописать, то выводит правильно, как это исправить? То есть где надо указать что если он не указан, то не обращать на него внимание
  • 04 апреля 2019 г.
  • нет, я создал в таблицу news, page_id, это номер страницы который выбирается из списка всех страниц, к странице которой будет прикреплена новость, потом делаю так <insert name="show_block" module="news" page_id="$this->diafan->_site_id"> но если не указан page_id, то есть так: <insert name="show_block" module="news"> то новости не хотят выводится
  • 04 апреля 2019 г.
  • А если всё таки указал page_id, то выводится правильно новость, ту которую я выбрал в списке при добавлении новости
  • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
  • Вот так это всё выглядит, а если уберу page_id, то перестанет показываться, хотя должен показать все новости, если не учтено page_id
  • 04 апреля 2019 г.
  • В контроллере модуля, указать в функции get_attributes
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • Вроде указал, если правильно вас понял
      • 04 апреля 2019 г.
      • Странно, по идее get_attributes как раз таки для этого случая и необходим
        • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
        • По идее же если page_id не указан, то должны выводится все новости? А если page_id указан, то новость, которая привязана по id к странице? Но работает только если указан page_id
  • 04 апреля 2019 г.
  • Что за тавтология, по какой еще идее?))))
    Есть код, прочитайте что он делает, а что не делает, если не понимаете, уточняйте, пока не поймете.
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • Я хочу понять в чём ошибка, где я ещё не указал свой новый столбец, почему же <insert name="show_block" module="news"> перестал выводить все новости, пока я не добавлю page_id,а если добавил, он выводит именно те новости, которые я хотел
      • 04 апреля 2019 г.
      • Что и где Вы уже сделали?
        Вы подправили news.model.php функцию show_block? там добавили условие по page_id? конечно не будет ничего выводить, нужно правильно добавить условие в вызов из БД, если передалась переменная то добавляем условие, если нет, не добавляем.
      • 04 апреля 2019 г.
      • Вы создали в таблице page_id? Как и чего туда попадает?
        А Ваш атрибут не дублирует атрибут site_id ?
        • 04 апреля 2019 г.
        • * site_id - страницы, к которым прикреплен модуль. Идентификаторы страниц перечисляются через запятую. Можно указать отрицательное значение, тогда будут исключены новости из указанного раздела. По умолчанию выбираются все страницы
          • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
          • у меня модуль Новости прикреплён к странице Новости, поэтому у всех новостей одинаковый site_id, а я в select выбираю из всех страниц, даже к которым не прикреплён модуль Новости, так как у этих страниц уже другой модуль.
            page_id создан, я же говорю, так работает:
            <insert name="show_block" module="news" page_id="$this->diafan->_site_id">
            то есть это указывает что атрибут работает как надо, а вот если убрать этот атрибут, перестаёт выводить все новости. Хотя если убраны все атрибуты:<insert name="show_block" module="news"> то должен вывести все новости, это произошло как раз после того, когда я добавил новый атрибут
        • 04 апреля 2019 г.
        • Из-за названия что ли должен дублировать?))))
          • 04 апреля 2019 г.
          • Не понял вас, о чём вы?
            • 04 апреля 2019 г.
            • Забейте. Я Вам другой вопрос задал и указал на возможное решение
              • 04 апреля 2019 г.
              • Вместе со своим атрибутом Вы указываете на свой шаблон, когда не указываете свой шаблон, должен сработать дефолтный news.show_block.php, он случаем не пустой?
                Из тех скринов что дали, тут все правильно, нужно посмотреть целиком функцию с файла news.php и news.model.php, оба файла куда выводятся данные, news.show_block.php и news.show_block_divisions.php
              • 04 апреля 2019 г.
              • Там в модельке и в контроллере описываются эти вещи.
                В метке кеша не забываем так же.
              • 04 апреля 2019 г.
              • А где вы добавили <insert name="show_block" module="news" page_id="$this->diafan->_site_id"> ?
              • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
              • На странице где должны выводится новости принадлежащиеся этой странице. Если я добавлю, как вы указали, то выведет всё правильно, но <insert name="show_block" module="news"> который стоит на главной странице site.php, не работает в нём не должно указываться page_id, так как там выводятся все новости
              • 04 апреля 2019 г.
              • Код
                <insert name="show_block" module="news" count="2" images="1" defer="emergence" defer_title="Новости">

                Может просто не правильно указан код на главной странице site.php?
              • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
              • Ну почему то всё работало, пока я не начал добавлять новый атрибут, как только закончил, пропало всё с главной страницы, вообще странности. Поставил ваш код, появилась надпись Новости и исчезла, новостей так и нет, сейчас я попробую вернуть всё на место, удалить свой атрибут и проверить работоспособность show_block
  • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
  • Цитата
    сейчас я попробую вернуть всё на место, удалить свой атрибут и проверить работоспособность show_block
    Для экспериментов создайте лучше дополнительную тему и ей перекроете основную. Так проще будет анализировать и проверять и меньше вероятности что-то испортить в основной теме.
    Цитата
    Здравствуйте, задача добавить новый атрибут для show_block модуля
    Кстати, я прочёл Ваше сообщение первое по диагонали, поспешил и не то спросил сначала.

    Начать надо было с вопроса: "Что это за атрибут и какую задачу Вы при помощи него хотите решить?"
    • 04 апреля 2019 г.
    • Да уже попробовал. Проблема та же и осталась, бессмысленно создавать новую тему
      • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
      • А она создаётся не для решения проблемы в первую очередь, а для изолирования изменений и выполняет функцию контроля версий. Когда Вы полдня просидите с решением этой задачи и поменяете 10 файлов в 50-и местах и при этом потребуется или проверить работу без этих исправлений, либо откатить её, слово "бессмысленно" заиграет новыми красками.

        Тема включается/отключается одной галкой в админке и удаляется при необходимости одним нажатием, не затрагивая основной код сайта.
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • page_id это id страницы к которой прикреплена новость, не обязательно чтобы был подключен модуль. То есть есть список всех страниц на сайте при добавлении новостей(скриншот 2), там я выбираю нужную страницу, id страницы заносится в таблицу news в столбец page_id(Скриншот 1). Теперь, есть Новости на главной странице, выводится обычным <insert name="show_block" module="news">, то есть все новости. А есть подразделения, кафедры, факультеты, и у каждой свои новости, но к ним уже прикреплен другой модуль, и прикрепить модуль Новости я физически не могу. и там идёт вывод новостей так: <insert name="show_block" module="news" page_id = "$this->diafan->_site->id">
  • 04 апреля 2019 г.
  • А не проще все это сделать чрезе динамический блок и cat_id?
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • cat_id использовать за место page_id, заносить туда id страницы? Или же подключить категории и использовать cat_id? Если категории, то я этот вариант уже попробовал, потом новости на основной странице выводятся не правильно. Выводятся категории, навигация идёт по категориям, а не по новостям. Плюс rewrite ставит ещё ЧПУ категории
      • 04 апреля 2019 г.
      • Цитата
        Если категории, то я этот вариант уже попробовал, потом новости на основной странице выводятся не правильно.

        Причем вообще основная страница? я написал, что вставляете блок или динамический блок на нужную страницу и в него, в блок, напишите:
        Код
        <insert name="show_block" module="news" count="2" images="1" cat_id="2" defer="emergence" defer_title="Новости">

        где в cat_id войдут нужные , отобранные новости
  • 04 апреля 2019 г.
  • Создайте нужные категории новостей. На необходимой странице вставьте динамический блок с cat_id=id нужной категории.
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • А с новостями к которым прикреплен модуль новости что делать? Там категории будут выводится, а не просто все новости. и проблемы я уже описал выше
      • 04 апреля 2019 г.
      • Код
        А с новостями к которым прикреплен модуль новости что делать?

        Ничего. Это никак не связано
        Цитата
        Там категории будут выводится, а не просто все новости.

        Нет. cat_id это фильтр
        • 04 апреля 2019 г.
        • Если подключены Категории то включается news.first_page.php так? там идёт пагинация по категориям и вывод категорий
          • 04 апреля 2019 г.
          • Мы вообще о show_block говорим?
            • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
            • Я говорю про страницу Новости, к которой привязан модуль Новости, там стоит show_body. Хотя можно туда тоже show_block поставить, ладно, это одна проблема, а с ЧПУ что делать? будет новая новость с ЧПУ категории
              • 04 апреля 2019 г.
              • Ничего уже не понимаю.
                На какую конкретно страницу Вы хотите поставить определенные новости?
  • 04 апреля 2019 г.
  • Читаю-читаю и никак не пойму, зачем все эти телодвижения.
    Вы можете тучу страниц создать и прикрепить к ним новости, потом просто раскидывать новости туда, куда нужно.

    Создаем страницы и крепим к ним новости: http://prntscr.com/n7j3eg
    Вот они разные страницы: http://prntscr.com/n7j3qx
    Добавим новости в компанию: http://prntscr.com/n7j3zv
    Добавим новости факультету: http://prntscr.com/n7j4gw

    Получаем на сайте:
    http://prntscr.com/n7j4o8
    http://prntscr.com/n7j4u2

    Или в чем точнее задача состоит? Может не стоит такие сложности изобретать, а есть более простой путь?
    • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
    • На главной странице выводятся все новости, то есть из всех подразделений, факультетов и тд. в подразделении,факультетах уже новости которые относятся к странице подразделения или факультета. то есть не должно быть отдельных страниц новостей для факультетов, подразделений, они подставляются через show_block. На главной странице show_block, на подразделениях show_block, а на странице Новости show_body. Подключение категорий к новостям добавляет ЧПУ категории, а надо /news/new1. Ещё если перенести новость в определённую категорию, то на странице Новости, где show_body выводятся категории и навигация по категориям
      • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
      • Стоп-стоп.

        Т.е. на главной выводим все вперемешку. Ну это стандарт. Вот они так и выводятся все вперемешку: http://prntscr.com/n7jmj9

        Далее:
        Цитата
        Подключение категорий к новостям добавляет ЧПУ категории, а надо /news/new1

        Зачем? Отрубите нафиг категории и заносите без категорий.

        Далее на нужную страницу выводим те или иные новости:
        Код
        <insert name="show_block" module="news" count="5" site_id="12">
        выведет 5 последних новостей, прикрепленных к странице 12


        Вот, например, вывела на странице обработки персональных данных: http://prntscr.com/n7jpo1
  • 04 апреля 2019 г. , редакция: 04 апреля 2019 г.
  • У меня 50 страниц, и у каждой свои новости, если я у них поменяю модуль на новости, то их можно будет выбирать в разделах. Но проблема в том что там привязан мой модуль, поэтому я костыли делал, чтобы обойти это. Всё равно вам спасибо за помощь, если бы можно было привязывать 2 модуля, цены бы не было
    • 04 апреля 2019 г.
    • Так не надо менять модуль на новости.
      Сделайте вообще левые страницы, потом от них будете подцеплять новости туда, куда хотите, при помощи
      Код
      <insert name="show_block" module="news" count="5" site_id="12">

      Вставляйте это прямо в описание и все.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум