shell bypass 403
<?php
/**
* @package pkg_dearflip
* @subpackage com_dearflip
* @since 1.0.0
* @copyright Copyright © 2007 Free Software Foundation, Inc. All rights reserved.
* @license GNU General Public License version 3 or later; see https://www.gnu.org/licenses/gpl-3.0.en.html
*/
// No direct access to this file
defined( '_JEXEC' ) or die( 'Restricted access' );
/**
* DearflipsList Model
*
* @since 0.0.1
*/
class DearflipModelDearflips extends JModelList {
/**
* Constructor.
*
* @param array $config An optional associative array of configuration settings.
*
* @see JController
* @since 1.6
*/
public function __construct( $config = array() ) {
if ( empty( $config['filter_fields'] ) ) {
$config['filter_fields'] = array(
'id',
'book_title',
'df_cat',
'published',
'dfx_book_type_list',
'dfx_pdf',
'dfx_images_source',
'dfx_images_sort_by',
'dfx_view_mode',
'dfx_thumb',
'dfx_button_text',
'dfx_custom_text',
'dfx_3d_2d',
'dfx_hardpages',
'dfx_bgColor',
'dfx_bgImage',
'dfx_flipduration',
'dfx_containerHeight',
'dfx_pdfPagerenderSize',
'dfx_autoEnableSound',
'dfx_enableDownload',
'dfx_pageMode',
'dfx_singlePageMode',
'dfx_controlsPosition',
'dfx_hide_controls',
'dfx_direction',
'dfx_forcePageFit',
'dfx_enableAutoPlay',
'dfx_autoPlayDuration',
'dfx_enableAutoPlayAutomatically',
'dfx_pageSize',
'dfx_autoEnableOutline',
'dfx_autoEnableThumbnail',
);
}
parent::__construct( $config );
}
/**
* Method to build an SQL query to load the list data.
*
* @return string An SQL query
*/
protected function getListQuery() {
// Initialize variables.
$db = JFactory::getDbo();
$query = $db->getQuery( true );
// Create the base select statement.
$query->select( '*' )
->from( $db->quoteName( '#__dearflip' ) )
->order( $db->quoteName( 'id' ) . ' DESC' );
// Filter: like / search
$search = $this->getState( 'filter.search' );
if ( !empty( $search ) ) {
$like = $db->quote( '%' . $search . '%' );
$query->where( 'book_title LIKE ' . $like );
}
// Filter by published state
$published = $this->getState( 'filter.published' );
if ( is_numeric( $published ) ) {
$query->where( 'published = ' . (int)$published );
} elseif ( $published === '' ) {
$query->where( '(published IN (0, 1))' );
}
// Add the list ordering clause.
$orderCol = $this->state->get( 'list.ordering', 'book_title' );
$orderDirn = $this->state->get( 'list.direction', 'ASC' );
$query->order( $db->escape( $orderCol ) . ' ' . $db->escape( $orderDirn ) );
return $query;
}
}