Тема: Диалог выбора товаров

Доброго времени суток!

Понадобился диалог выбора товаров и групп товаров. В контроллере админской части:

        if($id > 0) {
            //редактирование
            $dialog = new \Catalog\Model\ProductDialog("product_id", true, array($id));
            $product_form = $dialog->getHtml();
        }
        else
        {
            //новый
            $dialog = new \Catalog\Model\ProductDialog("product_id", true);
            $product_form = $dialog->getHtml();
        }


        $this->view->assign(array(
            "product_form" => $product_form,
            ));

        $helper['form'] = $this->view->fetch('form/edit_product.tpl');
        $helper->setTopTitle(t('Товар'));
    
        if ($refresh_mode) { //Если режим обновления
            return $this->result->setHtml( $helper['form'] );
        } else { //Если режим редактирования
            $this->view->assign(array(
                'elements' => $helper->active(),
            ));
            return $this->result->setTemplate("form/edit_product.tpl");
        }

в форме form/edit_product.tpl:

<div class="formbox" >
    <form method="POST" action="{urlmake}" enctype="multipart/form-data" class="crud-form">
        <input type="submit" value="" style="display:none">
        <div class="notabs">                      
            <table class="otable">                                                                              
                <tr>
                    <td class="otitle">Выберите товары</td>
                    <td>{$product_form}</td>
                </tr>
                <tr>
                    <td class="otitle">Выберите автора</td>
                    <td>
                        <div>

                        </div>
                    </td>
                </tr>
            </table>
        </div>
    </form>
</div>

в итоге при открытии окна редактирования или создания, в консоли браузера:

VM3474:3 Uncaught TypeError: $(...).selectProduct is not a function
    at HTMLDocument.eval (eval at <anonymous> (jquery.min.js:2), <anonymous>:3:39)
    at HTMLDocument.<anonymous> (admindebug.js:40)
    at j (jquery.min.js:2)
    at Object.add [as done] (jquery.min.js:2)
    at m.fn.init.m.fn.ready (jquery.min.js:2)
    at m.fn.init (jquery.min.js:2)
    at m (jquery.min.js:2)
    at Function.allReady (admindebug.js:33)
    at eval (eval at <anonymous> (jquery.min.js:2), <anonymous>:2:7)
    at eval (<anonymous>)

по ходу какой-то js не подключает, куда копать??? )))) подскажите кто чем может, плиз....

Повысить оценку Понизить оценку

Re: Диалог выбора товаров

если редактирование не в модальном окне, тогда все работает, как сделать для модального окна подключение нужных JS, или я что-то не так делаю?

Повысить оценку Понизить оценку

3 Отредактировано Закусило Александр (27.04.2017 12:12:33)

Re: Диалог выбора товаров

Ну тут же написано.
$(...).selectProduct is not a function
Т.е. не хватает файла selectproduct.js.
Вам надо добавить его через addjs.

{addjs file="%catalog%/selectproduct.js"}

Сам файл лежит в /modules/catalog/view/js/selectproduct.js.

Вообще Вам надо сделать по аналогии с recommended полем у товара(/modules/catalog/model/orm/product.inc.php), там есть как раз диалоговое окно, можно проследить всю реализацию.