PrestaShop:如何删除' new'从我的后台控制器按钮

时间:2016-10-26 13:46:22

标签: php override prestashop prestashop-1.6

我想从prestashop中的bo列表视图工具栏中删除添加按钮,有什么办法,(仅针对我作为单独模块创建的页面

或至少当我点击添加按钮时,它不能做任何事情。 enter image description here

              require_once(_PS_MODULE_DIR_.'addsocialmedia/addsocialmedia.php');
              require_once(_PS_MODULE_DIR_.'addsocialmedia/classes/SocialMedia.php');

             class AdminAddSocialMediaController extends ModuleAdminController
            {
                public $module;
                public $html;
                public $tabName = 'renderForm';

            public function __construct()
            {
                $this->tab = 'socialmedia';
                $this->module = new addsocialmedia();
                $this->addRowAction('edit');    
                $this->explicitSelect = false;
                $this->context = Context::getContext();
                $this->id_lang = $this->context->language->id;
                $this->lang = false;
                $this->ajax = 1;
                $this->path = _MODULE_DIR_.'addsocialmedia';
                $this->default_form_language = $this->context->language->id;
                $this->table = _DB_KITS_PREFIX_.'social_media';
                $this->className = 'SocialMedia';
                $this->identifier = 'id_social_media';
                $this->allow_export = true;
                $this->_select = '
                id_social_media,
                name_social_media,
                social_media_url,
                status

                ';
                $this->name = 'SocialMedia';
                $this->bootstrap = true;
                $this->initList();
                parent::__construct();
            }


            private function initList()
           {
             $this->fields_list = 
                array(
                'id_social_media' => array(
                'title' => $this->l('Social Media ID'),
                'width' => 25,
                'type' => 'text',
                ),
                'name_social_media' => array(
                'title' => $this->l('Social Media Name'),
                'width' => 140,
                'type' => 'text',
                ),
                'social_media_url' => array(
                'title' => $this->l('Social Media Url'),
                'width' => 140,
                'type' => 'text',
                ),
                'status' => array(
                'title' => $this->l('Enabled'),
                'align' => 'text-center',
                'status' => 'status',
                'type' => 'bool',
                'orderby' => false,
                'callback' => 'changeStatus',

                ),

            );
            $helper = new HelperList();     
            $helper->shopLinkType = '';     
            $helper->simple_header = true;     
            // Actions to be displayed in the "Actions" column
            $helper->actions = array('edit');     
            $helper->identifier = 'code';
            $helper->show_toolbar = true;
            $helper->title = 'HelperList';
            $helper->table = $this->name.'check';     
            $helper->token = Tools::getAdminTokenLite('AdminModules');
            $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;
            return $helper;
        }
            public function initPageHeaderToolbar()
            {
                $this->page_header_toolbar_title = $this->l('Edit Social Media Image and url/link');
                parent::initPageHeaderToolbar();
            }

            public function initToolbar()
            {
                parent::initToolbar();
                $this->context->smarty->assign('toolbar_scroll', 1);
                $this->context->smarty->assign('show_toolbar', 1);
                $this->context->smarty->assign('toolbar_btn', $this->toolbar_btn);

            }

            public function postProcess()
            {
             parent::postProcess();
                $id = (int)Tools::getValue('id_social_media'); 
                $file = Tools::fileAttachment('social_media_image_name'); 
                if (!empty($file['name'])  && $id > 0) 
                { 
                    if (ImageManager::validateUpload($file, Tools::convertBytes(ini_get('upload_max_filesize')))) 
                        die('Image size exceeds limit in your Bigticket Back Office settings'); 
                    if (!is_dir('../modules/addsocialmedia/social_media_img')) 
                        @mkdir('../modules/addsocialmedia/social_media_img', 0777, true); 
                    if (!is_dir('../modules/addsocialmedia/social_media_img/'.$id)) 
                        @mkdir('../modules/addsocialmedia/social_media_img/'.$id, 0777, true);
                    $path = '../modules/addsocialmedia/social_media_img/'.$id.'/'; 
                    $absolute_path = $path.$file['name']; 
                    move_uploaded_file($file['tmp_name'], $absolute_path); 
                    $imgPath = 'social_media_img/'.$id.'/'.$file['name']; 
                    //Save in DB if needed
                    Db::getInstance()->execute('UPDATE `'._DB_PREFIX_.''._DB_KITS_PREFIX_.'social_media`
                    SET `social_media_image_name` = "'.pSQL($imgPath).'" 
                    WHERE `id_social_media` = '.(int)$id); 
               }

               if (Tools::isSubmit('changeStatusVal') && $this->id_object) {
                if ($this->tabAccess['edit'] === '1') {     
                    $this->action = 'change_status_val';
                    d("chnage");
                } else {
                    $this->errors[] = Tools::displayError('You do not have permission to change this.');
                }

            }
            } 

             //Call back for change status
            public function changeStatus($value, $socialMedia)
            {
            return '<a class="list-action-enable '.($value ? 'action-enabled' : 'action-disabled').'" href="index.php?'.htmlspecialchars('tab=AdminAddSocialMedia&id_social_media='
            .(int)$socialMedia['id_social_media'].'&changeStatusVal&token='.Tools::getAdminTokenLite('AdminAddSocialMedia')).'">
            '.($value ? '<i class="icon-check"></i>' : '<i class="icon-remove"></i>').
            '</a>';
            }

            /**
            * Toggle the Social media to Enabled or Disabled flag- Here the update action occurs
            */
            public function processChangeStatusVal()
            {
                d("hii");
            $socialMedia = new SocialMedia($this->id_object);
            if (!Validate::isLoadedObject($socialMedia)) {
            $this->errors[] = Tools::displayError('An error occurred while updating the Status .');
            }
            d("going to change");
            $socialMedia->status = $socialMedia->status ? 0 : 1;
            if (!$socialMedia->update()) {
            $this->errors[] = Tools::displayError('An error occurred while updating Social Media Status .');
            }
            Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token);
            }
             //When a winner is deleted , delete the image
             public function processDelete()
             {
                $ob=parent::processDelete();        
                PrestaShopLogger::addLog(sprintf($this->l('%s DELETED social media IMAGE', 'AdminTab', false, false), $this->className), 1, null, $this->className, (int)$id, true, (int)$this->context->employee->id);
                if ($ob->deleted==1){        
                 $id = (int)Tools::getValue('id_social_media');     
                 $unlink_path = '../modules/addsocialmedia/social_media_img/'.$id.'/'; 
                 unlink($unlink_path); // this must delete the img folder from the winners module dir
                 //log the delete 
                 PrestaShopLogger::addLog(sprintf($this->l('%s DELETED social media IMAGE', 'AdminTab', false, false), $this->className), 1, null, $this->className, (int)$id, true, (int)$this->context->employee->id);
                }
            }


        //If the user updates  the image  delete the old image from server
        public function processUpdate(){
            //d("updating..");
                $id = (int)Tools::getValue('id_social_media'); 
                $file = Tools::fileAttachment('social_media_image_name'); 
                if (!empty($file['name'])  && $id > 0) 
                { 

                 $get_previous_image_sql = 'SELECT social_media_image_name FROM `'._DB_PREFIX_._DB_KITS_PREFIX_.'social_media`  
                 where id_social_media='.$id.'';
                 $get_previous_image_path =  Db::getInstance()->getValue($get_previous_image_sql) ; 
                 //d($get_previous_image_path);     
                    $unlink_path = '../modules/addsocialmedia/'.$get_previous_image_path.''; 
                    unlink($unlink_path); // this must delete the img folder from the winners module dir
                    //log the delete when deleting 
                    PrestaShopLogger::addLog(sprintf($this->l('%s DELETED social media IMAGE while updating new image', 'AdminTab', false, false), $this->className), 1, null, $this->className, (int)$id, true, (int)$this->context->employee->id);

               }
        }


          // This  form is populated  when  add or edit is clicked
          public function renderForm()
            {

                $firstArray = 
                         array(array(
                            'type' => 'text',
                            'label' => $this->l('Name'),
                            'name' => 'name_social_media',
                            'required' => true,
                            'col' => '4',
                            'hint' => $this->l('Invalid characters:').' 0-9!&lt;&gt;,;?=+()@#"°{}_$%:'
                        ),
                        array(
                            'type' => 'text',
                            'label' => $this->l('Social Media URL'),
                            'name' => 'social_media_url',
                            'required' => true,
                            'col' => '4',
                            'hint' => $this->l('Invalid characters:').' 0-9!&lt;&gt;,;?=+()@#"°{}_$%:'
                        ),
                           array(
                            'type'     => 'file',
                            'label'    => $this->l('Social Media Image'),
                            'name'     => 'social_media_image_name',
                            'display_image' => true,
                            'required' => false,
                            'desc' => $this->l('Add .JPG or .PNG File Format.Prefered Width:381 pixels and Height 285 pixels.Prefered File size -50KB .'),
                            'hint' => array(
                            $this->l('Add .JPG or .PNG File Format.Prefered Width:381 pixels and Height 285 pixels.Prefered File size -50KB .')
                            )
                        ),


                   array(
                            'type' => 'switch',
                            'label' => $this->l('Enable Or Disable this Social Media'),
                            'name' => 'status',
                            'required' => false,
                            'class' => 't',
                            'is_bool' => true,
                            'values' => array(                   
                                    array(
                                    'id' => 'status_on',
                                    'value' => 1,
                                    'label' => $this->l('Enabled')
                                    ),
                                    array(
                                    'id' => 'status_off',
                                    'value' => 0,
                                    'label' => $this->l('Disabled')
                                    )
                            ),
                            'hint' => $this->l('Enable or disable this Social Media From front END.')
                        ),



                    );

                if (Tools::getIsset('addkits_social_media') ){
                        $secondArray = array(
                         array(
                            'type' => 'hidden',
                            'label' => $this->l('Add Date'),
                            'name' => 'date_add',                   
                            'col' => '4',                   
                            'values'=>date("Y-m-d H:i:s"),
                            'hint' => $this->l('Invalid characters:').' 0-9!&lt;&gt;,;?=+()@#"°{}_$%:'
                        ),
                        array(
                            'type' => 'hidden',
                            'label' => $this->l('Winner Image Name'),
                            'name' => 'social_media_image_name',                   
                            'col' => '4',                   
                            'values'=>"default_value"
                        )
                        );
                        $mainArray = array_merge($firstArray,$secondArray); 
                     }  

                     if (Tools::getIsset('updatekits_social_media') ){
                        $thirdArray = array(
                         array(
                            'type' => 'hidden',
                            'label' => $this->l('Update Date'),
                            'name' => 'date_upd',                   
                            'col' => '4',                   
                            'values'=>date("Y-m-d H:i:s"),
                            'hint' => $this->l('Invalid characters:').' 0-9!&lt;&gt;,;?=+()@#"°{}_$%:'
                        ),
                            array(
                            'type' => 'hidden',
                            'label' => $this->l('Winner Image Name'),
                            'name' => 'social_media_image_name',                   
                            'col' => '4',                   
                            'values'=>"default_value"
                        ));
                        $mainArray = array_merge($firstArray,$thirdArray); 
                     }  


                $this->fields_form = array(
                    'tinymce' => true,
                    'legend' => array(
                        'title' => $this->l('Configure your Social Media Image and URL'),
                        'icon' => 'icon-user'
                    ),          
                    'input' => $mainArray
                );
                //Assign value to hidden 
                $this->fields_value['date_add'] = $date = date("Y-m-d H:i:s");
                $this->fields_value['social_media_image_name'] ="default_image.jpg";
                $this->fields_form['submit'] = array(
                    'title' => $this->l('Save'),
                );
                $date = date("Y-m-d H:i:s");
                $this->addJqueryUI('ui.datepicker');

               return parent::renderForm();
            }

2 个答案:

答案 0 :(得分:6)

您必须覆盖@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { mListener = (MyDialogFragmentListener) getTargetFragment(); } catch (ClassCastException e) { throw new ClassCastException("Calling Fragment must implement MyDialogFragmentListener"); } } 方法:

initToolbar

干杯;)

答案 1 :(得分:0)

是的,它是你模块的帮手。你可以把页面的代码放在我指示或删除的位置。否则解决方案少“干净”应用CSS来隐藏此按钮。

此致