Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/mageworx/module-seocrosslinks/Controller/Adminhtml/Crosslink/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/mageworx/module-seocrosslinks/Controller/Adminhtml/Crosslink/Save.php
<?php
/**
 * Copyright © 2016 MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */

namespace MageWorx\SeoCrossLinks\Controller\Adminhtml\Crosslink;

use MageWorx\SeoCrossLinks\Controller\Adminhtml\Crosslink;
use Magento\Framework\Exception\LocalizedException;
use MageWorx\SeoCrossLinks\Model\Crosslink as ModelCrosslink;

class Save extends Crosslink
{
    /**
     * Run the action
     *
     * @return \Magento\Backend\Model\View\Result\Redirect
     */
    public function execute()
    {
        $data = $this->getRequest()->getPost('crosslink');
        $resultRedirect = $this->resultRedirectFactory->create();
        if ($data) {
            $data = $this->prepareData($data);
            $data = $this->filterData($data);

            $id = !empty($data['crosslink_id']) ? $data['crosslink_id'] : null;

            $crosslink = $this->initCrosslink($id);
            $crosslink->setData($data);
            $this->_eventManager->dispatch(
                'mageworx_seocrosslinks_crosslink_prepare_save',
                [
                    'crosslink' => $crosslink,
                    'request' => $this->getRequest()
                ]
            );
            try {
                $keywords = $this->_getKeywords($data);

                for ($i = 0; $i < count($keywords); $i++) {
                    if ($i == 0) {
                        $id = $crosslink->getCrosslinkId();
                        $crosslink->addData($data);
                        $crosslink->setId($id);
                    } else {
                        $multisaveFlag    = true;
                        $isReducePriority = true;
                        if ($isReducePriority && $data['priority'] > 0) {
                            $data['priority'] -= 1;
                        }
                        $crosslink->setData($data);
                        $crosslink->setCrosslinkId(null);
                    }
                    $crosslink->setKeyword($keywords[$i]);
                    $crosslink->save();
                }

                if (empty($multisaveFlag)) {
                    $successMessage = __('The crosslink has been saved.');
                } else {
                    $successMessage = __('The crosslinks has been saved with reduce priority.');
                }

                $this->messageManager->addSuccess($successMessage);
                $this->_getSession()->setMageWorxSeoCrossLinksCrosslinkData(false);
                if ($this->getRequest()->getParam('back')) {
                    $resultRedirect->setPath(
                        'mageworx_seocrosslinks/*/edit',
                        [
                            'crosslink_id' => $crosslink->getId(),
                            '_current' => true
                        ]
                    );
                    return $resultRedirect;
                }
                $resultRedirect->setPath('mageworx_seocrosslinks/*/');
                return $resultRedirect;
            } catch (LocalizedException $e) {
                $this->messageManager->addError($e->getMessage());
            } catch (\RuntimeException $e) {
                $this->messageManager->addError($e->getMessage());
            } catch (\Exception $e) {
                $this->messageManager->addException($e, __('Something went wrong while saving the crosslink.'));
            }

            $this->_getSession()->setMageWorxSeoCrossLinksCrosslinkData($data);
            $resultRedirect->setPath(
                'mageworx_seocrosslinks/*/edit',
                [
                    'crosslink_id' => $crosslink->getId(),
                    '_current' => true
                ]
            );

            return $resultRedirect;
        }
        $resultRedirect->setPath('mageworx_seocrosslinks/*/');
        return $resultRedirect;
    }

    /**
     * Retrive list of keywords
     *
     * @param array $data
     * @return array
     */
    protected function _getKeywords($data)
    {
        $keywordsString = $data['keyword'];
        $keywordsArray = array_filter(preg_split('/\r?\n/', $keywordsString));
        $keywordsArray = array_map('trim', $keywordsArray);
        $keywordsArray = array_filter($keywordsArray);
        $keywordsArray = array_unique($keywordsArray);
        return (count($keywordsArray) > 1) ? array_values($keywordsArray) : array($data['keyword']);
    }

    /**
     * @param array $data
     * @return array
     */
    protected function prepareData($data)
    {
        if ($data['reference'] != ModelCrosslink::REFERENCE_TO_STATIC_URL) {
            if (!empty($data['reference'])) {
                $data['ref_category_id'] = str_replace(['category/', 'product/'], '', $data['ref_category_id']);
                $productId = (str_replace(['category/', 'product/'], '', $data['ref_product_sku']));
                $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
                $currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
                $data['ref_product_sku'] = $currentproduct->getSku();
            }
        }
        return $data;
    }
}

Spamworldpro Mini