PATH:
home
/
sparklp6
/
public_html
/
website_356c8563
/
wp-content
/
plugins
/
seraphinite-accelerator-ext
/
Cmn
<?php namespace seraph_accel; if( !defined( 'ABSPATH' ) ) exit; class Db { static function GetTblPrefix( $name = '', $blog = false ) { global $wpdb; return( ( $blog ? $wpdb -> prefix : $wpdb -> base_prefix ) . $name ); } static function GetSysTbl( $id ) { global $wpdb; return( $wpdb -> { $id } ); } } class DbTbl { static function CreateUpdate( $id, $cols ) { global $wpdb; $charset_collate = $wpdb -> get_charset_collate(); $queryCols = ''; $querySuffix = ''; foreach( $cols as $colId => $col ) { $queryColsAttr = '' . $colId . ' ' . strtolower( $col[ 'type' ] ); $colAttrs = ($col[ 'attrs' ]??null); if( $colAttrs ) { foreach( $colAttrs as $colAttr ) { $querySuffixAttr = null; switch( $colAttr ) { case 'PRIMARY KEY': $querySuffixAttr = 'PRIMARY KEY (' . $colId . ')'; break; case 'KEY': case 'INDEX': $querySuffixAttr = 'KEY ' . $colId . ' (' . $colId . ')'; break; default: $queryColsAttr .= ' ' . $colAttr; break; } if( $querySuffixAttr ) self::_AddCommaArg( $querySuffix, $querySuffixAttr, "\n" ); } } self::_AddCommaArg( $queryCols, $queryColsAttr, "\n" ); } $query = 'CREATE TABLE ' . $id . ' (' . "\n" . $queryCols; self::_AddCommaArg( $query, $querySuffix, "\n" ); $query .= "\n" . ') ' . $charset_collate . ';'; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $suppress = $wpdb -> suppress_errors(); dbDelta( $query ); $wpdb -> suppress_errors( $suppress ); } static function Delete( $id ) { global $wpdb; $suppress = $wpdb -> suppress_errors(); $res = $wpdb -> query( 'DROP TABLE ' . $id . '' ); $wpdb -> suppress_errors( $suppress ); return( $res ); } static function QueryId( $id ) { return( '`' . str_replace( '.', '`.`', $id ) . '`' ); } static private function _QueryLimit( $limit ) { $sql = ''; if( $limit ) $sql = ' LIMIT ' . ( is_array( $limit ) ? implode( ',', $limit ) : $limit ); return( $sql ); } static private function _QueryOrder( $order ) { $sql = ''; if( $order ) { $orderArgs = array(); foreach( $order as $orderCol => $orderColDir ) $orderArgs[] = DbTbl::QueryId( $orderCol ) . ' ' . $orderColDir; if( $orderArgs ) { $orderArgs = implode( ',', $orderArgs ); $sql .= ' ORDER BY ' . $orderArgs; } } return( $sql ); } static private function _QueryGroup( $group ) { $sql = ''; if( $group ) { $group = implode( ',', $group ); $sql .= ' GROUP BY ' . DbTbl::QueryId( $group ); } return( $sql ); } static function Query( $sql, $limit = null, $order = null ) { global $wpdb; $sql .= self::_QueryOrder( $order ); $sql .= self::_QueryLimit( $limit ); return( $wpdb -> query( $sql ) ); } static private function _QueryCond( &$conditions, &$values, &$where, &$prms ) { if( $where && ( $where = self::_process_fields( $where, self::_GetFormat( $where ) ) ) === false ) return( false ); $conditions = array(); $values = array(); if( $where ) { foreach( $where as $field => $value ) { if( is_null( $value[ 'value' ] ) ) { $conditions[] = DbTbl::QueryId( $field ) . ' IS NULL'; continue; } if( is_array( $value[ 'value' ] ) ) { $condition = ''; foreach( $value[ 'value' ] as $v ) { if( $condition ) $condition .= ','; $condition .= $value[ 'format' ]; $values[] = $v; } $conditions[] = DbTbl::QueryId( $field ) . ' IN (' . $condition . ')'; continue; } $conditions[] = DbTbl::QueryId( $field ) . ' = ' . $value[ 'format' ]; $values[] = $value[ 'value' ]; } } if( $extraWhere = ($prms[ 'extraWhere' ]??null) ) { if( !is_array( $extraWhere ) ) $extraWhere = array( $extraWhere ); $conditions = array_merge( $conditions, array_map( function( $e ) { return( str_replace( '%', '%%', $e ) ); }, $extraWhere ) ); } return( true ); } static function GetRowsEx( $sqlFrom, $cols = null, $limit = null, $where = null, $order = null, $output = ARRAY_A, $prms = array() ) { global $wpdb; if( !self::_QueryCond( $conditions, $values, $where, $prms ) ) return( false ); $fields = array(); if( is_array( $cols ) ) { foreach( $cols as $field ) $fields[] = DbTbl::QueryId( $field ); } else $fields[] = '*'; $fields = implode( ',', $fields ); if( ($prms[ 'distinct' ]??null) ) $fields = 'DISTINCT(' . $fields . ')'; if( ($prms[ 'count' ]??null) ) $fields = 'COUNT(' . $fields . ')'; $sql = 'SELECT ' . $fields . ' FROM ' . $sqlFrom; if( $conditions ) $sql .= ' WHERE ' . implode( ' AND ', $conditions ); $sql .= self::_QueryGroup( ($prms[ 'group' ]??null) ); $sql .= self::_QueryOrder( $order ); $sql .= self::_QueryLimit( $limit ); $suppress = $wpdb -> suppress_errors(); $res = $wpdb -> get_results( $values ? $wpdb -> prepare( $sql, $values ) : $sql, $output ); $wpdb -> suppress_errors( $suppress ); return( ( $wpdb -> last_error || !is_array( $res ) ) ? false : $res ); } static function GetRows( $id, $cols = null, $limit = null, $where = null, $order = null, $output = ARRAY_A, $prms = array() ) { return( DbTbl::GetRowsEx( DbTbl::QueryId( $id ), $cols, $limit, $where, $order, $output, $prms ) ); } static function GetRow( $id, $cols = null, $where = null, $output = ARRAY_A, $prms = array(), $iRow = 0, $order = null ) { $res = DbTbl::GetRows( $id, $cols, $iRow + 1, $where, $order, $output, $prms ); return( is_array( $res ) ? ($res[ $iRow ]??null) : false ); } static function InsertRow( $id, $data, &$idRow = null ) { global $wpdb; $suppress = $wpdb -> suppress_errors(); try { $res = $wpdb -> insert( $id, $data, self::_GetFormat( $data ) ); } catch( \Exception $e ) { $res = false; } $wpdb -> suppress_errors( $suppress ); $idRow = $wpdb -> insert_id; return( $res ); } static function UpdateRows( $id, $data, $where ) { global $wpdb; $suppress = $wpdb -> suppress_errors(); $res = $wpdb -> update( $id, $data, $where, self::_GetFormat( $data ), self::_GetFormat( $where ) ); $wpdb -> suppress_errors( $suppress ); return( $res ); } static function InsertUpdateRow( $id, $key, $data, $dataEx ) { global $wpdb; { $key = self::_process_fields( $key, self::_GetFormat( $key ) ); if( false === $key ) return( false ); } { $data = self::_process_fields( $data, self::_GetFormat( $data ) ); if( false === $data ) return( false ); } { $dataEx = self::_process_fields( $dataEx, self::_GetFormat( $dataEx ) ); if( false === $dataEx ) return( false ); } $fields = array(); $formats = array(); $fieldsUpdate = array(); $values = array(); foreach( $key as $field => $value ) { $fields[] = $field; $formats[] = $value[ 'format' ]; $values[] = $value[ 'value' ]; } foreach( $data as $field => $value ) { $fields[] = $field; $formats[] = $value[ 'format' ]; $values[] = $value[ 'value' ]; } foreach( $dataEx as $field => $value ) { $fields[] = $field; $formats[] = $value[ 'format' ]; $values[] = $value[ 'value' ]; } foreach( $dataEx as $field => $value ) { $fieldsUpdate[] = "`$field` = " . $value[ 'format' ]; $values[] = $value[ 'value' ]; } $fields = '`' . implode( '`, `', $fields ) . '`'; $formats = implode( ', ', $formats ); $fieldsUpdate = implode( ', ', $fieldsUpdate ); $sql = "INSERT INTO `$id` ($fields) VALUES ($formats) ON DUPLICATE KEY UPDATE $fieldsUpdate"; $suppress = $wpdb -> suppress_errors(); try { $res = $wpdb -> query( $wpdb -> prepare( $sql, $values ) ); } catch( \Exception $e ) { $res = false; } $wpdb -> suppress_errors( $suppress ); return( $res ); } static function DeleteRows( $id, $where = null, $prms = array() ) { global $wpdb; if( !self::_QueryCond( $conditions, $values, $where, $prms ) ) return( false ); $sql = 'DELETE FROM ' . DbTbl::QueryId( $id ); if( $conditions ) $sql .= ' WHERE ' . implode( ' AND ', $conditions ); $suppress = $wpdb -> suppress_errors(); $res = $wpdb -> query( $values ? $wpdb -> prepare( $sql, $values ) : $sql ); $wpdb -> suppress_errors( $suppress ); return( ( $wpdb -> last_error || !is_int( $res ) ) ? false : $res ); } static function GetCountFromRowsResult( $res, $defVal = 0 ) { return( $res ? absint( Gen::ArrGetByPos( $res[ 0 ], 0 ) ) : $defVal ); } private static function _AddCommaArg( &$str, $arg, $commaSuffix = '' ) { if( empty( $arg ) ) return; if( !empty( $str ) ) $str .= ',' . $commaSuffix; $str .= $arg; } protected static function _GetFormat( $data ) { $formats = array(); foreach( $data as $field => $value ) { $fmt = '%s'; if( is_array( $value ) ) $value = ($value[ 0 ]??null); switch( gettype( $value ) ) { case 'integer': $fmt = '%d'; break; case 'boolean': $fmt = '%u'; break; case 'double': $fmt = '%f'; break; } $formats[] = $fmt; } return( $formats ); } protected static function _process_fields( $data, $format ) { global $wpdb; $formats = ( array )$format; $original_formats = $formats; foreach( $data as $field => $value ) { $value = array( 'value' => $value, 'format' => '%s', ); if ( ! empty( $format ) ) { $value['format'] = array_shift( $formats ); if ( ! $value['format'] ) { $value['format'] = reset( $original_formats ); } } elseif ( isset( $wpdb->field_types[ $field ] ) ) { $value['format'] = $wpdb->field_types[ $field ]; } $data[ $field ] = $value; } return( $data ); } } class DbTran { const IsolLvl_Def = null; const IsolLvl_RepRead = 'REPEATABLE READ'; const IsolLvl_ReadComm = 'READ COMMITTED'; const IsolLvl_ReadUncomm = 'READ UNCOMMITTED'; const IsolLvl_Ser = 'SERIALIZABLE'; function __destruct() { $this -> Close(); } function Open( $isolLvl = self::IsolLvl_Def ) { global $wpdb; if( $this -> _active ) return( true ); $res = true; if( $isolLvl ) $res = $wpdb -> query( 'SET TRANSACTION ISOLATION LEVEL ' . $isolLvl ); if( $res !== false ) $res = $wpdb -> query( 'START TRANSACTION' ); if( $res !== false ) $this -> _active = true; return( $res ); } function Close( $commit = false ) { global $wpdb; if( !$this -> _active ) return( true ); $res = $wpdb -> query( $commit ? 'COMMIT' : 'ROLLBACK' ); if( $res !== false ) $this -> _active = false; return( $res ); } private $_active = false; }
[-] Ui.php
[edit]
[-] Lic.php
[edit]
[-] Cmn.js
[edit]
[-] LicCli.php
[edit]
[-] Db.php
[edit]
[-] .htaccess
[edit]
[-] AdminUi.css
[edit]
[-] AdminUi.js
[edit]
[-] Fs.php
[edit]
[-] PluginExt.php
[edit]
[-] Img.php
[edit]
[-] Plugin.php
[edit]
[-] Gen.js
[edit]
[+]
Ext
[-] Ui.js
[edit]
[-] Net.js
[edit]
[+]
..