Sindbad~EG File Manager
<?php
/**
* Model class <i>SIB_Forms_Lang</i> represents forms language
*
* @package SIB_Model
*/
if ( ! class_exists( 'SIB_Forms_Lang' ) ) {
/**
* Class SIB_Forms_Lang
*/
class SIB_Forms_Lang {
/**
* Tab table name
*/
const TABLE_NAME = 'sib_model_lang';
/** Create Table */
public static function createTable() {
global $wpdb;
// create list table.
$creation_query =
'CREATE TABLE IF NOT EXISTS ' . $wpdb->prefix . self::TABLE_NAME . ' (
`id` int(20) NOT NULL AUTO_INCREMENT,
`frmID` int(20) NOT NULL DEFAULT -1,
`pID` int(20) NOT NULL DEFAULT -1,
`lang` varchar(120),
PRIMARY KEY (`id`)
);';
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$wpdb->query($creation_query);
}
/**
* Remove table
*/
public static function removeTable() {
global $wpdb;
$query = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . self::TABLE_NAME . ';';
$wpdb->query( $query ); // db call ok; no-cache ok.
}
/**
* Get form ID by pid and language.
*
* @param int $pID - parent form ID.
* @param string $lang - language.
* @return null
*/
public static function get_form_ID( $pID, $lang ) {
global $wpdb;
$query = "SHOW TABLES LIKE '" . $wpdb->prefix . self::TABLE_NAME . "'; ";
if ( $wpdb->get_var( $query ) == $wpdb->prefix . self::TABLE_NAME ) {
$query = $wpdb->prepare(
'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' WHERE pID = %d AND lang= %s',
array(
esc_sql($pID),
esc_sql($lang)
)
);
$results = $wpdb->get_row( $query ); // db call ok; no-cache ok.
if ( ! empty( $results ) ) {
return $results->frmID;
} else {
return null;
}
} else {
return null;
}
}
/**
* Get form language by form id and parent id.
*
* @param int $frmID - form ID.
* @param int $pID - parent form ID.
* @return null
*/
public static function get_lang( $frmID, $pID ) {
global $wpdb;
$query = "SHOW TABLES LIKE '" . $wpdb->prefix . self::TABLE_NAME . "'; ";
if ( $wpdb->get_var( $query ) == $wpdb->prefix . self::TABLE_NAME ) {
$sql = $wpdb->prepare(
'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' WHERE frmID = %d AND pID= %d',
array(
esc_sql($frmID),
esc_sql($pID)
)
);
$results = $wpdb->get_row( $sql ); // db call ok; no-cache ok.
if ( ! empty( $results ) ) {
return $results->lang;
} else {
return null;
}
} else {
return null;
}
}
/**
* Add form
*
* @param int $frmID - form ID.
* @param int $pid - parent form ID.
* @param string $lang - language.
* @return null|string
*/
public static function add_form_ID( $frmID, $pid, $lang ) {
// insert.
global $wpdb;
$query = $wpdb->prepare(
'INSERT INTO ' . $wpdb->prefix . self::TABLE_NAME . ' (frmID,pID,lang) VALUES (%d, %d, %s)',
array(
esc_sql($frmID),
esc_sql($pid),
esc_sql($lang)
)
);
$wpdb->query( $query ); // db call ok; no-cache ok.
$index = $wpdb->get_var( 'SELECT LAST_INSERT_ID();' ); // db call ok; no-cache ok.
return $index;
}
/**
* Check if origin form or translated form
*
* @param int $frmID - form ID.
* @return bool
*/
public static function check_form_trans( $frmID ) {
global $wpdb;
$query = "SHOW TABLES LIKE '" . $wpdb->prefix . self::TABLE_NAME . "'; ";
if ( $wpdb->get_var( $query ) == $wpdb->prefix . self::TABLE_NAME ) {
$sql = $wpdb->prepare(
'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' WHERE frmID = %d',
array(esc_sql($frmID))
);
$results = $wpdb->get_row( $sql ); // db call ok; no-cache ok.
if ( ! empty( $results ) ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* Remove forms
*
* @param int $pID - parent form ID.
*/
public static function remove_trans( $pID ) {
global $wpdb;
$query = "SHOW TABLES LIKE '" . $wpdb->prefix . self::TABLE_NAME . "'; ";
if ( $wpdb->get_var( $query ) == $wpdb->prefix . self::TABLE_NAME ) {
$query_forms = $wpdb->prepare(
'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' WHERE pID= %d',
array(esc_sql($pID))
);
$trans = $wpdb->get_results( $query_forms ); // db call ok; no-cache ok.
if ( $trans ) {
foreach ( $trans as $tran ) {
SIB_Forms::deleteForm( $tran->frmID );
}
}
$wpdb->delete(
$wpdb->prefix . self::TABLE_NAME,
array(
'pID' => $pID,
)
);
}
}
/**
* Remove all translated forms
*/
public static function remove_all_trans() {
global $wpdb;
$query = "SHOW TABLES LIKE '" . $wpdb->prefix . self::TABLE_NAME . "'; ";
if ( $wpdb->get_var( $query ) == $wpdb->prefix . self::TABLE_NAME ) {
$wpdb->query( 'TRUNCATE TABLE ' . $wpdb->prefix . self::TABLE_NAME );
}
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists