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

Всего найдено: 1763

  • 11 мая 2018 г.
  • Код
    [rows] => Array
    (
    [0] => Array
    (
    [name] => Жеребец фриз (производитель)
    [url] => shop/ekzoticheskie-porody/zherebets-friz-proizvoditelROUTE_END
    [snippet] => Жеребец фриз (производитель) Предлагается на продажу шикарный жеребец фризской упряжной...
    [link] => shop/ekzoticheskie-porody/zherebets-friz-proizvoditel/
    )
    [1] => Array
    (
    [name] => Андалузский жеребец
    [url] => shop/ekzoticheskie-porody/andaluzskiy-zherebetsROUTE_END
    [snippet] => Андалузский жеребец Предлагается на продажу красивый жеребец, тип Барокко, вывезеный...
    [link] => shop/ekzoticheskie-porody/andaluzskiy-zherebets/
    )

    [2] => Array
    (
    [name] => Жеребец пони-класс
    [url] => shop/poni/zherebets-poni-klassROUTE_END
    [snippet] => Жеребец пони-класс Предлагается на продажу изящный гнедой жеребец пони-класс (райд...
    [link] => shop/poni/zherebets-poni-klass/
    )

    [3] => Array
    (
    [name] => Вороной орловец
    [url] => shop/rysaki/voronoy-orlovets1032ROUTE_END
    [snippet] => Вороной орловец Предлагается на продажу орловский жеребец вороной, 2010 года рождения,...
    [link] => shop/rysaki/voronoy-orlovets1032/
    )

    )

    [count] => 152
    [count_start] => 1
    [count_finish] => 10
    [count_page] => 10
    [value] => жеребец
    [action] => /search/
    [button] => Найти
  • 11 мая 2018 г.
  • Код
    /**
    * Search_model
    */
    class Search_model extends Model
    {
    /**
    * Генерирует список найденных страниц
    *
    * @return array
    */
    public function show_module()
    {
    $search = '';
    if (isset($_GET["searchword"]))
    {
    if (is_array($_GET["searchword"]))
    {
    $_GET["searchword"] = '';
    }
    $search = trim(htmlspecialchars(stripslashes($_GET["searchword"])));
    if(empty($_SESSION["search"]) || ! in_array($_GET["searchword"], $_SESSION["search"]))
    {
    $_SESSION["search"][] = $_GET["searchword"];
    if($count = $this->diafan->configmodules("count_history"))
    {
    DB::query("INSERT INTO {search_history} (created, name) VALUES (%d, '%h')", time(), $_GET["searchword"]);
    if(DB::query_result("SELECT COUNT(*) FROM {search_history}") > $count)
    {
    DB::query("DELETE FROM {search_history} ORDER BY created ASC LIMIT 1");
    }
    }
    }
    }
    $this->result = array();

    if (! empty($search))
    {
    Customization::inc('includes/searchwords.php');
    $searchwords = new Searchwords();
    $search_words = $searchwords->prepare($search);

    $keys = array();
    $result = DB::query("SELECT id, keyword FROM {search_keywords} WHERE keyword IN ('".implode("', '", $search_words)."')");
    while ($row = DB::fetch_array($result))
    {
    $keys[$row["keyword"]] = $row["id"];
    }
    DB::free_result($result);

    $temp_table = false;
    if($this->diafan->configmodules("search_all_word", "search"))
    {
    $order = '';
    // обязательны все слова
    $where = "";
    foreach($search_words as $k => $key)
    {
    $where .= " INNER JOIN {search_index} AS i".$k." ON r.id=i".$k.".result_id AND i".$k.".keyword_id=".$keys[$key];
    $order .= 'i'.$k.'.rating ASC, ';
    }
    $order .= "r.rating DESC";
    }
    else
    {
    // ищет хотя бы одно слово, сортировка по количеству найденных
    $where = "INNER JOIN {search_index} AS i ON r.id=i.result_id AND i.keyword_id IN ('".implode("', '", $keys)."')";
    if(count($search_words) > 1)
    {
    $temp_table = true;
    DB::query("CREATE TEMPORARY TABLE {search_temp} (
    keyword_id int(11) unsigned NOT NULL,
    rating tinyint(2) unsigned NOT NULL
    );");
    $where .= " INNER JOIN {search_temp} AS t ON t.keyword_id=i.keyword_id";
    $query = '';
    foreach($search_words as $i => $word)
    {
    $query .= ($query ? "," : '')." (".$keys[$word].", ".(count($search_words) - $i).")";
    }
    DB::query("INSERT INTO {search_temp} (keyword_id, rating) VALUES".$query);
    }
    $order = ($temp_table ? "tmp_rating" : "r.rating")." DESC";
    }

    $nen = DB::query_result("SELECT COUNT(DISTINCT r.id) FROM {search_results} AS r "
    .($this->diafan->_user->role_id ? " LEFT JOIN {access} AS a ON a.element_id=r.id AND a.module_name='search'" : "")
    .$where." WHERE r.lang_id=%d"
    ." AND (r.access='0'"
    .($this->diafan->_user->role_id ? " OR r.access='1' AND a.role_id=".$this->diafan->_user->role_id : '')
    .")", _LANG);

    ////navigation//
    if ($nastr = $this->diafan->configmodules("nastr", "search"))
    {
    $this->diafan->_paginator->nastr = $nastr;
    }
    $this->diafan->_paginator->page = $this->diafan->page;
    $this->diafan->_paginator->navlink = $this->diafan->_route->current_link("page");
    $this->diafan->_paginator->get_nav = '?searchword='.$search;
    $this->diafan->_paginator->nen = $nen;
    $links = $this->diafan->_paginator->get();
    ////navigation///

    $k = ! $this->diafan->page ? 1 : ($this->diafan->page - 1) * $this->diafan->_paginator->nastr + 1;

    $this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $links);

    $count = 0;
    $result = DB::query_range("
    SELECT r.name, r.url, r.snippet".($temp_table ? ", SUM(t.rating) AS tmp_rating" : "")." FROM {search_results} as r "
    .($this->diafan->_user->role_id ? " LEFT JOIN {access} AS a ON a.element_id=r.id AND a.module_name='search'" : "")
    .$where
    ." WHERE r.lang_id=%d"
    ." AND (r.access='0'"
    .($this->diafan->_user->role_id ? " OR r.access='1' AND a.role_id=".$this->diafan->_user->role_id : '')
    .")"
    ." GROUP BY r.id ORDER BY ".$order,
    _LANG, $this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);
    while ($row = DB::fetch_array($result))
    {
    $row["link"] = str_replace('ROUTE_END', ROUTE_END, $row["url"]);
    $this->result["rows"][] = $row;
    $count++;
    }
    DB::free_result($result);

    $this->result["count"] = $this->diafan->_paginator->nen;
    $this->result["count_start"] = $this->result["count"] ? ($this->diafan->_paginator->page - 1) * $this->diafan->_paginator->nastr + 1 : 0;
    $this->result["count_finish"] = $this->result["count"] ? $this->result["count_start"] - 1 + $count : 0;
    $this->result["count_page"] =
    $this->diafan->_paginator->nen > $this->diafan->_paginator->nastr ?
    $this->diafan->_paginator->nastr : $this->diafan->_paginator->nen;
    }
    $this->result["value"] = $search;
    $this->result["action"] = BASE_PATH_HREF.$this->diafan->_route->link($this->diafan->cid);
    $this->result["button"] = 'Найти';

    return $this->result;
    }

    /**
    * Генерирует контент для шаблонной функции: форма поиска по сайту
    *
    * @return array
    */
    public function show_search($button)
    {
    $result["value"] = '';
    if (isset($_GET["searchword"]))
    {
    if (is_array($_GET["searchword"]))
    {
    $_GET["searchword"] = '';
    }
    $result["value"] = trim(htmlspecialchars(stripslashes($_GET["searchword"])));
    }
    $result["action"] = BASE_PATH_HREF.$this->diafan->_route->module('search', true);
    $result["button"] = $button;
    return $result;
    }
    }
  • 11 мая 2018 г.
  • Цитата
    в модельке сейчас только id товара вытащим

    Это получилось.

    Цитата
    Вставьте этот код

    В общем, не цепляет.

    print_r($result);
    видит
    Код
    [rows] => Array
    (
    [0] => Array
    (
    [id] => 7279
    [name] => Андалузский жеребец
    [url] => shop/ekzoticheskie-porody/andaluzskiy-zherebetsROUTE_END
    [snippet] => Андалузский жеребец Предлагается на продажу красивый жеребец, тип Барокко, вывезеный...
    [link] => shop/ekzoticheskie-porody/andaluzskiy-zherebets/
    )


    Но общее направление поняла. Спасибо. Еще покопаюсь...
    В новых версиях выводится же как-то эта картинка. Значит модельки еще сравнить попробовать можно.
  • 11 мая 2018 г.
  • Цитата
    Вы код добавили с картинками?

    Да и заменила сейчас новым.

    Цитата
    Ошибка выводиться какая нибудь?

    Ошибок не вижу.

    Цитата
    echo '<pre>';
    print_r($images);
    echo '</pre>';

    Вообще ничего не вывело, кроме самого поиска.

    Цитата
    Я посмотрел документацию по диафану 5.3.

    Подскажите ссылку, пожалуйста, я почему-то совсем не вижу такой документации. Да и дистрибутива оригинального нет.
  • 11 мая 2018 г.
  • За ссыль спасибо.

    Цитата
    Включен режим разработчика?

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

    В любом случае спасибо за помощь, поддержку и подпинывания в нужном направлении.
    Позднее отпишусь, а пока почитаю матчасть.
  • 11 мая 2018 г.
  • Истину глаголите, Степан. Нарисовались ошибки в режиме разработчика. Действительно отключили ночью его.
    Код

    Undefined variable: images
    #1 include(/home/g/goldgadgru/traversale/public_html/modules/search/views/search.view.show.php) called at [/home/g/goldgadgru/traversale/public_html/includes/template.php:92]
    #2 Template->get(show, search, Array(...)) called at [/home/g/goldgadgru/traversale/public_html/modules/search/search.php:40]
    #3 Search->show_module() called at [/home/g/goldgadgru/traversale/public_html/includes/function.php:118]
    #4 Theme_functions->show_module() called at [/home/g/goldgadgru/traversale/public_html/includes/function.php:57]
    #5 Theme_functions->show_body(Array(...)) called at [(null):0]
    #6 call_user_func_array(Array(...), Array(...)) called at [/home/g/goldgadgru/traversale/public_html/includes/parser_theme.php:216]
    #7 Parser_theme->start_element(Array(...)) called at [/home/g/goldgadgru/traversale/public_html/includes/parser_theme.php:106]
    #8 Parser_theme->get_function_in_theme(<?php if(!defined("DIAFAN")){include("../includes/404.php");exit();}?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www...) called at [/home/g/goldgadgru/traversale/public_html/includes/parser_theme.php:68]
    #9 Parser_theme->show_theme(Search) called at [/home/g/goldgadgru/traversale/public_html/includes/init.php:395]
    #10 Init->start() called at [/home/g/goldgadgru/traversale/public_html/index.php:62]


    Говорит, что неопределенная переменная.
  • 12 мая 2018 г.
  • Код
    <?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';
    }

    if (! empty($result["value"]))
    {
    echo '<div class="search_result">'.$this->diafan->_('Всего найдено').": <b>".$result["value"].": ".$result["count"]."</b>
    <br>".$this->diafan->_('Документы: <strong>%d—%d</strong> из %d найденных', true, $result["count_start"], $result["count_finish"], $result["count"])
    . '</div>';

    if (!empty($result["rows"]))
    {
    $i = $result["count_start"];
    foreach ($result["rows"] as $row)
    {

    $images = $this->diafan->_images->get("medium", $row["id"], "shop", 0, $row["name"], false, 2, "large");
    foreach ($images as $img) {
    echo '<img src="'.$img["src"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">';
    }


    echo '<div class="search_list">'.$i++.'. '
    .'<a href="'.BASE_PATH_HREF.$row["link"].'">'.$row["name"].'</a>'
    .'<br>'
    .$row["snippet"]
    .'<br>'
    .'<a href="'.BASE_PATH_HREF.$row["link"].'">http://'.BASE_URL.'/'.$row["link"].'</a>'
    .'</div>';
    }
    }

    echo (!empty($result["paginator"]) ? $result["paginator"] : '');
    }
    else
    {
    echo '<div class="search_result">'.$this->diafan->_('Извините, слово для поиска не задано.').'</div>';
    }
  • 07 июля 2016 г.
  • мда.... Без пяти литров не разберешься
    Несколько часов уже ковыряюсь.

    Выборка понятна
    Код
    SELECT s.id, s.[name], s.timeedit, s.[anons], s.site_id, s.brand_id, s.no_buy, s.article

    no_buy - это как раз товар присутствует/отсутствует.

    Дальше лес
    Код
    .($this->diafan->_route->sort ? $this->sort_config['sort_directions'][$this->diafan->_route->sort].',' : '')
    ."s.no_buy ASC, ".$order,


    Знает кто-нибудь?
  • 02 октября 2017 г.
  • А подниму-ка я темку, ибо больше ничего по данному вопросу не нашла.

    Как сделать быстрый просмотр товара при помощи стандартных средств (уже имеющихся в диафане)?
    Понятно, что можно прикрутить левый скрипт и делать любые рюшечки, но эти скрипты уже из ушей выплескиваются. Рано или поздно сайт ляжет под весом прикруток.

    В общем попыталась сделать так, как писал Александр https://user.diafan.ru/forum/show1516/#12445

    Сайт ругается нецензурно на строчку
    if($_GET["template"] == 'clear') {
    в /includes/parser_theme.php:51.

    Undefined index: template
    #1 Parser_theme->show_theme() called at [/includes/init.php:121]
    #2 Init->start() called at [/index.php:65]

    Или по прошествии четырех лет есть более правильный/красивый вариант сделать быстрый предпросмотр товара?

  • 02 октября 2017 г.
  • Изменила ссылку быстрого просмотра. Получилось:
    Код
    <a rel="prettyPhoto[ajax]" href="'.BASE_PATH_HREF.$row["link"].'?ajax=true">Быстрый просмотр</a>


    Выводится то, что нужно. Одна печаль: туда попадает шаблон shop.view.id.php.
    А здесь нужно подцепить другой шаблон, урезанный. Как это сделать?

    Может кто-нибудь помочь в данном вопросе?
  • 28 декабря 2019 г.
  • Никак, если у вас стандартная аренда и вы не сохранили себе файл.
    Если бы вы хотя бы данные для доступа к БД сохранили, уже было бы как-то можно вручную файл нарисовать...
  • 29 декабря 2019 г.
  • Платить не надо, а восстановить в ТП могут первоначальный вариант.
    Из регламента:
    Цитата
    Системные файлы DIAFAN.CMS или файлы шаблона оформления Вашего сайта всегда есть у нас в исходном виде. Даже если Вы что-то случайно удалите, например, по ftp, мы всегда сможем это восстановить в исходном состоянии по запросу в службу поддержки.
  • 25 июля 2017 г.
  • Вы вот про это? (см. скрин) Или что-то другое?

    Версия июньская этого года. Картинка заливается, ссылка под нее вставляется.
Показывать по:

Новости

  • 12 августа, среда
  • Выпустили сборку DIAFAN.CMS 7.6. В ней ряд улучшений для веб‑мастеров и владельцев интернет‑магазинов: оптимизация сессий и модуля «Посещаемость», доработка поиска с многоуровневым ранжированием, кастомизация колонок в админке, расширения модуля «Импорт / Экспорт» и др. Подробности здесь >>>
  • 19 сентября 2025 г.
  • Мы внесли изменения в лицензию и объявляем, что прекращаем техническую консультационную поддержку сайтов на DIAFAN.CMS версий старше 7.0. А это все минорные версии платформы, предшествующие актуальной линейке, а именно: версии серии 4.x, 5.x, 6.x.
  • 15 сентября 2025 г.
  • У нас отличные новости! Мы выпустили новую сборку DIAFAN.CMS 7.3, которая включает встроенные нейросети непосредственно в административной панели. Это значит, что создание контента для вашего сайта больше не будет проблемой — искусственный интеллект возьмет эту задачу на себя, избавляя вас от необходимости привлекать копирайтеров или тратить время на написание текстов самостоятельно.

Блоги

  • 10.09.2025
  • DIAFAN.CMS славится нагрузоустойчивостью и безопасностью, про инциденты со взломом сайта на нашей системе давненько не слышали, но недавно получили мы письмо от fstec.ru такого характера:

    Обнаружена уязвимость в CMS-системе DIAFAN, позволяющая нарушителю, действующему удалённо, красть сессионные куки через XSS-атаку.

Форум