function thb_duplicable_fields_save(THB_Field $field, $post_id = 0) { $fieldKey = $field->getName(); $uniqids = array(); thb_duplicable_remove($fieldKey, $post_id); $count = 0; if (isset($_POST[$fieldKey])) { if ($field->isComplex()) { $subKeys = $field->getSubkeys(); $count = count($_POST[$fieldKey][$subKeys[0]]); } else { $count = count($_POST[$fieldKey]); } } if ($count > 0) { for ($i = 0; $i < $count; $i++) { if ($field->isComplex()) { $value = array(); foreach ($field->getSubkeys() as $subKey) { if (isset($_POST[$fieldKey][$subKey][$i])) { $value[$subKey] = thb_text_toDB($_POST[$fieldKey][$subKey][$i]); } } // $value = serialize($value); } else { if (isset($_POST[$fieldKey][$i])) { $value = thb_text_toDB($_POST[$fieldKey][$i]); } } $meta['subtemplate'] = $_POST['subtemplate'][$fieldKey][$i]; if (!empty($_POST['uniqid'][$fieldKey][$i])) { $meta['uniqid'] = $_POST['uniqid'][$fieldKey][$i]; } else { $meta['uniqid'] = md5(time() . $i); } $uniqids[] = $meta['uniqid']; if (is_array($value)) { foreach ($value as $k => $v) { $value[$k] = thb_text_normalize($v); } } else { $value = thb_text_normalize($value); } thb_duplicable_add($fieldKey, array('ord' => $i, 'value' => $value, 'meta' => $meta, 'post_id' => $post_id)); } } return $uniqids; }
function thb_upload_custom_fonts() { $key = 'custom_font'; $upload_dir = wp_upload_dir(); $basedir = $upload_dir['basedir']; if (!empty($_POST)) { thb_duplicable_remove($key, 0); } if (!empty($_FILES) && isset($_FILES[$key])) { $count = count($_FILES[$key]['name']); for ($i = 0; $i < $count; $i++) { $uploaded_file = array('name' => $_FILES[$key]['name'][$i], 'type' => $_FILES[$key]['type'][$i], 'tmp_name' => $_FILES[$key]['tmp_name'][$i], 'error' => $_FILES[$key]['error'][$i], 'size' => $_FILES[$key]['size'][$i]); if ($uploaded_file['name'] != '') { $file = thb_upload($uploaded_file); if (file_exists($file['file']['file'])) { $archive_name = str_replace('-fontfacekit.zip', '', basename($uploaded_file['name'])); // if( !file_exists($basedir . '/fonts/' . $archive_name . '/stylesheet.css') ) { thb_unzip($file['file']['file'], $basedir . '/fonts/' . $archive_name . '/'); unlink($file['file']['file']); $stylesheet = @file_get_contents($basedir . '/fonts/' . $archive_name . '/stylesheet.css'); preg_match_all('|font-family:(.*)$|mi', $stylesheet, $families); preg_match_all('|font-weight:(.*)$|mi', $stylesheet, $weights); preg_match_all('|font-style:(.*)$|mi', $stylesheet, $styles); if (isset($families[1]) && !empty($families[1])) { $k = 0; foreach ($families[1] as $family) { $family = trim($family); $family = str_replace("'", "", $family); $family = str_replace(";", "", $family); // $_POST[$key]['css'][] = $family; // $_POST[$key]['folder'][] =$archive_name; $_POST[$key]['family'][] = $family; $_POST[$key]['css'][] = $family; $_POST[$key]['folder'][] = $archive_name; $var = array(); if (isset($weights[1]) && !empty($weights[1]) && isset($styles[1]) && !empty($styles[1])) { // for( $j=0; $j<count($weights[1]); $j++ ) { $w = $weights[1][$k]; $s = $styles[1][$k]; $w = trim($w); $w = str_replace("'", "", $w); $w = str_replace(";", "", $w); $s = trim($s); $s = str_replace("'", "", $s); $s = str_replace(";", "", $s); $v = $w . $s; if ($v == 'normalnormal') { $v = 'normal'; } $var[] = $v; // } } $_POST[$key]['variants'][] = $var; $k++; } } // } } } } } if (!empty($_POST) && isset($_POST[$key])) { $post_count = count($_POST[$key]['css']); $font = $_POST[$key]; for ($i = 0; $i < $post_count; $i++) { $meta = array('subtemplate' => ''); if (!empty($_POST['uniqid'][$i])) { $meta['uniqid'] = $_POST['uniqid'][$i]; } else { $meta['uniqid'] = md5(time() . $i); } $family = $_POST[$key]['family'][$i]; //$family_name . ': ' . implode(', ', $font['variants'][$i]); thb_duplicable_add($key, array('ord' => $i, 'value' => array('family' => $family, 'css' => $font['css'][$i], 'variants' => implode(',', $font['variants'][$i]), 'folder' => $font['folder'][$i]), 'meta' => $meta)); } } if (!empty($_POST)) { $result = thb_system_raise_success(__('All saved!', 'thb_text_domain')); thb_system_set_flashdata($result); } }