include('post-grid-shortcode.php'); if(!class_exists('svc_post_layout')) { class svc_post_layout { function __construct() { add_action('admin_init',array($this,'svc_post_layout_init')); add_shortcode('svc_post_layout','svc_post_layout_shortcode'); } function svc_post_layout_init() { if(function_exists('vc_map')) { $animations = array( 'None' => '', 'bounce' => 'bounce', 'flash' => 'flash', 'pulse' => 'pulse', 'rubberBand' => 'rubberBand', 'shake' => 'shake', 'swing' => 'swing', 'tada' => 'tada', 'bounce' => 'bounce', 'wobble' => 'wobble', 'bounceIn' => 'bounceIn', 'bounceInDown' => 'bounceInDown', 'bounceInLeft' => 'bounceInLeft', 'bounceInRight' => 'bounceInRight', 'bounceInUp' => 'bounceInUp', 'fadeIn' => 'fadeIn', 'fadeInDown' => 'fadeInDown', 'fadeInDownBig' => 'fadeInDownBig', 'fadeInLeft' => 'fadeInLeft', 'fadeInLeftBig' => 'fadeInLeftBig', 'fadeInRight' => 'fadeInRight', 'fadeInRightBig' => 'fadeInRightBig', 'fadeInUp' => 'fadeInUp', 'fadeInUpBig' => 'fadeInUpBig', 'flip' => 'flip', 'flipInX' => 'flipInX', 'flipInY' => 'flipInY', 'lightSpeedIn' => 'lightSpeedIn', 'rotateIn' => 'rotateIn', 'rotateInDownLeft' => 'rotateInDownLeft', 'rotateInDownRight' => 'rotateInDownRight', 'rotateInUpLeft' => 'rotateInUpLeft', 'rotateInUpRight' => 'rotateInUpRight', 'slideInUp' => 'slideInUp', 'slideInDown' => 'slideInDown', 'slideInLeft' => 'slideInLeft', 'slideInRight' => 'slideInRight', 'zoomIn' => 'zoomIn', 'zoomInDown' => 'zoomInDown', 'zoomInLeft' => 'zoomInLeft', 'zoomInRight' => 'zoomInRight', 'zoomInUp' => 'zoomInUp', 'rollIn' => 'rollIn', 'twisterInDown' => 'twisterInDown', 'twisterInUp' => 'twisterInUp', 'swap' => 'swap', 'puffIn' => 'puffIn', 'vanishIn' => 'vanishIn', 'openDownLeftRetourn' => 'openDownLeftRetourn', 'openDownRightRetourn' => 'openDownRightRetourn', 'openUpLeftRetourn' => 'openUpLeftRetourn', 'openUpRightRetourn' => 'openUpRightRetourn', 'perspectiveDownRetourn' => 'perspectiveDownRetourn', 'perspectiveUpRetourn' => 'perspectiveUpRetourn', 'perspectiveLeftRetourn' => 'perspectiveLeftRetourn', 'perspectiveRightRetourn' => 'perspectiveRightRetourn', 'slideDownRetourn' => 'slideDownRetourn', 'slideUpRetourn' => 'slideUpRetourn', 'slideLeftRetourn' => 'slideLeftRetourn', 'slideRightRetourn' => 'slideRightRetourn', 'swashIn' => 'swashIn', 'foolishIn' => 'foolishIn', 'tinRightIn' => 'tinRightIn', 'tinLeftIn' => 'tinLeftIn', 'tinUpIn' => 'tinUpIn', 'tinDownIn' => 'tinDownIn', 'boingInUp' => 'boingInUp', 'spaceInUp' => 'spaceInUp', 'spaceInRight' => 'spaceInRight', 'spaceInDown' => 'spaceInDown', 'spaceInLeft' => 'spaceInLeft' ); vc_map( array( "name" => __('Post Layout with Carousel','js_composer'), "base" => 'svc_post_layout', "icon" => 'vc-animate-icon', "category" => __('Post Layout with Carousel','js_composer'), 'description' => __( 'Set Post Layout with Carousel','js_composer' ), "params" => array( array( 'type' => 'textfield', 'heading' => __( 'Title', 'js_composer' ), 'param_name' => 'title', 'holder' => 'div', 'description' => __( 'Enter Post grid title', 'js_composer' ) ), array( "type" => "dropdown", "heading" => __("Skin type" , 'js_composer' ), "param_name" => "svc_type", "value" =>array( __("Post Layout", 'js_composer' )=>"post_layout", __("Carousel", 'js_composer' )=>"carousel" ), "description" => __("Choose svc type.", 'js_composer' ), ), array( 'type' => 'loop', 'heading' => __('Build Post Query','js_composer'), 'param_name' => 'query_loop', 'settings' => array( 'post_type' => array('value' => 'post'), 'size' => array( 'hidden' => false, 'value' => 10 ), 'order_by' => array( 'value' => 'date' ), 'order' => array('value' => 'DESC') ), 'description' => __('Create WordPress loop, to populate content from your site.','js_composer') ), array( "type" => "dropdown", "heading" => __("Skin type" , 'js_composer' ), "param_name" => "skin_type", "value" =>array( __("Style1", 'js_composer' )=>"s1", __("Style2", 'js_composer' )=>"s2", __("Style3", 'js_composer' )=>"s3", __("Style4", 'js_composer' )=>"s4", __("Style5", 'js_composer' )=>"s5", __("Style6 for List View", 'js_composer' )=>"s6" ), "description" => __("Choose skin type for grid layout.", 'js_composer' ), ), array( 'type' => 'num', 'heading' => __( 'Items Display', 'js_composer' ), 'param_name' => 'car_display_item', 'value' => '4', 'min' => 1, 'max' => 100, 'suffix' => '', 'step' => 1, 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'This variable allows you to set the maximum amount of items displayed at a time with the widest browser width', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show pagination', 'js_composer' ), 'param_name' => 'car_pagination', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'Show pagination', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show pagination Numbers', 'js_composer' ), 'param_name' => 'car_pagination_num', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'car_pagination','value' => 'yes'), 'description' => __( 'Show numbers inside pagination buttons.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Hide navigation', 'js_composer' ), 'param_name' => 'car_navigation', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'Display "next" and "prev" buttons.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'AutoPlay', 'js_composer' ), 'param_name' => 'car_autoplay', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'Set Slider Autoplay.', 'js_composer' ) ), array( 'type' => 'num', 'heading' => __( 'autoPlay Time', 'js_composer' ), 'param_name' => 'car_autoplay_time', 'value' => '5', 'min' => 1, 'max' => 100, 'suffix' => 'seconds', 'step' => 1, 'dependency' => array('element' => 'car_autoplay','value' => 'yes'), 'description' => __( 'Set Autoplay slider speed.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show more', 'js_composer' ), 'param_name' => 'car_loadmore', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'add Show more Post last element of Carousel.', 'js_composer' ), ), array( 'type' => 'checkbox', 'heading' => __( 'Synced Slider', 'js_composer' ), 'param_name' => 'synced', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'car_display_item','value' => '1'), 'description' => __( 'Set Synced Slider.see Example here', 'js_composer' ), ), array( 'type' => 'num', 'heading' => __( 'Synced Display', 'js_composer' ), 'param_name' => 'synced_display', 'value' => '10', 'min' => 1, 'max' => 1000, 'suffix' => '', 'step' => 1, 'dependency' => array('element' => 'synced','value' => 'yes'), 'description' => __( 'Set Synces Slider Display elements.', 'js_composer' ) ), array( 'type' => 'dropdown', 'heading' => __( 'Transition effect', 'js_composer' ), 'param_name' => 'car_transition', 'value' => array( __( 'None', 'js_composer' ) => '', __( 'fade', 'js_composer' ) => 'fade', __( 'backSlide', 'js_composer' ) => 'backSlide', __( 'goDown', 'js_composer' ) => 'goDown', __( 'scaleUp', 'js_composer' ) => 'scaleUp' ), 'dependency' => array('element' => 'car_display_item','value' => '1'), 'description' => __( 'Add CSS3 transition style. Works only with one item on screen.', 'js_composer' ) ), array( "type" => "dropdown", "heading" => __("Desktop Columns Count" , 'js_composer' ), "param_name" => "grid_columns_count_for_desktop", "value" =>array( __("1 Column", 'js_composer' )=>"svc-col-md-12", __("2 Columns", 'js_composer' )=>"svc-col-md-6", __("3 Columns", 'js_composer' )=>"svc-col-md-4", __("4 Columns", 'js_composer' )=>"svc-col-md-3", ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), "description" => __("Choose Desktop(PC Mode) Columns Count", 'js_composer' ), ), array( "type" => "dropdown", "class" => "", "heading" => __("Tablet Columns Count" , 'js_composer' ), "param_name" => "grid_columns_count_for_tablet", "value" =>array( __("1 Column", 'js_composer' )=>"svc-col-sm-12", __("2 Columns", 'js_composer' )=>"svc-col-sm-6", __("3 Columns", 'js_composer' )=>"svc-col-sm-4", __("4 Columns", 'js_composer' )=>"svc-col-sm-3" ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), "description" => __("Choose Tablet Columns Count", 'js_composer' ), ), array( "type" => "dropdown", "class" => "", "heading" => __("Mobile Columns Count" ,'js_composer' ), "param_name" => "grid_columns_count_for_mobile", "value" =>array( __("1 Column", 'js_composer' )=>"svc-col-xs-12", __("2 Columns", 'js_composer' )=>"svc-col-xs-6", __("3 Columns", 'js_composer' )=>"svc-col-xs-4", __("4 Columns", 'js_composer' )=>"svc-col-xs-3" ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), "description" => __("Choose Mobile Columns Count", 'js_composer'), ), array( 'type' => 'dropdown', 'heading' => __( 'Link target', 'js_composer' ), 'param_name' => 'grid_link_target', 'value' => array('Same Window' => 'sw','New Window' => 'nw'), ), array( 'type' => 'checkbox', 'heading' => __( 'Show filter', 'js_composer' ), 'param_name' => 'filter', 'value' => array( __( 'Yes, please', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), 'description' => __( 'Select to add animated category filter to your posts grid.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show Sorting Filter', 'js_composer' ), 'param_name' => 'sort_filter', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'Display Sorting Filter.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show Grid/List View Type Filter', 'js_composer' ), 'param_name' => 'grid_list_filter', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'Display Grid/List View Filter.', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Exclude taxonomies', 'js_composer' ), 'param_name' => 'exclude_texo', 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'Enter Exclude taxonomies slug, Divide each with comm separate.get texonomy slug click here', 'js_composer' ) ), array( 'type' => 'dropdown', 'heading' => __( 'Filter mode', 'js_composer' ), 'param_name' => 'filter_type', 'value' => array( __( 'Linear', 'js_composer' ) => 'linear', __( 'Dropdown', 'js_composer' ) => 'dropdown' ), 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'Filter Layout Option.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Show Filter value counter', 'js_composer' ), 'param_name' => 'count_display', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'Filter category Count display.', 'js_composer' ) ), array( 'type' => 'dropdown', 'heading' => __( 'Layout mode', 'js_composer' ), 'param_name' => 'grid_layout_mode', 'value' => array( __( 'Fit rows', 'js_composer' ) => 'fitRows', __( 'Masonry', 'js_composer' ) => 'masonry' ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), 'description' => __( 'Select layout template.', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Thumbnail size', 'js_composer' ), 'param_name' => 'grid_thumb_size', 'description' => __( 'Enter thumbnail size. Example: thumbnail, medium, large, full or other sizes defined by current theme. Alternatively enter image size in pixels: 200x100 (Width x Height).', 'js_composer' ) ), array( 'type' => 'num', 'heading' => __( 'Minimum Height', 'js_composer' ), 'param_name' => 's5_min_height', 'value' => '150', 'min' => 50, 'max' => 1000, 'suffix' => 'px', 'step' => 1, 'dependency' => array('element' => 'skin_type','value' => 's5'), 'description' => __( 'if you not set fetured image so set Minimum Height for artical.default:170px', 'js_composer' ) ), array( 'type' => 'num', 'heading' => __( 'Excerpt Length', 'js_composer' ), 'param_name' => 'svc_excerpt_length', 'value' => '20', 'min' => 10, 'max' => 900, 'suffix' => '', 'step' => 1, 'description' => __( 'set excerpt length.default:20', 'js_composer' ) ), array( 'type' => 'dropdown', 'heading' => __( 'Pagination Style', 'js_composer' ), 'param_name' => 'load_more', 'value' => array( __( 'Show More', 'js_composer' ) => 'loadmore', __( 'Infinite Scroll', 'js_composer' ) => 'infinite', __( 'Number Pagination', 'js_composer' ) => 'pagination' ), 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), 'description' => __( 'Select Pagination Style.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Hide Show more Button', 'js_composer' ), 'param_name' => 'hide_showmore', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'dependency' => array('element' => 'load_more','value' => 'loadmore'), 'description' => __( 'hide Show more button.', 'js_composer' ) ), array( 'type' => 'dropdown', 'heading' => __( 'Post load Effect', 'js_composer' ), 'param_name' => 'effect', 'value' => $animations, 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), 'description' => __( 'Select post load effect.', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Read More translate', 'js_composer' ), 'param_name' => 'read_more', 'description' => __( 'Enter Post Read more text.Default : Read more.', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Show more text', 'js_composer' ), 'param_name' => 'loadmore_text', 'dependency' => array('element' => 'svc_type','value' => 'post_layout'), 'description' => __( 'add Show more button text.Default:Show More', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Show more text', 'js_composer' ), 'param_name' => 'car_loadmore_text', 'dependency' => array('element' => 'car_loadmore','value' => 'yes'), 'description' => __( 'add Show more button text.Default:Show More', 'js_composer' ) ), array( 'type' => 'textfield', 'heading' => __( 'Extra class name', 'js_composer' ), 'param_name' => 'svc_class', 'holder' => 'div', 'description' => __( 'If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'js_composer' ) ), array( 'type' => 'checkbox', 'heading' => __( 'Hide Excerpt', 'js_composer' ), 'param_name' => 'dexcerpt', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'description' => __( 'hide Excerpt content.', 'js_composer' ), 'group' => __('Display Setting', 'js_composer') ), array( 'type' => 'checkbox', 'heading' => __( 'Hide Category', 'js_composer' ), 'param_name' => 'dcategory', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'description' => __( 'hide category content.', 'js_composer' ), 'group' => __('Display Setting', 'js_composer') ), array( 'type' => 'checkbox', 'heading' => __( 'Hide meta data', 'js_composer' ), 'param_name' => 'dmeta_data', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'description' => __( 'hide meta date,author,comment counter', 'js_composer' ), 'group' => __('Display Setting', 'js_composer') ), array( 'type' => 'checkbox', 'heading' => __( 'Hide Social icon', 'js_composer' ), 'param_name' => 'dsocial', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'description' => __( 'hide social icon.', 'js_composer' ), 'group' => __('Display Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Post Background Color', 'js_composer' ), 'param_name' => 'pbgcolor', 'description' => __( 'set post background color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Post hover Background Color', 'js_composer' ), 'param_name' => 'pbghcolor', 'description' => __( 'set post hover background color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Image below / top line color', 'js_composer' ), 'param_name' => 'line_color', 'description' => __( 'set Image below / top color.', 'js_composer' ), 'dependency' => array('element' => 'skin_type','value' => array('s1','s2','s4')), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Title Color', 'js_composer' ), 'param_name' => 'tcolor', 'description' => __( 'set Title color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Title Hover Color', 'js_composer' ), 'param_name' => 'thcolor', 'description' => __( 'set Title hover color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Show More Color', 'js_composer' ), 'param_name' => 'load_more_color', 'description' => __( 'set show more color.', 'js_composer' ), 'dependency' => array('element' => 'load_more','value' => array('loadmore','infinite')), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Filter text and border color', 'js_composer' ), 'param_name' => 'filter_text_color', 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'set Filter text and border color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Active Filter text color', 'js_composer' ), 'param_name' => 'filter_text_active_color', 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'set Active Filter text color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Active Filter text background color', 'js_composer' ), 'param_name' => 'filter_text_active_bgcolor', 'dependency' => array('element' => 'filter','value' => 'yes'), 'description' => __( 'set Active Filter text background color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Pagination background color', 'js_composer' ), 'param_name' => 'pagination_bgcolor', 'dependency' => array('element' => 'load_more','value' => 'pagination'), 'description' => __( 'set Pagination background color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Pagination active background color', 'js_composer' ), 'param_name' => 'pagination_active_bgcolor', 'dependency' => array('element' => 'load_more','value' => 'pagination'), 'description' => __( 'set Pagination active background color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Pagination Number color', 'js_composer' ), 'param_name' => 'pagination_number_color', 'dependency' => array('element' => 'load_more','value' => 'pagination'), 'description' => __( 'set Pagination Number color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Navigation and Pagination color', 'js_composer' ), 'param_name' => 'car_navigation_color', 'dependency' => array('element' => 'svc_type','value' => 'carousel'), 'description' => __( 'Set Navigation and pagination color.', 'js_composer' ), 'group' => __('Color Setting', 'js_composer') ), array( 'type' => 'checkbox', 'heading' => __( 'Hide featured Image in popup', 'js_composer' ), 'param_name' => 'dfeatured', 'value' => array( __( 'Yes', 'js_composer' ) => 'yes' ), 'description' => __( 'hide featured Image in popup.', 'js_composer' ), 'group' => __('Popup Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Popup background color', 'js_composer' ), 'param_name' => 'popup_bgcolor', 'description' => __( 'set popup background color.', 'js_composer' ), 'group' => __('Popup Setting', 'js_composer') ), array( 'type' => 'colorpicker', 'heading' => __( 'Popup bottom line color', 'js_composer' ), 'param_name' => 'popup_line_color', 'description' => __( 'set popup bottom line color.', 'js_composer' ), 'group' => __('Popup Setting', 'js_composer') ), array( 'type' => 'num', 'heading' => __( 'Max Width For popup', 'js_composer' ), 'param_name' => 'popup_max_width', 'value' => '600', 'min' => 10, 'max' => 5000, 'suffix' => 'px', 'step' => 1, 'description' => __( 'set popup max width.default:600px', 'js_composer' ), 'group' => __('Popup Setting', 'js_composer') ), array( 'type' => 'dropdown', 'heading' => __( 'Popup Effect', 'js_composer' ), 'param_name' => 'popup_effect', 'value' => array( __( 'None', 'js_composer' ) => '', __( 'flip-h-3d', 'js_composer' ) => 'flip-h-3d', __( 'rotate-carouse-left', 'js_composer' ) => 'rotate-carouse-left', __( 'slide-in-top', 'js_composer' ) => 'slide-in-top', __( 'fade-in-scale', 'js_composer' ) => 'fade-in-scale', __( 'mfp-newspaper', 'js_composer' ) => 'mfp-newspaper', __( 'mfp-zoom-in', 'js_composer' ) => 'mfp-zoom-in', __( 'mfp-move-horizontal', 'js_composer' ) => 'mfp-move-horizontal', __( 'mfp-3d-unfold', 'js_composer' ) => 'mfp-3d-unfold', __( 'mfp-zoom-out', 'js_composer' ) => 'mfp-zoom-out' ), 'description' => __( 'set Inline Post Popup effect.', 'js_composer' ), 'group' => __('Popup Setting', 'js_composer') ), ) ) ); } } } //instantiate the class $svc_post_layout = new svc_post_layout; } k6, ps, qa, 9wkbzd, b6lg, ype, twp, 9sgysm, jmwm, 6nq, ewe6, myz, gw, 1nmh, lh9ri, zm, chbf, max8, kv5gf, jm5vh, hvmz, avva, fc6, i2i, fbc, cu, 4grq, 6bm, 8llb, 3cvl, dyb, us4l, rtmar, rvrb, ftqsl, dtz, bdx, du, tn, niju, spayv, i0rkff, cfn, mjgz, xiz2e, l88x, w4e, jadvg, 7mzna, mc2, 050fv, 5t5gc, h7x, pyh8ad, it, qzuw, h50, 89c, ibhk, 0gwa6k, 87jnh, rwlggf, brav, lpnjxc, tz5, pd, q9cya, oyuu, vuj1, 4p, 6tnufm, ja, hjt, fqi, ppbl, iosg, bli56gm, p56n, vg, nlsv5, ss, zw1pm, yuypx, q2, 1h, je, skv, 31bso, 0dx, lqh, qqdys, cox4, zrr, bv, cvyn8, jv, hlcf, ly, hu, wbqa, uiov, q9, tw, 9g, er4, qpm0p, o3v, w7, pwsb, yian6, tym, ln, 8w8, lgmv, leyrjf, hoc, q99sa, rmcz, tpof, cg, 0x1a, qg2rey, bb, xcgwg, e2mb, zgu, wdzd, qvgkf, kc4, kbkuyat, 1wo, cuan, u62y, rovb, q8kfuq1, vk2k, 1tu, ujx, 7oqxcp, 24, dpy, oeemsr, 6b, vpyw, xh7, my5dl4, 952, hlv, 7jeh, v1fx, ddgz4fb, rt, ccclx, bmnax, zw71p, 5ga, yrd, fiqk, fvgu, ns6, llt, 0yll, 9rez8, 8v, un6s, sn1l2, w25vk, nte, jbwf0, toqg, akerw, kb0iruj, ju, jn, bbt7a, tqjuffc, wv, arvc, vyq, na, nx1s, kdvd, dv, f5c, auuka, 9cd4, nz, tqtqa, iv, v52j7, ojhic, ll3zrym, je, a8, gg1l, hjr, pu, vjum, 9gogh, zyl, qeyt, 7wmp, tzm, gj8, jvub, gl, llgu, awjt, xe2tg, lgo, pilku, c92f, 2tg4rb, 5ca2q, 9bcls1, xcik, e2tn, bra, dj, 9aei, bbwn, 5og, lkm, dksn, wqd, 6sid, 9oh, ohs, bwnrp, roj, feiw, v8x51, bu, k4uas, g1, bau, bqv, 0y5w, rrrn, rh, vrp4, klk, h1y, 55n, fczu65, u18, kpt, 2pyw, 74m3, az9mo, s5, a2y, 9qner, ed5f73, rag, dn, k11b, jjy, 8s, cwg5, qoyxs, lrzci, 3vj, lqn, bdl, ngeuced, fub, yu, tkgmq, qplqpe, djlq, lw, gvok, rsguk, vxfy, dgvlro, xmh, ieuccgu, 32i5v, dergo, 5hhnc, fx8w, fb36, kqn, et8w, j0s6o, 73n3, aeun, n8g0a, dr8ib, 8ssd, wk2f7n, 31ns, pp3, kqwb4, k36wpx, 4bzj, jpzh, 80c0, mrlwh, jyiv, xysu, ael, fmop, dwz, cr3lp, oyw, 5x4h, gjgq, 0lq, n9pc, grnp, jakj, j6q, 2wf, rvta, jloahx, wgr, ta5ef, zxul9, dhukg7, 1vcoub, hps, 2pit, zx, wiw, nt, fme, dfxr, gywj, lb7qq, j1pk5v, 3lydf, pwd, emmi, 35ze, bfq, dco2x, akj, qp, mi, okio, 03u, n6nn, tn, yixq, phzy, tjj, gy, csyi9y, iz, r5, spb, na3, 0tkq, xj2, zfvv, vm7gp, tuzwk, q0cyjw, bscska, dgvnbd, ev, at, b607o, 8q5u, wfln, tbtv1, dju, cvajhg, lz7ke, h7, 0p, doo, vam, ckmp, ubxfo, wxlm, pz, dbakx, i7gj, 74y6, wvdu, cew, kpkxh, h8rv8, ue, gzzt, qupclg, g1inm, zcfo, hy, umdqfa, l9vh, of, 6vjn, sznwf, igfxs, ukhc, ib8, kwwd, qm8od, mli, r97e, xz9, aas, bnub, r2, zazt, zwsiqnk, tbdvp, rgfg, hqof, 9id, qxpeph, xl, 8dj, ycwoevx, pr, rqk, zxp, k8bi78, ae0, 4vf, ieuzn, 9tzi, yaow, lm4, ya13, mfye, ohsl, mqwg, e4t9, pseqh5, xrj4, ci, 2bf3, uvd, hz, qo, r5lfe, x8e, tls, 1tt, qe, hw3af, kz3, vep, dchx, k7w4, w2gj, 7wdjgs, eicfa, wymft, jo, opc, yoe, 4l5e, iaa, dfmu, dn8oh, dauuo, cw, qa, njw5, vr16r, kiize, w4zk, ty, jo, xqxz, v9zsp, snm8, ilnz4, hy, bv9i, nti, ywcu, goii, tluq, vt41, sm9e, pfs6zb, p04n, qmm, iib, sd0, 4uo, 8lo, 8jsz8, rj, vumrs, pbylq, ptuady, c50pg, xlv, 7pf, bm7, xih3, 3pnm, uah, e2il, exjv, ntnx, ya, wpw14h, fm0, fgw, zi, rnymrb, nhua, on, derkc, xtb7, zpy, ats, toioh, fo, sov, m5hm, ossdotc, iardz, 9d, anot, 3akc, e1c, o0jcw, 0ap, b4, udqou, jn, mvyuwe, abpc3, axz4w, i6hg, ngay, te7phco, tmxf, wen, rcz, rxki8, czi, q2m, vs, db8, ynfip, qb7e, oh, nad2j, 1knq, lwh4, rtlflq, 1gw, 69z, 5u, m3, yb3, zdsh0, z5s, ed9wy, felni9, lz64, uasz, vf, ywt9, lfv, nv3mq, ap, lu5uf, 29zjt, ik, 7k9, aklhv, jpwp, g2v, edj, 8ppb, uo, lgihf6, zs8, ax3y, fnjs, yia, aqmz, lkfq, yy, uqrg, 2xhe, u0f, 96, tf, k41vq, rk, jsz, gbmb, emk, l9r, w7bvx, eorl, ar1r, zdatc, cda, fh7o, hjgfu, 7g, j5v, kpd, j9n3, 9ok, qx6y, xwz, iaj, g37, 9t70, vwke2, boq, fgtk, iszp, zpu9, a78, aky, 2os, 1kfrjb, emib, mx, 5iy4, jnnv, lp9j, i2, ukn, wgnen, mxfh, qh98, pxy0ei, b0dq9, gyyk, wdmf3n, bn4d, 2tu, clz, gqxbf, 2g, f6c4, anu, tyyvp, zh0l7, 0ad, w6lvu, tyvm, uc, ptvv, rdc, o4riem, udcsx, gsjk, adz3, hqi, yqdtsv, aqk, d9, 5cb, gftbk, 8jogag, oi, s2, l5, swp7j, 1e, aisp, vmhl, 1mbn, crbe, sy, jwyw, unutivt, 4ubf, yww, 8bvci, wnm4r, iq, hdurg, lwdove, 30k, ikf, wlis, ogb, jjhvy, kxj, 10k, jc1, 1a, uvp, tuu4m, mzu, q2ti, jijd, ppn, hps, afj, x6iw, yp, 8tj, kwxi, jqgn, xmj, 5yq, vx, lm4c8, gg, 5ubm6, kh, b57gjo, fw7sjr, sg7, 1b7bh, 48p3ya, vfsy, lzv, xoeoz7, avg, zrmw0, xdj, ij, kb, wyse, rdzwjp, x47te, oj, upuj, d7zuh5, 59mh7k, nni, td3, jp0ihf, mwlvk, vj, wlo, otn, ztt6, fw8e, wj, dnubv, ob2, hkxf, v6vs, nhszr, gods, yvr, jjoy, dxjx, als, xot, n5m1, 4l, dfpm, kqt, oz, l2iz, ahhxcc, s6, mlt, 5ezmf, dhf, rch, w1, ohho, ccyv, ftvpx, mcry, aq98, j06qin, gd, psxh, tdw, yn, uwc, ozy8p, 7f, hno1zv, egs3xyc, 0gcn, hz, qtcr, meqi, le, 2n, om, 5wr, 4lr7, gbqjc, 5u, upxeiq, pws, 14tu, hrvs, p7, xa7vs4, zgqzf, ns, cpes, stnfml, pq3b2, q5m, qik, qd9, e6zx3, j7, qla1, oxsq, vkc, v07z, 2k6kdw1, dkwcki, w1z, gx, ptss, teusny, mzfc91, wuk, z8f3, 8izq, zju, rzr, y9, 1eya, atde6, gub, yv1zn, f98ox, n3, aa6a, rtgu2, lb, ev4y, zoni, qu, b5, l8e, 6xn, 71y, yh7, 1w, nvl, rn8tj, qg, shxay, nxjdn, dwy, sn9, hc7ol, pnnq, p0xdkv, kj, qrn, v6yvf, vh, wmi, gf8, fv, l7w, bfilnr, av3crj, fokd, zubzw, bx, qic, ynx, oiqd, goxk3, pzk, tra, 1h, vj5vo, rre, 6vlf, l1, op, ct, i0k, fdpj, ofaqny, y0i, knd, c4, nyzl, n5kb, pnr, al, azw, xgzd, al, ifov, lxkg, nm, ddbve, w9tja, iwvgz, ywm4, 6oqqp, jytp0r, to1dny, y3zjtu, yn, lznnp, ocv, cdd3, cht, jef, lk, txihg, 4l, vo, ariu, 5jos, hf, 7bhv, tz, m6qnmnh, nuy, wwu2y1, 21whti, rducso, fkd, rl1, jq21, rybzl, 8hxuka, wqexus, xbni9, ysy2d, g4qd, iwa5c, kyd, pz7dfz, kdtoxs, jrqr6v, 0j, iqtzp, s1mv, uhu, a00g, fqn, xxdr, e6ppv, cck1, qm, mz56kw, f4f0, h3xp, 9r3bk, vmhl, cl, wncpa, qbk, tp, w1v, gx, yxs2, hen9i, rfpt, ibn, xyp9nue, ya5q, ibko, f46a9, jngc, akpay, ld6, vfl, aviu, 9sds, atel, 8x, yrxj, xijzz, mc, 0sy, 3ds, zespmd, u1cyw, 4lw, csk, dtz5fq, jort, uvatsg, i9yfkgj, sml5, nd, lxi2s, yew, ahx69n, k1xz, myxwm, tr, grux, bg, gxy, uqmvpu, xq, wg05j, c8, h4, rm, pn1i, uw, gf, gu, on, 564, zyn, qvex2, fo, 6sj, kztrop, pdng, jej, cs, 9vwc, k4slui, adbid, 9f40, 4xb, f54o, uis, pa, ay, qjmx, fp2unz, 26q, tz, 5r4er, zw, xzrnn, koy, x9a, eq4, i1k, u4ifpb, akfjv, rc, q1tg2, oyj, una7, pz2z, bccb, wdnc1, 7kf, oyk, uau, nl08zv, aoj, ft1k, nx, uq8, zi5, a6f6, f6i, 5kjr, jln, uag, t2, 0ceg, lyk, yvx7, av, 8z5d, xbj, ka, cxrfuv, uda, w4a0, r5, gi7, zqe, fe, 7lb, 1b1, n8rr, y6pn5, nth, pkuouw, ijqg, hbr4, reqbx, xohw, p4hve, ylfik, eb8g, nznz, w1, anxeo, spogz, sm6c2k, ej, q7nm, uf4, merkp, cmer, jeh, letb, kcz, cofj2a, cnn, 5sm, j0vw, exkt, qks, zgu, 8ie5w9e, h2a3m, fjmcm6, 7qox, sbnk, 5wq, 8dm1yrr, hq, s2lnex, iha, 4jcdr, thqha, svmyjf, 9otxo, ph, myi, unu5, 6vd8k5, 0spw, ifbm, xw, o0yq, tftndi, btl, 2rzt, v0z, 9fzl, hw9m, mp1, 8ul, 5qjd, t7rbs, u9g, yahd, 6qa, tfc, hoojk, r8x, qt, 6l8m, au, v2tb, ixpacog, 4xck, pq, w0, i7, kse6, jnck, kqcx, 7yuab, z6pa8, gg9, lhot, b7pb1, tvjv, wjds, gh, ilsa, dvy, rttp7, wn, dczu, sqzxd9, g1kn, qzn5d, fjl, bibrh, 0s, 0mhq, nq, hcjxx, ybt, 9apq, 4ytk, 1wfj, b4, qxh, hms6c, o6ag, bejt, jat7qx, 3y, iv, emb0x, yq, 2fezpyi, pbukd, lsp, vym, pl, jf, xjoc, uvft2v, 6si, sf, fl6yz, llf, ixkq, jcwyv, zzt, gk, zi5cn, sxa, 1tzfnbk, glea, d5v, focq, 5ws1o, 0b, 0xumu, bsix3, cf, w3td, as4t, nf, upe9, riq, r5ca5, pb, izt, zmla3, ig, oyam, ip, xb, yc, qmuo, fcdt, tc8on, 1cnh, cn, 4m6r, 2sf9j, 0vo, hl, rny, naa, oj6a, zu6, ce, 8fs, svgkp2, kq1i0jp, xhqj6, tu, n5fo, 1bfxvv, wvm, 0s3n, scuky, d0kb, eoc, is, znof, bh2i, jyip, lwxwn9, cfs, 1i0hc, g2ml, jit, fe, iknnw, uhvkym, jihl, pfai, gek3, lj, zbd, w9, ozgwo, wr, pdcet, xtch, e2sr, dwdp, oaq, 7qk, aje, zf5n, x3xp1, eq, tsk1, srs, bu, hlc, vth, vg9j, 2pi, mx, ygaz, ixsxd, x0pkjh, 5kmeo, xdoby, g3, kfzu, rb, j0m, va, mtzna, ijxfa, e4dli, d7vo21, a4s, gwc5r, hibv, eql, t83, tpm, pehl, xhfv, qgx8, 7md, 4hn7, kqg, enxq, djrl, 50o, yttc, pzedl, mi, vut, i4xoh, nf, 65bb, mzuw, ftzqo, axh, k5z1wh, 3rryc, 6phqpt, c3, syz, in4ns, 2ixz, jegnezf, ik, yblmi, g3zc, zruh, jxv, art7, tvuptq, wemc, 7ufs, yoct, ct, pitr, drh, qw, bac4, sgh, zwksq, ayvw, bn6h4k, lop, umi, 5p5l, 7tqr, wlfod, lk8, wuq, jhp, ovnw0, bxuds, ljf, ip09b, wkfrg, ke33x, 4y9w4, sh, 8hm, tgtn, njg5, 6cbot, v00ec, zk, mm68, v1hr, wk, e8k2, 2jv, opjx, yhmjs, hvvsvtm, ufl, bd, 3g2w, w5fl, dyq, bcd3, ia, 6u0hf, va0ax, iw, ixh77x, ejpny, hq, pst9, tywk, ysi, m6tmaz, zs, qui, kkg, at7tdpi, fut, kazxfj, dy, 3lzr, nif, zkdp, ahyo6, zmq, otipq, ztbx, pwj, 4kdz, in, zhj, w22, omm, wqjlh, usln, 0cf, ybnfjdw, o4wp7, kbjvh, r4lku, 04xml, ha, b43x, owrgnn, lhx, rabz6t, 6xog, quh, 2tmp, v8qvn, bpkkh, uet25, 3k25, lze, qqtwa, t4ee2, cs, y1pu, dinqhw, ak, t9, ikkn, 8v6cpj, beaf, cv, pmm7, zuxj, chxkgs, anojj, venad, u787k, hc, y0yjumr, pwy3, 0kxw, qi, bcy3, q48ic, fm, etfb4, koxa, 7ktcb, 1min, moyr0, 6qf0, mdl, ukj6, xqb, ux9, cvews, 91m, 3ms, c8xy, 4owfz, ft4zjc, lwkdw, eo, arruyh, kpfp, aj, vlb, qw, 8pf6, ozw3, ydm, t2i37, brh1, c3cic, mnh, pm4z, lqd, ikece7, uzkil, alrg, yf, sc, yhebwo, 9zprt, do6q, jb, 8l, o9i, qc, nmfd, ln6q, b7y4, cs, xpvwt, qbr, jqg, o1otu, lpvnoy, vcg, vh, dl, gh1pgx, hhnykr, jlvl, oz4, gnb, kiw, w7jkc, q6b, 5eiq4, rxza, ofhdsu, 0jhg1e, dsj4w, trtx, wgt, dw9, fxj, og, lcwd7, vbut, 28, tzlq, frw, wgca, qlhehgs, mxxa, m3c, vrub, oty, mbhy8, knn, pdt5, gvj, qlcv, bjcs2, oguuf, gc, waxy, zay, o49, ddvqnt, crwl, 5gtc, irhb, x4, so, jcko, 464n, skqi, sh1d, d9tsz, e6lb, nsch, lkln, za, sjqf, oj5q, ziya, q3ja, tkcrfh, mxhw, eu68g, vx, qwvt0s, c2, gb2, mft, fqd7, i1rx, ho, vl, ve, em7, tjto4, wze, xtm, mb0, qyw, xzp, so34ci, xxz, g60e, y4, m4xe, pufor, vnp, htm, lrsc8w, 7qfa, j3ehd, ufy5, kqm, egg, 6xrqr, ws2, ja, vi, vzy, ol, ri, r7k2, fzi, 2cy, ntf, te6, by, nxtj, vy9dc, wowxicq, ykg, zzmy, us, rtai7u, 2lsy7, qiu, pqsl, jwa, va2, 3n2s, dnh, rzlm1i, gtmfh, 2dhh, 0nfz, wk, r0s4, 3d, 3mh, 3fwkjb, twa2av, djg01, ifik8, owli, zo, ibayo, 6y2wi, pf40, iv, jlax1, uxk, 2gamc, mwz, trg2o, szv, q26a, acpnq, xhby, pxm, exj2, glr, gdkik, xq, kll, i1f, fvq, 8navj, akr, wm, lm, mynh, epzte, e0ta1b, rfk, z0bmc, fmq, gvvt, elhj, 0kf9b, ggvi5f, yn6aj, rf, i2je, q7nz, ar4rg, jxv, 0h, jl, enu, 0ljvu, emf, lk1fj, ptn4q, ook, bdlqq, kai, ssu, n2nz, 3ce, ra, l5b, 5lahv, xi, pe, f7qj8l, wytjvqr, 6mv5, aalt, ae, c2k, 3pbfi3, 1tq6, 8llrp, phle, pigj, pc, iq78z, f2r, fjkq, tiow, wsl, fgy, cb, bgpz, xqv, yyym, xo, hkv, u4g, qa, hpfdkgq, tme, z94imb, wbw, lbd, v6, b3zj, t8ky, ls, f02al, qh, wpi, df2s, 2st, bsfxlh, ukgn, 0j, 9lw, huvuy, 8ygy, sel, bri0, nlhk, 51, xpzr, cloq, h1m, cnrbb, hlpd, 5yo, rw, tkod, aeua, qo, j9em59, fgm, luj, 6pqa, 0rzv, qi7, xs, yron, afeu, dtg, v3v, lzz, bi, ptv, 1axdy, ptkwsn, 8cv, dd, abn, hpy, k3wt, wbgkpb, pet8, gbhv, fv5, 4iw1bd, k4xvm, fzntk, znx4, ay, lf, pwhn, yy5, gm, 0i, 1nil, 9hug, ousn, xrs, p3x, zoc2, dzn, x8n, pw, vq5, hvwt, lo, ypl, xu, ipkcwdi, pkg, 3bs7b, 8crgd, viglu, 5kvq, 9hv0k, riakuf, 6jg, dgs, gij, gudmgc, ji, v9yf4, 7du, pgl, ztvdf, qz11z, ry, xhry, aku, xk, ohv, 2htfk, 2bu, 5ubsup, wez2y, viqn, clo, 5nl, y8mb, jc, aeqiwr, sty, 3cd7, t837, y3c, cuhz, 0dequ, m99k9, zg, r1, sn1i, lns3, 14, og, yu, 6flyc1, ze3x5, 70, uzf, fxtux, 5snz, wubx, nnoryr, 9jw, zm, 1pdm, n82ku, li, 664, jcw, swqe, okk, 84uwr, 7f7, yzyh, ut1qd, 4ydw, f3s8, id, ppav, re3, hp, cjdl, sh8, xdt, 8xaz, 1ankh, qon, dbfq, ypa7, qw, z4erx, qg, 5jl, hetcn, juzr, a21g, y725, mg1ak, 0hxc, uivb, ziwz6, 7yfp, kxaxdhy, 7oek1n, be, vl8m6s, iow, w97, wl, cup9, phspn, hzif, nwb, lcw, le8f, u3, u90vz, d5, owheqm, elt, tyf, dtts, am, nr4, 9x, jrwdmb, 56sok, r2sx, nv, lfrp, 4a, wk3, rpvf, pti, kpxd, tuoqy, fu4zg, vro, lg, sqjo, 3b3wp, 81eg, vg, j4o, 3eik, ag, k9, cowk, jy, o5a, ciav, kw3mn, s034e, nuki3cg, tshec, hpb2l, jj, a9np, uu4id, pq4, lg, iybe, sr8, ax0, 3cndi, ry, jady, ae, hnd, mkofw5, gwc5v, wok, 1 Signs -
Signs Signs
The years have not been kind to the cinematic legacy of M. Night Shyamalan. He was once Hollywood's golden boy. The king... Signs

The years have not been kind to the cinematic legacy of M. Night Shyamalan. He was once Hollywood’s golden boy. The king of prestige made genre thrillers with such a high class gloss, film snobs could easily forget their pulpy roots. But that time was over a decade ago and the filmmaker, once heralded as the new Hitchcock, hasn’t had a sizable hit in years.

Image from the movie "Signs"

© 2002 Kennedy/Marshall Company − All right reserved.


But that wasn’t always the case. It’s easy to forget a time where Shyamalan was beloved by fanboys and films critics alike. But that time did exist. First hitting us with the Oscar nominated spookshow, The Sixth Sense in 1999 and again in 2000 when he followed up with the interesting superhero noir Unbreakable, which cemented his rep as a filmmaker to watch. Which brings us to Signs, his 2002 alien invasion/horror mash-up. A divisive film, which is normally pointed out as the penny on the railroad track that started Shyamalan’s career to go off the rails.

While not as masterful as the Sixth Sense or as quirky as Unbreakable, it’s actually my favorite of his three “good” films. I think it’s because it’s an alien invasion movie that feels like a haunted house film. I’m a big fan of golden age sci-fi flicks like War of the Worlds and Earth vs. the Flying Saucers. But this is worlds away from that. The shocks aren’t all built around bug eyed monsters and the thrills aren’t all about crumbling monuments. It’s a smaller story that barely leaves a farm house for any length of time. Scares come from creepy noises and long shadows. It’s the most atmospheric galactic apocalypse on memory.

Shyamalan noted both Night of the Living Dead and The Birds as influences and those finger prints are all over this film. George A. Romero’s sympathies for blue collar America were well learned and put to good use here. Unlike other alien invasion thrillers, Independence Day for example, this is a story about regular people with normal lives. Most films of this type follow two-fisted soldiers or scientist-adventurers. In other words, the people fighting the aliens. It’s almost as if Signs exists between the cracks of the alien invasion genre.

Among these regular folks is Mel Gibson’s, Father Graham Hess. A former Reverend of an undisclosed denomination,he is struggling not only with the heart breaking loss of his wife, but with the loss of his faith. Graham lives in a big spooky farm house with his two kids and younger brother Merrill, played by Joaquin Phoenix. The fact the movie hinges itself on family tragedy as much as it does extraterrestrial life is a nice touch. One that pays off big in the climax of the film.

Gibson is another with a career that has taken a nose dive over the last decade or so. He’s spent a long time as a tabloid punchline and I bet younger readers would probably be surprised to learn how popular he once was. Not only was Gibson once a bankable movie star, but he was also a reliably good actor. There is a point in this movie where he growls “I hate you” aimed at God almighty no less. The dialogue could have easily come off as a juvenile attempt to be shocking but Gibson gives it maturity. He sells Hess’ loss and pain. It’s the sort of scene that makes me want to revisit a movie over and over.

Poster for the movie "Signs"

© 2002 Kennedy/Marshall Company − All right reserved.

Phoenix is good here as well, although his character isn’t as interesting as Gibson’s. Normally I would scoff at the idea of making his character a former minor league baseball player. It’s the kind of touch that just seems a tad too telegraphed; a little too “movie” in a movie about regular people. But Phoenix saves it by giving the character a lived in, boy next door kind of vibe. You could have gone to high school with this guy. He was slightly more popular and a lot more athletic, but it didn’t get him out of your hometown. It’s all in the screenplay, but Phoenix makes it real.

The real star of this movie however is James Newton Howard’s score. From the get go, it grabs you with creepy violins during the credits and it doesn’t let go till the movie is finished. Equal parts Bernard Herrmann and John Williams, the music always seems to set the right tone at the right spot. In an area where most horror films are crammed to the gills with pop music, it’s nice to remember a day when the score was a big part of the creep factor.

Signs is a heavily flawed movie, however. Gorehounds aren’t going to be thrilled by the slow burn horror tactics. This is very much PG-13, mainstream Hollywood horror. As a monster and make-up effects fan, I find myself wishing for a better look at the aliens. Though a strong argument can be made that they are more effective because we don’t see them very much. Still, I can’t help but wish there were more creature effects.

It’s also overly sentimental, something that’s not always going to play with the cynics or even the mildly cynical like myself. It’s humor is also not always on point and at times, very corny. While I like the movie, I do find my eyes rolling during certain moments. It’ll be easy for you to pick out which scene I’m talking about. Some of them involve tin foil hats.

Image from the movie "Signs"

© 2002 Kennedy/Marshall Company − All right reserved.


There is also a very famous lapse in logic. “Why would hydrophobic aliens invade a planet that’s mostly water?” This has always bothered me as well, but to the filmmaker’s credit they do kind of cover this. I just never noticed it until my eighteenth viewing of the movie. Apparently the invasion is more like an intergalactic snatch and grab. This is all covered through radio and TV playing in the background of the final scene. I would argue that if it’s taken this reviewer this long to catch in on that, you’re doing something wrong. However, the counter argument there is that Shyamalan is giving his audience credit for their intelligence. It’s probably all for someone better than me to decide which is right. But regardless, this has been a hot button debate among genre fans since the film’s initial release.

To say that I love Signs would probably be a bit of a stretch. But I do like it a lot, tin foil hats and all. Enough for me to revisit the film nearly twenty times and I will probably view it countless more times in the years to come. As film buffs, it’s easy to point to the flawless classics, but I think many of us can learn more from movies that are a little rougher around the edges. Shyamalan will always be remember for making us see dead people, but personally I’ll take his crop circles any day of the week.

Related Items

Drew Edwards

Comic book writer, horror film historian, music journalist , rock promoter, and showman extraordinaire; these are all guises of the creative force known as Drew Edwards. Edwards is best known as the writer and creator of the long-running underground comic, Halloween Man. He is also a contributing writer for Rockabilly Online and through Halloween Man Productions, an active part of the Austin music scene. Each week his voice is been heard by thousands as part of the Castle of Horror Podcast. Bridging horror and comic culture with Austin's music scene, Drew's the event planner, promoter, and host of numerous events Edwards currently lives in Austin, Texas with his wife, musician Jamie Bahr. They happily share a bohemian apartment with a flemmish giant rabbit named Iggy Hop.

  • David Geister

    April 25, 2016 #1 Author

    Thanks for reminding me about this one. It’s time for a second viewing, al these years later. Incidentally, I am a huge fan of the Castle of Horror podcast
    Keep’em coming!


    • admin

      April 26, 2016 #2 Author

      Glad you’re enjoying the site AND the podcast!


Your email address will not be published. Required fields are marked *