# # Screen Info Snapon # # This snapon reports screen info (screen dimensions and bit depth), based on the information submitted to the web server using the log_analysis_info.js script # screen_info = { label = "$lang_admin.snapons.screen_info.label" comment = "$lang_admin.snapons.screen_info.comment" config_snapon_category = "" version = "1.2" # 2012-04-07 - 1.0 - GMF - Initial creation # 2012-08-14 - 1.1 - GMF - Added page_views filter # 2013-01-16 - 1.2 - gas - fixed bug in label and comment (lines 89/90) parameters = { page_field = { parameter_value = "page" validation_type = "string" form_element_label = "$lang_admin.snapons.screen_info.parameters.page_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # page_field page_views_field = { parameter_value = "none" validation_type = "string" form_element_label = "$lang_admin.snapons.screen_info.parameters.page_views_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # page_views_field } # parameters parameters_form = { group_1 = { description = "$lang_admin.snapons.screen_info.parameters_form.group_1.description" parameters = { page_field = true page_views_field = true } # parameters } # group 1 } # parameters_form attach_operations = { # Add log fields for search phrase and search engine add_log_fields = { type = "add_log_fields" fields = { so_screen_dimensions = "" so_screen_depth = "" } # fields } # add_log_fields # Add database fields for search phrase and search engine add_database_fields = { type = "add_database_fields" fields = { so_screen_dimensions = "" so_screen_depth = "" } # fields } # add_database_fields # Add a log filter to set the derived filds add_log_filters = { type = "add_log_filters" filters = { compute_screen_info = { # 2013-12-24 - GMF - We can't add this at position 0, because in iisweb, that puts it before the filter that builds the full URL including query string # add_position = 0 label = "$lang_admin.snapons.screen_info.label" comment = "$lang_admin.snapons.screen_info.comment" value = ` #echo("{= @parameters{'page_field'}{'parameter_value'} =}: " . {= @parameters{'page_field'}{'parameter_value'} =}); if (matches_regular_expression({= @parameters{'page_field'}{'parameter_value'} =}, '/log_analysis_screen_info.gif[?]width=([^&]+)&height=([^&]+)&depth=([^&]+)')) then ( so_screen_dimensions = $1 . ' x ' . $2; so_screen_depth = $3; #echo("so_screen_dimensions=" . so_screen_dimensions . "; so_screen_depth=" . so_screen_depth); ); ` } # compute_screen_info set_page_views_for_screen_info = { label = "Set page views for screen_info" comment = "This sets the page views to 0, for screen_info traffic" value = ` if (!starts_with(so_screen_dimensions, '(')) then page_views = 0; ` } # set_page_views_for_screen_info } # filters } # add_log_filters # Add report fields add_report_fields = { type = "add_report_fields" fields = { so_screen_dimensions = "" so_screen_depth = "" } # fields } # add_report_fields # When attaching: Add the reports. add_reports = { type = "add_reports" reports = { so_screen_dimensions = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_dimensions)))=}" report_elements = { so_screen_dimensions = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_dimensions)))=}" type = "table" sort_by = "MAIN_SORT_FIELD" # Sort this report by the main sort field, whatever that may be columns = { so_screen_dimensions.report_field = so_screen_dimensions } # columns add_all_aggregating_columns = true } # screen_dimensions } # report_elements } # screen_dimensions so_screen_depth = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_depth)))=}" report_elements = { so_screen_depth = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_depth)))=}" type = "table" sort_by = "MAIN_SORT_FIELD" # Sort this report by the main sort field, whatever that may be columns = { so_screen_depth.report_field = so_screen_depth } # columns add_all_aggregating_columns = true } # screen_depth } # report_elements } # screen_depth } # reports reports_menu = { visitor_systems_group = { label = "{=expand(lang_stats.menu.groups.visitor_systems_group)=}" items = { so_screen_dimensions = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_dimensions)))=}" report = so_screen_dimensions } # screen_dimensions so_screen_depth = { label = "{=capitalize(pluralize(expand(lang_stats.field_labels.screen_depth)))=}" report = so_screen_depth } # screen_depth } # items } # visitor_systems_group } # reports_menu } # add_reports } # attach_operations } # screen_info