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

Прикрепить изображение к тегу

  • 18 октября 2013 г.
  • Собсно, сабж. В диафане еще не совсем сильно разбираюсь. Просьба сильно не пинать
    • 18 октября 2013 г.
    • Что значит прикрепить изображение к тегу?
      Поконкретнее излагайте свои мысли, что пытаетесь сделать что и где пытаетесь это сделать, ожидаемый вами результат. В итоге ваших действий что получается.
      А не так что идут 2 ежа один с паяльником 1 с утюгом кто первый до дома доберётся.
      • 18 октября 2013 г.
      • Это так же, как прикрепить изображение к статье, новости, товару в каталоге, только надо прикрепить и к тегу. Ожидаемый результат - на сайте у каждого тега будет выводится прикрепленное изображение
        • 18 октября 2013 г.
        • Для статьи, новости и прочих существует поле в форме редактирования Новости, Статьи и прочее.
          Тег это элемент HTML описывающий узел DOM. Есть CSS в котором можно добавить дополнительные свойства этих самых HTML тегов, в том числе и бэкграунд в виде картинки.
          И на мой взгляд это не тоже самое как вы выразились.
          • 21 октября 2013 г. , редакция: 21 октября 2013 г.
          • "Тег это элемент HTML описывающий узел DOM. Есть CSS..." - простите, это сарказм?

            Ладно, опишу дело:
            На сайте есть 5 категорий товаров. В каждой категории есть несколько подкатегорий. Допустим, одна из них называется "KNAUF" (что такое кнауф - http://www.knauf.ru/index.wbp). Само собой, в этой подкатегории находится товары продукции KNAUF. К каждому товару прикрепляется тег "KNAUF". Дело в том, что продукция KNAUF встречается не в одной категории, а во всех 5 категориях товара. Тег нужен для того, чтобы посмотреть все товары продукции KNAUF из всех категорий. А изображение у тега - это логотип производителя, в нашем случае - KNAUF`а.
            На главной странице есть слайдер с этими тегами. У каждого тега должен быть логотип. При нажатии на тег с логотипом мы переходим на страницу и смотрим на все товары с этим тегом.

            Задача: прикрепить изображение к отдельному тегу
  • 19 октября 2013 г.
  • Да, он имел ввиду прикрепить изображение к тегу в облаке. Допустим, есть тег "Barbaras", нужно чтобы вместо слова в облаке был его логотип.
    Вот как это сделать?
    • 20 октября 2013 г.
    • Приходит в голову использование псевдоэлемента :befor из CSS. Изображения должны быть разные или все одинаковые?
  • 21 октября 2013 г.
  • Вот как люди мучаются из-за того, что нет нормального режима работы с брендами (марками).
    Кто из характеристик, кто из тегов изобретает.
    А нужно нормальное поле "Марка".
    С отдельным выводом списком где надо, с прикреплением логотипов и описаний, с отделительной страницей марки, с возможностью вывода логотипа марки у товара и т.п.
    • 21 октября 2013 г.
    • Это предложение уже есть у нас в плане, сделаем мы Бренды.
      "Бренды", он же "Марки", он же "Производители", он же Гоша, он же Гога, он же Жора, он же Георгий Иванович
  • 22 октября 2013 г. , редакция: 13 февраля 2015 г.
  • На самом деле все не так сложно. Подключить изображения можно также как к любому другому модулю. Нужно только создать страницу настройки модуля.
    1. Кидаем файл modules/tags/admin/tags.admin.config.php
    Код
    <?php
    /**
    * Настройки модуля
    *
    * @package Diafan.CMS
    * @author diafan.ru
    * @version 5.3
    * @license http://cms.diafan.ru/license.html
    * @copyright Copyright (c) 2003-2013 OOO «Диафан» (http://diafan.ru)
    */

    if (!defined('DIAFAN'))
    {
    include dirname(dirname(dirname(__FILE__))) . '/includes/404.php';
    }

    /**
    * Tags_admin_config
    */
    class Tags_admin_config extends Frame_admin
    {
    /**
    * @var array поля в базе данных для редактирования
    */
    public $variables = array (
    'config' => array (
    'images' => array(
    'type' => 'module',
    'name' => 'Использовать изображения',
    'count_variation' => 1,
    ),
    ),
    );

    /**
    * @var array настройки модуля
    */
    public $config = array (
    'config', // файл настроек модуля
    );

    public function prepare_config()
    {
    $this->diafan->module = 'tags_name';
    }
    }


    2. Идем в site.ru/admin/adminsite/ и добавляем вложенные страницу для "Теги" - "Настройки". Псевдоссылка - tags/config

    3. В modules/tags/admin/tags.admin.php добавляем поле для редактирования:
    Код
    public $variables = array (
    'main' => array (
    'name' => array(
    'type' => 'text',
    'name' => 'Название',
    'multilang' => true,
    ),
    'images' => array(
    'type' => 'module',
    'name' => 'Изображение',
    'count' => 1,
    ),


    Осталось только вывести на сайте. Где нужно.
    Если в облаке тегов, тогда в файле tags.model.php функция show_block:
    Код
    $res = DB::query("SELECT n.id, n.[name], COUNT(t.id) AS size FROM {tags_name} AS n"
    ." INNER JOIN {tags} AS t ON t.tags_name_id=n.id AND t.trash='0' AND t.[act]='1'"
    ." WHERE n.trash='0' GROUP BY n.id ORDER BY n.sort DESC");
    while ($row = DB::fetch_array($res))
    {
    $maxr = $maxr < $row["size"] ? $row["size"] : $maxr;
    $minr = $minr > $row["size"] ? $row["size"] : $minr;
    $this->diafan->_route->prepare("tags", $row["id"]);
    if($this->diafan->configmodules("images", "tags_name"))
    {
    $this->diafan->_images->prepare($row["id"], "tags_name");
    }

    $rows[] = $row;
    }
    if(! empty($rows))
    {
    foreach($rows as $row)
    {
    if($maxr - $minr < 1)
    {
    $row["size"] = $min;
    }
    else
    {
    $row["size"] = ($max - $min) * ($row["size"] - $minr) / ($maxr - $minr) + $min;
    }
    $row["link"] = $this->diafan->_route->link($site_id, "tags", 0, $row["id"]);
    if($this->diafan->configmodules("images", "tags_name"))
    {
    $images = $this->diafan->_images->get('large', $row["id"], 'tags_name', 0, $row["name"], 0, false, 1);
    $row["img"] = $images ? $images[0] : '';
    }

    $result["rows"][] = $row;
    }
    }

    и в шаблоне tags.view.show_block.php:
    Код
    foreach ($result["rows"] as $row)
    {
    if (! empty($row["img"]))
    {
    echo '<img src="'.$row["img"]["src"].'" width="'.$row["img"]["width"].'" height="'.$row["img"]["height"]
    .'" alt="'.$row["img"]["alt"].'" title="'.$row["img"]["title"].'"> ';
    }


    Ну и на странице тега по аналогии
    • 24 октября 2013 г.
    • Собственно, об этом и написано в документации
      Цитата
      В настройках модуля и в файле редактирования элементов модуля необходимо добавить параметр 'images'

      А раз настроек у тегов нет, то все немного осложнилось тем, что эти настройки для тегов пришлось создать
  • 22 октября 2013 г.
  • А разметка чуток поплыла.
    P.S. Ну вот теперь понятно в чём собака порылась.

Новости

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

Форум