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

Перелинковка на diafan 4.3.

  • 13 сентября 2012 г.
  • Доброго времени суток!

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

    Нашел в сети вот это:
    Цитата
    Перелинковка статей выводится с помощью нового шаблонного тега show_previous_next:

    <insert name="show_previous_next">

    Перелинковка остальних элементов (статей, новостей, фотографий, файлов, товаров, вопросов и ответов, категорий) выводится в шаблоне модуля (например, для новостей это файл modules/news/news.view.php).


    Но не совсем понял куда и что нужно вставлять. По пробовал вставить строку <insert name="show_previous_next"> в файл modules/faq/faq.view.php , ничего не изменилось.

    Прошу помочь, за ранее спасибо!
    • 14 сентября 2012 г.
    • Здравствуйте!
      Шаблонные теги вставляются только в основные шаблоны сайта, это все файлы в /themes/
      Основной шаблон - site.php
      Вставьте сразу после <insert name="show_body">
      • 14 сентября 2012 г.
      • Вставил в файл /themes/site.php, ту строку, куда Вы сказали, но что то без результатно. Ни товар, ни статья не перелинковываются. Видимо, я что то не правильно понял...
        • 14 сентября 2012 г.
        • Этот тег был введен как раз в 4.3
          Может у Вас более старая версия.
          Проверьте, есть ли функция show_previous_next() в файле /includes/function.php
          • 14 сентября 2012 г.
          • Есть функция public function show_previous_next() . У Вас нет возможности привести какой нибудь конкретный пример установки перелинковки, ну или пошаговой инструкции, был бы очень сильно благодарен)
            • 15 сентября 2012 г.
            • А какие "инструкции" вслепую? По умолчанию все выводится. Значит на Вашем конкретном сайте это убили. Пишите в техподдержку, указывайте сайт - помогут.
        • 15 сентября 2012 г.
        • В магазине может быть подключён другой шаблон в него тоже надо вставить тег, как и для статей.
          Возможно - требуется проверка.
          • 15 сентября 2012 г.
          • Возможно:

            Цитата
            Перелинковка остальних элементов (статей, новостей, фотографий, файлов, товаров, вопросов и ответов, категорий) выводится в шаблоне модуля (например, для новостей это файл modules/news/news.view.php).


            Можете подсказать, что и после чего нужно вставлять в шаблонах модулей? Возможно это поможет? Если нет, то буду уж тогда обращаться в тех поддержку.
            • 16 сентября 2012 г.
            • Да вставлять-то не надо. Это по умолчанию вставлено должно быть.
              Проверьте в modules/clauses/clauses.model.php
              в функции id()
              Код
              if($previous)
              {
              $this->result["previous"]["text"] = $previous["name"];
              if(! empty($this->diafan->rewrites["clauses"]["element".$previous["id"]]))
              {
              $this->result["previous"]["link"] = $this->diafan->rewrites["clauses"]["element".$previous["id"]]["rewrite"].'/';
              }
              elseif($previous["cat_id"] && $this->diafan->configmodules("cat") && ! empty($this->diafan->rewrites["clauses"]["cat".$previous["cat_id"]]))
              {
              $this->result["previous"]["link"] = $this->diafan->rewrites["clauses"]["cat".$previous["cat_id"]]["rewrite"].'/'
              .'show'.$previous["id"].'/';
              }
              else
              {
              $this->result["previous"]["link"] = ($this->diafan->rewrite ? $this->diafan->rewrite.'/' : '')
              .($previous["cat_id"] && $this->diafan->configmodules("cat")
              ? 'cat'.$previous["cat_id"].'/' : '')
              .'show'.$previous["id"].'/';
              }
              }
              $next = DB::fetch_array(DB::query("SELECT [name], id, cat_id FROM {clauses} WHERE [act]='1' AND trash='0' AND site_id=%d"
              .($this->diafan->configmodules("cat") ? " AND cat_id='".$this->diafan->cat."'" : '')
              ." AND created<%d AND (created>%d OR created=%d AND id>%d)"
              ." ORDER BY prior ASC, created ASC, id ASC LIMIT 1",
              $this->diafan->cid, $time, $row["created"], $row["created"], $this->diafan->show));
              if($next)
              {
              $this->result["next"]["text"] = $next["name"];
              if(! empty($this->diafan->rewrites["clauses"]["element".$next["id"]]))
              {
              $this->result["next"]["link"] = $this->diafan->rewrites["clauses"]["element".$next["id"]]["rewrite"].'/';
              }
              elseif($next["cat_id"] && $this->diafan->configmodules("cat") && ! empty($this->diafan->rewrites["clauses"]["cat".$next["cat_id"]]))
              {
              $this->result["next"]["link"] = $this->diafan->rewrites["clauses"]["cat".$next["cat_id"]]["rewrite"].'/'
              .'show'.$next["id"].'/';
              }
              else
              {
              $this->result["next"]["link"] = ($this->diafan->rewrite ? $this->diafan->rewrite.'/' : '')
              .($next["cat_id"] && $this->diafan->configmodules("cat")
              ? 'cat'.$next["cat_id"].'/' : '')
              .'show'.$next["id"].'/';
              }
              }


              И во вьюхе, modules/clauses/clauses.view.php
              тоже в функции id() наличие:
              Код
              .(! empty($row["previous"]) ? '
              <div class="previous-link"><a href="'.BASE_PATH_HREF.$row["previous"]["link"].'">&larr; '.$row["previous"]["text"].'</a></div>' : '')

              .(! empty($row["next"]) ? '
              <div class="next-link"><a href="'.BASE_PATH_HREF.$row["next"]["link"].'">'.$row["next"]["text"].' &rarr;</a></div>' : '')
              • 16 сентября 2012 г.
              • В modules/clauses/clauses.model.php вроде имеется все, как Вы выше привели.

                А вот в modules/clauses/clauses.view.php :

                Цитата
                <div class="previous-link"><a href="'.BASE_PATH_HREF.$result["previous"]["link"].'">&larr; '.$result["previous"]["text"].'</a></div>' : '')

                .(! empty($result["next"]) ? '
                <div class="next-link"><a href="'.BASE_PATH_HREF.$result["next"]["link"].'">'.$result["next"]["text"].' &rarr;</a></div>' : '')


                Вместо $row стоит $result , возможно это как то влияет?
  • 15 сентября 2012 г.
  • Кстати говоря, разделы статей перелинковались...

Новости

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

Форум