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/app/code/Soon/Faq/Block/Question/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Soon/Faq/Block/Question/Frequent.php
<?php
/**
 * @license http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 * @author Hervé Guétin <[email protected]> <@herveguetin>
 * @copyright Copyright (c) 2016 Agence Soon (http://www.agence-soon.fr)
 */

namespace Soon\Faq\Block\Question;


use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Soon\Faq\Model\Question;
use Soon\Faq\Model\ResourceModel\Question\Collection;

class Frequent extends Template
{
    /**
     * @var ListQuestion
     */
    private $listBlock;
    /**
     * @var Collection
     */
    private $questionCollectionSelect;

    public function __construct(
        ListQuestionFactory $listQuestionFactory,
        Context $context,
        array $data = []
    )
    {
        parent::__construct($context, $data);
        $this->listBlock = $listQuestionFactory->create();
    }

    /**
     * @return array
     */
    public function getCategoriesWithQuestions()
    {
        $this->updateListBlockSelect();
        return $this->listBlock->getCategoriesWithQuestions();
    }

    /**
     * Add our additional logic for filtering the questions
     */
    private function updateListBlockSelect()
    {
        $this->questionCollectionSelect = $this->listBlock->getQuestionCollectionSelect();
        $this->setSizeToCollectionSelect();
        $this->addFrequentFilter();

        $this->listBlock->setQuestionCollectionSelect($this->questionCollectionSelect);
    }

    /**
     * Set the limit to the collection
     */
    private function setSizeToCollectionSelect()
    {
        $limit = $this->getData('limit');
        if (!is_null($limit)) {
            $this->questionCollectionSelect->setLimit($limit);
        }
    }

    /**
     * Select only frequent questions
     */
    private function addFrequentFilter()
    {
        $this->questionCollectionSelect->addFrequentFilter();
    }

    /**
     * @param Question $question
     * @return string
     */
    public function getAnswerForQuestion(Question $question)
    {
        return $this->listBlock->getAnswerForQuestion($question);
    }
}

Spamworldpro Mini