/** * Function to make the request to synonims dictionary server * * @return json response */ function sc_find_sinonim() { $service_name = 'Diccionari de sinònims'; if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], $_POST["action"])) { $result = 'S\'ha produït un error en el servidor. Proveu més tard'; throw_service_error($service_name, 'Error wp_nonce'); } else { $paraula = sanitize_text_field($_POST["paraula"]); $url_sinonims_server = get_option('api_diccionari_sinonims'); $url = $url_sinonims_server . urlencode($paraula); try { $sinonims_server = json_decode(do_json_api_call($url)); if ($sinonims_server != null && $sinonims_server != 'error' && count($sinonims_server->synsets) > 0) { $sinonims['paraula'] = $paraula; $sinonims['response'] = $sinonims_server->synsets; $result = Timber::fetch('ajax/sinonims-list.twig', array('sinonims' => $sinonims)); } else { if ($sinonims_server == 'error' || $sinonims_server == null) { throw_service_error($service_name); $result = 'S\'ha produït un error en el servidor. Proveu més tard'; } else { throw_error('404', 'No Results For This Search'); $result = 'La paraula que esteu cercant no es troba al diccionari.'; } } } catch (Exception $e) { throw_service_error($service_name); $result = 'S\'ha produït un error en el servidor. Proveu més tard'; } } $response = json_encode($result); die($response); }
$sinonims['response'] = $sinonims_server->synsets; $content_title = 'Diccionari de sinònims: «' . $paraula . '»'; $title = 'Diccionari de sinònims en català: «' . $paraula . '»'; $prefix_description = 'Sinònims de «' . $paraula . '» en català.'; $canonical = get_current_url(); $context_holder['sinonims_result'] = Timber::fetch('ajax/sinonims-list.twig', array('sinonims' => $sinonims)); } else { if ($sinonims_server == 'error') { throw_service_error($content_title); } else { throw_error('404', 'No Results For This Search'); $context_holder['sinonims_result'] = 'La paraula que esteu cercant no es troba al diccionari.'; } } } catch (Exception $e) { throw_service_error($content_title); } } $context_overrides = array('title' => $title, 'prefix_description' => $prefix_description, 'canonical' => $canonical); $context_filterer = new SC_ContextFilterer($context_holder); $context = $context_filterer->get_filtered_context($context_overrides, false); $context['post'] = $post; $context['paraula'] = $paraula; $context['content_title'] = $content_title; $context['links'] = $post->get_field('link'); $context['credits'] = $post->get_field('credit'); $context['sidebar_top'] = Timber::get_widgets('sidebar_top_recursos'); $context['sidebar_elements'] = array('static/ajudeu.twig', 'static/dubte_forum.twig', 'baixades.twig', 'links.twig'); $context['sidebar_bottom'] = Timber::get_widgets('sidebar_bottom_recursos'); //Contact Form $context['contact']['to_email'] = get_option('email_recursos');