Basic integration of tabs UI on theme settings page
This commit is contained in:
@ -140,73 +140,6 @@ function save_key_points_meta_box($post_id) {
|
||||
}
|
||||
add_action('save_post', 'save_key_points_meta_box');
|
||||
|
||||
/* INSERT ICONS TO DB */
|
||||
// Function to load the JSON file and insert SVG data into the database
|
||||
function load_material_icons_into_db($jsonData) {
|
||||
// Step 2: Decode the JSON data into a PHP array
|
||||
$data = json_decode($jsonData, true);
|
||||
|
||||
// Check if JSON decoding was successful
|
||||
if ($data === null) {
|
||||
die("Error decoding the JSON data.");
|
||||
}
|
||||
|
||||
// Step 3: Create the table if it doesn't exist
|
||||
global $wpdb;
|
||||
$table_name = $wpdb->prefix . 'lcp_icons'; // Table name with WordPress prefix
|
||||
|
||||
// Create the table if it does not exist
|
||||
$sql = "
|
||||
CREATE TABLE IF NOT EXISTS $table_name (
|
||||
id VARCHAR(255) NOT NULL, -- Use the id from the JSON file
|
||||
set_name VARCHAR(255) NOT NULL,
|
||||
set_family VARCHAR(255) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
paths LONGTEXT NOT NULL,
|
||||
viewbox VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
";
|
||||
|
||||
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
||||
dbDelta($sql);
|
||||
|
||||
// Step 4: Insert data into the database
|
||||
foreach ($data as $iconSet) {
|
||||
// Extract values for the set_name and set_family from the top-level object
|
||||
$setName = sanitize_text_field($iconSet['name']);
|
||||
$setFamily = sanitize_text_field($iconSet['family']);
|
||||
|
||||
// Insert each SVG in the 'svgs' array
|
||||
if (isset($iconSet['svgs']) && is_array($iconSet['svgs'])) {
|
||||
foreach ($iconSet['svgs'] as $svg) {
|
||||
$name = sanitize_text_field($svg['name']);
|
||||
|
||||
// Unescape the paths field (HTML entities or Unicode escapes)
|
||||
$paths = html_entity_decode($svg['paths']); // Decode HTML entities (like " or &)
|
||||
$paths = stripslashes($paths); // Remove any additional escaping, such as slashes
|
||||
|
||||
$viewbox = sanitize_text_field($svg['viewBox']);
|
||||
$id = sanitize_text_field($svg['id']); // Use the id from the JSON object
|
||||
|
||||
// Prepare the data for insertion
|
||||
$data = array(
|
||||
'id' => $id, // Use the id from the JSON object
|
||||
'set_name' => $setName,
|
||||
'set_family' => $setFamily,
|
||||
'name' => $name,
|
||||
'paths' => $paths,
|
||||
'viewbox' => $viewbox,
|
||||
);
|
||||
|
||||
// Insert into the database
|
||||
$wpdb->insert($table_name, $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '<p>Icons have been imported into the database.</p>';
|
||||
}
|
||||
|
||||
|
||||
// Hook the function to the theme activation process
|
||||
|
||||
Reference in New Issue
Block a user