在prestashop上交换模块自定义

时间:2019-01-25 12:00:00

标签: prestashop

我实现了一个模块,并尝试通过将数据交换器保存在配置表中来在模块的Prestashop中使用交换。数据以1,2,3格式很好地记录下来,但另一方面,恢复不起作用,我的表仍然为空。

swap swap 1

这些是开关状态的ID。

这是我的displayForm:

public function displayForm()
{
    // Get default language
    $default_lang = (int)Configuration::get('PS_LANG_DEFAULT');

    // File
    $file = Configuration::get('ANALYTICS_VUEJS_JSON_GOOGLE');

    // Init Fields form array
    $fields_form[0]['form'] = array(
        'legend' => array(
            'title' => $this->l('Configuration'),
        ),
        'input' => array(
            /*array(
                'type' => 'text',
                'label' => $this->l('Google UA-XXXXX'),
                'name' => 'ANALYTICS_VUEJS_GOOGLE_KEY',
                'size' => 20
            ),*/
            /*array(
                'type' => 'select',
                'label' => $this->l('Status commande en préparation'),
                'desc' => $this->l('Sélectionner le status pour les commandes en cours de préparation.'),
                'name' => 'ANALYTICS_VUEJS_ORDERS_PREPARATION[]',
                'required' => false,
                'options' => array(
                    'query' => OrderState::getOrderStates($default_lang),
                    'id' => 'id_order_state',
                    'name' => 'name',
                )
            ),*/
            array(
                'type' => 'swap',
                'label' => $this->l('Status commande en préparation'),
                'name' => 'ANALYTICS_VUEJS_ORDERS_PREPARATION',
                'required' => false,
                'multiple' => true,
                'options' => array(
                    'query' => OrderStateCore::getOrderStates($default_lang),
                    'id' => 'id_order_state',
                    'name' => 'name'
                ),
            ),
            array(
                'type' => 'file',
                'label' => $this->l('JSON google ') . '<br/>
                <a target="_blank" href="https://console.developers.google.com">' . $this->l('Générer le fichier JSON') . '</a><br/>
                <ul style="list-style-type: none; text-align: left;" class="col-md-12">
                    <li>
                        ' . $this->l('1 - Connectez vous à votre compte Google') . '
                    </li>
                    <li>
                        ' . $this->l('2 - Sélectionner votre projet. Cliquez dessus puis sur la fenêtre qui apparaît sur le lien "Nouveau projet"') . '
                    </li>
                    <li>
                        ' . $this->l('3 - Remplissez le nom du projet') . '
                    </li>
                    <li>
                        ' . $this->l('4 - En haut de l\'écran, vous verrez un bouton "Activer les API et les services". Cliquez sur ce bouton et recherchez Analytics.') . '
                    </li>
                    <li>
                        ' . $this->l('5 - Sélectionner "Analytics API", puis cliquer sur "Activer"') . '
                    </li>
                    <li>
                        ' . $this->l('6 - Cliquer sur le bouton "Créer des identifiant" et cliquer sur le lien "compte de service"') . '
                    </li>
                    <li>
                        ' . $this->l('7 - Remplisser le premier champs et sélectionner les rôles: "Lecteur de l\'utilisation du service" et "Utilisateur du compte de service" puis cliquer sur "Créer"') . '
                    </li>
                    <li>
                        ' . $this->l('8 - Dans la colonne "Actions" cliquer sur ') . "<i class=\"material-icons\">more_vert</i>" . $this->l('puis Créer une clé') . '
                    </li>
                    <li>
                        ' . $this->l('9 - Sélectionner "JSON" et terminer en cliquant sur "CREER"') . '
                    </li>
                    <li>
                        ' . $this->l('10 - Ajouter le compte de service à votre compte Google Analytics (se termine par .iam.gserviceaccount.com) dans la gestion des utilisateurs.') . '
                    </li>
                </ul>',
                'desc' => $this->l('Insérer le fichier JSON de google') . ($file != '' ? '<div style="color: green;"><br/><i class="material-icons"> done</i>' . $file . '</div>' : '<div style="color: red;"><br/><i class="material-icons"> close</i>' . $this->l('Aucun fichier JSON Google') . '</div>'),
                'name' => 'ANALYTICS_VUEJS_JSON_GOOGLE',
            ),
            array(
                'type' => 'text',
                'label' => $this->l('Moyen de payment Amazon'),
                'desc' => $this->l('Sélectionner le moyen de payment Amazon.'),
                'name' => 'ANALYTICS_VUEJS_PAYMENTS_AMAZON',
                'required' => false,
                'options' => array(
                    'value' => 'toto'
                )
            ),
            array(
                'type' => 'text',
                'label' => $this->l('Moyen de payment Cdiscount'),
                'desc' => $this->l('Sélectionner le moyen de payment Cdiscount.'),
                'name' => 'ANALYTICS_VUEJS_PAYMENTS_CDISCOUNT',
                'required' => false
            ),
        ),
        'buttons' => array(
            array(
                'name' => 'submitAnalyticsvuejsreloadNpm',
                'title' => $this->l('Reload NPM'),
                'icon' => 'process-icon-refresh',
                'type' => 'submit'
            ),
            array(
                'name' => 'submitAnalyticsvuejsBuild',
                'title' => $this->l('Build NPM'),
                'icon' => 'process-icon-flag',
                'type' => 'submit'
            )
        ),
        'submit' =>
            array(
                'title' => $this->l('Save'),
                'class' => 'btn btn-default pull-right'
            )
    );

    $helper = new HelperForm();

    // Module, token and currentIndex
    $helper->module = $this;
    $helper->name_controller = $this->name;
    $helper->token = Tools::getAdminTokenLite('AdminModules');
    $helper->currentIndex = AdminController::$currentIndex . '&configure=' . $this->name;

    // Language
    $helper->default_form_language = $default_lang;
    $helper->allow_employee_form_lang = $default_lang;

    // Title and toolbar
    $helper->title = $this->displayName;
    $helper->show_toolbar = true;        // false -> remove toolbar
    $helper->toolbar_scroll = true;      // yes - > Toolbar is always visible on the top of the screen.
    $helper->submit_action = 'submit' . $this->name;
    $helper->toolbar_btn = array(
        'save' =>
            array(
                'desc' => $this->l('Save'),
                'href' => AdminController::$currentIndex . '&configure=' . $this->name . '&save' . $this->name .
                    '&token=' . Tools::getAdminTokenLite('AdminModules'),
            ),
        'back' => array(
            'href' => AdminController::$currentIndex . '&token=' . Tools::getAdminTokenLite('AdminModules'),
            'desc' => $this->l('Back to list')
        )
    );

    // Load current value
    $helper->fields_value['ANALYTICS_VUEJS_GOOGLE_KEY'] = Configuration::get('ANALYTICS_VUEJS_GOOGLE_KEY');
    /*$helper->fields_value['ANALYTICS_VUEJS_ORDERS_PREPARATION'] = Configuration::get('ANALYTICS_VUEJS_ORDERS_PREPARATION');*/
    $helper->fields_value['ANALYTICS_VUEJS_ORDERS_PREPARATION_selected[]'] = explode(',', Configuration::get('ANALYTICS_VUEJS_ORDERS_PREPARATION'));
    $helper->fields_value['ANALYTICS_VUEJS_PAYMENTS_AMAZON'] = Configuration::get('ANALYTICS_VUEJS_PAYMENTS_AMAZON');
    $helper->fields_value['ANALYTICS_VUEJS_PAYMENTS_CDISCOUNT'] = Configuration::get('ANALYTICS_VUEJS_PAYMENTS_CDISCOUNT');

    return $helper->generateForm($fields_form);
}

我的getContent:

public function getContent()
{
    $output = null;

    if (Tools::isSubmit('submit' . $this->name)) {
        // Values
        $googleKey = strval(Tools::getValue('ANALYTICS_VUEJS_GOOGLE_KEY'));
        $ordersPrepa = Tools::getValue('ANALYTICS_VUEJS_ORDERS_PREPARATION_selected');
        $file = strval(Tools::getValue('ANALYTICS_VUEJS_JSON_GOOGLE'));
        $cdiscount = strval(Tools::getValue('ANALYTICS_VUEJS_PAYMENTS_CDISCOUNT'));
        $amazon = strval(Tools::getValue('ANALYTICS_VUEJS_PAYMENTS_AMAZON'));

        Configuration::updateValue('ANALYTICS_VUEJS_GOOGLE_KEY', $googleKey);
        Configuration::updateValue('ANALYTICS_VUEJS_ORDERS_PREPARATION', implode(',', $ordersPrepa));
        Configuration::updateValue('ANALYTICS_VUEJS_JSON_GOOGLE', $file);
        Configuration::updateValue('ANALYTICS_VUEJS_PAYMENTS_CDISCOUNT', $cdiscount);
        Configuration::updateValue('ANALYTICS_VUEJS_PAYMENTS_AMAZON', $amazon);

        $ext = pathinfo($_FILES['ANALYTICS_VUEJS_JSON_GOOGLE']['name'], PATHINFO_EXTENSION);
        $targetPath = _PS_MODULE_DIR_ . 'analyticsvuejs/';
        $name = explode('.', $_FILES['ANALYTICS_VUEJS_JSON_GOOGLE']['name']);

        if ($_FILES['ANALYTICS_VUEJS_JSON_GOOGLE']['name'] != "") {
            if ($_FILES['ANALYTICS_VUEJS_JSON_GOOGLE']['type'] === 'application/json') {
                $uploader = new \Uploader('ANALYTICS_VUEJS_JSON_GOOGLE');
                $uploader->setSavePath($targetPath);
                $uploader->process($name[0] . '.' . $ext);

                Configuration::updateValue('ANALYTICS_VUEJS_JSON_GOOGLE', $_FILES['ANALYTICS_VUEJS_JSON_GOOGLE']['name']);

                $output = $this->displayConfirmation($this->l('Configuration mis à jour'));

            } else {
                $output = $this->displayError($this->l('Format non autorisé.'));
            }
        }
    }

    return $output . $this->postProcess() . $this->displayForm();
}

谢谢您的帮助。

0 个答案:

没有答案