Файловый менеджер - Редактировать - /home/admin/domains/octawebtools.com/public_html/wp-content/plugins/emoji-picker/includes/database.php
�азад
<?php if (!defined('ABSPATH')) { exit; } class Emoji_Picker_Database { public static function create_tables() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); $table_name = $wpdb->prefix . 'emoji_picker'; $usage_table = $wpdb->prefix . 'emoji_usage'; $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, emoji_char varchar(20) NOT NULL, emoji_name varchar(255) NOT NULL, category varchar(100) NOT NULL, emoji_group varchar(100) NOT NULL, sub_group varchar(100) NOT NULL, codepoints varchar(50) NOT NULL, date_added datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id), KEY category (category), KEY emoji_group (emoji_group), KEY sub_group (sub_group) ) $charset_collate;"; $usage_sql = "CREATE TABLE $usage_table ( id mediumint(9) NOT NULL AUTO_INCREMENT, emoji_id mediumint(9) NOT NULL, usage_count int(11) DEFAULT 0 NOT NULL, last_used datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id), KEY emoji_id (emoji_id) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); dbDelta($usage_sql); } public static function insert_emoji($emoji_data) { global $wpdb; $table_name = $wpdb->prefix . 'emoji_picker'; $wpdb->insert( $table_name, array( 'emoji_char' => $emoji_data['char'], 'emoji_name' => $emoji_data['name'], 'category' => $emoji_data['category'], 'emoji_group' => $emoji_data['group'], 'sub_group' => $emoji_data['sub_group'], 'codepoints' => $emoji_data['codepoints'] ) ); return $wpdb->insert_id; } public static function get_emojis($args = array()) { global $wpdb; $table_name = $wpdb->prefix . 'emoji_picker'; $usage_table = $wpdb->prefix . 'emoji_usage'; $defaults = array( 'search' => '', 'category' => '', 'group' => '', 'sub_group' => '', 'limit' => 0, 'offset' => 0, 'orderby' => 'id', 'order' => 'ASC', 'popular' => false ); $args = wp_parse_args($args, $defaults); $where = array(); $join = ''; $orderby = ''; if ($args['search']) { $where[] = $wpdb->prepare("(emoji_name LIKE %s OR emoji_char LIKE %s)", '%' . $wpdb->esc_like($args['search']) . '%', '%' . $wpdb->esc_like($args['search']) . '%'); } if ($args['category']) { $where[] = $wpdb->prepare("category = %s", $args['category']); } if ($args['group']) { $where[] = $wpdb->prepare("emoji_group = %s", $args['group']); } if ($args['sub_group']) { $where[] = $wpdb->prepare("sub_group = %s", $args['sub_group']); } if ($args['popular']) { $join = "LEFT JOIN $usage_table u ON e.id = u.emoji_id"; $orderby = "ORDER BY u.usage_count DESC, u.last_used DESC"; } else { $orderby = "ORDER BY e.{$args['orderby']} {$args['order']}"; } $where_clause = $where ? 'WHERE ' . implode(' AND ', $where) : ''; $limit_clause = ''; if ($args['limit']) { $limit_clause = $wpdb->prepare("LIMIT %d, %d", $args['offset'], $args['limit']); } $query = "SELECT e.* FROM $table_name e $join $where_clause $orderby $limit_clause"; return $wpdb->get_results($query); } public static function get_categories() { global $wpdb; $table_name = $wpdb->prefix . 'emoji_picker'; return array( 'groups' => $wpdb->get_col("SELECT DISTINCT emoji_group FROM $table_name ORDER BY emoji_group ASC"), 'sub_groups' => $wpdb->get_col("SELECT DISTINCT sub_group FROM $table_name ORDER BY sub_group ASC") ); } public static function record_emoji_usage($emoji_id) { global $wpdb; $table_name = $wpdb->prefix . 'emoji_usage'; $existing = $wpdb->get_row($wpdb->prepare( "SELECT * FROM $table_name WHERE emoji_id = %d", $emoji_id )); if ($existing) { $wpdb->update( $table_name, array( 'usage_count' => $existing->usage_count + 1, 'last_used' => current_time('mysql') ), array('id' => $existing->id) ); } else { $wpdb->insert( $table_name, array( 'emoji_id' => $emoji_id, 'usage_count' => 1 ) ); } } public static function import_from_csv($file_path) { if (!file_exists($file_path)) { return new WP_Error('file_not_found', __('CSV file not found.', 'emoji-picker')); } $handle = fopen($file_path, 'r'); if (!$handle) { return new WP_Error('file_open_error', __('Could not open CSV file.', 'emoji-picker')); } $imported = 0; $skipped = 0; // Skip header row if exists fgetcsv($handle); while (($data = fgetcsv($handle)) !== false) { if (count($data) < 5) { $skipped++; continue; } $emoji_data = array( 'char' => $data[0], 'name' => $data[1], 'category' => $data[2], 'group' => $data[2], 'sub_group' => $data[3], 'codepoints' => $data[4] ); $result = self::insert_emoji($emoji_data); if ($result) { $imported++; } else { $skipped++; } } fclose($handle); return array( 'imported' => $imported, 'skipped' => $skipped ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.32 | Генераци� �траницы: 0 |
proxy
|
phpinfo
|
�а�тройка