PATH:
var
/
www
/
vhosts
/
sandbox.dos-group.com
/
httpdocs
/
mendrisio
/
wp-content
/
themes
/
cittadimendrisio
<?php // Creo un nuovo header per l'app mobile add_action( 'init', 'app_header' ); function app_header() { header( "YXBw:Mendrisio" ); } //Controllo se sono all'interno dell'app mobile $YXBw = ( isset( $_GET['YXBw'] ) && $_GET['YXBw'] == 'Mendrisio' ? true : false ); $GLOBALS['dos_app_eventi'] = $YXBw; if ( $YXBw ) { add_filter( 'body_class', function ( $classes ) { $classes[] = 'dos-app-container'; return $classes;; } ); add_action( 'wp_footer', [ 'CDM_Mixins', 'dos_app_eventi_footer' ] ); } // Creo una session add_action( 'init', 'register_session', 5 ); function register_session() { if ( ! session_id() ) { session_start(); } } if ( ! defined( 'FRAMEWORK' ) ) { define( 'FRAMEWORK', get_template_directory_uri() . '/_framework' ); } if ( ! defined( 'FRAMEWORKPATH' ) ) { define( 'FRAMEWORKPATH', get_template_directory() . '/_framework' ); } if ( ! defined( 'ADMIN' ) ) { define( 'ADMIN', FRAMEWORKPATH . '/admin' ); } if ( ! defined( 'ADMINURI' ) ) { define( 'ADMINURI', FRAMEWORK . '/admin' ); } if ( ! defined( 'THEMEURI' ) ) { define( 'THEMEURI', get_template_directory_uri() ); } if ( ! defined( 'THEMEPATH' ) ) { define( 'THEMEPATH', get_template_directory() ); } if ( ! defined( 'WIDGETS' ) ) { define( 'WIDGETS', FRAMEWORKPATH . '/admin/widgets' ); } if ( ! defined( 'SHORTCODES' ) ) { define( 'SHORTCODES', FRAMEWORKPATH . '/shortcodes' ); } if ( ! defined( 'CUZTOM_DIR' ) ) { define( 'CUZTOM_DIR', FRAMEWORKPATH . '/wp-cuztom/' ); } if ( ! defined( 'CUZTOM_URL' ) ) { define( 'CUZTOM_URL', FRAMEWORK . '/wp-cuztom/' ); } if ( ! defined( 'ASSETS' ) ) { define( 'ASSETS', get_template_directory_uri() . '/assets' ); } if ( ! defined( 'ASSETSPATH' ) ) { define( 'ASSETSPATH', get_template_directory() . '/assets' ); } if ( ! defined( 'DEFAULT_THUMB' ) ) { define( 'DEFAULT_THUMB', ASSETS . '/img/municipio.jpg' ); } if ( ! defined( 'MISTERX' ) ) { define( 'MISTERX', ASSETS . '/img/no-avatar.png' ); } if ( ! defined( 'LOGOX' ) ) { define( 'LOGOX', ASSETS . '/img/citta-di-mendrisio-grey-logo.png' ); } if ( ! defined( 'BANNERDEFAULT' ) ) { define( 'BANNERDEFAULT', ASSETS . '/img/Mendrisio_panoramica-sul-borgo.jpg' ); } load_theme_textdomain( 'cdm', THEMEPATH . '/language' ); load_theme_textdomain( 'cuztom', THEMEPATH . '/language' ); // Register Theme Features function translation_theme_features() { // Add theme support for Translation load_theme_textdomain( 'cdm', get_template_directory() . '/language' ); } // Hook into the 'after_setup_theme' action add_action( 'after_setup_theme', 'translation_theme_features' ); remove_action( 'wp_head', 'wp_generator' ); // remove wordpress version remove_action( 'wp_head', 'wlwmanifest_link' ); // remove wlwmanifest.xml (needed to support windows live writer) remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); require_once( CUZTOM_DIR . 'cuztom.php' ); require_once( FRAMEWORKPATH . '/admin/init.php' ); require_once( FRAMEWORKPATH . '/admin/filters.php' ); require_once( FRAMEWORKPATH . '/admin/filter-functions.php' ); require_once( FRAMEWORKPATH . '/admin/post-types.php' ); require_once( FRAMEWORKPATH . '/admin/custom-taxonomies.php' ); require_once( FRAMEWORKPATH . '/admin/user-meta.php' ); require_once( FRAMEWORKPATH . '/admin/posts-relations.php' ); require_once( FRAMEWORKPATH . '/admin/meta.php' ); require_once( FRAMEWORKPATH . '/admin/term-meta.php' ); require_once( FRAMEWORKPATH . '/tax-meta/Tax-meta-class.php' ); require_once( FRAMEWORKPATH . '/admin/functions/mixins.php' ); //Custom search Fields require_once( FRAMEWORKPATH . '/classes/fields/select.php' ); require_once( FRAMEWORKPATH . '/classes/fields/text.php' ); require_once( FRAMEWORKPATH . '/classes/data-layer/queries.class.php' ); require_once( FRAMEWORKPATH . '/classes/search.class.php' ); require_once( FRAMEWORKPATH . '/classes/links-to-post.class.php' ); require_once( FRAMEWORKPATH . '/classes/nav-menu-walker.class.php' ); require_once( FRAMEWORKPATH . '/classes/nav-primary-walker.class.php' ); require_once( FRAMEWORKPATH . '/classes/nav-secondary-walker.class.php' ); require_once( FRAMEWORKPATH . '/classes/pages-nav-secondary-walker.class.php' ); require_once( FRAMEWORKPATH . '/classes/nav-secondary.class.php' ); require_once( FRAMEWORKPATH . '/admin/classes/sidebars.class.php' ); require_once( FRAMEWORKPATH . '/admin/classes/orari.class.php' ); require_once( FRAMEWORKPATH . '/admin/classes/documents.class.php' ); require_once( FRAMEWORKPATH . '/classes/get-relations.class.php' ); require_once( FRAMEWORKPATH . '/classes/left-side-menu.class.php' ); require_once( FRAMEWORKPATH . '/classes/custom-breadcrumb.class.php' ); require_once( FRAMEWORKPATH . '/classes/avvisi-documenti.class.php' ); require_once( FRAMEWORKPATH . '/classes/mixins.class.php' ); require_once( ADMIN . '/classes/custom-menu/init.php' ); require_once( ADMIN . '/classes/post-type-archive-links.class.php' ); //User require_once( FRAMEWORKPATH . '/classes/user/custom-user.class.php' ); require_once( FRAMEWORKPATH . '/classes/user/custom-user-taxonomies.class.php' ); require_once( FRAMEWORKPATH . '/classes/user/custom-user-new.class.php' ); require_once( FRAMEWORKPATH . '/functions/mixins.php' ); //require_once( FRAMEWORKPATH . '/functions/custom-user-taxonomies.php' ); require_once( SHORTCODES . '/em-grouped.php' ); require_once( WIDGETS . '/post-list.widget.php' ); require_once( WIDGETS . '/post-grouped.widget.php' ); require_once( WIDGETS . '/events-categories.widget.php' ); require_once( WIDGETS . '/taxonomies-list.widget.php' ); require_once( WIDGETS . '/custom-events-list.widget.php' ); require_once( WIDGETS . '/events-office-referrer.widget.php' ); require_once( WIDGETS . '/external-links.widget.php' ); require_once( WIDGETS . '/internal-links.widget.php' ); require_once( WIDGETS . '/text2.widget.php' ); /** * EVENT MANAGER */ require_once( THEMEPATH . '/plugins/events-manager/templates/placeholders/google_map_link.php' ); require_once( THEMEPATH . '/plugins/events-manager/templates/classes/events-grouped.class.php' ); // end event manager /** * Visual composer shortcodes */ require_once( SHORTCODES . '/articoli-correlati.php' ); require_once( SHORTCODES . '/dettaglio-persona.php' ); require_once( SHORTCODES . '/lista-documenti.php' ); require_once( SHORTCODES . '/lista-documenti-completa.php' ); require_once( SHORTCODES . '/lista-documenti-per-categoria.php' ); require_once( SHORTCODES . '/lista-avvisi-completa.php' ); require_once( SHORTCODES . '/photo-gallery.php' ); require_once( SHORTCODES . '/titoli.php' ); require_once( SHORTCODES . '/show-users.php' ); require_once( SHORTCODES . '/sedute-consiglio-comunale.php' ); require_once( SHORTCODES . '/consiglieri-comunali.php' ); require_once( SHORTCODES . '/articoli-per-tipo.php' ); require_once( SHORTCODES . '/uffici-collaboratori.php' ); require_once( SHORTCODES . '/show-uffici-di-servizio.php' ); require_once( SHORTCODES . '/image-single.php' ); require_once( SHORTCODES . '/wysiwyg.php' ); require_once( SHORTCODES . '/news-per-categoria.php' ); require_once( SHORTCODES . '/eventi-correlati.php' ); require_once( SHORTCODES . '/map.php' ); // end shortcodes for visual composer require_once( FRAMEWORKPATH . '/classes/custom-archive-page.class.php' ); function custom_p2p_get_all_related_post_types( $post_type ) { $connections = P2P_Connection_Type_Factory::get_all_instances(); $related = []; foreach ( $connections as $connection ) { $from = $connection->side['from']; $from_relation_type = $from->get_object_type(); if ( $from_relation_type !== 'post' ) { continue; } $to = $connection->side['to']; $to_relation_type = $to->get_object_type(); if ( $to_relation_type !== 'post' ) { continue; } $from_post_type = $from->first_post_type(); $to_post_type = $to->first_post_type(); if ( $from_post_type == $post_type ) { $related[] = $to_post_type; } if ( $to_post_type == $post_type ) { $related[] = $from_post_type; } } return $related; } /** * Menu Management */ function custom_navigation_menus() { $locations = [ 'nav-primary' => __( 'Menu Principale', 'cdm' ), 'nav-secondary' => __( 'Menu laterale', 'cdm' ), 'nav-quick-links' => __( 'Quick Links', 'cdm' ), ]; register_nav_menus( $locations ); } // Hook into the 'init' action add_action( 'init', 'custom_navigation_menus' ); function custom_admin_styles() { wp_register_script( 'admin-script', FRAMEWORK . '/admin/assets/js/min/custom.min.js', [ 'jquery' ], '1.1', true ); wp_enqueue_script( 'admin-script' ); wp_register_script( 'datepicker', ADMINURI . '/assets/js/datepicker.js', false, false, true ); wp_enqueue_script( 'datepicker' ); wp_register_style( 'admin-style', FRAMEWORK . '/admin/assets/css/custom-admin.min.css', [], '1.0' ); wp_enqueue_style( 'admin-style' ); } // Hook into the 'admin_enqueue_scripts' action add_action( 'admin_enqueue_scripts', 'custom_admin_styles' ); /** * Mixins for wordpress and theme management * * 1. Gestisco gli autoupdate dei plugin e dei temi * 2. Aggiungo nuove dimensioni per le thumbnails */ add_filter( 'auto_update_plugin', '__return_false' ); add_filter( 'auto_update_theme', '__return_false' ); add_image_size( 'home_slider_large', 1010, 300, true ); add_image_size( 'home_slider_small', 400, 400, true ); add_image_size( 'header', 1010, 180, true ); add_image_size( 'small_rectangle', 160, 90, [ 'center', 'top' ] ); add_image_size( 'user_foto_small', 160, 160, [ 'center', 'top' ] ); add_image_size( 'user_photo_thumb', 160, 90, [ 'center', 'top' ] ); add_image_size( 'user_photo_large', 600, 400, [ 'center', 'top' ] ); add_image_size( 'cdm_large', 700, 700, false ); add_image_size( 'cdm_medium', 350, 350, false ); add_image_size( 'cdm_small', 230, 230, false ); /** * Aggiungo un filtro alla modale di selezione media * per aggiungere quelle personalizzate. * * @param $sizes : WordPress default image sizes * * @return array */ function cdm_custom_image_size_choice( $sizes ) { return array_merge( $sizes, [ 'cdm_large' => __( 'Grande', 'cdm' ), 'cdm_medium' => __( 'Medio', 'cdm' ), 'cdm_small' => __( 'Piccolo', 'cdm' ) ] ); } add_filter( 'image_size_names_choose', 'cdm_custom_image_size_choice' ); /** * Hide some post columns */ $columns_to_remove = [ 'comments', 'tags' ]; $columns_to_add = [ 'headers' => [ 'highlighted' => __( 'Evidenza', 'cdm' ), //th label name, 'on-banner' => __( 'Banner', 'cdm' ) ], 'args' => [ 'highlighted' => [ 'content' => [ 'meta' => '_options_hot', 'content' => [ 'type' => 'icon', 'true' => '<img src="' . FRAMEWORK . '/admin/assets/img/checked.png" />', 'false' => '<img src="' . FRAMEWORK . '/admin/assets/img/cancel.png" />' ], ] ], 'on-banner' => [ 'content' => [ 'meta' => '_options_show_in_home_banner', 'value' => 'on', 'content' => [ 'type' => 'icon', 'true' => '<img src="' . FRAMEWORK . '/admin/assets/img/checked.png" />', 'false' => '<img src="' . FRAMEWORK . '/admin/assets/img/cancel.png" />' ], ] ] ] ]; new CDM_Post_List_Customization( 'post', $columns_to_remove, $columns_to_add ); /** * Some admin customizations */ if ( is_admin() ) : $admin = new CDM_Mixins_Admin(); $admin->body_classes = 'fuck-me-i-m-famous'; $admin->admin_body_class_hook(); $admin->add_user_list_column( [ 'first-name' => __( 'Nome', 'cdm' ), 'last-name' => __( 'Cognome', 'cdm' ) ], [ 'last-name' => 'last_name', 'first-name' => 'first_name' ] ); $boxes_to_hide = [ 'event-comments-status' => [ 'box' => 'commentstatusdiv', 'type' => 'event', 'context' => 'normal', ], 'event-comments' => [ 'box' => 'commentsdiv', 'type' => 'event', 'context' => 'normal', ], 'post-comments-status' => [ 'box' => 'commentstatusdiv', 'type' => 'post', 'context' => 'normal', ], 'post-comments' => [ 'box' => 'commentsdiv', 'type' => 'post', 'context' => 'normal', ] ]; $admin->remove_meta_box_hook( $boxes_to_hide ); endif; wp_enqueue_script( 'custom-ajax', ASSETS . '/js/custom-ajax.js', [ 'jquery' ], '0.1', true ); wp_localize_script( 'custom-ajax', 'CDM', [ 'home_url' => get_home_url(), 'ajax_url' => admin_url( 'admin-ajax.php' ), 'wp_version' => get_bloginfo( 'version' ), 'security' => wp_create_nonce( 'security-string' ) ] ); add_action( 'wp_ajax_output_ajax', 'output_ajax' ); add_action( 'wp_ajax_nopriv_output_ajax', 'output_ajax' ); function output_ajax() { check_ajax_referer( 'security-string', 'security' ); $page = $_POST['page']; $termID = ( isset( $_POST['termID'] ) && ! empty( $_POST['termID'] ) && is_numeric( $_POST['termID'] ) ? $_POST['termID'] : '' ); $days = ( is_numeric( $_POST['days_per_page'] ) ? $_POST['days_per_page'] : 5 ); $by = 'day'; $output = []; $events = new CDM_Event( [ 'category' => $termID ], $days ); echo (string) ''; ob_start(); switch ( $by ) { case 'day' : $events->header(); $events->body( $page, $days ); $events->footer(); break; } $loaded_events = array_chunk( $events->events_by_day(), $days ); $output['content'] = ob_get_clean(); $output['page'] = $page; $output['days_per_page'] = $days; $output['last'] = ( count( $loaded_events ) == $page ? true : false ); echo json_encode( $output ); die(); } if ( is_user_logged_in() && current_user_can( 'edit_users' ) ) { show_admin_bar( true ); } else { show_admin_bar( false ); } /** * Questa funzione permette di gestire la query delle tassonomie modificando la query di default. * In questo modo mostriamo solo i post direttamente collegati al termine selezionato (e non quelli correlati ai figli) * * @param $query */ function cdm_tax_query_override( $query ) { if ( $query->is_tax() && $query->is_main_query() ) { $query->query_vars['orderby'] = 'title'; $query->query_vars['order'] = 'ASC'; $query->tax_query->queries[0]['include_children'] = false; $query->query_vars['tax_query'] = $query->tax_query->queries; } } add_action( 'pre_get_posts', 'cdm_tax_query_override' ); //CDM_Search::_get_instance()->ajax_support( true ); $header_search = new CDM_Search(); $header_search->ajax_support( true ); function search_content_highlight( $string ) { $content = $string; $keys = implode( '|', explode( ' ', get_search_query() ) ); $content = preg_replace( '/(' . $keys . ')/iu', '<mark>\0</mark>', $content ); echo '<p>' . $content . '</p>'; } add_action( 'wp_enqueue_scripts', 'unload_all_jquery' ); function unload_all_jquery() { $jquery_ui = [ "jquery-ui-widget", "jquery-ui-mouse", "jquery-ui-accordion", "jquery-ui-autocomplete", "jquery-ui-slider", "jquery-ui-tabs", "jquery-ui-draggable", "jquery-ui-droppable", "jquery-ui-selectable", "jquery-ui-position", "jquery-ui-datepicker", "jquery-ui-resizable", "jquery-ui-dialog", "jquery-ui-button" ]; foreach ( $jquery_ui as $script ) { wp_deregister_script( $script ); } } /** * Enable Admin Theme Settings */ if ( is_admin() ) : require_once( FRAMEWORKPATH . '/wp-settings/ThemeSettings.php' ); endif; /** * Redirect non-admins to the homepage after logging into the site. * * @since 1.0 */ function cdm_login_redirect( $redirect_to, $request, $user ) { return ( is_array( $user->roles ) && in_array( 'subscriber', $user->roles ) ) ? site_url() : admin_url(); } add_filter( 'login_redirect', 'cdm_login_redirect', 10, 3 ); /** * Gestisco la query del term Legislazione all'interno dello sportello elettronico * passando i parametri della query non più con quer_var ma con il metodo set dell'oggetto * $query che viene passato nell'action pre_get_post * * @param $query * * @return mixed */ function cdm_sportello_elettronico( $query ) { if ( $query->is_tax( 'tipologia' ) && $query->is_main_query() ) { global $queries, $wp_query; $args = array_merge( $queries->document_portal()->args, $queries->document_portal()->meta ); $terms = $query->query_vars['tax_query']; foreach ( $terms as $k => $term ) { $term['include_children'] = true; $terms[ $k ] = $term; } $args['tax_query'] = $terms; $term = $wp_query->get_queried_object(); //Recupero l'oggetto del term "legislazione" $legislazione = get_term_by( 'slug', 'legislazione', 'tipologia' ); $isLegislazione = $term->term_id == $legislazione->term_id || $term->parent == $legislazione->term_id; if ( $isLegislazione ) : $orderBy = [ 'meta_key' => '_doc_extra_field_order', 'orderby' => 'meta_value', 'order' => 'ASC' ]; $args = array_merge( $args, $orderBy ); endif; foreach ( $args as $key => $value ) { $query->set( $key, $value ); } return $query; } } if ( ! is_admin() ) : add_action( 'pre_get_posts', 'cdm_sportello_elettronico', 11 ); endif; /** * Metodo per gestire la ricerca dei documenti all'interno della categoria Legislazione. * Utilizzo l'hook post clauses per recuperare i dicasteri associati e raggruppare il risultato per dicastero. * * @param $clauses * @param $query * * @return mixed * * @deprecated: questa funzione è stato spostato nella classe queries Class */ function cdm_term_legislazione_claues( $clauses, $query ) { global $wpdb; $prefix = $wpdb->prefix; $isLegislazione = false; if ( ! $query->is_tax( 'tipologia' ) ) { return $clauses; } else { //Recupero l'oggetto del term "legislazione" $legislazione = get_term_by( 'slug', 'legislazione', 'tipologia' ); $isLegislazione = $query->queried_object->term_id == $legislazione->term_id || $query->queried_object->term_id == $legislazione->term_id; } if ( $query->is_tax( 'tipologia' ) && $isLegislazione ) { $clauses['join'] .= <<<SQL LEFT JOIN {$wpdb->prefix}p2p ON ({$wpdb->prefix}p2p.p2p_to = {$wpdb->posts}.ID) SQL; //$clauses['where'] .= " AND ({$wpdb->prefix}p2p.p2p_from = '$wpdb->posts.ID')"; $clauses['groupby'] = " {$wpdb->prefix}p2p.p2p_from "; } return $clauses; if ( $query->is_tax( 'tipologia' ) && $query->query_vars['cdm_document_search'] && ! empty( $this->keyword ) ) { $alias = 'cdm_custom_alias_' . rand( 1000, 10000 ); $clauses['join'] .= <<<SQL LEFT JOIN AS $alias ON ( $wpdb->posts.ID = $alias.post_id ) SQL; $clauses['where'] .= " AND ((( {$wpdb->posts}.post_title LIKE '%{$this->keyword}%') OR ({$wpdb->posts}.post_content LIKE '%{$this->keyword}%'))"; $clauses['where'] .= " OR (($alias.meta_key = '_doc_extra_field_number') AND ($alias.meta_value LIKE '%{$this->keyword}%')))"; $clauses['limits'] = " LIMIT 0, 999999999"; } return $clauses; } /** * @param $length * * @return int */ function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); add_filter( 'get_shortlink', function ( $shortlink ) { return $shortlink; } ); /** * Stop WordPress auto empty trash */ function wpb_remove_schedule_delete() { remove_action( 'wp_scheduled_delete', 'wp_scheduled_delete' ); } add_action( 'init', 'wpb_remove_schedule_delete' ); /** * Visual Form Builder */ // Register Script function addCustomVFBAddressFieldJson() { wp_deregister_script( 'jquery-addressfield-json' ); wp_register_script( 'jquery-addressfield-json', ASSETS . '/js/addressfield.json', [ 'jquery-addressfield' ], false, true ); } add_action( 'wp_enqueue_scripts', 'addCustomVFBAddressFieldJson' ); /** * Produces cleaner filenames for uploads * * @param string $filename * @return string */ function wpartisan_sanitize_file_name( $filename ) { $sanitized_filename = remove_accents( $filename ); // Convert to ASCII // Standard replacements $invalid = array( ' ' => '-', '%20' => '-', '_' => '-', ); $sanitized_filename = str_replace( array_keys( $invalid ), array_values( $invalid ), $sanitized_filename ); $sanitized_filename = preg_replace('/[^A-Za-z0-9-\. ]/', '', $sanitized_filename); // Remove all non-alphanumeric except . $sanitized_filename = preg_replace('/\.(?=.*\.)/', '', $sanitized_filename); // Remove all but last . $sanitized_filename = preg_replace('/-+/', '-', $sanitized_filename); // Replace any more than one - in a row $sanitized_filename = str_replace('-.', '.', $sanitized_filename); // Remove last - if at the end $sanitized_filename = strtolower( $sanitized_filename ); // Lowercase return $sanitized_filename; } add_filter( 'sanitize_file_name', 'wpartisan_sanitize_file_name', 10, 1 );
[-] tmpl-homepage.php
[open]
[-] loop-innermenuadvanced.php
[open]
[-] tmpl-archivio.php
[open]
[-] sidebar-base.php
[open]
[-] header-global.php
[open]
[-] author.php
[open]
[-] tmpl-archivio-news.php
[open]
[-] loop-tipodiavviso.php
[open]
[-] functions.php
[open]
[-] 404.php
[open]
[+]
assets
[+]
language
[+]
_framework
[-] single-event.php
[open]
[-] loop-innermenu.php
[open]
[-] loop-doctaxonomy.php
[open]
[+]
..
[-] single.php
[open]
[-] taxonomy.php
[open]
[-] tmpl-events.php
[open]
[+]
partials
[-] taxonomy-event-categories.php
[open]
[+]
plugins
[-] page.php
[open]
[-] footer.php
[open]
[-] loop-innermenuadvancedusers.php
[open]
[-] search.php
[open]
[-] archive.php
[open]
[-] header.php
[open]
[-] loop-avviso.php
[open]
[-] screenshot.png
[open]
[-] sidebar-page.php
[open]
[-] index.php
[open]
[+]
feeds
[-] style.css
[open]