HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/administrator/components/com_jnews/jnews.php
<?php
defined('_JEXEC') OR die('Access Denied!');
### © 2006-2020 Joobi. All rights reserved.
### license GNU GPLv3 , link https://joobi.org

if (!defined('DS')) define( 'DS', DIRECTORY_SEPARATOR );

$mainframe = JFactory::getApplication();
if(!defined('JNEWS_JPATH_ROOT')) define ('JNEWS_JPATH_ROOT' , JPATH_ROOT .DIRECTORY_SEPARATOR. 'administrator' );

$userid = JRequest::getInt('userid', 0, 'request');
$listId = JRequest::getInt('listid', 0, 'request');
$listType = JRequest::getInt('listype', 0, 'request');
$mailingId = JRequest::getInt('mailingid', 0, 'request');
$action	= JRequest::getVar('act', '', '', 'WORD' );
$task = JRequest::getCmd('task', '', '', 'string' );
$message = JRequest::getString('message', '', 'request');
$cid = JRequest::getVar('cid', array(), 'request');
$template_id = JRequest::getInt('template_id', 0, 'request');
if( version_compare( JVERSION,'3.0.0','<' ) ) {
	JHTML::_('behavior.tooltip');
} else {
	JHtml::_('behavior.tooltip');
}


require_once( JPATH_ROOT .DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_jnews'.DIRECTORY_SEPARATOR.'defines.php');

if( JNEWS_DEBUG ) {
	ini_set('display_errors',true);
	error_reporting(E_ALL);
}

require_once( JNEWSPATH_ADMIN . 'admin.jnews.html.php' );
require_once( JNEWSPATH_CLASS . 'class.jnews.php');
require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'tags.jnews.php');
require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'update.jnews.php');
require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'queue.jnews.php');
require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'tags.jnews.html.php');
require_once( JNEWSPATH_ADMIN . 'admin.jnews.html.php' );
require_once( JNEWSPATH_CLASS . 'class.tableupdate.php');

 
 
//css injection for the images
$mainPath = JURI::base().'components/'.JNEWS_OPTION.'/images/header';
$doc = JFactory::getDocument();
$css = '.icon-48-about { background-image:url('.$mainPath .'/about.png)}';
$css .='.icon-48-configuration { background-image:url('.$mainPath .'/configuration.png)}';
$doc->addStyleDeclaration($css, $type = 'text/css');

if (!is_array( $cid )) {
	 $cid = array(0);
}

if( version_compare(JVERSION,'1.6.0','>=') ){
	if(JRequest::getString('tmpl') !== 'component'){
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_LIST), 'index.php?option='.JNEWS_OPTION.'&act=list&pg=20',$action == 'list');
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_SUBSCRIBERS), 'index.php?option='.JNEWS_OPTION.'&act=subscribers&pg=20',$action == 'subscribers');
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_NEWSLETTERS), 'index.php?option='.JNEWS_OPTION.'&act=mailing&listype=1&pg=20',$action == 'mailing');

		if($GLOBALS[JNEWS.'level'] > 2) {
			JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_AUTONEWS), 'index.php?option='.JNEWS_OPTION.'&act=mailing&listype=7&pg=20',$action == 'mailing');
		}

		if( $GLOBALS[JNEWS.'level'] > 1 ) {
			JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_AUTOS), 'index.php?option='.JNEWS_OPTION.'&act=arlist&pg=20',$action == 'arlist');
		}
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_STATS), 'index.php?option='.JNEWS_OPTION.'&act=statistics&pg=20',$action == 'statistics');

		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_QUEUE), 'index.php?option='.JNEWS_OPTION.'&act=queue&pg=20',$action == 'queue');
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_TEMPLATES), 'index.php?option='.JNEWS_OPTION.'&act=templates&pg=20',$action == 'templates');

		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_CONF), 'index.php?option='.JNEWS_OPTION.'&act=configuration&pg=20',$action == 'configuration');
		JSubMenuHelper::addEntry(JText::_(_JNEWS_MENU_ABOUT), 'index.php?option='.JNEWS_OPTION.'&act=about&pg=20',$action == 'about');
	}
}
// for pagination default limit
static $mySess=null;
if( empty($mySess) ) $mySess = JFactory::getSession();

	// check previous act page
	$prevAct = $mySess->get( 'prevAct', '' );
	if( empty($prevAct) ){
		// mailing has 3 page with the same act 'mailing'
		// need to check the listype, to know what page is shown
		// if another page is open then set pagination default limit back to 20
		if( $action == 'mailing' ){
			$lType = JRequest::getInt('listype' );
			$mySess->set( 'prevAct', $action.'-'.$lType );
		}
		else $mySess->set( 'prevAct', $action );
	JRequest::setVar( 'pg', 20 );
} else{
	// mailing has 3 page with the same act 'mailing'
		// need to check the listype, to know what page is shown
		// if another page is open then set pagination default limit back to 20
	if( $action == 'mailing' ){
		$lType = JRequest::getInt('listype' );

		if( $prevAct != $action.'-'.$lType ){
			$mySess->set( 'prevAct', $action.'-'.$lType );
			JRequest::setVar( 'pg', 20 );
		}
	} else {
		if( $prevAct != $action ){
			$mySess->set( 'prevAct', $action );
			JRequest::setVar( 'pg', 20 );
		} else {
			// doesnt need to set
		}
	}
}


if ( $task == 'edit' || $task == 'add' )
{
    //  JRequest::setVar( 'hidemainmenu', 1 );
      JRequest::setVar( 'hidemainmenu', 0);
}


//action cases
switch ($action) {
	case ('tags'):
		tags($action, $task, $template_id);
		break;
	case ('templates'):
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'templates.jnews.php');
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'templates.jnews.html.php');
		templates( $action, $task, $template_id);
		break;
	case ('list'):
		$listType=1;
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'lists.jnews.php');
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'lists.jnews.html.php' );
		lists( $action, $task, $listId, $listType );
		break;
	case('arlist'):
		$listType=2;
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'lists.jnews.php');
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'lists.jnews.html.php' );
		lists( $action, $task, $listId, $listType );
		break;
	case ('subscribers'):
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'subscribers.jnews.php');
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'subscribers.jnews.html.php' );
		subscribers( $action, $task, $userid, $listId, $cid );
		break;
	case ('mailing'):
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'mailings.jnews.php');
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'mailings.jnews.html.php' );
		mailing( $action, $task, $listId, $listType, $mailingId, $message );
		break;
	case ('statistics'):
		require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'statistics.jnews.php');
		statistics( $listId, $listType, $mailingId, $message, $task, $action );
		break;
	case ('queue'):
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'queue.jnews.html.php');
		queue( $action, $task, $listId, $mailingId, $lists='', $cid);
		break;
	case ('configuration'):
		require_once( JNEWSPATH_ADMIN . 'views'.DIRECTORY_SEPARATOR.'config.jnews.html.php' );
		if ($GLOBALS[JNEWS.'integration'] == '0'  OR $GLOBALS[JNEWS.'cb_integration'] =='0') {
			$xf = new jNews_Config();
			if (jnews::checkCB())	$xf->loadConfig();
		}
		configuration( $action, $task );
		break;
	case ('update'):
		update( $action, $task );
		break;
	case ('about'):
		about($message, $task, $action);
		break;
	case ('cpanel'):
	case ('help'):
	case ('learn'):
		backHTML::controlPanel();
		break;
	case ('start'):
		backHTML::_header( _JNEWS_MENU_CONF , 'configuration.png' , $message , $task, $action );
		backHTML::controlPanel();
		break;
	case ( 'acaupdate' ) :
		// update jnews datas from acajoom
		$msg = jNews_TableUpdate::executeUpdate();
		echo $msg .'<br><br>';

		backHTML::controlPanel();
		break;
	default :	
		backHTML::controlPanel();
		break;
}

if( version_compare( JVERSION,'3.0.0','<' ) ) {
	require_once(  JNEWSPATH_ADMIN . 'toolbar.jnews.php' );
} else {
	require_once(  JNEWSPATH_ADMIN . 'toolbar30.jnews.php' );
}

backHTML::_footer();
return true;

function configuration($action, $task ) {
	$db = JFactory::getDBO();

	$config = array();
	$redirect = true;
	$xf = new jNews_Config();
	$message = jnews::getVar('message', '' );
	$clear_log = jnews::getVar('clear_log', '0' );


	switch ($task) {

		 case ('syncUsers'):
			echo jnews::printYN( jNews_Subscribers::syncSubscribers() , _JNEWS_SYNC_USERS_SUCCESS , _JNEWS_ERROR);
			backHTML::_header( _JNEWS_MENU_CONF , 'configuration.png' , $message , $task, $action );
			jNews_ConfigHTML::showConfigEdit();
		 	break;

		 case ('sendtest'):

			$my = JFactory::getUser();

			$mailing = new stdClass();
			$status =  false;

			$mailing->id = 1;
		 	$mailing->images = '';
		 	$mailing->attachments = '';

			$mailing->fromname = trim($GLOBALS[JNEWS.'sendmail_name']);
			$mailing->fromemail = trim($GLOBALS[JNEWS.'sendmail_email']);
			if ( empty($mailing->fromemail) ) $mailing->fromemail = trim($GLOBALS[JNEWS.'sendmail_from']);

			### create the mail
			$mail = jNews_ProcessMail::getMailer($mailing);

			### create content
			$mail->IsHTML(true);
			$mail->Body = '<p>This message has been sent at '. date('l, j F Y h:i:s', jnews::getNow( 0, true ) ).' from '.JNEWS_JPATH_LIVE.' to test your mail configuration.</p><br/><p style="color:green;">'._JNEWS_SENDTEST_CONFIGSUCC.'</p>';

			$mail->AddAddress( $my->email, $my->name );

			$mail->Subject =  'Test Email from '. JNEWS_JPATH_LIVE;
			$status = $mail->Send();

			$success = 'Email "'.$mail->Subject.'" successfully sent to '.$my->name.' ('.$my->email.')';
			$error = 'Failed sending "'.$mail->Subject.'" to '.$my->name.' ('.$my->email.'). <br/>'._JNEWS_SENDTEST_CONFIGERROR;

			$message = (is_bool($status) && $status) ? jnews::printM('ok',$success) : jnews::printM('error',$error);

			backHTML::_header( _JNEWS_MENU_CONF , 'configuration.png' , $message , $task, $action );
		 	jNews_ConfigHTML::showConfigEdit();
			echo $message;
			break;

		case ('apply'):
		case ('save'):

			JSession::checkToken() or die( 'Invalid Token' );

			if ($clear_log != 0) {
				@unlink(JNEWS_JPATH_ROOT_NO_ADMIN . $GLOBALS[JNEWS.'save_log_file']);
			}

			$config = JRequest::getVar( 'config' );

			$message = jnews::printYN( $xf->saveConfig($config) , _JNEWS_CONFIG_UPDATED , _JNEWS_ERROR);

			$listCreator = jnews::getVar('list_creatorfe','','post');
			if(!empty($listCreator)) $xf->update('list_creatorfe', $listCreator);

			//we update the active list
			$xf->updateActiveList();

			if($GLOBALS[JNEWS.'level'] > 1 ){


				//we require the cron controller
// 			 	require_once( JNEWSPATH_ADMIN . 'controllers'.DIRECTORY_SEPARATOR.'cron.jnews.php');

				//we update the published/enabld of the jnews cron plugin according to what is selected
				if(version_compare(JVERSION,'1.6.0','<')){ 
					$db->setQuery("UPDATE `#__plugins` SET `published` = " . (int)$config['jnewscronplugin']." WHERE `element`='jnewscron' ");
				}else{ 
					$db->setQuery("UPDATE `#__extensions` SET `enabled` = " . (int)$config['jnewscronplugin']." WHERE `type` = 'plugin' AND `element`='jnewscron' ");
				}
				$db->query();

				//Joobi Cron System
				$cron = $GLOBALS[JNEWS.'j_cron'];

			}

			if ( $task == 'apply' ) {
				backHTML::_header( _JNEWS_MENU_CONF , 'configuration.png' , $message , $task, $action );
			 	jNews_ConfigHTML::showConfigEdit();
				echo $message;
			} else {
				backHTML::controlPanel();
			}

			break;

		case ('cancel'):
			jNews_Tools::redirect( 'index.php?option='.JNEWS_OPTION );
			break;

       	case ('cpanel'):
      		backHTML::controlPanel();
 			break;

     	case ('acaupdate'):
			// update jnews datas from acajoom
			$msg = jNews_TableUpdate::executeUpdate();
			echo $msg .'<br><br>';
		default :
			backHTML::_header( _JNEWS_MENU_CONF , 'configuration.png' , $message , $task, $action );
		 	jNews_ConfigHTML::showConfigEdit();
     		break;

	}

	return true;
}


function about( $message , $task, $action ) {
	switch ($task) {
		case ('cpanel'):
			backHTML::controlPanel();
			break;
		default:
			backHTML::_header( _JNEWS_MENU_ABOUT.' jNews' , 'about.png' , $message , $task, $action );
			backHTML::about();
	}
}