RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-207875

Егор Rmd's questions

Martin Hope
Егор Rmd
Asked: 2020-08-26 02:57:05 +0000 UTC

如何从图像中获取颜色数组?

  • 0

有图片

在此处输入图像描述

如何以最少的代码从一张这样的图片中获取十六进制格式的颜色数组?(红宝石)

[#0091C0, #70D6EC, #83B0E7]

或哈希匹配,

 @colors = [ "Aqua Splach Heather", "Crystal Blue Heather", "Navy Blue"] 

每张图片的方格数不同(长度56px)

изображения
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-06-30 21:02:53 +0000 UTC

如何在ruby中系统地将一行从一个文件传输到另一个文件?

  • 0

我有一个从文件中获取的数组

urls = IO.readlines("man.txt")

然后在循环中做一些事情

urls.each do |url|
  url = urls.at(i)

   some code..
   
  # записываю в новый файл текущую строку
  File.open('url__success.txt', 'a+'){ |file| file.write urls.at(i) }
  # в конце пытаюсь удалить текущую строку и заменить пустой системно
  system("sed -e 's/^/\n/' man.txt")


end

我明白了

sed:-e 表达式 #1,字符 5:未终止的 `s' 命令

尽管 sed 以纯粹的形式从控制台工作。还有其他选择吗?我也不希望url = urls.at(i)这些值随着循环的进行而丢失

ruby
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-07-10 05:27:21 +0000 UTC

如何在 VS Code 中使用 xdebug 调试远程站点?

  • 1

在 vs 代码中,我将远程 ssh 和远程 ssh:explorer 在 ssh 配置中我尝试转发端口 9000,vs 代码将在该端口上侦听服务器上的 xdebug

Host debug
    HostName y.y.y.y
    User web
    ForwardAgent yes
    DynamicForward 9000
    # RemoteForward 52698 127.0.0.1:52698

然后我连接到服务器,安装 x_debug 插件,在服务器上创建一个文件夹 .vscode,它包含 launh.json 调试器的设置

    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
         {
            "name": "VS",
            "type": "php",
            "hostname": "localhost",
            "port": 9000,
            "request": "launch",
            "stopOnEntry": true,
            "log":true,
            "pathMappings": {
                "/var/www/html": "/var/web/sites/namesiteY",
                "/app": "../"
            }

        }
    ]
}

在该站点的服务器上安装了 x_debug(根据此说明),将这些设置添加到 php.ini:

;XDEBUG START

zend_extension = /usr/lib/php/20151012/xdebug.so

[XDEBUG]

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_host = x.x.x.x
xdebug.remote_port = 9000
xdebug.idekey = VS
xdebug.remote_connect_back = 1
xdebug.force_display_errors = On


;XDEBUG END

结果,我尝试按开始调试以获得简单的测试脚本

$home = 1 + 4;

echo $home;


$value = 0;
if ($value == 0 ) {
    echo "TRUE";  // ТУТ BREAKPOINT
} else {
    echo "False"; // И ТУТ
}

什么也没有发生,变量没有被写入,这出现在调试控制台中:

<- launchResponse
Response {
  seq: 0,
  type: 'response',
  request_seq: 2,
  command: 'launch',
  success: true } 

我尝试了使用和不使用 chrome 插件,检查了 ide 是否正在侦听端口 9000: http ://skrinshoter.ru/s/090719/1A2n8TG0?a ,一切似乎都很好我在哪里搞砸了?

附言 1

在 xdebug 插件文档中有一个用于 vs 代码的映射示例:

// server -> local
"pathMappings": {
  "/var/www/html": "${workspaceRoot}/www",
  "/app": "${workspaceRoot}/app"
}

关于注册这些方式的内容还不是很清楚?关于 .vscode 文件夹?在我的情况下有必要吗?

ps2

y.y.y.y - ip сервера с удаленным сайтом
x.x.x.x - мой статичный ip ( там где установлена ide)
debian
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-02-21 04:50:21 +0000 UTC

为什么超过 40 个收件人没有存储在数据库中?

  • 0

有一个送货服务,客户在其中注册,每个客户可以通过在他的帐户中填写表格来添加多个收件人。

这是收件人的表格:

CREATE TABLE x_receivers (
  id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  id_client bigint(20) UNSIGNED NOT NULL,
  surname varchar(255) NOT NULL,
  name varchar(255) NOT NULL,
  patronymic varchar(255) NOT NULL,
  ps_type tinyint(1) UNSIGNED NOT NULL COMMENT 'тип документа',
  ps_serial varchar(255) NOT NULL,
  ps_num varchar(255) NOT NULL,
  ps_code varchar(255) NOT NULL,
  ps_who varchar(255) NOT NULL,
  ps_when char(14) NOT NULL,
  postcode char(12) NOT NULL,
  country varchar(255) NOT NULL,
  area varchar(255) NOT NULL,
  city varchar(255) NOT NULL,
  street varchar(255) NOT NULL,
  house char(12) NOT NULL,
  room char(12) NOT NULL,
  sort tinyint(3) UNSIGNED NOT NULL,
  scan_1 varchar(255) NOT NULL COMMENT 'скан первой стр. паспорта',
  scan_2 varchar(255) NOT NULL COMMENT 'скан прописки',
  inn varchar(255) DEFAULT NULL,
  house_korp varchar(255) DEFAULT NULL,
  citizenship varchar(255) DEFAULT NULL,
  b_date char(14) DEFAULT NULL COMMENT 'Дата рождения',
  phone varchar(255) DEFAULT NULL,
  email varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = MYISAM,
AUTO_INCREMENT = 37299,
AVG_ROW_LENGTH = 341,
CHARACTER SET utf8,
CHECKSUM = 0,
COLLATE utf8_general_ci;

ALTER TABLE x_receivers
ADD INDEX id_client (id_client);

客户端模型(将数据保存和写入数据库的部分)

 /**
     * Получаем сохраненные адреса покупателя
     *
     * @deprecated
     *
     * @param bool $id
     *
     * @return mixed
     */
    public static function getAddresses($id = false) {
      $user_id = $id ? (int)$id : (int)Client::get('id');

      return DB::fetch('select address from #prefix#addresses where id_client = ? order by sort asc', $user_id);
    }

    /**
     * Сохраняем паспортные данные получателей
     *
     * @param array $receivers
     */
    public static function saveReceivers(&$receivers = array()) {
      $user_id = (int)Client::get('id');

      $receivers_ids = DB::shift_array('select id from #prefix#receivers where id_client = ?', $user_id);
      $receivers_ids = $receivers_ids ? $receivers_ids : array();

      DB::execute('delete from #prefix#receivers where id_client = ?', $user_id);

      if ( $receivers ) {
        foreach( $receivers as $i => $receiver ) {

          $fields = array();
          foreach( $receiver as $key => $field ) {
            if ( $key == 'id' ) {
              // если передается id, проверяем, чтобы он ранее пренадлежал текущему пользователю;
              // т.о. защищаем подмену чужого получателя
              if ( array_search((int)$field, $receivers_ids) === false ) {
                continue;
              }
            }

            // фильтруем значение от всякого мусора
            $fields[ $key ] = "'" . preg_replace('#[^\w\d\s\-\.\,\@\/]#ui', '', $field) . "'";
          }
          $fields['sort'] = $i;

          // insert по одному, потому что у каждой записи может быть разный набор заполненных полей
          DB::execute('insert into #prefix#receivers (id_client, ' . join(', ', array_keys($fields)) . ") values ($user_id, " . join(', ', $fields) . ')');
        //  \clients\ReceiversHistory::saveItem(DB::last_id());
        }
      }

      @setcookie('receivers', count($receivers), time() + conf('General', 'session_duration'), '/', $_SERVER['HTTP_HOST'], false, true);
    }

    /**
     * Получаем данные всех получателей клиента
     *
     * @param int|bool $id
     * @param bool     $all
     *
     * @return object|bool
     */
    public static function getReceivers($id = false, $all = false) {
      $user_id = $id ? (int)$id : (int)Client::get('id');

      if ( $id && !$all ) {
        // получаем данные конкретного получателя
        return DB::single('select * from #prefix#receivers where id = ? order by sort asc', $user_id);
      }

      $receivers = DB::fetch('select * from #prefix#receivers where id_client = ? order by surname', $user_id);

    if ($receivers) {
        foreach( $receivers as $item ) {
        $item->regionid=Cities::getregionid($item->city,$item->country);
        }
    }

      @setcookie('receivers', count($receivers), time() + conf('General', 'session_duration'), '/', $_SERVER['HTTP_HOST'], false, true);

      return $receivers;
    }

    /**
     * Имеются ли у текущего пользователя получатели
     *
     * @return bool
     */
    public static function hasReceivers() {
      if ( empty(self::getReceivers()) ) {
        return false;
      }


      return true;
    }

    /**
     * Принадлежит ли указанный получатель текущему пользователю
     *
     * @param int $receiver_id
     *
     * @return boolean
     */
    public static function receiverExist($receiver_id) {
      return !!DB::shift('select id from #prefix#receivers where id_client = ? and id = ? order by sort asc limit 1', Client::$user->id, (int)$receiver_id);
    }

当客户有 40 多个收件人时会出现问题,即如果您填写 41 个收件人的表格,他不会进入数据库。如果您反其道而行之(直接通过数据库添加),则将显示 41 个收件人。可能是什么问题呢?首先应该调试什么以及如何调试?

  • 玛丽亚数据库 10.1
  • php7.0
  • 象形文字
php
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-08-28 00:07:51 +0000 UTC

正则表达式的错误在哪里?

  • -1

告诉我为什么正则表达式不起作用

/^[0-9]{4}[-]{1}[0-9]{2}[-]{1}[0-9]{2} [0-9]{2}[:]{1}[0-9]{2}[:]{1}[0-9]{2}$

应该拉出日期:

2018-07-16 21:09:02 - 主机: - UNCAUGHT_EXCEPTION - [Bitrix\Main\DB\SqlQueryException]

查找日期左右是否没有更多字符

全文示例:

2018-07-16 21:09:02 - Host:  - UNCAUGHT_EXCEPTION - [Bitrix\Main\DB\SqlQueryException] 
Mysql query error: (1146) Table 'sitemanager.b_option' doesn't exist (400)
SELECT o.SITE_ID, o.MODULE_ID, o.NAME, o.VALUE FROM b_option o 
/home/bitrix/www/bitrix/modules/main/lib/db/mysqliconnection.php:137
#0: Bitrix\Main\DB\MysqliConnection->queryInternal(string, array, NULL)
    /home/bitrix/www/bitrix/modules/main/lib/db/connection.php:330
#1: Bitrix\Main\DB\Connection->query(string)
    /home/bitrix/www/bitrix/modules/main/lib/config/option.php:226
#2: Bitrix\Main\Config\Option::load(string, NULL)
    /home/bitrix/www/bitrix/modules/main/lib/config/option.php:53
#3: Bitrix\Main\Config\Option::get(string, string, string)
    /home/bitrix/www/bitrix/modules/main/lib/httprequest.php:370
#4: Bitrix\Main\HttpRequest->prepareCookie(array)
    /home/bitrix/www/bitrix/modules/main/lib/httprequest.php:68
#5: Bitrix\Main\HttpRequest->__construct(object, array, array, array, array)
    /home/bitrix/www/bitrix/modules/main/lib/httpapplication.php:46
#6: Bitrix\Main\HttpApplication->initializeContext(array)
    /home/bitrix/www/bitrix/modules/main/lib/application.php:122
#7: Bitrix\Main\Application->initializeExtendedKernel(array)
    /home/bitrix/www/bitrix/modules/main/include.php:1
#8: require_once(string)
    /home/bitrix/www/bitrix/modules/main/include/prolog_before.php:14
#9: require(string)
    /home/bitrix/www/bitrix/modules/main/tools/cron_events.php:11
----------
php
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-04-05 12:53:42 +0000 UTC

如何通过 SetPropertyValuesEx 更改应用程序的状态?

  • 0
$externalId = $arValues['EXTERNAL_ID'];  // id заявки текущей
$arValues['STATUS']['XML_ID'] = 41792862;  // симв. код статуса 500
$arCurrentStatus['ID'] = 500; // текущий  500


CIBlockElement::SetPropertyValuesEx($arValues['EXTERNAL_ID'], false, array( $arValues['STATUS']['XML_ID'] =>  $arCurrentStatus['ID']));  

告诉我如何正确重写 SetPropertyValuesEx 以通过单击当前数据更改 Bitrix 中应用程序的状态:41792861 XML_ID 200 - id

php
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-01-27 23:53:03 +0000 UTC

如何将子 div [absolute] 的内容对齐到中心?

  • 0

如何将block-item-price 块的内容对齐到中心?不使用像素缩进。(布局应该是流畅的,布局是 1960 像素,布局是 1360,所以没有确切的值)

html {
  font-size: 20pt;
}

body {
  background-image: url(../img/bg.png);
  font-family: "Cormorant Infant", serif;
  margin: 0 auto !important;
  padding: 0 auto !important;
}

.no-gutter > [class*='col-'] {
  padding-right: 0;
  padding-left: 0;
}

.header-video {
  max-height: 960px;
  height: 100%;
  width: 100%;
  position: relative;
}

#video_background {
  position: absolute !important;
  top: -15px !important;
  left: 0px !important;
  bottom: 0px !important;
  right: 0px !important;
  width: 100% !important;
  height: 960px !important;
}

.title-text {
  color: #fff;
  text-transform: uppercase;
  font-family: "Cormorant Infant";
  font-weight: bold;
}

.blank {
  height: 900px;
  position: relative;
  background-image: url(../img/header.png);
  background-repeat: no-repeat;
}

.title-text {
  height: 108px;
  display: inline-block;
  text-align: center;
  width: 100%;
}

.top-menu {
  background-image: url(../img/menu.svg);
  width: 113px;
  height: 40px;
  color: #46382e;
  padding-top: 7px;
  padding-bottom: 14px;
  padding-left: 10px;
  padding-right: 10px;
  margin-top: 40px;
  margin-left: 60px;
  font-size: 16pt;
  text-align: center;
  text-transform: uppercase;
  position: absolute;
}

.fa-bars {
  font-size: 17px !important;
}

.personal-room {
  background-image: url(../img/lk.svg);
  background-repeat: no-repeat;
  width: 233px;
  height: 40px;
  color: #46382e;
  padding-top: 7px;
  padding-bottom: 14px;
  padding-left: 10px;
  padding-right: 10px;
  margin-top: 40px;
  margin-right: 60px;
  font-size: 16pt;
  text-align: center;
  text-transform: uppercase;
  position: absolute;
  right: 0;
  top: 0;
}

.logo {
  position: absolute;
  left: 50%;
  top: 15px;
  margin-left: -75px;
}

.bootom-blank-icon {
  bottom: 70px;
  position: absolute;
  text-align: center;
  display: inline-block;
  font-size: 34pt;
  z-index: 100;
  width: 100%;
}

.icon-circle {
  color: #fff;
  border: 2px #fff solid;
  display: inline-block;
  border-radius: 100%;
  padding-left: 5px;
  padding-right: 5px;
  padding-top: 6px;
  padding-bottom: 9px;
  width: 70px;
  height: 70px;
  margin-left: 15px;
}

.block-item {
  display: block;
  float: left;
  width: 100%;
  background-position: center center;
  position: relative;
  background-size: 100%;
}

.block-item img {
  width: 100%;
}

.block-item-name {
  color: white;
  text-align: right;
  height: 80px;
  font-size: 14pt;
  text-transform: uppercase;
  padding-top: 43px;
  padding-right: 37px;
  font-weight: bold;
  position: absolute;
  margin-left: 6%;
  position: absolute;
  width: 87%;
  border-bottom: 2px #fff solid;
  top: 0;
}

.block-item-name-span {
  font-weight: bold;
  font-family: "Cormorant Infant", serif;
  font-size: 14pt;
}

.block-item-price {
  position: absolute;
  bottom: 30px;
  font-size: 14pt;
}

.price-week {
  background-color: #483e37;
  color: #e3dedb;
  display: inline-block;
  float: left;
  padding-top: 2%;
  padding-bottom: 2%;
  padding-left: 15px;
  padding-right: 15px;
  border-top-left-radius: 35px;
  border-bottom-left-radius: 35px;
}

.price-holy {
  background-color: #e3dedb;
  color: #483e37;
  display: inline-block;
  padding-top: 2%;
  padding-bottom: 2%;
  padding-left: 15px;
  padding-right: 15px;
  border-top-right-radius: 35px;
  border-bottom-right-radius: 35px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.css" rel="stylesheet" />

<div class="row no-gutter">
  <div class="col-md-4">
    <div class="block-item block-item-standart">
      <img src="https://photos-3.dropbox.com/t/2/AADoJLpMrZqjdFy87e1PqJEJZSZWxuxzfmLFZP5QKr_Quw/12/418398532/png/32x32/1/_/1/2/standart.png/EPKFsq0DGJEQIAIoAg/wawVbTlclODjevfAaQvkdxVsFHkgvpH1f0A0xQPa58U?preserve_transparency=1&size=32x32&size_mode=5" alt="">
      <div class="block-item-name"><span class="block-item-name-span">Стандарт</span></div>
      <div class="block-item-price">
        <span class="price-week">Цена в будни</span>
        <span class="price-holy">Цена в выходные</span>
      </div>
    </div>
  </div>
  <div class="col-md-4">
    <div class="block-item block-item-standart">
      <img src="https://photos-3.dropbox.com/t/2/AADoJLpMrZqjdFy87e1PqJEJZSZWxuxzfmLFZP5QKr_Quw/12/418398532/png/32x32/1/_/1/2/standart.png/EPKFsq0DGJEQIAIoAg/wawVbTlclODjevfAaQvkdxVsFHkgvpH1f0A0xQPa58U?preserve_transparency=1&size=32x32&size_mode=5" alt="">
      <div class="block-item-name"><span class="block-item-name-span">Стандарт</span></div>
      <div class="block-item-price">
        <span class="price-week">Цена в будни</span>
        <span class="price-holy">Цена в выходные</span>
      </div>
    </div>
  </div>
  <div class="col-md-4">
    <div class="block-item block-item-standart">
      <img src="https://photos-3.dropbox.com/t/2/AADoJLpMrZqjdFy87e1PqJEJZSZWxuxzfmLFZP5QKr_Quw/12/418398532/png/32x32/1/_/1/2/standart.png/EPKFsq0DGJEQIAIoAg/wawVbTlclODjevfAaQvkdxVsFHkgvpH1f0A0xQPa58U?preserve_transparency=1&size=32x32&size_mode=5" alt="">
      <div class="block-item-name"><span class="block-item-name-span">Стандарт</span></div>
      <div class="block-item-price">
        <span class="price-week">Цена в будни</span>
        <span class="price-holy">Цена в выходные</span>
      </div>
    </div>
  </div>
</div>

告诉我关于定位块的一般性建议、做什么(以及如何做)

ps谁吃一块codeopen舒服: codeopen

html
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-01-27 18:07:02 +0000 UTC

如何找出与 roistat 进行交换的地点?

  • 0

1s上有一个站点-Bitrix,用win-1251编码制作

问题是当与 roistat 交换时,交换文件以 win-1251 编码飞走,这导致管理面板中出现这样的帽子:
在此处输入图像描述

由于集成是很久以前和其他人完成的,不知道如何找到与roystat本身的交换文件?(根据新的api规则,现在集成是通过一个模块,但没有安装)。

来自 TP 答案

在表单代码中,按钮被标记为以下类 - bx_bt_submit 该类在您的项目中的表单代理中不使用。在这种情况下,当您单击时,您的脚本会引用以下路径 - onc ick="Stat.SEND_1BUY_CLICK();" 显然,有关应用程序的信息会转到您服务器上的单独订单处理器文件。请您检查信息的发送位置以及处理订单时是否添加了我们的 php 脚本或任何其他脚本

如何找到这个函数SEND_1BUY_CLICK()?

完全改变编码是没有意义的,因为它是劳动密集型的,而且问题只出在外部服务上。

php
  • 2 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-01-26 00:34:09 +0000 UTC

如何用 sass 重写一段代码?[关闭]

  • 0
关闭。这个问题需要澄清或补充细节。目前不接受回复。

想改进这个问题?通过编辑此帖子添加更多详细信息并澄清问题。

4年前关闭。

改进问题

这是 sass 中的一段 css 代码:

.no-gutter > [class*='col-'] 
css
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-01-16 20:40:37 +0000 UTC

为什么图片标题不显示?(result_modifier.php)

  • 1

Bitrix 17.4 有用于 catalog.section 的 result_modifier.php

// Заменяем картинку у товара на дефолтную, у которой не задано изображение
 foreach($arResult["ITEMS"] as $key=>$arItem):
  if (!is_array($arItem["PREVIEW_PICTURE"])):
  $arResult["ITEMS"][$key]["PREVIEW_PICTURE"]["SRC"]=SITE_TEMPLATE_PATH."/assets/image/main/car-item-2.png";
  $arResult["ITEMS"][$key]["PREVIEW_PICTURE"]["HEIGHT"]=150;
  $arResult["ITEMS"][$key]["PREVIEW_PICTURE"]["WIDTH"]=150;  
  endif;
 endforeach;

但是代码不起作用,只显示手动上传的图片。可能是什么问题呢?输出中的图片通过如下属性加载:

在此处输入图像描述

也许应该有另一个常量而不是 PREVIEW_PICTURE。

组件本身的UPD1模板代码

<? if ( ! defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true ) {
    die();
}

use \Bitrix\Main\Localization\Loc;

/**
 * @global CMain $APPLICATION
 * @var array $arParams
 * @var array $arResult
 * @var CatalogSectionComponent $component
 * @var CBitrixComponentTemplate $this
 * @var string $templateName
 * @var string $componentPath
 */

$this->setFrameMode(true);
$this->addExternalCss('/bitrix/css/main/bootstrap.css');

if ( ! empty($arResult['NAV_RESULT']) ) {
    $navParams = array(
        'NavPageCount' => $arResult['NAV_RESULT']->NavPageCount,
        'NavPageNomer' => $arResult['NAV_RESULT']->NavPageNomer,
        'NavNum' => $arResult['NAV_RESULT']->NavNum
    );
} else {
    $navParams = array(
        'NavPageCount' => 1,
        'NavPageNomer' => 1,
        'NavNum' => $this->randString()
    );
}

$showTopPager = false;
$showBottomPager = false;
$showLazyLoad = false;

if ( $arParams['PAGE_ELEMENT_COUNT'] > 0 && $navParams['NavPageCount'] > 1 ) {
    $showTopPager = $arParams['DISPLAY_TOP_PAGER'];
    $showBottomPager = $arParams['DISPLAY_BOTTOM_PAGER'];
    $showLazyLoad = $arParams['LAZY_LOAD'] === 'Y' && $navParams['NavPageNomer'] != $navParams['NavPageCount'];
}

$templateLibrary = array('popup', 'ajax', 'fx');
$currencyList = '';

if ( ! empty($arResult['CURRENCIES']) ) {
    $templateLibrary[] = 'currency';
    $currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true);
}

$templateData = array(
    'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
    'TEMPLATE_LIBRARY' => $templateLibrary,
    'CURRENCIES' => $currencyList
);
unset($currencyList, $templateLibrary);

$elementEdit = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_EDIT');
$elementDelete = CIBlock::GetArrayByID($arParams['IBLOCK_ID'], 'ELEMENT_DELETE');
$elementDeleteParams = array('CONFIRM' => GetMessage('CT_BCS_TPL_ELEMENT_DELETE_CONFIRM'));

$positionClassMap = array(
    'left' => 'product-item-label-left',
    'center' => 'product-item-label-center',
    'right' => 'product-item-label-right',
    'bottom' => 'product-item-label-bottom',
    'middle' => 'product-item-label-middle',
    'top' => 'product-item-label-top'
);

$discountPositionClass = '';
if ( $arParams['SHOW_DISCOUNT_PERCENT'] === 'Y' && ! empty($arParams['DISCOUNT_PERCENT_POSITION']) ) {
    foreach (explode('-', $arParams['DISCOUNT_PERCENT_POSITION']) as $pos) {
        $discountPositionClass .= isset($positionClassMap[$pos]) ? ' ' . $positionClassMap[$pos] : '';
    }
}

$labelPositionClass = '';
if ( ! empty($arParams['LABEL_PROP_POSITION']) ) {
    foreach (explode('-', $arParams['LABEL_PROP_POSITION']) as $pos) {
        $labelPositionClass .= isset($positionClassMap[$pos]) ? ' ' . $positionClassMap[$pos] : '';
    }
}

$arParams['~MESS_BTN_BUY'] = $arParams['~MESS_BTN_BUY'] ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_BUY');
$arParams['~MESS_BTN_DETAIL'] = $arParams['~MESS_BTN_DETAIL'] ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_DETAIL');
$arParams['~MESS_BTN_COMPARE'] = $arParams['~MESS_BTN_COMPARE'] ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_COMPARE');
$arParams['~MESS_BTN_SUBSCRIBE'] = $arParams['~MESS_BTN_SUBSCRIBE'] ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_SUBSCRIBE');
$arParams['~MESS_BTN_ADD_TO_BASKET'] = $arParams['~MESS_BTN_ADD_TO_BASKET'] ?: Loc::getMessage('CT_BCS_TPL_MESS_BTN_ADD_TO_BASKET');
$arParams['~MESS_NOT_AVAILABLE'] = $arParams['~MESS_NOT_AVAILABLE'] ?: Loc::getMessage('CT_BCS_TPL_MESS_PRODUCT_NOT_AVAILABLE');
$arParams['~MESS_SHOW_MAX_QUANTITY'] = $arParams['~MESS_SHOW_MAX_QUANTITY'] ?: Loc::getMessage('CT_BCS_CATALOG_SHOW_MAX_QUANTITY');
$arParams['~MESS_RELATIVE_QUANTITY_MANY'] = $arParams['~MESS_RELATIVE_QUANTITY_MANY'] ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_MANY');
$arParams['~MESS_RELATIVE_QUANTITY_FEW'] = $arParams['~MESS_RELATIVE_QUANTITY_FEW'] ?: Loc::getMessage('CT_BCS_CATALOG_RELATIVE_QUANTITY_FEW');

$generalParams = array(
    'SHOW_DISCOUNT_PERCENT' => $arParams['SHOW_DISCOUNT_PERCENT'],
    'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'],
    'SHOW_MAX_QUANTITY' => $arParams['SHOW_MAX_QUANTITY'],
    'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'],
    'MESS_SHOW_MAX_QUANTITY' => $arParams['~MESS_SHOW_MAX_QUANTITY'],
    'MESS_RELATIVE_QUANTITY_MANY' => $arParams['~MESS_RELATIVE_QUANTITY_MANY'],
    'MESS_RELATIVE_QUANTITY_FEW' => $arParams['~MESS_RELATIVE_QUANTITY_FEW'],
    'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'],
    'USE_PRODUCT_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'],
    'PRODUCT_QUANTITY_VARIABLE' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
    'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'],
    'ADD_PROPERTIES_TO_BASKET' => $arParams['ADD_PROPERTIES_TO_BASKET'],
    'PRODUCT_PROPS_VARIABLE' => $arParams['PRODUCT_PROPS_VARIABLE'],
    'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'],
    'DISPLAY_COMPARE' => $arParams['DISPLAY_COMPARE'],
    'COMPARE_PATH' => $arParams['COMPARE_PATH'],
    'COMPARE_NAME' => $arParams['COMPARE_NAME'],
    'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'],
    'PRODUCT_BLOCKS_ORDER' => $arParams['PRODUCT_BLOCKS_ORDER'],
    'LABEL_POSITION_CLASS' => $labelPositionClass,
    'DISCOUNT_POSITION_CLASS' => $discountPositionClass,
    'SLIDER_INTERVAL' => $arParams['SLIDER_INTERVAL'],
    'SLIDER_PROGRESS' => $arParams['SLIDER_PROGRESS'],
    '~BASKET_URL' => $arParams['~BASKET_URL'],
    '~ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'],
    '~BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE'],
    '~COMPARE_URL_TEMPLATE' => $arResult['~COMPARE_URL_TEMPLATE'],
    '~COMPARE_DELETE_URL_TEMPLATE' => $arResult['~COMPARE_DELETE_URL_TEMPLATE'],
    'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
    'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'],
    'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'],
    'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'],
    'MESS_BTN_BUY' => $arParams['~MESS_BTN_BUY'],
    'MESS_BTN_DETAIL' => $arParams['~MESS_BTN_DETAIL'],
    'MESS_BTN_COMPARE' => $arParams['~MESS_BTN_COMPARE'],
    'MESS_BTN_SUBSCRIBE' => $arParams['~MESS_BTN_SUBSCRIBE'],
    'MESS_BTN_ADD_TO_BASKET' => $arParams['~MESS_BTN_ADD_TO_BASKET'],
    'MESS_NOT_AVAILABLE' => $arParams['~MESS_NOT_AVAILABLE']
);

$obName = 'ob' . preg_replace('/[^a-zA-Z0-9_]/', 'x', $this->GetEditAreaId($navParams['NavNum']));
$containerName = 'container-' . $navParams['NavNum'];

if ( $showTopPager ) {
    ?>
    <div data-pagination-num="<?= $navParams['NavNum'] ?>">
        <!-- pagination-container -->
        <?= $arResult['NAV_STRING'] ?>
        <!-- pagination-container -->
    </div>
    <?
}

if ( $arParams['HIDE_SECTION_DESCRIPTION'] !== 'Y' ) {
    ?>
    <div class="bx-section-desc bx-<?= $arParams['TEMPLATE_THEME'] ?>">
        <p class="bx-section-desc-post"><?= $arResult['DESCRIPTION'] ?></p>
    </div>
    <?
}
?>

<div class="col-product col-sm-12" data-entity="<?= $containerName ?>">
    <div class="row clearfix">
        <?
        if ( ! empty($arResult['ITEMS']) && ! empty($arResult['ITEM_ROWS']) ) {
            $areaIds = array();

            foreach ($arResult['ITEMS'] as $item) {
                $uniqueId = $item['ID'] . '_' . md5($this->randString() . $component->getAction());
                $areaIds[$item['ID']] = $this->GetEditAreaId($uniqueId);
                $this->AddEditAction($uniqueId, $item['EDIT_LINK'], $elementEdit);
                $this->AddDeleteAction($uniqueId, $item['DELETE_LINK'], $elementDelete, $elementDeleteParams);
            }
            ?>
            <!-- items-container -->
            <?
            foreach ($arResult['ITEM_ROWS'] as $rowData) {
                $rowItems = array_splice($arResult['ITEMS'], 0, $rowData['COUNT']);
                ?>
                <div class="row <?= $rowData['CLASS'] ?>" data-entity="items-row">
                    <?
                    switch ($rowData['VARIANT']) {
                        case 0:
                            ?>
                            <div class="col-xs-12 product-item-small-card">
                                <div class="row">
                                    <div class="col-xs-12 product-item-big-card">
                                        <div class="row">
                                            <div class="col-md-12">
                                                <?
                                                $item = reset($rowItems);
                                                $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                    'RESULT' => array(
                                                        'ITEM' => $item,
                                                        'AREA_ID' => $areaIds[$item['ID']],
                                                        'TYPE' => $rowData['TYPE'],
                                                        'BIG_LABEL' => 'N',
                                                        'BIG_DISCOUNT_PERCENT' => 'N',
                                                        'BIG_BUTTONS' => 'N',
                                                        'SCALABLE' => 'N'
                                                    ),
                                                    'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                                ), $component, array('HIDE_ICONS' => 'Y'));
                                                ?>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <?
                            break;

                        case 1:
                            ?>
                            <div class="col-xs-12 product-item-small-card">
                                <div class="row">
                                    <?
                                    foreach ($rowItems as $item) {
                                        ?>
                                        <div class="col-xs-6 product-item-big-card">
                                            <div class="row">
                                                <div class="col-md-12">
                                                    <?
                                                    $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                        'RESULT' => array(
                                                            'ITEM' => $item,
                                                            'AREA_ID' => $areaIds[$item['ID']],
                                                            'TYPE' => $rowData['TYPE'],
                                                            'BIG_LABEL' => 'N',
                                                            'BIG_DISCOUNT_PERCENT' => 'N',
                                                            'BIG_BUTTONS' => 'N',
                                                            'SCALABLE' => 'N'
                                                        ),
                                                        'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                                    ), $component, array('HIDE_ICONS' => 'Y'));
                                                    ?>
                                                </div>
                                            </div>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <?
                            break;

                        case 2:
                            ?>
                            <div class="col-xs-12 product-item-small-card">
                                <div class="row">
                                    <?
                                    foreach ($rowItems as $item) {
                                        ?>
                                        <div class="col-sm-4 product-item-big-card">
                                            <div class="row">
                                                <div class="col-md-12">
                                                    <?
                                                    $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                        'RESULT' => array(
                                                            'ITEM' => $item,
                                                            'AREA_ID' => $areaIds[$item['ID']],
                                                            'TYPE' => $rowData['TYPE'],
                                                            'BIG_LABEL' => 'N',
                                                            'BIG_DISCOUNT_PERCENT' => 'N',
                                                            'BIG_BUTTONS' => 'Y',
                                                            'SCALABLE' => 'N'
                                                        ),
                                                        'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                                    ), $component, array('HIDE_ICONS' => 'Y'));
                                                    ?>
                                                </div>
                                            </div>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <?
                            break;

                        case 3:
                            ?>

                            <?
                            foreach ($rowItems as $item) {
                                ?>
                                <?php //echo var_dump($item); ?>
                                <div class="col-sm-6 col-md-4 col-lg-3">
                                    <div class="gallery-filter__product gallery-product mh_item">
                                        <?
                                        $APPLICATION->IncludeComponent('bitrix:catalog.item', 'masshin_item_new', array(
                                            'RESULT' => array(
                                                'ITEM' => $item,
                                                'AREA_ID' => $areaIds[$item['ID']],
                                                'TYPE' => $rowData['TYPE'],
                                                'BIG_LABEL' => 'N',
                                                'BIG_DISCOUNT_PERCENT' => 'N',
                                                'BIG_BUTTONS' => 'N',
                                                'SCALABLE' => 'N'
                                            ),
                                            'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                        ), $component, array('HIDE_ICONS' => 'Y'));
                                        ?>
                                    </div>
                                </div>
                                <?
                            }
                            ?><?
                            break;

                        case 4:
                            $rowItemsCount = count($rowItems);
                            ?>
                            <div class="col-sm-6 product-item-big-card">
                                <div class="row">
                                    <div class="col-md-12">
                                        <?
                                        $item = array_shift($rowItems);
                                        $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                            'RESULT' => array(
                                                'ITEM' => $item,
                                                'AREA_ID' => $areaIds[$item['ID']],
                                                'TYPE' => $rowData['TYPE'],
                                                'BIG_LABEL' => 'N',
                                                'BIG_DISCOUNT_PERCENT' => 'N',
                                                'BIG_BUTTONS' => 'Y',
                                                'SCALABLE' => 'Y'
                                            ),
                                            'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                        ), $component, array('HIDE_ICONS' => 'Y'));
                                        unset($item);
                                        ?>
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-6 product-item-small-card">
                                <div class="row">
                                    <?
                                    for ($i = 0; $i < $rowItemsCount - 1; $i++) {
                                        ?>
                                        <div class="col-xs-6">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $rowItems[$i],
                                                    'AREA_ID' => $areaIds[$rowItems[$i]['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N',
                                                    'SCALABLE' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$rowItems[$i]['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <?
                            break;

                        case 5:
                            $rowItemsCount = count($rowItems);
                            ?>
                            <div class="col-sm-6 product-item-small-card">
                                <div class="row">
                                    <?
                                    for ($i = 0; $i < $rowItemsCount - 1; $i++) {
                                        ?>
                                        <div class="col-xs-6">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $rowItems[$i],
                                                    'AREA_ID' => $areaIds[$rowItems[$i]['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N',
                                                    'SCALABLE' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$rowItems[$i]['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <div class="col-sm-6 product-item-big-card">
                                <div class="row">
                                    <div class="col-md-12">
                                        <?
                                        $item = end($rowItems);
                                        $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                            'RESULT' => array(
                                                'ITEM' => $item,
                                                'AREA_ID' => $areaIds[$item['ID']],
                                                'TYPE' => $rowData['TYPE'],
                                                'BIG_LABEL' => 'N',
                                                'BIG_DISCOUNT_PERCENT' => 'N',
                                                'BIG_BUTTONS' => 'Y',
                                                'SCALABLE' => 'Y'
                                            ),
                                            'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                        ), $component, array('HIDE_ICONS' => 'Y'));
                                        unset($item);
                                        ?>
                                    </div>
                                </div>
                            </div>
                            <?
                            break;

                        case 6:
                            ?>
                            <div class="col-xs-12 product-item-small-card">
                                <div class="row">
                                    <?
                                    foreach ($rowItems as $item) {
                                        ?>
                                        <div class="col-xs-6 col-sm-4 col-md-2">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $item,
                                                    'AREA_ID' => $areaIds[$item['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N',
                                                    'SCALABLE' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <?
                            break;

                        case 7:
                            $rowItemsCount = count($rowItems);
                            ?>
                            <div class="col-sm-6 product-item-big-card">
                                <div class="row">
                                    <div class="col-md-12">
                                        <?
                                        $item = array_shift($rowItems);
                                        $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                            'RESULT' => array(
                                                'ITEM' => $item,
                                                'AREA_ID' => $areaIds[$item['ID']],
                                                'TYPE' => $rowData['TYPE'],
                                                'BIG_LABEL' => 'N',
                                                'BIG_DISCOUNT_PERCENT' => 'N',
                                                'BIG_BUTTONS' => 'Y',
                                                'SCALABLE' => 'Y'
                                            ),
                                            'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                        ), $component, array('HIDE_ICONS' => 'Y'));
                                        unset($item);
                                        ?>
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-6 product-item-small-card">
                                <div class="row">
                                    <?
                                    for ($i = 0; $i < $rowItemsCount - 1; $i++) {
                                        ?>
                                        <div class="col-xs-6 col-md-4">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $rowItems[$i],
                                                    'AREA_ID' => $areaIds[$rowItems[$i]['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N',
                                                    'SCALABLE' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$rowItems[$i]['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <?
                            break;

                        case 8:
                            $rowItemsCount = count($rowItems);
                            ?>
                            <div class="col-sm-6 product-item-small-card">
                                <div class="row">
                                    <?
                                    for ($i = 0; $i < $rowItemsCount - 1; $i++) {
                                        ?>
                                        <div class="col-xs-6 col-md-4">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $rowItems[$i],
                                                    'AREA_ID' => $areaIds[$rowItems[$i]['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N',
                                                    'SCALABLE' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$rowItems[$i]['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>
                                </div>
                            </div>
                            <div class="col-sm-6 product-item-big-card">
                                <div class="row">
                                    <div class="col-md-12">
                                        <?
                                        $item = end($rowItems);
                                        $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                            'RESULT' => array(
                                                'ITEM' => $item,
                                                'AREA_ID' => $areaIds[$item['ID']],
                                                'TYPE' => $rowData['TYPE'],
                                                'BIG_LABEL' => 'N',
                                                'BIG_DISCOUNT_PERCENT' => 'N',
                                                'BIG_BUTTONS' => 'Y',
                                                'SCALABLE' => 'Y'
                                            ),
                                            'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                        ), $component, array('HIDE_ICONS' => 'Y'));
                                        unset($item);
                                        ?>
                                    </div>
                                </div>
                            </div>
                            <?
                            break;

                        case 9:
                            ?>
                            <div class="col-xs-12">
                                <div class="row">
                                    <?
                                    foreach ($rowItems as $item) {
                                        ?>
                                        <div class="col-xs-12 product-item-line-card">
                                            <?
                                            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(
                                                'RESULT' => array(
                                                    'ITEM' => $item,
                                                    'AREA_ID' => $areaIds[$item['ID']],
                                                    'TYPE' => $rowData['TYPE'],
                                                    'BIG_LABEL' => 'N',
                                                    'BIG_DISCOUNT_PERCENT' => 'N',
                                                    'BIG_BUTTONS' => 'N'
                                                ),
                                                'PARAMS' => $generalParams + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                                            ), $component, array('HIDE_ICONS' => 'Y'));
                                            ?>
                                        </div>
                                        <?
                                    }
                                    ?>

                                </div>
                            </div>
                            <?
                            break;
                    }
                    ?>
                </div>
                <?
            }
            unset($generalParams, $rowItems);
            ?>
            <!-- items-container -->
            <?
        } else {
            // load css for bigData/deferred load
            $APPLICATION->IncludeComponent('bitrix:catalog.item', '', array(), $component, array('HIDE_ICONS' => 'Y'));
        }
        ?>
    </div>
</div>
<?
if ( $showLazyLoad ) {
    ?>
    <div class="row bx-<?= $arParams['TEMPLATE_THEME'] ?>">
        <div class="btn btn-default btn-lg center-block" style="margin: 15px;"
             data-use="show-more-<?= $navParams['NavNum'] ?>">
            <?= $arParams['MESS_BTN_LAZY_LOAD'] ?>
        </div>
    </div>
    <?
}

if ( $showBottomPager ) {
    ?>
    <div data-pagination-num="<?= $navParams['NavNum'] ?>">
        <!-- pagination-container -->
        <?= $arResult['NAV_STRING'] ?>
        <!-- pagination-container -->
    </div>
    <?
}

$signer = new \Bitrix\Main\Security\Sign\Signer;
$signedTemplate = $signer->sign($templateName, 'catalog.section');
$signedParams = $signer->sign(base64_encode(serialize($arResult['ORIGINAL_PARAMETERS'])), 'catalog.section');
?>
<script>
    BX.message({
        BTN_MESSAGE_BASKET_REDIRECT: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_BASKET_REDIRECT')?>',
        BASKET_URL: '<?=$arParams['BASKET_URL']?>',
        ADD_TO_BASKET_OK: '<?=GetMessageJS('ADD_TO_BASKET_OK')?>',
        TITLE_ERROR: '<?=GetMessageJS('CT_BCS_CATALOG_TITLE_ERROR')?>',
        TITLE_BASKET_PROPS: '<?=GetMessageJS('CT_BCS_CATALOG_TITLE_BASKET_PROPS')?>',
        TITLE_SUCCESSFUL: '<?=GetMessageJS('ADD_TO_BASKET_OK')?>',
        BASKET_UNKNOWN_ERROR: '<?=GetMessageJS('CT_BCS_CATALOG_BASKET_UNKNOWN_ERROR')?>',
        BTN_MESSAGE_SEND_PROPS: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_SEND_PROPS')?>',
        BTN_MESSAGE_CLOSE: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_CLOSE')?>',
        BTN_MESSAGE_CLOSE_POPUP: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_CLOSE_POPUP')?>',
        COMPARE_MESSAGE_OK: '<?=GetMessageJS('CT_BCS_CATALOG_MESS_COMPARE_OK')?>',
        COMPARE_UNKNOWN_ERROR: '<?=GetMessageJS('CT_BCS_CATALOG_MESS_COMPARE_UNKNOWN_ERROR')?>',
        COMPARE_TITLE: '<?=GetMessageJS('CT_BCS_CATALOG_MESS_COMPARE_TITLE')?>',
        PRICE_TOTAL_PREFIX: '<?=GetMessageJS('CT_BCS_CATALOG_PRICE_TOTAL_PREFIX')?>',
        RELATIVE_QUANTITY_MANY: '<?=CUtil::JSEscape($arParams['MESS_RELATIVE_QUANTITY_MANY'])?>',
        RELATIVE_QUANTITY_FEW: '<?=CUtil::JSEscape($arParams['MESS_RELATIVE_QUANTITY_FEW'])?>',
        BTN_MESSAGE_COMPARE_REDIRECT: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_COMPARE_REDIRECT')?>',
        BTN_MESSAGE_LAZY_LOAD: '<?=$arParams['MESS_BTN_LAZY_LOAD']?>',
        BTN_MESSAGE_LAZY_LOAD_WAITER: '<?=GetMessageJS('CT_BCS_CATALOG_BTN_MESSAGE_LAZY_LOAD_WAITER')?>',
        SITE_ID: '<?=SITE_ID?>'
    });
    var <?=$obName?> =
    new JCCatalogSectionComponent({
        siteId: '<?=CUtil::JSEscape(SITE_ID)?>',
        componentPath: '<?=CUtil::JSEscape($componentPath)?>',
        navParams: <?=CUtil::PhpToJSObject($navParams)?>,
        deferredLoad: false, // enable it for deferred load
        initiallyShowHeader: '<?=! empty($arResult['ITEM_ROWS'])?>',
        bigData: <?=CUtil::PhpToJSObject($arResult['BIG_DATA'])?>,
        lazyLoad: !!'<?=$showLazyLoad?>',
        loadOnScroll: !!'<?=($arParams['LOAD_ON_SCROLL'] === 'Y')?>',
        template: '<?=CUtil::JSEscape($signedTemplate)?>',
        ajaxId: '<?=CUtil::JSEscape($arParams['AJAX_ID'])?>',
        parameters: '<?=CUtil::JSEscape($signedParams)?>',
        container: '<?=$containerName?>'
    });
</script>

UPD2

以下是 template.php 中负责显示项目图像的位置 (bitrix/cataog.item/mashine_item/card)

$idFirstImg = $item['PROPERTIES']['images']['VALUE']['0'];
$URL = CFile::GetPath($idFirstImg);

?>
<div class="gallery-product__boximg">
    <a href="<?= $URL ?>">
        <img src="<?= $URL ?>" alt="" class="gallery-product__img">
    </a>
</div>

前面是通过元素代码定义的,如下所示:

img src= (unknown) alt="" class="gallery-product__img"

php
  • 3 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-11-29 18:14:58 +0000 UTC

为什么要通过控制台创建 .swp 文件?

  • 0

sudo mkdir /var/www/site.local/publick_html为站点创建一个文件夹

sudo vi /var/www/site.local/publick_html/index.php创建一个文件

通过控制台,这两个命令开始“故障” - https://yadi.sk/i/L4-Cg-jizjbmJ

而且它们本身都归于文件名 .swp ,我真的不知道如何使用这样的交换文件,我也不需要它。如何解决?

在指定这些命令后,控制台也会挂起

服务器是干净的 ubuntu 16.04 + LAMP

=================================================== ==========

Edit1* 我按照手册安装了 vim,但没有帮助,事实是当你输入任何 vim 或 nano 命令时,控制台表现得很奇怪,之后什么也不能输入。我正在使用 Bitvise ssh 客户端,但这似乎不是问题所在。无奈之下,我安装了桌面 gvim,但据我了解,它没有内置控制台?)

ubuntu
  • 2 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-11-26 19:15:01 +0000 UTC

为什么 nginx 状态不活动?

  • 1

下午好,我部署了 VDS(ubuntu 16.3),我在我的控制台中写道:

sudo ufw allow 'Nginx HTTP'

更远

sudo ufw status

但是状态说无效为什么?

使用 sudo 尝试了 root 用户和普通用户

ps mana 从这里点击

ubuntu
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-09-26 04:00:07 +0000 UTC

如何使用 -> qoute 正确格式化 pdo 请求?

  • 1

有一个代码

    <?php

require_once 'app_config.php';
require_once 'database_connection.php';

$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);
$email = trim($_REQUEST['email']);
$bio = trim($_REQUEST['bio']);
$vkontakte_url = str_replace("vk.com", "vkontakte.com", trim($_REQUEST['vkontakte_url']));
$position = strpos($vkontakte_url, "vk.com");


//Массив ошибок и переменные, связанные с изображением
$upload_dir = HOST_WWW_ROOT . "uploads/profile_pics/";
$image_fieldname = "user_pic";

//Потенциальные ошибки при отправке файлов
$php_errors = array(1=>'Превышен макс.размер файла указаный в php.ini',
    2=>'Превышен макс. размер файла указанный в форме html',
    3=>'Была отправлена только часть файла',
    4=>'Файл отправки не был выбран');


if ($position === false) {
  $vkontakte_url = "http://www.vk.com/" . $vkontakte_url;
}

$twitter_handle = trim($_REQUEST['twitter_handle']);
$twitter_url = "http://www.twitter.com/";
$position = strpos($twitter_handle, "@");

if ($position === false) {
  $twitter_url = $twitter_url . $twitter_handle;
} else {
  $twitter_url = $twitter_url . substr($twitter_handle, $position + 1);
}

//Проверка отсутствия ошибки при загрузке изображения
($_FILES[$image_fieldname]['error'] == 0) or handle_error("сервер не может получить выбранное вами изображене" , $php_errors[$_FILES[$image_fieldname]['error']]);

//Является ли файл нормальным результатом отправки?
@is_uploaded_file($_FILES[$image_fieldname]['tmp_name']) or handle_error("Вы попытались обмануть, за вами уже выехали" , "Запрос на отправку: файл назывался 1" . "'{$_FILES[$image_fieldname]['tmp_name']}'");

//Дейтсвительно ли это изображение?
@getimagesize($_FILES[$image_fieldname]['tmp_name']) or handle_error("Вы выбрали файл для фото, который не является изображением", "{$_FILES[$image_fieldname]['tmp_name']}" . "не является файлом картинкой");

//Уникальное название файла
$now = time();
while (file_exists($upload_filename = $upload_dir . $now . $_FILES[$image_fieldname]['name'])) {
    $now++;
}

//Перемещаем файл на постоянное место на сервере
//@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename) or handle_error("Возникла проблема сохранения вашего изображения в его постоянном месте," ,"ошибка свяанная с правами доступа при перемещении файла в" . "{$upload_filename}");



////через mysqli
//$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, vkontakte_url, twitter_handle) " . "VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}' " .
//                      "'{$vkontakte_url}', '{$twitter_handle}');";
//
//Добавить пользователя  в базу данных
//mysqli_query($mysql,$insert_sql) or die(mysqli_error($mysql));


//Вставка данных через PDO
$STH = $DBH->prepare("INSERT INTO users ( first_name, last_name,email, bio, vkontakte_url, twitter_handle) values ( '{$first_name}', '{$last_name}', '{$email}', '{$bio}', '{$vkontakte_url}', '{$twitter_handle}' )");
$STH->execute();

//Вставка изображения в таблицу images
$image = $_FILES[$image_fieldname];
$image_filename = $image['name'];
$image_info = getimagesize($image['tmp_name']);
$image_mime_type = $image_info['mime'];
$image_size = $image['size'];
$image_data = file_get_contents($image['tmp_name']);

$STH = $DBH->prepare("INSERT INTO images ( filename, mime_type, file_size, image_data) values ( '{DBH->quote($image_filename)}', '{DBH->quote($image_mime_type)}', '{DBH->quote($image_size)}', '{DBH->quote($image_data)}')");
$STH->execute();




//Отправляем пользователя на свой профиль
header("Location: show_user.php?user_id=" . $DBH->lastInsertId());

我收到这个错误

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters' in /home/c/ch33404/testsite/public_html/test/scripts/create_user.php:80 Stack trace: #0 /home/c/ch33404/testsite/public_html/test/scripts/create_user.php(80): PDOStatement->execute() #1 {main} thrown in /home/c/ch33404/testsite/public_html/test/scripts/create_user.php on line 80

我试过像这样不加引号来写(第 80 行)

$STH = $DBH->prepare("INSERT INTO images ( filename, mime_type, file_size, image_data) values ( '{DBH->quote($image_filename)}', '{$image_mime_type}', '{$image_size}', '{$image_data}')");
$STH->execute();

但是错误是一模一样的,告诉我哪里错了?

php
  • 2 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-09-01 06:00:23 +0000 UTC

切换到 pdo 的正确方法是什么,致命错误:未捕获的异常?

  • 0

下午好,弄清楚数据库,我决定使用它更合乎逻辑pdo,我想将我的简单授权表单从转移mysqli到pdomysqli

联系 :

  require 'app_config.php';

  //$mysql=mysqli_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD) or die("<p>Ошибка к подключению БД :" .
  //    mysqli_error($mysql) . "</p>");
  //mysqli_select_db($mysql, DATABASE_NAME) or die("<p>Ошибка при выборе БД</p>" . mysqli_error($mysql) );
  //Через pdo DATABASE HANDLE

  //$DBH = new PDO("mysql:host=DATABASE_HOST;dbname=DATABASE_USERNAME", DATABASE_NAME,DATABASE_PASSWORD);
  $DBH = new PDO('mysql:dbname=ch33404_testdb;host=localhost', 'DATABASE_USERNAME', 'DATABASE_PASSWORD');
  $DBH - > setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

这就是它给出更多错误的方式,我不明白为什么:

//$DBH = new PDO("mysql:host=DATABASE_HOST;dbname=DATABASE_USERNAME", DATABASE_NAME,DATABASE_PASSWORD);

本质:有一个带有字段的简单 stml 表单,create_user.php 脚本应该可以工作并将用户写入数据库,现在单击“登录”后会发生这样的错误


致命错误:在 /home/c/ch33404/testsite/public_html/test/ 中未捕获异常“PDOException”,消息为“SQLSTATE[HY000] [1045] 拒绝用户'DATABASE_USERNAME'@'localhost'(使用密码:YES)'的访问scripts/database_connection.php:15 堆栈跟踪:#0 /home/c/ch33404/testsite/public_html/test/scripts/database_connection.php(15): PDO->__construct('mysql:dbname=ch...', 'DATABASE_USERNA...', 'DATABASE_PASSWO...') #1 /home/c/ch33404/testsite/public_html/test/scripts/create_user.php(3): require('/home/c/ch33404... ') #2 {main} 在第 15 行的 /home/c/ch33404/testsite/public_html/test/scripts/database_connection.php 中抛出


这是 create_user.php 脚本本身:

<?php require'database_connection.php';
 $first_name=trim($_REQUEST['first_name']);
 $last_name=trim($_REQUEST['last_name']);
 $email=trim($_REQUEST['email']);
 $bio=trim($_REQUEST['bio']);
 $vkontakte_url=str_replace("vk.com",
"vkontakte.com",
trim($_REQUEST['vkontakte_url']));
 $position=strpos($vkontakte_url,
"vk.com");
 if ($position===false) {
  $vkontakte_url="http://www.vk.com/" . $vkontakte_url;
}
$twitter_handle=trim($_REQUEST['twitter_handle']);
 $twitter_url="http://www.twitter.com/";
 $position=strpos($twitter_handle,
"@");
 if ($position===false) {
  $twitter_url=$twitter_url . $twitter_handle;
}
else {
  $twitter_url=$twitter_url . substr($twitter_handle, $position + 1);
}
////через mysqli
//$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, vkontakte_url, twitter_handle) " . "VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}' " .
//                      "'{$vkontakte_url}', '{$twitter_handle}');";
//
//Добавить пользователя  в базу данных
//mysqli_query($mysql,$insert_sql) or die(mysqli_error($mysql));
//Вставка данных через PDO
$STH=$DBH->prepare("INSERT INTO users ( first_name, last_name,email, bio, vkontakte_url, twitter_handle) values ( '{$first_name}', '{$last_name}', '{$email}', '{$bio}', '{$vkontakte_url}', '{$twitter_handle}' )");
 $STH->execute();
//Отправляем пользователя на свой профиль
//header("Location: show_user.php?user_id=" . mysqli_insert_id($mysql));

第 10 行 connection.php 是:

$DBH = new PDO('mysql:dbname=ch33404_testdb;host=localhost', 'DATABASE_USERNAME', 'DATABASE_PASSWORD');

php
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-08-28 04:34:32 +0000 UTC

为什么基本转储不通过控制台完成?

  • 0

我写在mysql桌面控制台

mysqldump -uadmin -p9047scw mysql > mysqldump.sql;

产生:

ERROR 1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“mysqldump -uadmin -p9047scw 用户> mysqldump.sql”附近​​使用的正确语法

一切似乎都符合语法

mysqldump -u [username] -p [password] [database] > [dump_name.sql]

我不明白怎么了?)

mysql
  • 1 个回答
  • 10 Views
Martin Hope
Егор Rmd
Asked: 2020-08-22 07:34:38 +0000 UTC

如何显示json字符串的差异?

  • 0

有2个json { "orderID": 773, "shopperName": "Трегубенко Егор", "shopperEmail": "sinecura92@mail.ru", "contents": [ { "productID": 34, "productName": "Холодильник, indesit 423jd2", "quantity": 1 }, { "productID": 56, "productName": "Наушники, Philips", "quantity": 3 } ], "orderCompleted": true }

因此**第二** { "orderID": 773, "shopperName": "Трегубенко Егор", "shopperEmail": "sinecura92@mail.ru", "contents": [ { "productID": 31, "productName": "Стиральная машина bosch", "quantity": 2 }, { "productID": 56, "productName": "Наушники, Philips", "quantity": 3 } ], "orderCompleted": true }

问:如何只显示差异?尝试使用 array_dif 但我得到一个空数组

ps 表示 php

php
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5