# # Broken Links Snapon # # This snapon adds a Broken Links report, based on a full-detail page and referrer, showing all broken links (hits with server response 404) and the URL that referred them # broken_links = { label = "$lang_admin.snapons.broken_links.label" comment = "$lang_admin.snapons.broken_links.comment" config_snapon_category = "" version = "1.0" # 2012-08-?? - GMF - 1.0 - Initial creation # 2012-08-14 - GMF - 1.0.1 - Fixed bug in hits field use in report parameters = { page_field = { parameter_value = "page" validation_type = "string" form_element_label = "$lang_admin.snapons.broken_links.parameters.page_field.form_element_label" form_element_type = "select" select_options_source = "log_fields" description = "" } # page_field referrer_field = { parameter_value = "referrer" validation_type = "string" form_element_label = "$lang_admin.snapons.web_server_package.parameters.referrer_field.form_element_label" form_element_type = "select" select_options_source = "log_fields" description = "" } # referrer_field server_response_field = { parameter_value = "server_response" validation_type = "string" form_element_label = "$lang_admin.snapons.web_server_package.parameters.server_response_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # server_response_field hits_field = { parameter_value = "hits" validation_type = "string" form_element_label = "$lang_admin.snapons.broken_links.parameters.hits_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # hits_field } # parameters parameters_form = { group_1 = { description = "$lang_admin.snapons.broken_links.parameters_form.group_1.description" parameters = { page_field = true referrer_field = true server_response_field = true hits_field = true } # parameters } # group 1 } # parameters_form attach_operations = { # Add log field add_log_fields = { type = "add_log_fields" fields = { broken_links_page = "" broken_links_referrer = "" } # fields } # add_log_fields # Add log filter add_log_filters = { type = "add_log_filters" filters = { compute_broken_links = { add_position = 0 label = "Compute broken links" # LM comment = "This computes the broken links fields" # LM value = ` if ({= @parameters{'server_response_field'}{'parameter_value'} =} eq '404') then ( broken_links_page = {= @parameters{'page_field'}{'parameter_value'} =}; broken_links_referrer = {= @parameters{'referrer_field'}{'parameter_value'} =}; ); else ( broken_links_page = "(not a broken link)"; #LM broken_links_referrer = "(not a broken link)"; #LM ); ` } # compute_broken_links } # filters } # add_log_filters # Add database field add_database_fields = { type = "add_database_fields" fields = { broken_links_page = "" broken_links_referrer = "" } # fields } # add_database_fields # Add report fields add_report_fields = { type = "add_report_fields" fields = { broken_links_page = "" broken_links_referrer = "" } # fields } # add_report_fields # When attaching: Add the reports. add_reports = { type = "add_reports" reports = { broken_links = { label = "$lang_admin.snapons.broken_links.broken_links_report_label" report_elements = { broken_links = { label = "$lang_admin.snapons.broken_links.broken_links_report_label" type = "table" sort_by = "MAIN_SORT_FIELD" # Sort this report by the main sort field, whatever that may be columns = { broken_links_page.report_field = "broken_links_page" broken_links_referrer.report_field = "broken_links_referrer" hits.report_field = "{= @parameters{'hits_field'}{'parameter_value'} =}" } # columns } # broken_links } # report_elements } # broken_links } # reports reports_menu = { content_group = { label = "{=expand(lang_stats.menu.groups.content_group)=}" items = { broken_links = { label = "{=lang_admin.snapons.broken_links.broken_links_report_label=}" report = "broken_links" } # broken_links } # items } # content_group } # reports_menu } # add_reports } # attach_operations } # broken_links