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

Изображение анонса статьи

  • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
  • Доброго времени, коллеги!
    Вопрос вот в чем:
    Вывел на странице блок последних статей, под него соответствующий шаблон. Весь текст выводится как нужно. Но хоть убейся не выводится картинка анонса статьи. Изображения включены. При переходе на детальное описание статьи все хорошо, все отображается.
    Код
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">';

    Данным кодом должна выводится картинка на основании clauses.view.show_block.php. Но, что-то идет не так
    • 22 апреля 2016 г.
    • Цитата
      Данным кодом должна выводится картинка
      Так и будет, если в переменной
      Цитата
      $img
      будут соответствующие значения.
      Цитата
      При переходе на детальное описание статьи все хорошо, все отображается.
      Это разные алгоритмы формировании данных. В данном случае в переменных есть требуемые значения. А в Вашем эксперименте их нет. Решение: необходимо передать соответствующие значения в переменную
      Цитата
      $img
      • 22 апреля 2016 г.
      • Цитата
        будут соответствующие значения

        какие должны быть? Пример если можно привести.

        Код

        if (! empty($row["img"]))
        {
        echo '<div class="clauses_img">';
        foreach ($row["img"] as $img)
        {
        switch($img["type"])
        {
        case 'animation':
        echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'clauses]" class="block-row-img">';
        break;
        case 'large_image':
        echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" class="block-row-img">';
        break;
        default:
        echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
        break;
        }
        echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'" class="block-row-img">'
        .'</a> ';
        }
        echo '</div>';
        }


        Это стандартный код, который выводит изображения, но через блок почему то не выходит.
        • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
        • Цитата
          Это стандартный код, который выводит изображения, но через блок почему то не выходит.
          Ну и что, что стандартный. Это только часть кода. Вы же работаете с Model-View-Controller. Не поленитесь, почитайте, здесь все подробно расписано. Если не поймете, то напишите, вылажу требуемый Вам код.
          Успехов.
          • 22 апреля 2016 г.
          • Так почитал, попробовал на примерах, которые особо не по теме. Не выходит. Не пойму как конкретно с анонсов выводить главное фото. Так что прошу направить/написать.
            • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
            • Код
              // получаем два изображения, прикрепленные к товару,
              // ссылка с изображения ведет на увеличенную копию изображения

              $id = /*заполняем значение*/;
              $site_id = /*заполняем значение*/;

              $images = $this->diafan->_images->get("medium", $id, "clauses", "element", $site_id, "Название товара", false, 2, "large");

              // выводим полученные файлы в шаблоне модуля
              foreach($images as $img)
              {
              echo '<a href="'.BASE_PATH_HREF.$img["link"].'">'
              .'<img src="'.$img["src"].'" width="'.$img["width"]
              .'" height="'.$img["height"]
              .'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
              .'</a> ';
              }

              Не проверял данный код, так, что сообщите результат.
              • 22 апреля 2016 г.
              • Вопрос в заполнении $id, $site_id. Сайт собирается в виде одностраничника, в котором все управляется через блоки, баннеры и отдельно страница со статьями. получается id страницы как такового нет.
            • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
            • Цитата
              Вопрос в заполнении $id, $site_id.
              Здесь все просто, зависит от полета фантазии. Во-первых, $site_id - это одно значение (в обычном случае). А во-вторых, $id должно быть той статьи, которую хотите вывести. Статья может быть выбрана: фиксировано одна или только последняя статья, или рандомный выбор статьи и т.д. Все зависит от Вас.
              • 22 апреля 2016 г.
              • Цитата
                Статья может быть выбрана: фиксировано одна или только последняя статья, или рандомный выбор статьи и т.д. Все зависит от Вас.

                я правильно понял ...От себя ставлю $site_id="1", мне нужно чтобы вывод 4 последних статьи.

                Код
                $images = $this->diafan->_images->get("medium", $id="1", "clauses", "element", $site_id="7", "Название товара", false, 2, "large");

                не работает, ставил id статьи, пусто.
            • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
            • Еще раз
              Код
              // получаем два изображения
              // ссылка с изображения ведет на увеличенную копию изображения

              $variation = "medium"; /*размер изображения, указанный в настройках модуля*/
              $id = 101; /*номер элемента, к которому прикреплены изображения*/;
              $site_id = 7; /*страница сайта, к которой прикреплен элемент*/;
              $count = 2; /*количество изображений*/
              $link_to = "large"; /*размер изображения, на который ведет ссылка*/

              $images = $this->diafan->_images->get($variation, $id, "clauses", "element", $site_id, "", false, $count, $link_to);

              // выводим полученные файлы в шаблоне модуля
              foreach($images as $img)
              {
              echo '<a href="'.BASE_PATH_HREF.$img["link"].'">'
              .'<img src="'.$img["src"].'" width="'.$img["width"]
              .'" height="'.$img["height"]
              .'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
              .'</a> ';
              }

              Я попытался более подробно описать переменные. Эти значения должны быть правильными, иначе в результате получите пустые значения.
              • 22 апреля 2016 г.
              • Дополню свое сообщение. Функция
                Код
                $this->diafan->_images->get();
                это не что иное, как обращение к базе данных. Аргументы функции - это значения фильтров для базы данных. Соответственно, если аргументы не верны, то и значения нужного не будет.
              • 23 апреля 2016 г.
              • не ясно id элемента к которому прикреплены изображения - у меня шаблонный тег, где смотреть его id.
            • 23 апреля 2016 г.
            • Цитата
              не ясно id элемента к которому прикреплены изображения - у меня шаблонный тег, где смотреть его id.
              • 23 апреля 2016 г.
              • в данном случае должна выходить получается только одна статья ...... как последние 4 выходили, как этот id выставить для 4.
                все это прописал, результата нет
            • 23 апреля 2016 г.
            • Цитата
              Так ничего не получилось
              Жаль, значит Вы что-то делали не так.
              • 23 апреля 2016 г.
              • Это ладно, рано или поздно разберусь Благо курс направления мне указан. За это спасибо.
  • 22 апреля 2016 г.
  • а вы выводите шаблонным тегом show_block? Если так - параметр images="1" выставлено?
    • 22 апреля 2016 г.
    • да. отдельный шаблон, делал на основе стандартного, только там параметров нет.
      • 22 апреля 2016 г. , редакция: 22 апреля 2016 г.
      • Вы написали "Вывел на странице блок последних статей, " - вы выводили в шаблоне сайта (например site_start.php) шаблонный тег статей (<insert name="show_block" module="clauses" template="ваш шаблон вывода">) ? Верно я вас понял?
        Если так, то для того чтобы в блоке выводились фото необходимо в шаблонном теге прописать параметр: <insert name="show_block" module="clauses" images="1" template="ваш шаблон вывода">
  • 26 апреля 2016 г.
  • Все таки возвращаюсь к данному вопросу. Не получается сделать простой вывод анонсов последних четырех статей с картинками (картинки не выходят, текст выходит).
  • 15 апреля 2017 г.
  • Всем добрый день! Читал форум в поисках своей ситуации, не нашел. Вопрос относится к статьям, поэтому напишу здесь. Есть у меня на сайте подключенный блок СТАТЬИ, только выводится он при включенных превью изображениях в общем списке не очень... Заголовок - анонс-картинка.

    Что делал:
    1. RCTRL-Посмотреть код, нашел, что за вывод картинки отвечает .block-row-img;
    2. открыл custom/css/main.css, т.к. не было, добавил .block-row-img {};
    3. пробовал разные свойства применять, получается не то, например если применять float:left (как на скриншоте), то текст анонса становится справа, но это происходит вместе с заголовком, а также все нижние статьи в списке становятся ступенькой. Пробовал картинку при помощи width:100px; height:100px уменьшить, не вышло - не уменьшает.

    В идеале хочется получить: Заголовок, ниже слева картинка (с закругленными краями), справа от картинки анонс. Следующая статья в списке и последующие по аналогии. Может кто дать совет?
    • 16 апреля 2017 г.
    • Как бэ адрес сайта лучше, а то кто знает, что у вас там уже понаделано
      • 16 апреля 2017 г.
      • Вообще у меня по дефолту стоит вот так:

        Код
        .clauses_list .block, .news_list .block {
        overflow: hidden;
        }


        И все располагается так, как вы сказали.
        • 16 апреля 2017 г.
        • Проверил, у меня не было такого, добавил, стало почти хорошо, попробовал к статье привязать чуть меньшую картинку, но я так понял где-то прописан размер 212*212 px. Ссылка вот.
          • 16 апреля 2017 г.
          • Дык, в выводе картинки и напрямую и прописано:
            Код
            <img src="/userfiles/clauses/small/9321_pravila-britya-klassicheski.jpg" alt="Правила бритья классическим т-образным станком от Muehle" title="Правила бритья классическим т-образным станком от Muehle" width="212" height="212">

            т.е. тут и прописано:
            Код
            echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
  • 17 апреля 2017 г. , редакция: 18 апреля 2017 г.
  • Валерий Викторович, спасибо за совет, подскажете, у меня в коде встречается 4 раза, стоит ли удалять все искомые части кода?
    Код

    <?php
    /**
    * Шаблон списка статей
    *
    * Шаблон вывода списка статей в том случае, если в настройках модуля отключен параметр «Использовать категории»
    *
    * @package DIAFAN.CMS
    * @author diafan.ru
    * @version 6.0
    * @license http://www.diafan.ru/license.html
    * @copyright Copyright (c) 2003-2016 OOO «Диафан» (http://www.diafan.ru/)
    */

    if (! defined('DIAFAN'))
    {
    $path = __FILE__; $i = 0;
    while(! file_exists($path.'/includes/404.php'))
    {
    if($i == 10) exit; $i++;
    $path = dirname($path);
    }
    include $path.'/includes/404.php';
    }

    echo '<div class="clauses_list">';

    //описание текущей категории
    if (! empty($result["text"]))
    {
    echo '<div class="clauses_cat_text">'.$result['text'].'</div>';
    }

    //рейтинг категории
    if (! empty($result["rating"]))
    {
    echo $result["rating"];
    }

    //изображения текущей категории
    if (! empty($result["img"]))
    {
    echo '<div class="clauses_cat_all_img">';
    foreach ($result["img"] as $img)
    {
    switch($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$result["id"].'clauses]">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
    break;
    }
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    .'</a> ';
    }
    echo '</div>';
    }

    //подкатегории
    if (! empty($result["children"]))
    {
    foreach ($result["children"] as $child)
    {
    echo '<div class="clauses_cat_link">';

    //изображение подкатегории
    if (! empty($child["img"]))
    {
    echo '<div class="clauses_cat_img">';
    foreach ($child["img"] as $img)
    {
    switch($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$child["id"].'clauses]">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
    break;
    }
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    .'</a> ';
    }
    echo '</div>';
    }

    //название и ссылка подкатегории
    echo '<a href="'.BASE_PATH_HREF.$child["link"].'">'.$child["name"].'</a>';

    //рейтинг подкатегории
    if (! empty($child["rating"]))
    {
    echo $child["rating"];
    }

    //краткое описание подкатегории
    if ($child["anons"])
    {
    echo '<div class="clauses_cat_anons">'.$child['anons'].'</div>';
    }
    //статьи подкатегории
    if (! empty($child["rows"]))
    {
    foreach ($child["rows"] as $row)
    {
    echo '<div class="block">';

    //изображения статьи
    if (! empty($row["img"]))
    {
    foreach ($row["img"] as $img)
    {
    switch($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'clauses]" class="block-row-img">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" class="block-row-img">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'" class="block-row-img">';
    break;
    }
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    .'</a> ';
    }
    }

    echo '<div class="block-text">';

    //название и ссылка статьи
    echo '<h4><a href="'.BASE_PATH_HREF.$row["link"].'" class="black">'.$row["name"].'</a></h4>';
    //рейтинг статьи
    if (! empty($row["rating"]))
    {
    echo $row["rating"];
    }

    //анонс статьи
    if (! empty($row["anons"]))
    {
    echo '<div class="anons">'.$row['anons'].'</div>';
    }

    //дата статьи
    if (! empty($row['date']))
    {
    echo '<div class="date">'.$row["date"]."</div>";
    }

    //теги статьи
    if (! empty($row["tags"]))
    {
    echo $row["tags"];
    }

    echo '</div>';

    echo '</div>';
    }
    }
    echo '</div>';
    }
    }

    //статьи
    if (! empty($result["rows"]))
    {
    foreach ($result["rows"] as $row)
    {
    echo '<div class="block">';

    //изображения статьи
    if (! empty($row["img"]))
    {
    foreach ($row["img"] as $img)
    {
    switch($img["type"])
    {
    case 'animation':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'clauses]" class="block-row-img">';
    break;
    case 'large_image':
    echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" class="block-row-img">';
    break;
    default:
    echo '<a href="'.BASE_PATH_HREF.$img["link"].'" class="block-row-img">';
    break;
    }
    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
    .'</a> ';
    }
    }

    echo '<div class="block-text">';

    //название и ссылка статьи
    echo '<h4><a href="'.BASE_PATH_HREF.$row["link"].'" class="black">'.$row["name"].'</a></h4>';
    //рейтинг статьи
    if (! empty($row["rating"]))
    {
    echo $row["rating"];
    }

    //анонс статьи
    if (! empty($row["anons"]))
    {
    echo '<div class="anons">'.$this->htmleditor($row['anons']).'</div>';
    }

    //дата статьи
    if (! empty($row['date']))
    {
    echo '<div class="date">'.$row["date"]."</div>";
    }

    //теги статьи
    if (! empty($row["tags"]))
    {
    echo $row["tags"];
    }

    echo '</div>';

    echo '</div>';
    }
    }

    //постраничная навигация
    if (! empty($result["paginator"]))
    {
    echo $result["paginator"];
    }

    //ссылки на предыдущую и последующую категории
    if (! empty($result["previous"]) || ! empty($result["next"]))
    {
    echo '<div class="previous_next_links">';
    if (! empty($result["previous"]))
    {
    echo '<div class="previous_link"><a href="'.BASE_PATH_HREF.$result["previous"]["link"].'">&larr; '.$result["previous"]["text"].'</a></div>';
    }
    if (! empty($result["next"]))
    {
    echo '<div class="next_link"><a href="'.BASE_PATH_HREF.$result["next"]["link"].'">'.$result["next"]["text"].' &rarr;</a></div>';
    }
    echo '</div>';
    }

    //комментарии к категории
    if (! empty($result["comments"]))
    {
    echo $result["comments"];
    }
    echo '</div>';
  • 17 апреля 2017 г. , редакция: 17 апреля 2017 г.
  • Попробовал создать через админку новую категорию размера изображений размером 112*112 пикселей назвал "статьи превьюшка", потом установил в настройках статей именно данный размер "статьи превьюшка". Так мне кажется правильнее, чем резать код. Но не работает, картинки не показывает. а если вернуть исходный размер в настройках, то картинки появляются. Может я не то делаю? Кто сталкивался?
    • 17 апреля 2017 г.
    • Картинки не показывает где? В админке не показывает вариант, когда предлагается вставить изображение определённого размера или вы вставляете, а на странице потом пусто?
    • 17 апреля 2017 г. , редакция: 17 апреля 2017 г.

    • Копайте тут:
      Код
      //изображения статьи
      if (! empty($row["img"]))
      {
      foreach ($row["img"] as $img)
      {
      switch($img["type"])
      {
      case 'animation':
      echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'clauses]" class="block-row-img">';
      break;
      case 'large_image':
      echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" class="block-row-img">';
      break;
      default:
      echo '<a href="'.BASE_PATH_HREF.$img["link"].'" class="block-row-img">';
      break;
      }
      echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
      .'</a> ';
      }
      }
  • 17 апреля 2017 г.
  • Удалось уменьшить изображения анонса статьи. В принципе делал правильно, но не внимательно. Не нажал кнопку применить, поэтому изображения не сгенерировались Осталось только картинку подправить, а то высоко висит, некрасиво. Добавил в main.css и получилось нормально:
    Код
    .block-row-img {
    float:left;
    padding: 70px 10px 0px 0px;
    }

    .block-row-img:hover{
    Opacity: .5;
    }


    Всем спасибо!

Новости

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