query_vars; $n = ! empty( $q['exact'] ) ? '' : '%'; $searchand = ''; $query = array(); if (!isset($q['s'])) { $q['s'] = ''; } $term = esc_sql( $wpdb->esc_like( $q['s'] ) ); $query['title'] = "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')"; $query['content'] = "{$searchand}($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')"; $query['excerpt'] = "{$searchand}($wpdb->posts.post_excerpt LIKE '{$n}{$term}{$n}')"; if ( isset($wp_query->query_vars['ASFB_deny_title']) && $wp_query->query_vars['ASFB_deny_title'] == 1 ) { unset($query['title']); } if ( isset($wp_query->query_vars['ASFB_deny_content']) && $wp_query->query_vars['ASFB_deny_content'] == 1 ) { unset($query['content']); } if ( isset($wp_query->query_vars['ASFB_deny_excerpt']) && $wp_query->query_vars['ASFB_deny_excerpt'] == 1 ) { unset($query['excerpt']); } $search = implode('OR', $query); if (!empty($search)) { $search = " AND ({$search}) "; if (!is_user_logged_in()) $search .= " AND ($wpdb->posts.post_password = '') "; } return $search; } public function cs_save_post($options) { global $post; global $ASFB_config; $fileName = $post->ID; $str = $options['styling_result_column_template']; $str = str_replace('\"', '"', $str); $str = str_replace("\'", "'", $str); if (empty($str)) { $str = __('Template not found', 'advanced_search_form_builder'); } if ( !is_dir($ASFB_config['cache']['dir'] . 'template') ) { @mkdir($ASFB_config['cache']['dir'] . 'template'); } $path = $ASFB_config['cache']['dir'] . 'template/'. $fileName . '.php'; $fp = fopen($path,"wb"); fwrite($fp,$str); fclose($fp); $options['path_template'] = $path; if (count($options['cf']) > 3) { $options['cf_relation'] = 'AND'; } return $options; } public function cs_validate_save($options) { echo '
';
global $ASFB_config;
foreach ($ASFB_config['form_filter']['type_input'] as $key => $item) {
if ( isset($options[$key . '_styling_item']) ) {
$pathFileScss = ASFB_PATH . 'public/css/'. $key .'.less';
$options[$key . '_styling_item'] = $this->buildCssStyle($options[ $key . '_styling_item'], $pathFileScss, $key);
}
}
return $options;
}
private function buildCssStyle($typeData, $pathFileScss, $type) {
$variableCss = file_get_contents(ASFB_PATH . 'public/css/variable.json');
$variableCss = json_decode($variableCss, true);
$text_styling_new = array();
if (is_array($typeData) && count($typeData) > 0) {
foreach ($typeData as $item) {
if( isset($item['text_label']) && trim($item['text_label']) != '' ) {
$fileName = sanitize_title(str_replace(' ', '', $item['text_label']));
$styling_group = array();
if(is_array($variableCss[$type]['data']) && count($variableCss[$type]['data']) > 0) {
foreach ($variableCss[$type]['data'] as $_item) {
if (
isset($_item['name'])
&&
isset($_item['default'])
) {
if (isset($_item['name']) && isset($item['styling_group'][$_item['name']])) {
$styling_group[$_item['name']] = $item['styling_group'][$_item['name']];
} else {
$styling_group[$_item['name']] = $_item['default'];
}
}
}
}
$text_styling_new[] = array(
'text_label' => $fileName,
'styling_group' => $styling_group,
'css_file' => $this->saveCss($fileName, $pathFileScss, $styling_group, $type)
);
}
}
}
return $text_styling_new;
}
private function saveCss($fileName, $pathFileScss, $variable, $type) {
global $ASFB_config;
require_once ASFB_PATH . 'vendor/lessphp/lessc.inc.php';
$less = new lessc;
$classStyle = $type . '_' . $fileName;
$pathFileCss = $ASFB_config['cache']['dir'] . 'css/' . $classStyle . '.css';
$varScss = '';
if (count($variable) > 0) {
foreach ($variable as $_key => $_item) {
if (!empty($_item)) {
$varScss .= '@' . $_key . ': ' . $_item . ';' ;
}
}
$varScss .= '@classWrap: ' . $classStyle . ';';
$varScss .= '@themeSelect: ' . $classStyle . ';';
$_contentScss = file_get_contents($pathFileScss);
$_contentScss = explode('//variable//', $_contentScss);
if (!isset($_contentScss[1])) {
$_contentScss[1] = '';
}
if($type != 'select') {
$varScss = $_contentScss[0] . $varScss . '.asfbFormWrapper { ' . $_contentScss[1] . ' }';
} else {
$varScss = $_contentScss[0] . $varScss . $_contentScss[1];
}
$cssCompilered = $less->compile($varScss);
$cssCompilered = str_replace($classStyle, '.' . $classStyle, $cssCompilered);
if(!is_dir($ASFB_config['cache']['dir'] . 'css')) {
@mkdir($ASFB_config['cache']['dir'] . 'css');
}
$fp = @fopen($pathFileCss, 'wb');
if (!$fp) {
$_SESSION['asfb_error'][$classStyle] = __('[ASFB] failed to open stream: Permission denied file '. $pathFileCss .'.css .', 'advanced_search_form_builder');
}
fwrite($fp, $cssCompilered);
fclose($fp);
return array(
'url' => plugin_dir_url($pathFileCss). $classStyle . '.css',
'class' => $classStyle
);
}
}
}