__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

namespace Nextend\Framework\Content\Joomla;

use Joomla\Component\Content\Site\Helper\RouteHelper;
use ContentModelArticles;
use ContentHelperRoute;
use Joomla\CMS\Factory;
use Joomla\Component\Content\Administrator\Model\ArticlesModel;
use Joomla\CMS\Uri\Uri;
use Nextend\Framework\Content\AbstractPlatformContent;
use Nextend\Framework\Data\Data;
use Nextend\Framework\ResourceTranslator\ResourceTranslator;
use Nextend\SmartSlider3\Platform\Joomla\JoomlaShim;

class JoomlaContent extends AbstractPlatformContent {

    public function searchContent($keyword = '') {

        $result = array();

        JoomlaShim::loadComContentRoute();

        if (JoomlaShim::$isJoomla4) {
            $a = new ArticlesModel();
        } else {
            require_once(JPATH_ADMINISTRATOR . '/components/com_content/models/articles.php');
            $a = new ContentModelArticles();
        }

        $db    = $a->getDbo();
        $query = $db->getQuery(true);
        // Select the required fields from the table.
        $query->select($a->getState('list.select', 'a.id, a.title, a.introtext, a.images, a.alias, a.catid, a.language'));
        $query->from('#__content AS a');

        // Join over the categories.
        $query->select('c.title AS category_title')
              ->join('LEFT', '#__categories AS c ON c.id = a.catid');

        if (!empty($keyword)) {
            if (stripos($keyword, 'id:') === 0) {
                $query->where('a.id = ' . (int)substr($keyword, 3));
            } elseif (stripos($keyword, 'author:') === 0) {
                $keyword2 = $db->quote('%' . $db->escape(substr($keyword, 7), true) . '%');
                $query->where('(ua.name LIKE ' . $keyword2 . ' OR ua.username LIKE ' . $keyword2 . ')');
            } else {
                $keyword2 = $db->quote('%' . str_replace(' ', '%', $db->escape(trim($keyword), true) . '%'));
                $query->where('(a.title LIKE ' . $keyword2 . ' OR a.alias LIKE ' . $keyword2 . ')');
            }
        }

        $db->setQuery($query, 0, 10);
        $articles = $db->loadAssocList();

        foreach ($articles as $article) {
            $images = new Data($article['images'], true);
            $image  = $images->get('image_fulltext', $images->get('image_intro', ''));
            if (!empty($image) && substr($image, 0, 2) != '//' && substr($image, 0, 4) != 'http') {
                $image = Uri::root(false) . $image;
            }

            $result[] = array(
                'title'       => $article['title'],
                'description' => $article['introtext'],
                'image'       => ResourceTranslator::urlToResource($image),
                'link'        => JoomlaShim::$isJoomla4 ? RouteHelper::getArticleRoute($article['id'], $article['catid'], $article['language']) : ContentHelperRoute::getArticleRoute($article['id'], $article['catid'], $article['language']),
                'info'        => $article['category_title']
            );
        }

        if (count($result) == 0 && !empty($keyword)) {
            /**
             * Try to show all post when no matches
             */
            return $this->searchContent();
        }

        return $result;
    }

    public function searchLink($keyword = '') {
        $result = array();

        JoomlaShim::loadComContentRoute();

        if (JoomlaShim::$isJoomla4) {
            $a = new ArticlesModel();
        } else {
            require_once(JPATH_ADMINISTRATOR . '/components/com_content/models/articles.php');
            $a = new ContentModelArticles();
        }

        $db    = $a->getDbo();
        $query = $db->getQuery(true);
        // Select the required fields from the table.
        $query->select($a->getState('list.select', 'a.id, a.title, a.alias, a.catid, a.language'));
        $query->from('#__content AS a');

        // Join over the categories.
        $query->select('c.title AS category_title')
              ->join('LEFT', '#__categories AS c ON c.id = a.catid');

        if (!empty($keyword)) {
            if (stripos($keyword, 'id:') === 0) {
                $query->where('a.id = ' . (int)substr($keyword, 3));
            } elseif (stripos($keyword, 'author:') === 0) {
                $keyword2 = $db->quote('%' . $db->escape(substr($keyword, 7), true) . '%');
                $query->where('(ua.name LIKE ' . $keyword2 . ' OR ua.username LIKE ' . $keyword2 . ')');
            } else {
                $keyword2 = $db->quote('%' . str_replace(' ', '%', $db->escape(trim($keyword), true) . '%'));
                $query->where('(a.title LIKE ' . $keyword2 . ' OR a.alias LIKE ' . $keyword2 . ')');
            }
        }


        $db->setQuery($query, 0, 10);
        $articles = $db->loadAssocList();

        foreach ($articles as $article) {
            $result[] = array(
                'title' => $article['title'],
                'link'  => JoomlaShim::$isJoomla4 ? RouteHelper::getArticleRoute($article['id'], $article['catid'], $article['language']) : ContentHelperRoute::getArticleRoute($article['id'], $article['catid'], $article['language']),
                'info'  => $article['category_title']
            );
        }


        $db = Factory::getDbo();
        $db->setQuery('SELECT * FROM #__menu WHERE title LIKE ' . $db->quote('%' . str_replace(' ', '%', $db->escape(trim($keyword), true) . '%')) . ' AND client_id = 0 AND menutype != "" LIMIT 0,10');
        $menuItems = $db->loadAssocList();

        foreach ($menuItems as $mi) {
            $link = $mi['link'];
            if ($link && strpos($link, 'index.php') === 0) {
                $link = 'index.php?Itemid=' . $mi['id'];

                if (isset($mi['language'])) {
                    $link .= self::getLangauge($mi['language']);
                }
            }


            $result[] = array(
                'title' => $mi['title'] . ' [' . $mi['menutype'] . ']',
                'link'  => $link,
                'info'  => n2_('Menu item')
            );
        }
        if (count($result) == 0 && !empty($keyword)) {
            return $this->searchLink();
        }

        return $result;
    }

    private function getLangauge($language) {
        $db    = Factory::getDBO();
        $query = $db->getQuery(true);

        $link = '';

        if (is_object($query)) {
            $query->select('a.sef AS sef');
            $query->select('a.lang_code AS lang_code');
            $query->from('#__languages AS a');
            $db->setQuery($query);
            $langs = $db->loadObjectList();

            foreach ($langs as $lang) {
                if ($language == $lang->lang_code) {
                    $language = $lang->sef;
                    $link     .= '&lang=' . $language;
                }
            }
        }

        return $link;
    }
}

Filemanager

Name Type Size Permission Actions
JoomlaContent.php File 6.64 KB 0664
Filemanager