Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function add_search_to_wp_menu ( $items, $args ) {
- if( 'primary' === $args -> theme_location ) {
- $items .= '<li class="menu-item menu-item-search">';
- $items .= '<form method="get" class="menu-search-form" action="/search">
- <p>
- <i class="fa fa-search" aria-hidden="true"></i>
- <input class="text_input" type="text" value="" name="cs" id="cs" />
- </p></form>';
- $items .= '</li>';
- }
- return $items;
- }
- add_filter('wp_nav_menu_items','add_search_to_wp_menu',10,2);
- function get_session_speakers($event_id){
- global $wpdb;
- $query = $wpdb->prepare( "SELECT * FROM in5_ci_sessions AS t1, in5_ci_speakers AS t2, in5_ci_events AS t3 WHERE t1.event_session_event_id = %d AND t1.event_session_speaker_id = t2.speaker_id AND t1.event_session_event_id = t3.event_id", $event_id );
- $speakers = $wpdb->get_results($query, ARRAY_A);
- return $speakers;
- }
- function get_speaker_company($company_id) {
- global $wpdb;
- $query = $wpdb->prepare( "SELECT * FROM in5_ci_companies WHERE company_id = %d", $company_id );
- $company = $wpdb->get_results($query, ARRAY_A);
- return $company[0]['company_name'];
- }
- function get_event_id_from_speaker_id($speaker_id) {
- global $wpdb;
- $query = $wpdb->prepare( "SELECT event_session_event_id FROM in5_ci_sessions WHERE event_session_speaker_id = %d", $speaker_id );
- $event = $wpdb->get_results($query, ARRAY_A);
- return $event[0]['event_session_event_id'];
- }
- function build_sorter($key) {
- return function ($a, $b) use ($key) {
- return strnatcmp($a[$key], $b[$key]);
- };
- }
- function get_mentor($mentor_id) {
- global $wpdb;
- $query = $wpdb->prepare( "SELECT * FROM in5_ci_mentors WHERE mentor_id = %d", $mentor_id );
- $mentor = $wpdb->get_results($query, ARRAY_A);
- return $mentor[0];
- }
- function wp_insert_rows($row_arrays = array(), $wp_table_name, $update=false, $primary_key=null) {
- global $wpdb;
- $wp_table_name = esc_sql($wp_table_name);
- // Setup arrays for Actual Values, and Placeholders
- $values = array();
- $place_holders = array();
- $query = "";
- $query_columns = "";
- $query .= "INSERT INTO `{$wp_table_name}` (";
- foreach($row_arrays as $count => $row_array)
- {
- foreach($row_array as $key => $value) {
- if($count == 0) {
- if($query_columns) {
- $query_columns .= ", ".$key."";
- } else {
- $query_columns .= "".$key."";
- }
- }
- $values[] = $value;
- if(is_numeric($value)) {
- if(isset($place_holders[$count])) {
- $place_holders[$count] .= ", '%d'";
- } else {
- $place_holders[$count] = "( '%d'";
- }
- } else {
- if(isset($place_holders[$count])) {
- $place_holders[$count] .= ", '%s'";
- } else {
- $place_holders[$count] = "( '%s'";
- }
- }
- }
- // mind closing the GAP
- $place_holders[$count] .= ")";
- }
- $query .= " $query_columns ) VALUES ";
- $query .= implode(', ', $place_holders);
- if ($update)
- {
- $update=" ON DUPLICATE KEY UPDATE $primary_key=VALUES( $primary_key ),";
- $cnt=0;
- foreach($row_arrays[0] as $key => $value)
- {
- if($cnt==0) {
- $update .= "$key=VALUES($key)";
- $cnt=1;
- } else {
- $update .= ", $key=VALUES($key)";
- }
- }
- $query .= $update;
- }
- $sql=$wpdb->prepare($query, $values);
- if($wpdb->query($sql)){
- return true;
- } else {
- return false;
- }
- }
- function record_custom_search_in_db($terms) {
- global $wpdb;
- $wpdb->insert('custom_search_queries', array( 'query' => $terms), array( '%s'));
- return;
- }
- function custom_search($terms) {
- $date = date('Y-m-d H:i:s');
- global $wpdb;
- //echo $terms;
- $sql_query_events = "SELECT * FROM in5_ci_events WHERE MATCH(event_name, event_location, event_description, key_discussion_points, target_audience, speakers_profile)
- AGAINST ('$terms' IN NATURAL LANGUAGE MODE) AND (`event_from` > '$date') AND (`event_status` = 1);";
- $sql_query_mentors = "SELECT * FROM in5_ci_mentors WHERE MATCH(mentor_name,company,job_position,profile,company_website,linkedin,expertise,expertise_other)
- AGAINST ('$terms' IN NATURAL LANGUAGE MODE) AND (`publish_to_in5`='Yes') AND (`status`='1');";
- $sql_query_posts = "SELECT * FROM $wpdb->posts WHERE (MATCH(post_title, post_content) AGAINST ('$terms' IN NATURAL LANGUAGE MODE)) AND (`post_type` = 'post' OR `post_type` = 'page');";
- $sql_query_speakers = "SELECT t1.speaker_id, t1.speaker_name, t1.speaker_title, t1.speaker_designation, t1.speaker_overview, t1.speaker_linkedin_url FROM in5_ci_speakers AS t1, in5_ci_sessions AS t2, in5_ci_events AS t3 WHERE t2.event_session_speaker_id = t1.speaker_id AND t2.event_session_event_id = t3.event_id AND t3.event_from > '$date' AND t3.event_status = 1 AND MATCH(speaker_name, speaker_title,speaker_designation,speaker_overview,speaker_linkedin_url) AGAINST ('$terms' IN NATURAL LANGUAGE MODE);";
- $sql_query_companies = "SELECT * FROM in5_ci_companies AS t1, in5_ci_speakers AS t2, in5_ci_events AS t3, in5_ci_sessions AS t4 WHERE t2.speaker_company_id = t1.company_id AND t4.event_session_event_id = t3.event_id AND t4.event_session_speaker_id = t2.speaker_id AND t3.event_from > '$date' AND t3.event_status = 1 AND MATCH(company_name, company_url,company_linkedin_url,company_address,company_description) AGAINST ('$terms' IN NATURAL LANGUAGE MODE);";
- $results_events = $wpdb->get_results($sql_query_events, ARRAY_A);
- $results_mentors = $wpdb->get_results($sql_query_mentors, ARRAY_A);
- $results_posts = $wpdb->get_results($sql_query_posts, ARRAY_A);
- $results_speakers = $wpdb->get_results($sql_query_speakers, ARRAY_A);
- $results_companies = $wpdb->get_results($sql_query_companies, ARRAY_A);
- $all_results = array(
- 'events' => $results_events,
- 'mentors' => $results_mentors,
- 'posts' => $results_posts,
- 'speakers' => $results_speakers,
- 'companies' => $results_companies
- );
- //print_r($all_results);
- $cleaned_results = array();
- $i = 0;
- foreach ($results_posts as $result) {
- $cleaned_results[$i]['title'] = $result['post_title'];
- $post_id = $result['ID'];
- $string = $result['post_content'];
- $pattern = '/\[(.*?)\]/';
- $replacement = '';
- $cleaned_content = strip_tags(preg_replace($pattern, $replacement, $string));
- $cleaned_results[$i]['content'] = $cleaned_content;
- if (empty(get_field('page_excerpt'))) {
- $cleaned_results[$i]['excerpt'] = wp_trim_words($cleaned_content);
- }
- else {
- $cleaned_results[$i]['excerpt'] = wp_trim_words(get_field('page_excerpt', $post_id));
- }
- $cleaned_results[$i]['id'] = $post_id;
- $cleaned_results[$i]['type'] = 'post';
- $cleaned_results[$i]['url'] = get_permalink($post_id);
- $i++;
- }
- foreach ($results_events as $result) {
- $cleaned_results[$i]['title'] = $result['event_name'];
- $cleaned_results[$i]['excerpt'] = wp_trim_words($result['event_description']);
- $cleaned_results[$i]['content'] = $result['event_description'] . ' ' . $result['event_location'] . ' ' . $result['event_from'] . ' ' . $result['event_till'] . ' ' .
- $result['key_discussion_points'] . ' ' . $result['target_audience'] . ' ' . $result['location_url'] . ' ' . $result['registration_url'];
- $cleaned_results[$i]['type'] = 'event';
- $cleaned_results[$i]['id'] = $result['event_id'];
- $id = $result['event_id'];
- $cleaned_results[$i]['url'] = get_home_url() . "/events-details?event_id=$id";
- $i++;
- }
- foreach ($results_mentors as $result) {
- $cleaned_results[$i]['title'] = $result['mentor_name'];
- $cleaned_results[$i]['excerpt'] = wp_trim_words($result['profile']);
- $cleaned_results[$i]['content'] = $result['profile'] . ' ' . $result['company'] . ' ' . $result['job_position'] . ' ' . $result['company_website'] . ' ' .
- $result['linkedin'] . ' ' . $result['target_audience'] . ' ' . $result['expertise'];
- $cleaned_results[$i]['type'] = 'mentor';
- $cleaned_results[$i]['id'] = $result['mentor_id'];
- $id = $result['mentor_id'];
- $cleaned_results[$i]['url'] = $url = get_home_url() . "/mentor-details?mentor_id=$id";
- $i++;
- }
- foreach ($results_speakers as $result) {
- $cleaned_results[$i]['title'] = $result['speaker_name'];
- $cleaned_results[$i]['excerpt'] = wp_trim_words($result['speaker_overview']);
- $cleaned_results[$i]['content'] = $result['speaker_overview'] . ' ' . $result['speaker_designation'] . ' ' . $result['speaker_title'] . ' ' . $result['speaker_linkedin_url'];
- $cleaned_results[$i]['type'] = 'speaker';
- $cleaned_results[$i]['id'] = $result['speaker_id'];
- $id = get_event_id_from_speaker_id($result['speaker_id']);
- $cleaned_results[$i]['url'] = $url = get_home_url() . "/events-details?event_id=$id";
- $i++;
- }
- foreach ($results_companies as $result) {
- $cleaned_results[$i]['title'] = $result['company_name'];
- $cleaned_results[$i]['excerpt'] = wp_trim_words($result['company_description']);
- $cleaned_results[$i]['content'] = $result['company_description'] . ' ' . $result['company_url'] . ' ' . $result['company_url'] . ' ' . $result['company_linkedin_url']
- . ' ' . $result['company_address'] . ' ' . $result['company_phone'];
- $cleaned_results[$i]['type'] = 'company';
- $id = $result['event_id'];
- $cleaned_results[$i]['id'] = $id;
- $cleaned_results[$i]['url'] = get_home_url() . "/events-details?event_id=$id";
- $i++;
- }
- $search_tmp_id = uniqid();
- foreach ($cleaned_results as $result) {
- $insert_array[] = array('title' => $result['title'], 'excerpt' => $result['excerpt'], 'item_id'=>$result['id'], 'type' => $result['type'],'content' => $result['content'], 'url' => $result['url'], 'search_id' => $search_tmp_id );
- }
- if (!empty($insert_array)) {
- wp_insert_rows($insert_array,'custom_search_queries_tmp');
- $sql_sort = "SELECT * FROM custom_search_queries_tmp WHERE (MATCH(title, content) AGAINST ('$terms' IN NATURAL LANGUAGE MODE)) AND search_id = '$search_tmp_id' ;";
- $sorted_cleaned_results = $wpdb->get_results($sql_sort, ARRAY_A);
- $wpdb->query("DELETE FROM custom_search_queries_tmp WHERE search_id = '$search_tmp_id' ;");
- }
- return $sorted_cleaned_results;
- }
- function checkRemoteFile($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL,$url);
- // don't download content
- curl_setopt($ch, CURLOPT_NOBODY, 1);
- curl_setopt($ch, CURLOPT_FAILONERROR, 1);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- if(curl_exec($ch)!==FALSE)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- function register_user_for_event($user_id, $event_id) {
- global $wpdb;
- $exists = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM `events_registration` WHERE ID = %d AND event_id = %d;", $user_id, $event_id) );
- if (!$exists) {
- $wpdb->insert('events_registration', array( 'ID' => $user_id, 'event_id' => $event_id), array( '%d', '%d' ));
- return 'registered';
- }
- else {
- return 'registered';
- }
- }
- function custom_events_search($terms) {
- $date = date('Y-m-d H:i:s');
- $terms = esc_sql(strip_tags($terms));
- global $wpdb;
- //echo $terms;
- $sql_query_events = "SELECT * FROM in5_ci_events WHERE ((event_name LIKE '%$terms%' ) OR (event_description LIKE '%$terms%')) AND (event_status = 1)
- AND (event_from > '$date');";
- $results_events = $wpdb->get_results($sql_query_events, ARRAY_A);
- $all_results = array(
- 'events' => $results_events,
- );
- //print_r($all_results);
- $cleaned_results = array();
- $i = 0;
- foreach ($results_events as $result) {
- $cleaned_results[$i]['title'] = $result['event_name'];
- $cleaned_results[$i]['excerpt'] = wp_trim_words($result['event_description']);
- $cleaned_results[$i]['content'] = $result['event_description'] . ' ' . $result['event_location'] . ' ' . $result['event_from'] . ' ' . $result['event_till'] . ' ' .
- $result['key_discussion_points'] . ' ' . $result['target_audience'] . ' ' . $result['location_url'] . ' ' . $result['registration_url'];
- $cleaned_results[$i]['type'] = 'event';
- $cleaned_results[$i]['id'] = $result['event_id'];
- $id = $result['event_id'];
- $cleaned_results[$i]['url'] = $id;
- $i++;
- }
- $search_tmp_id = uniqid();
- foreach ($cleaned_results as $result) {
- $insert_array[] = array('title' => $result['title'], 'excerpt' => $result['excerpt'], 'content' => $result['content'], 'url' => $result['url'], 'search_id' => $search_tmp_id );
- }
- if (!empty($insert_array)) {
- wp_insert_rows($insert_array,'custom_search_queries_tmp');
- $sql_sort = "SELECT * FROM custom_search_queries_tmp WHERE (MATCH(title, content) AGAINST ('$terms' IN NATURAL LANGUAGE MODE)) AND search_id = '$search_tmp_id' ;";
- $sorted_cleaned_results = $wpdb->get_results($sql_sort, ARRAY_A);
- $wpdb->query("DELETE FROM custom_search_queries_tmp WHERE search_id = '$search_tmp_id' ;");
- }
- return $sorted_cleaned_results;
- }
- function events_shortcode_ajax_wrapper() {
- if ( !empty($_REQUEST['shortcode']) ) {
- $shortcode_name = 'events';
- $event_type = sanitize_text_field($_REQUEST['event_type']);
- $event_type = ' event_type="' . $event_type . '"';
- // Wrap the shortcode in tags. You might also want to add arguments here.
- $full_shortcode = '[events' . $event_type . ']';
- // Perform the shortcode
- //echo $full_shortcode;
- echo do_shortcode( $full_shortcode );
- // Stop the script before WordPress tries to display a template file.
- exit;
- }
- }
- add_action('init', 'events_shortcode_ajax_wrapper');
- function events_search_ajax_wrapper() {
- if ( !empty($_REQUEST['ev_ajax_search']) ) {
- $terms = sanitize_text_field($_REQUEST['ev_ajax_search']);
- $events = custom_events_search($terms);
- if (!empty($events)){
- ?>
- <section class="maineventsList">
- <div>
- <div class="blockBody">
- <div class="events">
- <ul class="listingHolder">
- <?php
- foreach ($events as $event) {
- echo event_html_wrapper($event['url']);
- }
- ?>
- </ul>
- </div>
- </div>
- </div>
- </section>
- <?php }
- exit;
- }
- }
- add_action('init', 'events_search_ajax_wrapper');
- /*
- function random_event_func() {
- global $wpdb;
- $query_event = "SELECT COUNT(event_id) FROM in5_ci_events;";
- $event_query_result = $wpdb->get_results($query_event, ARRAY_N);
- //$event_id;
- $events_total = $event_query_result[0][0];
- //echo $events_total;
- $min=1;
- $max=$events_total;
- $random_event_id = mt_rand($min,$max);
- echo past_event_html_wrapper($random_event_id);
- }
- add_shortcode( 'random_event', 'random_event_func' );
- */
- function random_event_of_type_func($inno_center_event_type) {
- global $wpdb;
- $date = date('Y-m-d H:i:s');
- $zerodate = '2010-01-01 00:00:00';
- if (!empty($inno_center_event_type)) {
- $query_event = "SELECT * FROM in5_ci_events LEFT JOIN in5_ci_innovation_center_event_types on in5_ci_events.event_typeId = in5_ci_innovation_center_event_types.innovation_center_event_type_id WHERE in5_ci_innovation_center_event_types.innovation_center_id = $inno_center_event_type AND in5_ci_innovation_center_event_types.innovation_center_event_type_id = in5_ci_events.event_typeId AND in5_ci_events.event_from < '$date' AND in5_ci_events.event_from > '$zerodate' ORDER BY RAND() LIMIT 1;";
- $event_query_result = $wpdb->get_results($query_event, ARRAY_A);
- //echo $query_event;
- $random_event_id = $event_query_result[0]['event_id'];
- if ($random_event_id!=0 && !empty($random_event_id)) {
- echo past_event_html_wrapper($random_event_id);
- }
- }
- else {
- echo '';
- }
- }
- add_shortcode( 'random_event_of_type', 'random_event_of_type_func' );
- function random_events_of_type_shortcode_ajax_wrapper() {
- if ( !empty($_REQUEST['rand_event']) ) {
- $event_type = $_GET['rand_event'];
- echo random_event_of_type_func($event_type);
- // Stop the script before WordPress tries to display a template file.
- exit;
- }
- }
- add_action('init', 'random_events_of_type_shortcode_ajax_wrapper');
- function past_event_html_wrapper($event_id) {
- //echo $event_id;
- global $wpdb;
- $query_event = $wpdb->prepare("SELECT * FROM `in5_ci_events` WHERE `event_id` = %d;", $event_id);
- $event_query_result = $wpdb->get_results($query_event, ARRAY_A);
- //print_r($event_query_result);
- $event = $event_query_result[0];
- $event_id = $event['event_id'];
- $query_event = "SELECT event_typeId FROM `in5_ci_events` WHERE `event_id` = $event_id;";
- $event_query_result = $wpdb->get_results($query_event, ARRAY_N);
- $event_typeid = $event_query_result[0][0];
- $query_event_type = "SELECT * FROM `in5_ci_event_type` WHERE `event_typeid` = $event_typeid;";
- $event_type_query_result = $wpdb->get_results($query_event_type, ARRAY_A);
- $event_type = $event_type_query_result[0]['desc_en'];
- //check if image for the event exists, otherwise put a placeholder
- $pageURL = get_home_url();
- $imgurl= empty($event['event_banner'])? $pageURL . "/application/uploads/events/Events_home_hldr.png" : ( strpos($event['event_banner'], 'uploads/events/')!== false ? $pageURL . "/application/" . $event['event_banner']: $event['event_banner']) ;
- if (!checkRemoteFile($imgurl)) {$imgurl = $pageURL . "/application/uploads/events/Events_home_hldr.png";}
- $str .= ' <div class="listingItem">';
- $event_url = "/events-details/?event_id=" . $event['event_id'];
- $str .= '<div class="listingImage" data-mh="sameHeights"><a href="' . $event_url . '"><img src="' . esc_url($imgurl) . '"></a></div>';
- $str .= '<div class="listingInfos" data-mh="sameHeights">';
- $str .= '<div class = "event_type_wrapper_in_bottom_widget"><span class="eventCat">'. $event_type . '</span></div>';
- $str .= '<h3 class="listingTitle" data-mh="sameHeight">' . $event['event_name'] . '</h3>';
- $str .= '</div>';
- $str .= '<div class="catTitle">When: <strong>' . (strpos($event['event_from'], '3000')!==false ? 'TBC' : date('d M Y',strtotime($event['event_from']))) . '</strong> | Where: <strong>' . $event['event_location'] . '</strong></div>';
- $str .= '<div style="clear:both"></div>';
- $str .= '</div>';
- return $str;
- }
- function event_html_wrapper($event_id) {
- //echo $event_id;
- global $wpdb;
- $query_event = $wpdb->prepare("SELECT * FROM `in5_ci_events` WHERE `event_id` = %d;", $event_id);
- $event_query_result = $wpdb->get_results($query_event, ARRAY_A);
- //print_r($event_query_result);
- $event = $event_query_result[0];
- $event_id = $event['event_id'];
- $query_event = "SELECT event_typeId FROM `in5_ci_events` WHERE `event_id` = $event_id;";
- $event_query_result = $wpdb->get_results($query_event, ARRAY_N);
- $event_typeid = $event_query_result[0][0];
- $query_event_type = "SELECT * FROM `in5_ci_event_type` WHERE `event_typeid` = $event_typeid;";
- $event_type_query_result = $wpdb->get_results($query_event_type, ARRAY_A);
- $event_type = $event_type_query_result[0]['desc_en'];
- //check if image for the event exists, otherwise put a placeholder
- $pageURL = get_home_url();
- $imgurl= empty($event['event_banner'])? $pageURL . "/application/uploads/events/Events_home_hldr.png" : ( strpos($event['event_banner'], 'uploads/events/')!== false ? $pageURL . "/application/" . $event['event_banner']: $event['event_banner']) ;
- if (!checkRemoteFile($imgurl)) {$imgurl = $pageURL . "/application/uploads/events/Events_home_hldr.png";}
- $str .= ' <li class="listingItemLI col-md-12">';
- $str .= ' <input type="hidden" value="' . $event['event_id'] . '"/>';
- $str .= ' <div class="listingItem">';
- $event_url = "/events-details/?event_id=" . $event['event_id'];
- $str .= '<div class="listingImage" data-mh="sameHeights"><img src="' . esc_url($imgurl) . '"></div>';
- $str .= '<div class="listingInfos" data-mh="sameHeights">';
- // $str .= '<div class="catTitle">When: <strong>' . date('d M Y',strtotime($event['event_from'])) . '</strong> | Where: <strong>' . $event['event_location'] . '</strong></div>';
- $str .= '<div class="catTitle">When: <strong>' . (strpos($event['event_from'], '3000')!==false ? 'TBC' : date('d M Y',strtotime($event['event_from']))) . '</strong> | Where: <strong>' . $event['event_location'] . '</strong></div>';
- $str .= '<h3 class="listingTitle" data-mh="sameHeight">' . $event['event_name'] . '</h3>';
- $str .= '<div class="listingDescription">' . mb_strimwidth($event['event_description'],0,460,"...<br><br>") . '</div>';
- $str .= '</div>';
- $str .= '<div class="bottomLinks">';
- $str .= '<span class="eventCat">'. $event_type . '</span>';
- $str .= '<p class = "event_link"><a href="' . $event_url . '">Learn More <i class="fa fa-arrow-right" aria-hidden="true"></i></a></p>';
- $str .= '</div>'; $str .= '<div style="clear:both"></div>'; $str .= '</div>';
- $str .= '</li>';
- return $str;
- }
- function unregister_user_for_event($user_id, $event_id) {
- global $wpdb;
- $query = $wpdb->prepare("DELETE FROM `events_registration` WHERE ID = %d AND event_id = %d;", $user_id, $event_id);
- $wpdb->query($query);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement