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

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

  • 21 августа 2015 г.
  • Код
    switch ($row["type"])
    {
    case 'title':
    echo '<div class="infoform">'.$row["name"].':</div>';
    break;

    case 'text':
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <input type="text" name="p'.$row["id"].'" value="'.str_replace('"', '&quot;', $value).'">';
    break;

    case "email":
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <input type="email" name="p'.$row["id"].'" value="'.str_replace('"', '&quot;', $value).'">';
    break;

    case "phone":
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <input type="tel" name="p'.$row["id"].'" value="'.$value.'">';
    break;

    case 'textarea':
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <textarea name="p'.$row["id"].'">'.str_replace(array('<', '>', '"'), array('&lt;', '&gt;', '&quot;'), $value).'</textarea>';
    break;

    case 'date':
    case 'datetime':
    $timecalendar = true;
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <input type="text" name="p'.$row["id"].'" value="'.$value.'" class="timecalendar" showTime="'
    .($row["type"] == 'datetime'? 'true' : 'false').'">';
    break;

    case 'numtext':
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <input type="number" name="p'.$row["id"].'" size="5" value="'.$value.'">';
    break;

    case 'checkbox':
    echo '<input name="p'.$row["id"].'" id="cart_p'.$row["id"].'" value="1" type="checkbox" '.($value ? ' checked' : '').'><label for="cart_p'.$row["id"].'">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').'</label>';
    break;

    case 'select':
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>
    <select name="p'.$row["id"].'" class="inpselect">
    <option value="">-</option>';
    foreach ($row["select_array"] as $select)
    {
    echo '<option value="'.$select["id"].'"'.($value == $select["id"] ? ' selected' : '').'>'.$select["name"].'</option>';
    }
    echo '</select>';
    break;

    case 'multiple':
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>';
    foreach ($row["select_array"] as $select)
    {
    echo '<input name="p'.$row["id"].'[]" id="cart_p'.$select["id"].'[]" value="'.$select["id"].'" type="checkbox" '.(is_array($value) && in_array($select["id"], $value) ? ' checked' : '').'><label for="cart_p'.$select["id"].'[]">'.$select["name"].'</label><br>';
    }
    break;

    case "attachments":
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div>';
    echo '<div class="inpattachment"><input type="file" name="attachments'.$row["id"].'[]" class="inpfiles" max="'.$row["max_count_attachments"].'"></div>';
    echo '<div class="inpattachment" style="display:none"><input type="file" name="hide_attachments'.$row["id"].'[]" class="inpfiles" max="'.$row["max_count_attachments"].'"></div>';
    if ($row["attachment_extensions"])
    {
    echo '<div class="attachment_extensions">('.$this->diafan->_('Доступные типы файлов').': '.$row["attachment_extensions"].')</div>';
    }
    break;

    case "images":
    echo '<div class="infofield">'.$row["name"].($row["required"] ? '<span style="color:red;">*</span>' : '').':</div><div class="images"></div>';
    echo '<input type="file" name="images'.$row["id"].'" param_id="'.$row["id"].'" class="inpimages">';
    break;
    }


    Необходимо убрать вот эти значения '.str_replace('"', '&quot;', $value).' и аналогичные $value, оставив только голый атрибут value="". Это в файле /modules/cart/views/cart.view.form.php с 75 по 151 строку (в шаблоне по умолчанию).
  • 21 августа 2015 г.
  • Видимо речь об этом:
    Код
    $this->insert_values(array("id" => $order_id, "table" => "shop_order", "params" => $params));

    Файл /modules/cart/cart.action.php:123 из функции order. Если убрать, то все параметры из формы оформления заказа будут проигнорированы.
  • 21 июля 2014 г.
  • Вся проблема в отсутствии файлов локализации ru.js и ru_dlg.js. При инициализации плагина tinyMCE указывается язык language : "ru", который в syntaxhl не предусмотрен.
    Это можно поправить, создав на базе файлов en.js и en_dlg.js копии с именами ru.js и ru_dlg.js.
    В самих файлах следует сменить указание en на ru

    tinyMCE.addI18n('ru.syntaxhl',{

    и

    tinyMCE.addI18n('ru.syntaxhl_dlg',{
  • 09 июля 2014 г.
  • Попробуйте в файл modules/shop/shop.model.php, функцию public function show_block(...), в запрос добавить выборку для категорий:
    Код
    foreach ($rands as $rand)
    {
    $rows = DB::query_fetch_all("SELECT e.id, e.[name], sc.name1 as category_name, e.[anons], e.timeedit, e.site_id, e.brand_id, e.no_buy, e.article,
    e.hit, e.new, e.action, e.is_file".($sort == "sale" ? ", COUNT(g.id) AS count_sale" : "")."
    FROM {shop} AS e"
    . ($sort == "sale" ? " INNER JOIN {shop_order_goods} AS g ON g.good_id=e.id AND g.trash='0'" : '')
    . ($sort == "price" || $discount_only ? " INNER JOIN {shop_price} AS pr ON pr.good_id=e.id AND pr.trash='0'"
    ." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
    ." AND pr.currency_id=0"
    ." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
    ." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
    : '')
    .$inner
    . ($this->diafan->_users->role_id ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
    . " LEFT JOIN {shop_category} AS sc ON sc.id=e.cat_id"
    . " WHERE e.[act]='1' AND e.trash='0'"
    .($this->diafan->_site->module == 'shop' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
    . ($hits_only ? " AND e.hit='1' " : "")
    . ($action_only ? " AND e.action='1' " : "")
    . ($new_only ? " AND e.new='1' " : "")
    . ($discount_only ? " AND pr.discount_id>0" : "")
    . $where
    ." AND e.date_start<=%d AND (e.date_finish=0 OR e.date_finish>=%d)"
    . " AND (e.access='0'"
    . ($this->diafan->_users->role_id ? " OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id : '')
    . ")"
    . " GROUP BY e.id"
    . $order
    . ' LIMIT '
    . ($sort == "rand" ? $rand : 0).', '
    . ($sort == "rand" ? 1 : $count), $values);
    $this->elements($rows, 'block', array("count" => $images, "variation" => $images_variation));
    $this->result["rows"] = array_merge($this->result["rows"], $rows);
    }


    В самом шаблоне обращаться к этому полю можно как echo $row["category_name"];
  • 07 июля 2014 г.
  • Файл /modules/menu/menu.model.php, функция public function show_block($id)

    Можно изменить запрос таким образом, добавив подзапрос к таблице shop:
    Код
    $this->result["rows"] = DB::query_fetch_key_array(
    "SELECT m.id, m.[name], m.module_name, m.element_type, m.element_id, m.parent_id, m.othurl, m.attributes, m.target_blank, COUNT(s.id) AS count FROM {menu} AS m"
    .($this->diafan->_users->role_id ? " LEFT JOIN {access} AS a ON a.element_id=m.element_id AND a.module_name=m.module_name AND a.element_type=m.element_type" : "")
    ." LEFT JOIN {shop} AS s ON m.module_name = 'shop' AND m.element_type = 'cat' AND s.cat_id = m.element_id"
    ." WHERE m.cat_id=%d AND m.[act]='1' AND m.trash='0'"
    ." AND m.date_start<=%d AND (m.date_finish=0 OR m.date_finish>=%d)"
    ." AND (m.access='0'"
    .($this->diafan->_users->role_id ? " OR m.access='1' AND a.role_id=".$this->diafan->_users->role_id : '')
    .")"
    ." GROUP BY m.id ORDER BY m.sort ASC, m.id ASC",
    $id, $time, $time, "parent_id"
    );
  • 01 июля 2014 г.
  • В административной панели в разделе Блоки на сайте.
    В шаблоне /modules/shop/views/shop.view.id.php:
    Код

    <div class="block">
    <h4><img src="'.BASE_PATH.'img/icon_deliver.png">'.$this->diafan->_('Условия доставки').'</h4>
    '.$this->htmleditor('<insert name="show_block" module="site" id="3">').'
    '.$this->diafan->_tpl->htmleditor('<insert name="show_block" module="site" id="3">').'
    </div>
    <div class="block">
    <h4><img src="'.BASE_PATH.'img/icon_return.png">'.$this->diafan->_('Условия возврата').'</h4>
    '.$this->htmleditor('<insert name="show_block" module="site" id="4">').'
    </div>

    Если не помогает, попробуйте сбросить кэш.
  • 05 июня 2014 г.
  • В файле includes/file.php можно добавить return $path; сразу после вызова функции. Тогда будут возвращаться первоначальные пути:

    Код

    public static function compress($path, $type)
    {
    return $path;

    static $clear;
    if(MOD_DEVELOPER)
    {
    return $path;
    }
  • 24 июня 2013 г.
  • Можно попробовать добавить проверку :
    Код

    if (!$this->diafan->_user->id){
    echo 'для отправки сообщения войдите или зарегистрируйтесь';
    return true;
    }

    или в файл с формой modules/feedback/views/feedback.view.form.php, в самое начало перед выводом формы, или в modules/feedback/feedback.php в фунцию show_module, тоже в начало перед выводом шаблона формы.
  • 20 июня 2013 г.
  • Вывод формы покупки происходит из файлов /modules/shop/views/shop.view.buy_form.php или shop.view.buy_form_list.
    Поле ввода:
    Код

    if (empty($result["row"]['is_file']) && (empty($hide_submit) || $result["result"]["wishlist_link"]))
    {
    echo '<input type="text" class="inpnum" value="1" name="count" size="1">';
    }


    Кнопка "Отложить":
    Код

    if($result["result"]["wishlist_link"])
    {
    echo '<span class="button_wrap"><input type="button" class="button" value="'.$this->diafan->_('Отложить', false).'" action="wish"></span>';
    }
  • 13 июня 2013 г.
  • Можно в файле /modules/shop/shop.php в начало функции show_block вставить такую конструкцию:
    Код

    public function show_block($attributes)
    {
    if ($this->diafan->cid != 1){ //если не главная, то уходим
    return TRUE;
    }

    Блок будет виден только на главной.
  • 30 мая 2013 г.
  • В общем случае за вывод блока покупки отвечают файлы shop.view.buy_form.php, shop.view.buy_form_list.php, shop.view.buy_form_id.php. Именно из них происходит вывод элементов. Те элементы, которые будут видны только авторизованным пользователям необходимо обернуть условием: if ($this->diafan->_user->id) {//Видно только пользователям}
  • 30 мая 2013 г.
  • Для этого достаточно добавить проверку авторизован ли пользователь или нет в файл shop.view.buy_form.php.
    Код

    if ($this->diafan->_user->id) //проверка авторизации
    {

    if(! empty($waitlist))
    {
    echo '
    <div class="shop_waitlist">
    '.$this->diafan->_('Сообщить когда появиться на e-mail').'
    <input type="text" name="mail" value="'.$this->diafan->_user->mail.'" class="inptext">
    <span class="button_wrap"><input type="button" class="button" value="'.$this->diafan->_('Ок', false).'" action="wait"></span>
    <div class="errors error_waitlist" style="display:none"></div>
    </div>';
    }
    if (empty($result["row"]['is_file']) && (empty($hide_submit) || $result["result"]["wishlist_link"]))
    {
    echo '<input type="text" class="inpnum" value="1" name="count" size="1">';
    }
    if(empty($hide_submit))
    {
    echo '<span class="button_wrap"><input type="button" class="button" value="'.$this->diafan->_('Купить', false).'" action="buy"></span>';
    }
    if($result["result"]["wishlist_link"])
    {
    echo '<span class="button_wrap"><input type="button" class="button" value="'.$this->diafan->_('Отложить', false).'" action="wish"></span>';
    }
    }
Показывать по:

Новости

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

Форум