!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/packages/kkart-admin/src/Notes/   drwxr-xr-x
Free 293.24 GB of 429.69 GB (68.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Note.php (16.57 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Kkart Admin (Dashboard) Notes.
 *
 * The Kkart admin notes class gets admin notes data from storage and checks validity.
 */

namespace Automattic\Kkart\Admin\Notes;

defined'ABSPATH' ) || exit;

/**
 * Note class.
 */
class Note extends \KKART_Data {

    
// Note types.
    
const E_KKART_ADMIN_NOTE_ERROR         'error';     // used for presenting error conditions.
    
const E_KKART_ADMIN_NOTE_WARNING       'warning';   // used for presenting warning conditions.
    
const E_KKART_ADMIN_NOTE_UPDATE        'update';    // i.e. used when a new version is available.
    
const E_KKART_ADMIN_NOTE_INFORMATIONAL 'info';      // used for presenting informational messages.
    
const E_KKART_ADMIN_NOTE_MARKETING     'marketing'// used for adding marketing messages.
    
const E_KKART_ADMIN_NOTE_SURVEY        'survey';    // used for adding survey messages.

    // Note status codes.
    
const E_KKART_ADMIN_NOTE_PENDING    'pending';    // the note is pending - hidden but not actioned.
    
const E_KKART_ADMIN_NOTE_UNACTIONED 'unactioned'// the note has not yet been actioned by a user.
    
const E_KKART_ADMIN_NOTE_ACTIONED   'actioned';   // the note has had its action completed by a user.
    
const E_KKART_ADMIN_NOTE_SNOOZED    'snoozed';    // the note has been snoozed by a user.

    /**
     * This is the name of this object type.
     *
     * @var string
     */
    
protected $object_type 'admin-note';

    
/**
     * Cache group.
     *
     * @var string
     */
    
protected $cache_group 'admin-note';

    
/**
     * Note constructor. Loads note data.
     *
     * @param mixed $data Note data, object, or ID.
     */
    
public function __construct$data '' ) {
        
// Set default data here to allow `content_data` to be an object.
        
$this->data = array(
            
'name'          => '-',
            
'type'          => self::E_KKART_ADMIN_NOTE_INFORMATIONAL,
            
'locale'        => 'en_US',
            
'title'         => '-',
            
'content'       => '-',
            
'content_data'  => new \stdClass(),
            
'status'        => self::E_KKART_ADMIN_NOTE_UNACTIONED,
            
'source'        => 'kkart',
            
'date_created'  => '0000-00-00 00:00:00',
            
'date_reminder' => '',
            
'is_snoozable'  => false,
            
'actions'       => array(),
            
'layout'        => 'plain',
            
'image'         => '',
            
'is_deleted'    => false,
        );

        
parent::__construct$data );

        if ( 
$data instanceof Note ) {
            
$this->set_idabsint$data->get_id() ) );
        } elseif ( 
is_numeric$data ) ) {
            
$this->set_id$data );
        } elseif ( 
is_object$data ) && ! empty( $data->note_id ) ) {
            
$this->set_id$data->note_id );
            unset( 
$data->icon ); // Icons are deprecated.
            
$this->set_props( (array) $data );
            
$this->set_object_readtrue );
        } else {
            
$this->set_object_readtrue );
        }

        
$this->data_store = \KKART_Data_Store::load'admin-note' );
        if ( 
$this->get_id() > ) {
            
$this->data_store->read$this );
        }
    }

    
/**
     * Merge changes with data and clear.
     *
     * @since 3.0.0
     */
    
public function apply_changes() {
        
$this->data array_replace_recursive$this->data$this->changes ); // @codingStandardsIgnoreLine

        // Note actions need to be replaced wholesale.
        // Merging arrays doesn't allow for deleting note actions.
        
if ( isset( $this->changes['actions'] ) ) {
            
$this->data['actions'] = $this->changes['actions'];
        }

        
$this->changes = array();
    }

    
/*
    |--------------------------------------------------------------------------
    | Helpers
    |--------------------------------------------------------------------------
    |
    | Methods for getting allowed types, statuses.
    |
    */

    /**
     * Get allowed types.
     *
     * @return array
     */
    
public static function get_allowed_types() {
        
$allowed_types = array(
            
self::E_KKART_ADMIN_NOTE_ERROR,
            
self::E_KKART_ADMIN_NOTE_WARNING,
            
self::E_KKART_ADMIN_NOTE_UPDATE,
            
self::E_KKART_ADMIN_NOTE_INFORMATIONAL,
            
self::E_KKART_ADMIN_NOTE_MARKETING,
            
self::E_KKART_ADMIN_NOTE_SURVEY,
        );

        return 
apply_filters'kkart_note_types'$allowed_types );
    }

    
/**
     * Get allowed statuses.
     *
     * @return array
     */
    
public static function get_allowed_statuses() {
        
$allowed_statuses = array(
            
self::E_KKART_ADMIN_NOTE_PENDING,
            
self::E_KKART_ADMIN_NOTE_ACTIONED,
            
self::E_KKART_ADMIN_NOTE_UNACTIONED,
            
self::E_KKART_ADMIN_NOTE_SNOOZED,
        );

        return 
apply_filters'kkart_note_statuses'$allowed_statuses );
    }


    
/*
    |--------------------------------------------------------------------------
    | Getters
    |--------------------------------------------------------------------------
    |
    | Methods for getting data from the note object.
    |
    */

    /**
     * Returns all data for this object.
     *
     * Override \KKART_Data::get_data() to avoid errantly including meta data
     * from ID collisions with the posts table.
     *
     * @return array
     */
    
public function get_data() {
        return 
array_merge( array( 'id' => $this->get_id() ), $this->data );
    }

    
/**
     * Get note name.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_name$context 'view' ) {
        return 
$this->get_prop'name'$context );
    }

    
/**
     * Get note type.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_type$context 'view' ) {
        return 
$this->get_prop'type'$context );
    }

    
/**
     * Get note locale.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_locale$context 'view' ) {
        return 
$this->get_prop'locale'$context );
    }

    
/**
     * Get note title.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_title$context 'view' ) {
        return 
$this->get_prop'title'$context );
    }

    
/**
     * Get note content.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_content$context 'view' ) {
        return 
$this->get_prop'content'$context );
    }

    
/**
     * Get note content data (i.e. values that would be needed for re-localization)
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return array
     */
    
public function get_content_data$context 'view' ) {
        return 
$this->get_prop'content_data'$context );
    }

    
/**
     * Get note status.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_status$context 'view' ) {
        return 
$this->get_prop'status'$context );
    }

    
/**
     * Get note source.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return string
     */
    
public function get_source$context 'view' ) {
        return 
$this->get_prop'source'$context );
    }

    
/**
     * Get date note was created.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return KKART_DateTime|NULL object if the date is set or null if there is no date.
     */
    
public function get_date_created$context 'view' ) {
        return 
$this->get_prop'date_created'$context );
    }

    
/**
     * Get date on which user should be reminded of the note (if any).
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return KKART_DateTime|NULL object if the date is set or null if there is no date.
     */
    
public function get_date_reminder$context 'view' ) {
        return 
$this->get_prop'date_reminder'$context );
    }

    
/**
     * Get note snoozability.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return bool   Whether or not the note can be snoozed.
     */
    
public function get_is_snoozable$context 'view' ) {
        return 
$this->get_prop'is_snoozable'$context );
    }

    
/**
     * Get actions on the note (if any).
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return array
     */
    
public function get_actions$context 'view' ) {
        return 
$this->get_prop'actions'$context );
    }

    
/**
     * Get note layout (the old notes won't have one).
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return array
     */
    
public function get_layout$context 'view' ) {
        return 
$this->get_prop'layout'$context );
    }

    
/**
     * Get note image (if any).
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return array
     */
    
public function get_image$context 'view' ) {
        return 
$this->get_prop'image'$context );
    }

    
/**
     * Get deleted status.
     *
     * @param  string $context What the value is for. Valid values are 'view' and 'edit'.
     * @return array
     */
    
public function get_is_deleted$context 'view' ) {
        return 
$this->get_prop'is_deleted'$context );
    }

    
/*
    |--------------------------------------------------------------------------
    | Setters
    |--------------------------------------------------------------------------
    |
    | Methods for setting note data. These should not update anything in the
    | database itself and should only change what is stored in the class
    | object.
    |
    */

    /**
     * Set note name.
     *
     * @param string $name Note name.
     */
    
public function set_name$name ) {
        
// Don't allow empty names.
        
if ( empty( $name ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note name prop cannot be empty.''kkart' ) );
        }

        
$this->set_prop'name'$name );
    }

    
/**
     * Set note type.
     *
     * @param string $type Note type.
     */
    
public function set_type$type ) {
        if ( empty( 
$type ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note type prop cannot be empty.''kkart' ) );
        }

        if ( ! 
in_array$typeself::get_allowed_types(), true ) ) {
            
$this->error(
                
'admin_note_invalid_data',
                
sprintf(
                    
/* translators: %s: admin note type. */
                    
__'The admin note type prop (%s) is not one of the supported types.''kkart' ),
                    
$type
                
)
            );
        }

        
$this->set_prop'type'$type );
    }

    
/**
     * Set note locale.
     *
     * @param string $locale Note locale.
     */
    
public function set_locale$locale ) {
        if ( empty( 
$locale ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note locale prop cannot be empty.''kkart' ) );
        }

        
$this->set_prop'locale'$locale );
    }

    
/**
     * Set note title.
     *
     * @param string $title Note title.
     */
    
public function set_title$title ) {
        if ( empty( 
$title ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note title prop cannot be empty.''kkart' ) );
        }

        
$this->set_prop'title'$title );
    }

    
/**
     * Set note icon (Deprecated).
     *
     * @param string $icon Note icon.
     */
    
public function set_icon$icon ) {
        
kkart_deprecated_function'set_icon''4.3' );
    }

    
/**
     * Set note content.
     *
     * @param string $content Note content.
     */
    
public function set_content$content ) {
        
$allowed_html = array(
            
'br'     => array(),
            
'em'     => array(),
            
'strong' => array(),
            
'a'      => array(
                
'href'     => true,
                
'rel'      => true,
                
'name'     => true,
                
'target'   => true,
                
'download' => array(
                    
'valueless' => 'y',
                ),
            ),
            
'p'      => array(),
        );

        
$content wp_kses$content$allowed_html );

        if ( empty( 
$content ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note content prop cannot be empty.''kkart' ) );
        }

        
$this->set_prop'content'$content );
    }

    
/**
     * Set note data for potential re-localization.
     *
     * @todo Set a default empty array? https://github.com/kkart/kkart-admin/pull/1763#pullrequestreview-212442921.
     * @param object $content_data Note data.
     */
    
public function set_content_data$content_data ) {
        
$allowed_type false;

        
// Make sure $content_data is stdClass Object or an array.
        
if ( ! ( $content_data instanceof \stdClass ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note content_data prop must be an instance of stdClass.''kkart' ) );
        }

        
$this->set_prop'content_data'$content_data );
    }

    
/**
     * Set note status.
     *
     * @param string $status Note status.
     */
    
public function set_status$status ) {
        if ( empty( 
$status ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note status prop cannot be empty.''kkart' ) );
        }

        if ( ! 
in_array$statusself::get_allowed_statuses(), true ) ) {
            
$this->error(
                
'admin_note_invalid_data',
                
sprintf(
                    
/* translators: %s: admin note status property. */
                    
__'The admin note status prop (%s) is not one of the supported statuses.''kkart' ),
                    
$status
                
)
            );
        }

        
$this->set_prop'status'$status );
    }

    
/**
     * Set note source.
     *
     * @param string $source Note source.
     */
    
public function set_source$source ) {
        if ( empty( 
$source ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note source prop cannot be empty.''kkart' ) );
        }

        
$this->set_prop'source'$source );
    }

    
/**
     * Set date note was created. NULL is not allowed
     *
     * @param string|integer $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed.
     */
    
public function set_date_created$date ) {
        if ( empty( 
$date ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note date prop cannot be empty.''kkart' ) );
        }

        
$this->set_date_prop'date_created'$date );
    }

    
/**
     * Set date admin should be reminded of note. NULL IS allowed
     *
     * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
     */
    
public function set_date_reminder$date ) {
        
$this->set_date_prop'date_reminder'$date );
    }

    
/**
     * Set note snoozability.
     *
     * @param bool $is_snoozable Whether or not the note can be snoozed.
     */
    
public function set_is_snoozable$is_snoozable ) {
        return 
$this->set_prop'is_snoozable'$is_snoozable );
    }

    
/**
     * Clear actions from a note.
     */
    
public function clear_actions() {
        
$this->set_prop'actions', array() );
    }

    
/**
     * Set note layout.
     *
     * @param string $layout Note layout.
     */
    
public function set_layout$layout ) {
        
// If we don't receive a layout we will set it by default as "plain".
        
if ( empty( $layout ) ) {
            
$layout 'plain';
        }
        
$valid_layouts = array( 'banner''plain''thumbnail' );
        if ( 
in_array$layout$valid_layoutstrue ) ) {
            
$this->set_prop'layout'$layout );
        } else {
            
$this->error'admin_note_invalid_data'__'The admin note layout has a wrong prop value.''kkart' ) );
        }
    }

    
/**
     * Set note image.
     *
     * @param string $image Note image.
     */
    
public function set_image$image ) {
        
$this->set_prop'image'$image );
    }

    
/**
     * Set note deleted status. NULL is not allowed
     *
     * @param bool $is_deleted Note deleted status.
     */
    
public function set_is_deleted$is_deleted ) {
        
$this->set_prop'is_deleted'$is_deleted );
    }

    
/**
     * Add an action to the note
     *
     * @param string  $name           Action name (not presented to user).
     * @param string  $label          Action label (presented as button label).
     * @param string  $url            Action URL, if navigation needed. Optional.
     * @param string  $status         Status to transition parent Note to upon click. Defaults to 'actioned'.
     * @param boolean $primary        Whether or not this is the primary action. Defaults to false.
     * @param string  $actioned_text The label to display after the note has been actioned but before it is dismissed in the UI.
     */
    
public function add_action(
        
$name,
        
$label,
        
$url '',
        
$status self::E_KKART_ADMIN_NOTE_ACTIONED,
        
$primary false,
        
$actioned_text ''
    
) {
        
$name          kkart_clean$name );
        
$label         kkart_clean$label );
        
$query         esc_url_raw$url );
        
$status        kkart_clean$status );
        
$primary       = (bool) $primary;
        
$actioned_text kkart_clean$actioned_text );

        if ( empty( 
$name ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note action name prop cannot be empty.''kkart' ) );
        }

        if ( empty( 
$label ) ) {
            
$this->error'admin_note_invalid_data'__'The admin note action label prop cannot be empty.''kkart' ) );
        }

        
$action = array(
            
'name'          => $name,
            
'label'         => $label,
            
'query'         => $query,
            
'status'        => $status,
            
'primary'       => $primary,
            
'actioned_text' => $actioned_text,
        );

        
$note_actions   $this->get_prop'actions''edit' );
        
$note_actions[] = (object) $action;
        
$this->set_prop'actions'$note_actions );
    }

    
/**
     * Set actions on a note.
     *
     * @param array $actions Note actions.
     */
    
public function set_actions$actions ) {
        
$this->set_prop'actions'$actions );
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.1001 ]--