-
Notifications
You must be signed in to change notification settings - Fork 3
/
diccionari-multilingue.php
94 lines (72 loc) · 3.52 KB
/
diccionari-multilingue.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/**
* Template Name: Diccionari Multilingüe
*
* @package wp-softcatala
*/
$url_api = get_option( 'api_diccionari_multilingue' );
/* JS scripts */
wp_enqueue_script( 'sc-js-contacte', get_template_directory_uri() . '/static/js/contact_form.js', array('sc-js-main'), WP_SOFTCATALA_VERSION, true );
wp_enqueue_script( 'sc-js-typeahead', get_template_directory_uri() . '/static/js/typeahead.js', array('sc-js-main'), WP_SOFTCATALA_VERSION, true );
wp_enqueue_script( 'sc-js-multilingue', get_template_directory_uri() . '/static/js/multilingue.js', array('sc-js-typeahead'), WP_SOFTCATALA_VERSION, true );
wp_localize_script( 'sc-js-multilingue', 'scajax', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'autocomplete_url' => $url_api . 'autocomplete/'
));
$paraula = wp_kses( urldecode( get_query_var('paraula') ), array() );
$lletra = get_query_var('lletra');
$content_title = 'Diccionari multilingüe';
$title = '';
$description = '';
$canonical = '';
$timberPost = new TimberPost();
//Ads
$context_holder = array();
$context_holder['ads_container'] = true;
if( ! empty ( $paraula ) ) {
$lang = 'ca';
if ( get_query_var('llengua') ) {
$lang = urldecode( get_query_var('llengua') );
$context_holder['lang'] = $lang;
}
$multilingue = new SC_Multilingue();
$r = $multilingue->get_paraula( $paraula, $lang );
$canonical = $r->canonical;
$title = $r->title;
$content_title = $r->content_title;
$description = $r->description;
$context_holder['cerca_result'] = $r->html;
} else if ( ! empty ( $lletra ) ) {
if (strlen( $lletra ) == '1' ) {
$url = $url_api.'index/' . $lletra;
$api_response = json_decode( do_json_api_call($url) );
if ( $api_response ) {
$response['lletra'] = $lletra;
$response['result'] = $api_response;
$title = 'Diccionari multilingüe: paraules que comencen per ' . $lletra;
$content_title = 'Diccionari multilingüe. Lletra «' . $lletra . '»';
$canonical = '/diccionari-multilingue/lletra/' . $lletra . '/';
$context_holder['cerca_result'] = Timber::fetch('ajax/diccionaris-lletra.twig', array( 'url' => '/diccionari-multilingue/paraula', 'response' => $response));
} else {
throw_error('500', 'Error connecting to API server');
$context_holder['cerca_result'] = 'S\'ha produït un error en contactar amb el servidor. Proveu de nou.';
}
} else {
throw_error('404', 'No Results For This Search');
$context_holder['cerca_result'] = 'Esteu utilitzant la cerca per lletra. Heu cercat <strong>'. $lletra . '</strong>. La cerca només pot contenir una lletra';
}
}
$context_filterer = new SC_ContextFilterer( $context_holder );
$context_overrides = array( 'title' => $title, 'description' => $description, 'canonical' => $canonical );
$context = $context_filterer->get_filtered_context( $context_overrides, false );
$context['post'] = $timberPost;
$context['paraula'] = $paraula;
$context['lletra'] = $lletra;
$context['content_title'] = $content_title;
$context['credits'] = $timberPost->get_field( 'credits' );
$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');
Timber::render( array( 'diccionari-multilingue.twig' ), $context );