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

Админка (групповая операция)

  • 19 мая 2015 г.
  • Всем привет!
    кто подскажет, как в админке добавить в Групповую операцию, Яндекс маркет? чтобы было автоматическая назначения для товаров.
  • 19 мая 2015 г. , редакция: 19 мая 2015 г.
  • Добавляем новую операцию в shop.admin.php
    Код
    /**
    * @var array дополнительные групповые операции
    */
    public $group_action = array(
    "group_no_buy" => array('name' => "Товар временно отсутствует", 'module' => 'shop'),
    "group_not_no_buy" => array('name' => "Товар в наличии", 'module' => 'shop'),
    "group_hit" => array('name' => "Хит", 'module' => 'shop'),
    "group_not_hit" => array('name' => "Не хит", 'module' => 'shop'),
    "group_action" => array('name' => "Акция", 'module' => 'shop'),
    "group_not_action" => array('name' => "Не акция", 'module' => 'shop'),
    "group_new" => array('name' => "Новинка", 'module' => 'shop'),
    "group_not_new" => array('name' => "Не новинка", 'module' => 'shop'),
    "group_yandex" => array('name' => "Параметры товара для yandex market", 'module' => 'shop'),
    );


    Добавляем обработку в shop.admin.action.php

    Код

    switch ($_POST["action"])
    {
    case 'group_yandex':
    $this->group_yandex();
    break;

    ......


    Добавляем там же метод в класс

    Код

    private function group_yandex()
    {
    if ( ! $this->diafan->configmodules("yandex"))
    {
    return;
    }

    if(! empty($_POST["ids"]))
    {
    $ids = array();
    foreach ($_POST["ids"] as $id)
    {
    $id = intval($id);
    if($id)
    {
    $ids[] = $id;
    }
    }
    $yandex='typePrefix='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_typePrefix"))."\n"
    .'vendor='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_vendor"))."\n"
    .'model='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_model"))."\n"
    .'vendorCode='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_vendorCode"))."\n"
    .'sales_notes='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_sales_notes"))."\n"
    .'manufacturer_warranty='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_manufacturer_warranty"))."\n"
    .'country_of_origin='.str_replace("\n", '', $this->diafan->filter($_POST, "string", "yandex_country_of_origin"))."\n"
    .'bid='.$this->diafan->filter($_POST, "string", "yandex_bid")."\n"
    .'cbid='.$this->diafan->filter($_POST, "string", "yandex_cbid");
    DB::query("UPDATE {shop} SET yandex='%s' WHERE id IN (%s)",$yandex, implode(",", $ids));
    $this->diafan->_cache->delete("", "shop");
    }
    }


    В shop.admin.php добавляем перегруженную функцию group_action_panel_filter

    Код
    /**
    * Выводит фильтры для панели групповых операций
    *
    * @param string $value последнее выбранное значение в списке групповых операций
    * @return string
    */
    public function group_action_panel_filter($value)
    {
    // все стандартные фильтры
    $dop=parent::__call('group_action_panel_filter', array($value));

    $dop .= '<div class="dop_group_yandex hide">';
    $dop .= $this->diafan->_('Основная ставка').':<br>
    <input type="text" maxLength="70" name="yandex_bid" size="40" value=""> '.$this->diafan->help('Целое положительное значение. Например: 21, что соответствует ставке 0,21 у.е. Если параметр не задан, то задается настройками модуля.')
    .'<br>'
    . $this->diafan->_('Ставка для карточек').':<br>
    <input type="text" maxLength="70" name="yandex_cbid" size="40" value=""> '.$this->diafan->help('Целое положительное значение. Например: 21, что соответствует ставке 0,21 у.е. Если параметр не задан, то задается настройками модуля.')
    .'<br>'
    . $this->diafan->_('Группа товаров / категория').':<br>
    <input type="text" maxLength="70" name="yandex_typePrefix" size="40" value=""><br>'
    . '<br>'.$this->diafan->_('Производитель').':<br>
    <input type = "text" maxLength="70" name="yandex_vendor" size="40" value=""><br>'
    . $this->diafan->_('Модель').':<br>
    <input type = "text" maxLength="70" name="yandex_model" size="40" value=""><br>'
    . $this->diafan->_('Код товара (указывается код производителя)').':<br>
    <input type = "text" maxLength="70" name="yandex_vendorCode" size="40" value=""><br>'
    . $this->diafan->_('Отличие товара от других, или акции магазина (кроме скидок)').':<br>
    <input type = "text" maxLength="50" name="yandex_sales_notes" size="40" value=""><br>'
    . $this->diafan->_('Официальная гарантия производителя').':
    <input type = "checkbox" name="yandex_manufacturer_warranty" value="1"><br><br>'
    . $this->diafan->_('Страна производства товара').':<br>
    <input type = "text" maxLength="70" name="yandex_country_of_origin" size="40" value="">
    ';

    $dop .= "</div>";
    return $dop;
    }


    PS код не проверял, если найдете ошибки - исправлю.

Новости

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

Форум