Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#17326
Esta é uma vQmod para adicionar botões Habilitar e Desabilitar ao lado dos botões Inserir e Excluir na página de administração.
Pode ser usado para ativar / desativar o estado:
- Categorias
- Produtos
- Comentários
- Informações

Assinale os objetos que deseja ser ativado / desativado, e clique no botão correspondente.

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

Copie o código, crie um arquivo XML e coloque na pasta vqmod/xml.
Código: Selecionar todos
<modification>

    <id>EASY ENABLE/DISABLE BUTTONS</id>
    <version>1.0.0</version>
    <vqmver>2.0.0</vqmver>
    <author>bogalakon</author>

    <!-- Button Language Start -->
    <file name="admin/language/portuguese-br/portuguese-br.php">
        <operation>
            <search position="after"><![CDATA[$_['button_reset']            = 'Apagar Visualizações';]]></search>
            <add><![CDATA[
$_['button_enable']           = 'Ativar';
$_['button_disable']          = 'Desativar';
            ]]></add>
        </operation>
    </file>

    <!-- Category Start -->
    <file name="admin/model/catalog/category.php">
        <operation>
            <search position="before"><![CDATA[public function deleteCategory($category_id) {]]></search>
            <add><![CDATA[
    public function editCategoryStatus($category_id, $status) {
        $this->db->query("UPDATE " . DB_PREFIX . "category SET status = '" . (int)$status . "', date_modified = NOW() WHERE category_id = '" . (int)$category_id . "'");

        $this->cache->delete('category');
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/controller/catalog/category.php">
        <operation>
            <search position="after"><![CDATA[$this->data['delete'] = $this->url->link('catalog/category/delete', 'token=' . $this->session->data['token'], 'SSL');]]></search>
            <add><![CDATA[
            $this->data['enabled'] = $this->url->link('catalog/category/enable', 'token=' . $this->session->data['token'], 'SSL');
            $this->data['disabled'] = $this->url->link('catalog/category/disable', 'token=' . $this->session->data['token'], 'SSL');
            ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[$this->data['button_delete'] = $this->language->get('button_delete');]]></search>
            <add><![CDATA[
        $this->data['button_enable'] = $this->language->get('button_enable');
        $this->data['button_disable'] = $this->language->get('button_disable');
            ]]></add>
        </operation>
        <operation>
            <search position="before"><![CDATA[private function validateDelete() {]]></search>
            <add><![CDATA[
    public function enable() {
        $this->load->language('catalog/category');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/category');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $category_id) {
                $this->model_catalog_category->editCategoryStatus($category_id, 1);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'));
        }

        $this->getList();
    }

    public function disable() {
        $this->load->language('catalog/category');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/category');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $category_id) {
                $this->model_catalog_category->editCategoryStatus($category_id, 0);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'], 'SSL'));
        }

        $this->getList();
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/view/template/catalog/category_list.tpl">
        <operation>
            <search position="replace"><![CDATA[<div class="buttons"><a onclick="location = '<?php echo $insert; ?>'" class="button"><?php echo $button_insert; ?></a><a onclick="$('#form').submit();" class="button"><?php echo $button_delete; ?></a></div>]]></search>
            <add><![CDATA[<div class="buttons"><a onclick="$('#form').attr('action', '<?php echo $enabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_enable; ?></span></a><a onclick="$('#form').attr('action', '<?php echo $disabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_disable; ?></span></a><a onclick="location = '<?php echo $insert; ?>'" class="button"><span><?php echo $button_insert; ?></span></a><a onclick="$('#form').submit();" class="button"><span><?php echo $button_delete; ?></span></a></div>]]></add>
        </operation>
    </file>
    <!-- Category End -->

    <!-- Product Start -->
    <file name="admin/model/catalog/product.php">
        <operation>
            <search position="before"><![CDATA[public function copyProduct($product_id) {]]></search>
            <add><![CDATA[
    public function editProductStatus($product_id, $status) {
        $this->db->query("UPDATE " . DB_PREFIX . "product SET status = '" . (int)$status . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");

        $this->cache->delete('product');
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/controller/catalog/product.php">
        <operation>
            <search position="after"><![CDATA[$this->data['button_filter'] = $this->language->get('button_filter');]]></search>
            <add><![CDATA[
        $this->data['button_enable'] = $this->language->get('button_enable');
        $this->data['button_disable'] = $this->language->get('button_disable');
            ]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[$this->data['delete'] = $this->url->link('catalog/product/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');]]></search>
            <add><![CDATA[
            $this->data['enabled'] = $this->url->link('catalog/product/enable', 'token=' . $this->session->data['token'] . $url, 'SSL');
            $this->data['disabled'] = $this->url->link('catalog/product/disable', 'token=' . $this->session->data['token'] . $url, 'SSL');
            ]]></add>
        </operation>
        <operation>
            <search position="before"><![CDATA[private function validateDelete() {]]></search>
            <add><![CDATA[
    public function enable() {
        $this->load->language('catalog/product');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/product');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $product_id) {
                $this->model_catalog_product->editProductStatus($product_id, 1);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }

    public function disable() {
        $this->load->language('catalog/product');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/product');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $product_id) {
                $this->model_catalog_product->editProductStatus($product_id, 0);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/view/template/catalog/product_list.tpl">
        <operation>
            <search position="replace"><![CDATA[<div class="buttons"><a onclick="location = '<?php echo $insert; ?>'" class="button"><?php echo $button_insert; ?></a><a onclick="$('#form').attr('action', '<?php echo $copy; ?>'); $('#form').submit();" class="button"><?php echo $button_copy; ?></a><a onclick="$('form').submit();" class="button"><?php echo $button_delete; ?></a></div>]]></search>
            <add><![CDATA[<div class="buttons"><a onclick="$('#form').attr('action', '<?php echo $enabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_enable; ?></span></a><a onclick="$('#form').attr('action', '<?php echo $disabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_disable; ?></span></a><a onclick="location = '<?php echo $insert; ?>'" class="button"><span><?php echo $button_insert; ?></span></a><a onclick="$('#form').attr('action', '<?php echo $copy; ?>'); $('#form').submit();" class="button"><span><?php echo $button_copy; ?></span></a><a onclick="$('form').submit();" class="button"><span><?php echo $button_delete; ?></span></a></div>]]></add>
        </operation>
    </file>
    <!-- Product End -->

    <!-- Review Start -->
    <file name="admin/controller/catalog/review.php">
        <operation>
            <search position="after"><![CDATA[$this->data['delete'] = $this->url->link('catalog/review/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');]]></search>
            <add><![CDATA[
        $this->data['enabled'] = $this->url->link('catalog/review/enable', 'token=' . $this->session->data['token'] . $url, 'SSL');
        $this->data['disabled'] = $this->url->link('catalog/review/disable', 'token=' . $this->session->data['token'] . $url, 'SSL');]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[$this->data['button_delete'] = $this->language->get('button_delete');]]></search>
            <add><![CDATA[
        $this->data['button_enable'] = $this->language->get('button_enable');
        $this->data['button_disable'] = $this->language->get('button_disable');
            ]]></add>
        </operation>
        <operation>
            <search position="before"><![CDATA[private function validateDelete() {]]></search>
            <add><![CDATA[
    public function enable() {
        $this->load->language('catalog/review');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/review');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $review_id) {
                $data = array();

                $result = $this->model_catalog_review->getReview($review_id);

                foreach ($result as $key => $value) {
                    $data[$key] = $value;
                }

                $data['status'] = 1;

                $this->model_catalog_review->editReview($review_id, $data);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/review', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }

    public function disable() {
        $this->load->language('catalog/review');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/review');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $review_id) {
                $data = array();

                $result = $this->model_catalog_review->getReview($review_id);

                foreach ($result as $key => $value) {
                    $data[$key] = $value;
                }

                $data['status'] = 0;

                $this->model_catalog_review->editReview($review_id, $data);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/review', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/view/template/catalog/review_list.tpl">
        <operation>
            <search position="replace"><![CDATA[<div class="buttons"><a onclick="location = '<?php echo $insert; ?>'" class="button"><?php echo $button_insert; ?></a><a onclick="$('form').submit();" class="button"><?php echo $button_delete; ?></a></div>]]></search>
            <add><![CDATA[<div class="buttons"><a onclick="$('#form').attr('action', '<?php echo $enabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_enable; ?></span></a><a onclick="$('#form').attr('action', '<?php echo $disabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_disable; ?></span></a><a onclick="location = '<?php echo $insert; ?>'" class="button"><span><?php echo $button_insert; ?></span></a><a onclick="$('form').submit();" class="button"><span><?php echo $button_delete; ?></span></a></div>]]></add>
        </operation>
    </file>
    <!-- Review End -->

    <!-- Information Start -->
    <file name="admin/model/catalog/information.php">
        <operation>
            <search position="before"><![CDATA[public function deleteInformation($information_id) {]]></search>
            <add><![CDATA[
    public function editInformationStatus($information_id, $status) {
        $this->db->query("UPDATE " . DB_PREFIX . "information SET status = '" . (int)$status . "'WHERE information_id = '" . (int)$information_id . "'");

        $this->cache->delete('information');
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/controller/catalog/information.php">
        <operation>
            <search position="after"><![CDATA[$this->data['delete'] = $this->url->link('catalog/information/delete', 'token=' . $this->session->data['token'] . $url, 'SSL');]]></search>
            <add><![CDATA[
            $this->data['enabled'] = $this->url->link('catalog/information/enable', 'token=' . $this->session->data['token'] . $url, 'SSL');
            $this->data['disabled'] = $this->url->link('catalog/information/disable', 'token=' . $this->session->data['token'] . $url, 'SSL');]]></add>
        </operation>
        <operation>
            <search position="after"><![CDATA[$this->data['button_delete'] = $this->language->get('button_delete');]]></search>
            <add><![CDATA[
        $this->data['button_enable'] = $this->language->get('button_enable');
        $this->data['button_disable'] = $this->language->get('button_disable');
            ]]></add>
        </operation>
        <operation>
            <search position="before"><![CDATA[private function validateDelete() {]]></search>
            <add><![CDATA[
    public function enable() {
        $this->load->language('catalog/information');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/information');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $information_id) {
                $this->model_catalog_information->editInformationStatus($information_id, 1);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/information', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }

    public function disable() {
        $this->load->language('catalog/information');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->load->model('catalog/information');

        if (isset($this->request->post['selected'])) {

            foreach ($this->request->post['selected'] as $information_id) {
                $this->model_catalog_information->editInformationStatus($information_id, 0);
            }

            $this->session->data['success'] = $this->language->get('text_success');

            $url = '';

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }

            if (isset($this->request->get['sort'])) {
                $url .= '&sort=' . $this->request->get['sort'];
            }

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }

            $this->redirect($this->url->link('catalog/information', 'token=' . $this->session->data['token'] . $url, 'SSL'));
        }

        $this->getList();
    }
            ]]></add>
        </operation>
    </file>

    <file name="admin/view/template/catalog/information_list.tpl">
        <operation>
            <search position="replace"><![CDATA[<div class="buttons"><a onclick="location = '<?php echo $insert; ?>'" class="button"><?php echo $button_insert; ?></a><a onclick="$('form').submit();" class="button"><?php echo $button_delete; ?></a></div>]]></search>
            <add><![CDATA[<div class="buttons"><a onclick="$('#form').attr('action', '<?php echo $enabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_enable; ?></span></a><a onclick="$('#form').attr('action', '<?php echo $disabled; ?>'); $('#form').submit();" class="button"><span><?php echo $button_disable; ?></span></a><a onclick="location = '<?php echo $insert; ?>'" class="button"><span><?php echo $button_insert; ?></span></a><a onclick="$('form').submit();" class="button"><span><?php echo $button_delete; ?></span></a></div>]]></add>
        </operation>
    </file>
    <!-- Information End -->

</modification>
Peguei no site oficial, só fiz umas alterações para funcionar em pt-br, testado na v1.5.1.3
#24780
Apesar de ser meio antigo o tópico ... rsrs :mrgreen:

Uma adição encontrada no forum dos gringos é direto nos produtos os botoes on off

testada na versão 1.5.3.1


http://www.opencart.com/index.php?route ... on_id=4354