summaryrefslogtreecommitdiff
path: root/kolab.org/www/drupal-7.15/sites/all/modules/views
diff options
context:
space:
mode:
authorTorsten Grote <grote@kolabsys.com>2012-08-27 12:47:35 (GMT)
committerTorsten Grote <grote@kolabsys.com>2012-08-27 12:47:35 (GMT)
commit7b5e4a2b04e4fb38485bc12965e07794388d0224 (patch)
tree42031777dcb7476a63e9d6080ab9b8eef8ebb6f0 /kolab.org/www/drupal-7.15/sites/all/modules/views
parentee39408867ae52c2321036a67c472e684c1e1108 (diff)
downloadkolab.org-www-7b5e4a2b04e4fb38485bc12965e07794388d0224.tar.gz
updated ctools, ldap and views modules
Diffstat (limited to 'kolab.org/www/drupal-7.15/sites/all/modules/views')
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/CHANGELOG.txt397
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.bartik.css9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.seven.css6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.theme.css29
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/docs/views.api.php761
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/drush/views.drush.inc15
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area.inc24
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_result.inc13
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text_custom.inc56
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_view.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument.inc42
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_date.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_formula.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_group_by_numeric.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_null.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_numeric.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_string.inc33
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field.inc183
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_boolean.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_contextual_links.inc55
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_counter.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_custom.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_date.inc26
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_entity.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_machine_name.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_markup.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_math.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_numeric.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_prerender_list.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_serialized.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_time_interval.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_url.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter.inc774
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator_string.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_combine.inc137
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_date.inc33
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_entity_bundle.inc122
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_equality.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_group_by_numeric.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_in_operator.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_numeric.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_string.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship_groupwise_max.inc39
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_date.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_group_by_numeric.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_menu_hierarchy.inc37
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_random.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/about.html4
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-settings.html43
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-style-settings.html30
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-forms.html4
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-handlers.html71
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-plugins.html114
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-tables.html32
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/api.html2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/example-slideshow-thumb-pager.html54
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/filter.html15
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/group-by.html2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/images/views3-views-all.pngbin0 -> 38583 bytes
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/misc-notes.html1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/style-jump.html2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/view-add.html14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/help/views.help.ini13
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/admin.inc278
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/ajax.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/analyze.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/base.inc46
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/cache.inc20
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/form.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/handlers.inc74
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/plugins.inc23
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/includes/view.inc202
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax.js3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax_view.js7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/js/base.js3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/js/jquery.ui.dialog.patch.js4
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/js/views-admin.js54
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator.views.inc25
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_fid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_iid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_title_link.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_xss.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_plugin_row_aggregator_rss.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book.views.inc24
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book/views_plugin_argument_default_book_root.inc21
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment.views.inc42
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_depth.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_approve.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_delete.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_edit.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_reply.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_username.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_last_comment_timestamp.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_comment_name.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_updated.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_comment.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_new_comments.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_ncs_last_updated.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_node_comment.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_comment_thread.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_updated.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_rss.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_view.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact.views.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field.views.inc35
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list_string.inc59
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_field_field.inc81
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_filter_field_list.inc21
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_relationship_entity_reverse.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/file.views.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter.views.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/image.views.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale.views.inc29
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_group.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_language.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_group.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_language.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_link_edit.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_node_language.inc (renamed from kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_language.inc)7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_group.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_language.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_version.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_node_language.inc (renamed from kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_language.inc)6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views.inc58
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views_template.inc2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_language.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_nid.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_type.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_uid_revision.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_vid.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_history_user_timestamp.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_delete.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_edit.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_path.inc2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link.inc66
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_delete.inc28
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_revert.inc26
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_type.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_access.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_type.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_uid_revision.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_default_node.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc4
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_view.inc17
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/poll.views.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile.views.inc17
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_date.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_list.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_filter_profile_selection.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search.views.inc19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_argument_search.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_field_search_score.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_filter_search.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_sort_search_score.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_plugin_row_search_view.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics.views.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics/views_handler_field_accesslog_path.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system.views.inc41
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_argument_file_fid.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_extension.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_status.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_uri.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_file_status.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_system_type.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy.views.inc55
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_taxonomy.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_taxonomy.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_link_edit.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc15
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_relationship_node_term_data.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation.views.inc33
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_argument_node_tnid.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_link_translate.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_translation_link.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid_child.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_relationship_translation.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user.views.inc27
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_user_uid.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_users_roles_rid.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_language.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_cancel.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_edit.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_mail.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_name.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_permissions.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_picture.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_roles.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_current.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_name.inc21
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_permissions.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_roles.inc6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_current_user.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_user.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_validate_user.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/modules/views.views.inc29
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access.inc19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_none.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_perm.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_role.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_fixed.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_raw.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_numeric.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_php.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache.inc65
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_none.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_time.inc59
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display.inc150
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_attachment.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_block.inc43
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_default.inc2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_embed.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_extender.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_feed.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_page.inc12
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_exposed_form.inc25
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_exposed_form_basic.inc9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_exposed_form_input_required.inc11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_localization.inc14
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_pager.inc19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_pager_full.inc75
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_pager_mini.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_pager_none.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_pager_some.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_query.inc20
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_query_default.inc134
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_row.inc19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_row_fields.inc8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_row_rss_fields.inc180
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style.inc55
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_default.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_grid.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_jump_menu.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_list.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_rss.inc16
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_summary.inc1
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_summary_jump_menu.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_summary_unformatted.inc3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_style_table.inc7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_base_views_wizard.class.php18
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_comment_views_wizard.class.php8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_file_managed_views_wizard.class.php8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_node_revision_views_wizard.class.php18
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_node_views_wizard.class.php8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_taxonomy_term_views_wizard.class.php8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_wizard/views_ui_users_views_wizard.class.php8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/comment/views_handler_argument_comment_user_uid.test7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/comment/views_handler_filter_comment_user_uid.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/field/views_fieldapi.test498
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_area_text.test5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_argument_null.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_argument_string.test96
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field.test227
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_boolean.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_counter.test10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_custom.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_date.test55
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_file_size.test7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_math.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_url.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_field_xss.test7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_combine.test105
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_date.test11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_equality.test91
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_in_operator.test107
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_numeric.test196
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_filter_string.test403
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_sort.test11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_sort_date.test9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/handlers/views_handler_sort_random.test11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/plugins/views_plugin_display.test194
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/styles/views_plugin_style.test48
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/styles/views_plugin_style_jump_menu.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/styles/views_plugin_style_unformatted.test73
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/taxonomy/views_handler_relationship_node_term_data.test122
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/templates/views-view--frontpage.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/test_plugins/views_test_plugin_access_test_dynamic.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/test_plugins/views_test_plugin_access_test_static.inc10
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/user/views_handler_field_user_name.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/user/views_user.test5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/user/views_user_argument_default.test5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/user/views_user_argument_validate.test6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_access.test15
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_analyze.test5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_argument_default.test32
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_argument_validator.test8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_basic.test19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_cache.test119
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_cache.test.css5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_cache.test.js5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_exposed_form.test83
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_glossary.test7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_groupby.test13
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_handlers.test44
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_module.test11
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_pager.test112
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_plugin_localization_test.inc5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_query.test19
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_test.info6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_test.install8
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_test.module20
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_test.views_default.inc79
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_translatable.test25
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_ui.test46
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_upgrade.test9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/tests/views_view.test9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/theme.inc114
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-exposed-form.tpl.php9
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-more.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-ui-display-tab-bucket.tpl.php2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-ui-display-tab-setting.tpl.php2
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-ui-edit-item.tpl.php4
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-ui-edit-view.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-field.tpl.php41
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-fields.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-grid.tpl.php7
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-grouping.tpl.php31
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-list.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-row-comment.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-row-rss.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-rss.tpl.php3
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-summary-unformatted.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-summary.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-table.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view-unformatted.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/theme/views-view.tpl.php5
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views.api.php1107
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views.info27
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views.install6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views.module190
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views3.doxy1252
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views_export/views_export.module13
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views_ui.info6
-rw-r--r--kolab.org/www/drupal-7.15/sites/all/modules/views/views_ui.module49
377 files changed, 9121 insertions, 3896 deletions
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/CHANGELOG.txt b/kolab.org/www/drupal-7.15/sites/all/modules/views/CHANGELOG.txt
deleted file mode 100644
index 744ea75..0000000
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/CHANGELOG.txt
+++ /dev/null
@@ -1,397 +0,0 @@
-CHANGELOG for Views 3 for Drupal 7
-
-Views 3.x-7.x-dev
-=================
-#1017128 by bojanz, dereine: Add support to render a single delta.
-follow up by bojanz: Better description for the delta.
-#1017254 by dereine: Fix undefined property error in argument_string handler.
-#1007886 by dereine: Relationship-fields in field_field handler should use the table alias.
-#1018766 by bojanz: Fix click_sort for fieldapi fields.
-#1017128 by bojanz: Follow up: Hide field_field if field value is empty.
-#1018802 by dereine: Convert 'formula' add_where to add_where_expression.
-#1018766 by solotandem: Fix click_sort for fieldapi fields.
-#960648 by dereine: Addjust comment link to d7 changes.
-#997662 by das-peter: Saving a machine name of a display throws Notice "Undefined property new_id".
-#955464 by davereid: Fix notice in views_many_to_one_helper when $operator = 'and'.
-#1019438 by dereine: Fix "illegal choice" for unlimited fields.
-#1019506 by dereine: Fix the remove items element on the rearrange filter_group form.
-#1011004 by dereine: Add validation for query plugin option forms.
-#991202 by helmo: Add option to turn linebreaks into br tags in field rewriting.
-#1001302 by dagmar: Enable attachment displays to have more links.
-#1021784 by tim.plunkett: Extra space added in some classes erroneously.
-#862072 by jhedstrom: Allow argument validator to test if user has edit or delete access to a node.
-Fix fieldsets in field handler.
-#962564 by joshuajabbour: Allow link attributes to be rewritten (internally).
-#672864 by dboulet: cols- class incorrect on table, grid.
-#981872 by infojunkie: Option to hide attachments in summary views.
-#839810 by marcp: Get UID from URL argument default plugin should accept uids from Views pages.
-#1012584 by dereine: Allow filtering on term descriptions.
-#895046 by bojanz, dereine, merlinofchaos: Implement proper multiple field api handling and improve field api rendering in general.
-#1035168 by Ao: Fix strict warning in unread node filter.
-#1044916 by dagmar: Fix improper use of set_current_page member variable.
-#1016814 by eaton: string argument should support name_field.
-#1007376 by dereine: Jump menu was not correctly supporting offsets.
-#1018160 by zhangtaihao: unpack_translatable could infinitely recurse when options are arrays but not declared as such.
-#776830: Attachments and other displays lost "Items to display" controls.
-#747782 by dereine: Improve jump menu grouping.
-#1026014 by dereine and alex_b: Use more always should not ask for the count query to see if we need to show the more link.
-#1012596 by dereine: More inline documentation of class variables.
-#988680 by mikeytown2: Fix Views memory leak with attachments.
-#1023062 by mikejoconnor: Replace views_process_dependency with ctools_dependent_process again.
-#1023558 by mariusz.slonina: Add a user cancel account link.
-#1015960 by duellj: View js should use DOM element not jquery object.
-#1027552 by david_Rothstein: Fix Node: Has new content fatal error.
-#955464 by dereine: Fix many_to_one helper in the case of have no condition and operator = 'and'.
-#696550: Taxonomy validator should always set title when it successfully validates.
-#869172 by bendiy: Add an "external" parameter to field link rewriting so that external URLs can be formed properly even without a scheme.
-#935176 by benoit.borrel: Add "system" table to Views data.
-#839236: Fields named "buttons" would disappear from the rearrange UI due to conflict with the buttons on the form.
-#783514 by dereine: Allow breaking of strings with + and ,
-#1000760 by dereine: Prevent htmlspecialchars() error with string arguments.
-#1033494 by dereine: Fix filter by user picture: change used handler.
-#895046 by bojanz: Follow up of the multiple field handler. Fixes an issue with group-by and rename entity_api_classes.
-#1044250 by dereine: Fix notice in views_handler_filter_history_user_timestamp for disabled comment module.
-#1018872 by dereine: field_field handler shouldn't force to set base field in relationship.
-#1049586 by fgm: Fix strict error in field_field::init.
-#1049276 by david_Rothstein: Commit the 6.11 patch to d7.
-#1011226 by Chris Gillis, Sutharsan: Fix display of error messages in the views inteface.
-#1050962 by Sutharsan: Convert #value to #markup in validate methods.
-#1051034 by Manuel Garcia: Allow field wrapper class to take multiple classes.
-#957284 by dereine: Fix search filter to work with d7 version of search.module's api.
-#534452 by dereine: Remove non-functional "optional" setting on string filters.
-#1019826 by penguin25: Respect contact page access overrides when displaying contact link.
-#652684 by dereine: Search and replace error resulted in invalid function name in nid argument validator.
-#1008358: Updated for translation plugin to work properly with i18nviews.
-#1055378 by mfb: Fix rss_namespaces.
-#957284: by dereine: Followup for filter_search fix.
-#1063208 by dereine: Fix joins between some tables and file_usage.
-#1024586 by merlinofchaos, dereine: Provide a way to move old fields in views data. Additional move field-api data to it.
-#990554 by bojanz: Allow to show default values of fields.
-#1039460 by robertgarrigos: Rename drupal_set_content to drupal_add_region_content
-#1045908 by bfroehle: Fix type in api-upgrading.html
-#646456 by xslim: Add a workaround to run update.php
-#1055602 by dereine: Convert argument search to dbtng.
-#1039584 by dereine: Fix path of taxonomy path, function from d6
-#1019746 by Ralf: Check_plain role names.
-#1006482 by dereine: Fix filter: user posted or commented handler.
-#870960 by bojanz, dereine: Field label should derive from field Label, not field name.
-#1056824 by greggles: Rename the displayed permission from "access all views" to "bypass views access control".
-#1022052 bojanz, dereine: Don't add the field_info into the views data array
-#970162 by longwave: Add "time hence" options to date field format
-#1069100 by paranojik: remove legacy code from views_plugin_row_comment_view:pre_render().
-#741234 by voxpelli: Arguments should check for NULL along with empty string to find empty values.
-#1046170 by agentrickard, blackice2999, dereine: Execute preExecute before generate the countQuery to fix pagers with node_access.
-#1046170 (follow up) by agentrickard: Provide a better documentation for the problem.
-#1070112 by drunken_monkey: Fix notice in field_views_field_label.
-#978824 by dereine: Don't execute validation on config_item remove button.
-by dereine: Convert op_shorter/longer in filter_string to add_where_expression.
-#1046650 by dereine, damz: Don't delete views in the simpletest.
-#1022052 follow up by bojanz: Fix filter_list handler, by loading the field_info again.
-#1023794 by turek: Fix notice in many_to_one_helper.
-#1057810 by mariusz.slonina: Remove views_handler_field_user_link_delete and the views_data entry.
-#1075598 by paranojik: small fix for the single argument case.
-#1053164 by dereine: Support random sort for sqlite by using dbtng functionality.
-#1073862 by solotandem: Title of columns from field revision tables shouldn't have the name delta.
-#1042072 by das-peter: Fix notice in views_handler_field_field.
-#1078570 by duellj: Search filter doesn't work for attachments.
-#1068108 by boombatower: Allow row_class to contain multiple classes.
-#1078738 by dereine: Add a serialized data field handler and set users.data to it.
-#1051308 by dereine: Backport a test fix for views_handler_filter_date from d7v3ui.
-#1079496 by dereine: Fix renamed field names for list fields. This caused an additional filter, which didn't worked.
-#1080690 by dereine: Store the view object in the query object, so it can be used.
-#1080690 by dereine: Fix target/key for querying against sql databases. Therefore don't use db_select anymore.
-#1029534 by bojanz: Fix like for pgsql by using db_like correct.
-#1051308 by bojanz: Fix date filter handler behaviour with offsets.
-#1062506 by dereine: Misnamed parameter for creation of broken handlers.
-#1049998 by dereine: Fix jump_menu summary and some possible notices.
-#975400 by bojanz, dereine: Refactor field render() functions to accept $value.
-#975400 follow up by bojanz: Give field::sanitize_value more power and fix some issues with get_value.
-#1052896 by dereine: Fix summary css classes output.
-#1046674 by dereine: Rename build_mode to view_mode in row_node_view. This fixes some bugs with code using $node->view_mode.
-#1090682 by febbraro: view:load does not clear the cache correctly when reset.
-#1090682 by dereine: Write a simpletest for the reset parameter of view::load.
-#1054272 by dagmar: String filters are non optional anymore.
-#1086158 by dereine: Fix filter handler of list fields.
-#1079178 by Manuel Garcia: Provide a views revert drush command.
-#1097602 by bojanz: Don't run validation for Cancel button on views wizard.
-#1096292 by bojanz: Provide better default for exposed_sorts_label.
-#1097964 by dereine: Don't show contextual links when the contextual module is disabled.
-#1098006 by bojanz: Fix notice in summary style conversion code.
-by dereine: Move get_value and sanitize_value into views_handler to support it for area handlers.
-#1098334 by kannary, dereine: Remove merge leftover in views.help.ini.
-by dereine: Allow to expose sorts again.
-#1098168 by fubhy: HTML Wrapper checkboxes in style settings in default field handler showing weird behavior
-#1096366 by jamsilver: Role access plugin: Replacing array_unshift() with reset()
-#1096834 by dww: Allow importing views code that starts with '<?php'.
-#557160 by joachim: Move docs/docs.php to views.api.php to match the drupal standard of hook documentation.
-#1100052 by michielnugter: Fix strict warning of views_handler_argument::get_value.
-#1023456 by dereine: Fix many_to_one_helper condition buidling.
-#1100738 by bojanz: Extend upgrading docs to include info about argument changes and get_value/sanitize_value.
-#1100776 by bojanz: Fix call for get_value in field_user_language handler.
-
-Views 3.x-7.x-alpha1 (05-Jan-2011)
-==================================
-
-#914102 by torelad: Correct placeholder in views_date_sql_format.
-#931582 by bec: Provide integration of {file_usage} table.
-by dereine: Fix in_operator test.
-by dereine: Fix more testcases by adding $this->resetAll().
-#931886 by bojanz: Remove views_handler_filter_float because numeric handler + dbtng does everything.
-#932792 by bec: Extras for formatting {file_managed} fields.
-by dereine: Move file_* handlers to extra files.
-#934086 by dereine: Attach the contextual links library only once.
-#917402 by yhahn: Update taxonomy handlers for d7 changes.
-#930582 by berdir, Damz, dereine: Fix query substitutions for subqueries.
-#711860 by dereine: 00 entered in pager total fails.
-#889770 by tim.plunkett: Empty fields not always hidden based on row settings.
-#762484 by master-of-magic: Link to node status could be lost between rows.
-#908272 by jaydub: Fix incorrect length of view description form field.
-#772782 by mstrelan: Menu normal item menu should default to system default menu rather than "navigation".
-#571234 by dereine: Better handling of invalid exposed filters or other methods that cause a view to abort during the build process.
-#685554 by MyXelf: Illegal characters in View tag translated improperly when used in theming templates.
-#508832 by nick_vh: Documentation improvement on templates.
-#887220 by dereine: Fix fatal error when using GROUP BY.
-#930714 by brad.bulger: Add aggregator GUID field.
-#936828 by xjm: Empty field replacement not quite always working.
-#872000 by NaX: Comment edit field needs option to set destination so it can work like comment edit field.
-#799580 by dereine: api version of views exports should use views_api_version() not hardcoded number.
-#884440 by Amitaibu: Improve token encoding to eliminate double html entity encoding.
-#847930 by dereine: Reduce duplicates option not staying set.
-#865482 by dereine: RSS options form does not include override.
-#813422 by dereine and killes: Improved time-based caching expiration.
-#829550 by hefox: Better testing of batch form use by exposed filters.
-#570618 by dereine: Enforce denying access to disabled views more strongly.
-#667014 by dereine: Prevent notice with relationships and node row style if relationship has no endpoint node.
-#835934 by dereine: Provide relationship from files to users.
-#738172 by dereine: Fields rewritten to be links with just a fragment did not work.
-#694094 by Ian Ward: Allow more static caches to be resettable. (port by aspilicious)
-#811226 by dereine: Fix another notice in area text handler. (port by aspilicious)
-#917916 by MyXelf: break delimiter not removed from formatted output. (port by aspilicious)
-#918654 by Will White: numeric GROUP BY fields missing numeric format options.
-by dereine: Test for views_handler_filter_date.
-#785236 by e_log: Add aggregator field item id as a field.
-#366886 by Scott Reynolds: For "last comment time" if "count zero is empty" is set, use empty text for nodes with no comments.
-#611086 by dereine: add -url token to files that can fetch proper URLs with private filesystems.
-#635336 by dereine: Remove unused fields from views.
-#795270 by dereine: Remove unnecessary links to sections that will have no settings.
-#882800 by dereine: Move "Distinct" option to query settings.
-#755342 by jcmarco: Improve SQL date field handling.
-#338893 by dereine: Aggregator argument not always properly converted to title.
-#787184 introduce the long awaited "Update and Override" button.
-#718832 by dereine: Add file extension as a field available within the File group.
-#941974 by dereine: Use contextual links in the views ui when possible.
-#761102 by dereine: test: user default argument.
-by dereine: Fix notice in views_ui_add_page.
-#667950 by damZ, dereine: Port #dependency form elements to #states.
-Added missing file: modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc
-#882800 by rszrama: Fix notice for options['distinct'].
-#950246 by ZoeN: Fix dbtng in views_handler_argument_aggregator_fid.
-#884730 by yched, bojanz, karenS, wundo: Add new UI for formatter settings options to the field settings config.
-by dereine: Add the dependeny ctools.
-#952576 by yhahn: Use JS_LIBRARY group for adding core library js files.
-#563020 by dereine: Replace views object cache with ctools object cache.
-#952636 by yhahn: Support string format identifiers in field_markup handler.
-#954030 by alweb: Fix title query in views_handler_argument_term_node_tid.
-#954784 by tekante: views_join class produces a SQL error when an array is in definition['extra']['value'].
-#962756 by bojanz: Field delta shows the placeholder instead of the field name.
-#667950 by merlinofchaos, bojanz and dereine: Revert the states patch and use ctools dependency instead.
-#960528 by dereine: Clicksort doesn't work for field names that contain special characters.
-by dereine: Document add_where for formula.
-by dereine: Fix notice in ajax.inc.
-#963382 by aidanlis: Fix typo in mathematical expression field help text.
-#807614 by dereine: Test filter_numeric.
-#928000 by mfer, dereine: form.js dependency missing.
-by dereine: Fix some notices.
-by dereine: Fix views_exposed_form test.
-by dereine: Move test files around.
-by dereine: Fix notice in group_by_numeric.
-by eporama: Add a test for views_plugin_argument_validate_user.
-#788950 by merlinofchaos, bojanz, dereine: Fixed ui when clicking override.
-#965432 by bojanz: Display column for single column fields, if that column is not "value".
-#965188 by Scott Reynolds: Remove comment.comment column, it does not exist in the database anymore.
-#969124 by brenk28: Fix notices in rss feeds related to readmore.
-#968286 by bojanz: Let field::render_as_link support entity url options.
-#967188 by Island Usurper: Fix exposed data submitted data.
-#954916 by becw: taxonomy term id from URL expects taxonomy objects in term fields, none present.
-#968372 by becw: "Taxonomy: Term" filter autocomplete broken.
-#971326 by dereine: Join fieldapi fields additional on deleted = 0.
-#713078 by achaux: Aggregator not properly using allowed tags from core.
-#428196 by dereine, funkmasterjones and tic2000: Allow specification of default sort order (asc or desc) per field in table style.
-#944680 by rvilar: Properly t() untranslated string.
-#881680 by brianV and longwave: Avoid unnecessary invoking of view objects for argument validation when no argument validation is necessary.
-#767244 by Magnus: Fix some untranslatable strings due to less than and greater than characters.
-#855280 by dereine: Exposed forms set "Input required" lose exposed sorts.
-#935388 by infojunkie: Add post_build and post_execute hooks similar to post_render.
-#973496 by das-peter: Don't use call-time-reference for comment_view.
-#938806 by jenlampton: Node: title field should link to node by default.
-#956654 by mdupont: Translation for "offset" field in dates needed work.
-#931390 by dww: Optimize boolean logic by using "= 1" rather than "<> 0" for faster queries.
-#567918 by iamjon: Improve documentation for token replacement.
-#881468 by longwave: Improve performance by static caching results of argument validation because menu likes to double validate things.
-#964266 by dereine: cache_expire() missing $type.
-#477984 by demeritcowboy, fatstar415, mike dodd, dagmar: Properly handle value for "empty" and "not empty" special operators.
-#768060 by EmmanueleQuinto, xjm, others: Make sure that render alter options do not accidentally get blown up for empty fields.
-#847724 by dereine: Allow jump menu "Summary" style to customize choose text, just like the regular summary style.
-#669636 by dereine and bojanz: Convert the rest of the field handlers that have link options to use the advanced render.
-#871578 by dereine: Comment "new" might not work right without a comment count field.
-#910864 by Bevan, dereine: exposed filter blocks should not be cached by core block caching.
-Remove unused/lost view::render_exposed_form.
-#776830: Fix pager settings on attachments and feeds.
-#835544 by iamjon: export broke if key contained an apostrophe.
-#941990 by master-of-magic: Link to node when using relationships could occasionally lose track and create bad links.
-#833790: Click sort could break on fields that were actually formulas.
-#963454 by dereine: Remove related terms data definitions.
-#976098 by dereine: Fix notice in field field handler render function.
-#626732 by dereine: Fix analyze ok-button and added a test for it.
-#338584 by superbaloo: Allow displays to be re-ordered in the UI.
-#502348: Move advanced rendering up the chain a little bit to allow for non-standard uses of fields, such as grouping, to use advanced rendering features.
-#943984 by Kars-T: Remove extraneous line of code.
-#751970 by dereine: View list form auto submit on change.
-#502348 followup.
-#977846 by dereine: Use ctools_process_dependency for table plugin. (follow up of #502348).
-#942106 by andypost: Fix converting from vid to vocabulary in taxonomy handlers.
-#870792 by bojanz: Options form needs to be re-rendered if it failed validation.
-#980628 by bojanz: Fix options-query in field::render_as_link.
-#979264 by pwolanin: Account for flipped comment status values in Drupal 7.
-#972864 by bec: Provide term relationship via taxonomy term reference fields.
-#979634 by linclark: Fix field grouping.
-#972934 by dereine: Fix Node: User posted or commented.
-by dereine: Preview shouldn't expect to have the sql plugin, always.
-#960596 by dereine: Argument in preview aren't escaped.
-#983166 by dereine: Rename $class to $classes in the table template file and write some updating documentation.
-#963372 by dereine: Add 'form_process_checkbox' to every checkbox which uses process 'ctools_dependent_process'.
-#979082 by dereine: Add 'form_process_select' to every select which uses process 'ctools_dependent_process'.
-#936196 by jmiccolis, yhahn, adrian, bojanz, dereine: Don't use entity_load for the fieldapi-field handler, but use real sql fields.
-by dereine: Fix notice in views_ui_preview().
-#965496 by ayalon: Update and Override broke validation of most views admin forms.
-#868990: Fix undefined call to $view->set_use_pager()
-#669636 followup by bojanz: Fix improper use of field_alias by row styles.
-#979046 by travist: Fix PHP 5.3 problem in views_access with no arguments.
-#978864 by linclark: Fix title bug with area handlers.
-#983460 by dereine: "Default sort" radio is in wrong column on table style settings.
-#783798 by dereine: GROUP BY can cause sort criteria to get incorrectly added to view.
-#357529 by nedjo, dddave, dagmar, dereine, yhahn, others: Implement plugin to handle translations of views configuration data.
-#983606 by jonathan1055: Breadcrumb disappears on bulk export results.
-#945034 by das-peter: Allow any kind of build_mode for node row style.
-#936196 by rszrama, das-peter, bojanz, dereine: Fix some bugs with the fieldapi field handler.
-#983272 by bojanz: Support click sorting for Field API fields.
-by dereine: Fix error in plugin_default_taxonomy_tid.
-#974542 by dereine: Use the same signature for pre_render in every handler.
-#988490 by dereine: Fix global view result counter.
-#740686 by dereine, dagmar: Integrate the functionality of Semantic Views (though it takes a significantly diffrent form).
-#988726 by yhahn: Use taxonomy_term_data 'format' column for description field.
-#988520 by dereine: Fix sql of date handler for offset.
-#952636 by yhahn, jmiccolis, dagmar, dereine: Support string format identifiers.
-#960810: Fixed merge error of semantic views patch.
-#769458 by anrikun: Fix double encoding of alt/title text on link rewriting.
-#318944 by dereine: Prevent warning in table view when user has no permission to view any fields.
-#416178 by dereine: Profile field checkboxes did not properly filter false values.
-#949526 by dereine: External database not used.
-#913688 by dereine: Fix feed icon path.
-#768802 by dereine: Allow sort by node language.
-#600742 by dagmar: Allow displays to be disabled.
-reported by swentel: Remove left over debugging dsm.
-#468484 by dereine: Filter by unread not relationship safe.
-#833790 redux by dereine: Make sure field actually exists.
-#607942 by dashton: Support "rel" attribute in link rewriting.
-#994014 by idflood: Add missing semicolon to node translation link handler.
-#909886: -Any- option shows up on boolean exposed filters even when not optional.
-#972934 by dereine: Fix sql of subquery of comment_user_uid argument handler.
-Follow up #607942, use ctools_dependent_process.
-#817360 by John Morahan: Have Analyze button warn if view has no access control.
-#898990 by dereine: Fix bad SQL generated on related terms relationship if no vocabularies selected.
-#833220 by dereine: Properly validate value on date filter.
-#910256 by dagmar: Add an - All - option to exposed items per page.
-#779668 by esteewhy: Fix not technically valid use of break statements.
-#909332 by dereine: Add col-first and col-last classes to grid style.
-#989092 by dereine: Semantic views integration broke grid view a little.
-#868972 by dereine: Add a "summary" attribute for accessibility on table and grid styles.
-#992174 by dereine: Add missing field handler aggregator_xss in the views.info file.
-by dereine: Fix fatal error in the field term_node_tid handler.
-#994856 by dereine: Replace views dependecy with ctools... again.
-by dereine: Replace _fake_instance in field field handler with a ctools helper function.
-#996634 by das-peter: Add missing rel to option_definition of the field handler.
-#610418 by joachim: Add handler descriptions to handler edit forms.
-#368687 by dereine: Allow a relationship from node revision to master node.
-#759082 by dereine: Prevent invalid argument warning with no relationships.
-#946368 by dereine: User argument default ignoring node author checkbox in some cases.
-#867636 by chromix: Give jump menu an option to set default value to current path.
-#997772 by dereine: Fix node_view_analyze by using dbtng and d7 role_permission database schema.
-#998278 by dereine: Update field.views.inc based on #986992.
-#998400 by das-peter: Use vocabulary in "term name converted to term id".
-#785036 by dereine and bojanz: Properly validate display IDs.
-#958312 by tim.plunkett: Exports could have extraneous whitespace when exported from other modules like features.
-#927270 by Cyberwolf: Allow the "options callback" for the in_operator filter handler to also have an "options argument" in the definition.
-#497936: Profile fields with dashes in their names cause bad queries.
-#608926 by Longwave: Remove unused theme("nodate") functionality.
-#993002 by alex_b, dereine: Fix notice in views_plugin_display_page.inc.
-#1000044 by pivica: Fix notice for element_type in some field handlers.
-#984390 by yhahn: Fix full pager variables.
-#972620 by dereine: Add an administrative title field for all handlers to make it more possible to distinguish similar fields from each other in the UI.
-#627378: Allow specifying that your module provides specialized views templates via hook_views_api.
-#627378 follow up: Remove debug calls.
-#1001442 by dboulet: Add classes/title text to contextual links.
-#999042 by bojanz: Remove the option to use the site mission for the RSS feed description, because drupal doesn't have this field anymore.
-#985602 by bblake, bojanz, dereine: Support slave server.
-by dereine: Fix views.info file.
-#987478 by bojanz: Let field field handler properly handle field language.
-#1002060 by troky: COMMENT_NODE_* constants have new names
-#996306 by alex_b: Respect 'edit terms in ' settings
-#987478 by bojanz: Fix some more edge cases in field field handler.
-#1003034 by das-peter: Use preg_slit instead of split.
-#905712 by dagmar: Add Published/Not published as text options to published field.
-#816354 by dereine: Provide a field to create administrative comments on displays.
-#1004596 by pillarsdotnet: Wrong usage of theme('image'...) in contact field handler.
-#1006088 by aspilicious: Remove unneeded files from .info file.
-#1005662 by troky: Change original hook to base hook in views hook_theme.
-#808016 by dereine: Clarify short/medium/long date formats.
-#829928 by gordon: Allow strip tags to get a list of tags to keep.
-#1004538 by ngmaloney, bojanz: Support timestamps before 1970 in views date sql.
-#522318 by dereine: Provide a "human readable" name for all Views.
-#1003112 by ralf: Add configure line to views_ui.info
-#118672: Allow an OR in filters by adding groups in the filter UI.
-by dereine: Add a test for field math, and fix the field math :)
-#1007036 by bojanz: Fix Node: Has new content filter.
-by dereine: Add a test for filter equality.
-by dereine: Add a test for field counter.
-#1007036 by dereine: Fix join condition for Node: Has new content filter.
-by dereine: Fix tests for detecting module template files.
-#1007730 by bojanz, merlinofchaos, dereine: Fix views_handler_filter_string, add tests and add a general placeholder method.
-#1006644 by bojanz, dereine: Allow field field handler to work with users.
-#759082 by dereine: Fix whitescreen due to incorrect relationship loop code.
-by dereine: Remove old comment about select::countQuery.
-#863478 by damz, dereine: Allow basic distinct support.
-#667950 by bec : Remove workaround for filter_numeric dependency.
-#1011266 by sime: Fix whitescreen due to changes in #759082.
-#1011220 by aspilicious: Auto-Generate View's Machine-Readable Name.
-#1001542 by mikeytown2: view::set_display() has wrong return code when it fails.
-#1011220 follow-up: Add missing point on machine_name.
-#722330 by dereine: Views should include core version for updates.
-#1008706 by dereine: Convert placeholders to new api.
-#807616 by damz, dereine: Remove views_handler_sort_formula and add a short entry in api-upgrading.html
-#873238 follow up by dereine: Remove adding cookie.js all the time. Ajax loading works now.
-#591302 by yhahn: Update ajax_view.js for ajax framework.
-#972638 by bojanz: Mini pager hasn't been ported.
-#1011334 by dereine: Exposed filters without input broke sql.
-#990088 by yhahn: Fix taxonomy integration by changing vid to nid for taxonomy_index.
-#1007466 by aspilicious, dereine: Provide a api function for adding complex queries: add_where_expression, add_having_condition.
-#1008170 by dereine: Fix views_handler_filter_groupby_numeric by using add_having_expression.
-#1013170 by das-peter: Fix broken view::preview which was broken on #1001542.
-#644008 by Cyberwolf and dereine: Allow access plugins access to arguments.
-#997424 by dereine: Use drupal_add_library instead of drupal_add_js where it's possible.
-#992704 by solotandem, bojanz, dereine: support to groupby entity_id.
-#970514 by moshe, dereine: Provide basic drush integration for views.
-#1015306 by dereine: Fix index in field_field.
-by solotandem: Make a better description for the group_type field in groupby form.
-#1015856 by solotandem: Eliminate PHP notices related to recent groupby changes.
-#1016058 by dereine: Fix string contain all words.
-#940316 by merlinofchaos: Allow to rescan template files from non-current themes.
-by mikejoconnor, dereine: Fix notice for exporting view->core.
-#1002744 by bojanz: Use entity_load for fieldapi field handlers.
-#957206 by dereine: Add missing views.info entry for aggregator iid argument handler.
-#1002744 by bojanz: Refactor views_field_field by renaming some variables/comments.
-by dereine: Bring vpr and views_debug back.
-#955464 by dereine: Fix glossary and many to one mode handler.
-#1016430 by bojanz: fix two small bugs in field_field handler.
-by dereine: Add $view->version to all default views.
-#1006176 by das-peter, bojanz: Add support for field based translation.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.bartik.css b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.bartik.css
index 1d22ddd..c6f0692 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.bartik.css
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.bartik.css
@@ -67,6 +67,15 @@
background-color: #f6f6f6;
}
+.views-ui-dialog a {
+ color: #0071b3;
+}
+
+.views-ui-dialog a:hover,
+.views-ui-dialog a:focus {
+ color: #018fe2;
+}
+
/* @end */
/* @group CTools */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.seven.css b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.seven.css
index 6ebdbf1..d58bb1b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.seven.css
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.seven.css
@@ -127,7 +127,8 @@ fieldset.fieldset-no-legend {
.dependent-options,
.dependent-options.form-item,
.form-item-options-expose-required,
-.form-item-options-expose-label {
+.form-item-options-expose-label,
+.form-item-options-expose-description {
margin-left: 1.5em;
}
@@ -139,7 +140,8 @@ fieldset.fieldset-no-legend {
.views-admin-dependent .dependent-options .form-type-select,
.views-admin-dependent .dependent-options .form-type-textfield,
.form-item-options-expose-required,
-.form-item-options-expose-label {
+.form-item-options-expose-label,
+.form-item-options-expose-description {
margin-bottom: 6px;
margin-top: 6px;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.theme.css b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.theme.css
index df45cdf..8611783 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.theme.css
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/css/views-admin.theme.css
@@ -380,6 +380,7 @@ td.group-title {
text-transform: uppercase;
}
+.grouped-description,
.exposed-description {
float: left;
padding-top: 3px;
@@ -433,6 +434,10 @@ td.group-title {
padding: 3px 9px;
}
+.views-display-top #views-display-top {
+ max-width: 180px;
+}
+
/* @end */
/* @group Attachment details tabs
@@ -440,6 +445,18 @@ td.group-title {
* The tabs that switch between sections
*/
+ul#views-display-menu-tabs {
+ margin-right: 200px;
+}
+
+ul#views-display-menu-tabs li {
+ margin-bottom: 5px;
+}
+
+ul#views-display-menu-tabs li.add ul.action-list li{
+ margin: 0;
+}
+
.views-displays .secondary a {
border: 1px solid #cbcbcb;
display: inline-block;
@@ -448,6 +465,15 @@ td.group-title {
padding: 3px 7px;
}
+/**
+ * Display a red border if the display doesn't validate.
+ */
+.views-displays ul.secondary li.active a.active.error,
+.views-displays .secondary a.error {
+ border: 2px solid #ED541D;
+ padding: 1px 6px;
+}
+
.views-displays .secondary a:focus {
outline: none;
}
@@ -907,7 +933,8 @@ td.group-title {
/* @group Expose filter form items */
.form-item-options-expose-required,
-.form-item-options-expose-label {
+.form-item-options-expose-label,
+.form-item-options-expose-description {
margin-bottom: 6px;
margin-left: 18px;
margin-top: 6px;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/docs/views.api.php b/kolab.org/www/drupal-7.15/sites/all/modules/views/docs/views.api.php
deleted file mode 100644
index d99ecc4..0000000
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/docs/views.api.php
+++ /dev/null
@@ -1,761 +0,0 @@
-<?php
-/**
- * @file
- * This file contains no working PHP code; it exists to provide additional documentation
- * for doxygen as well as to document hooks in the standard Drupal manner.
- */
-
-/**
- * @mainpage Views 2 API Manual
- *
- * Much of this information is actually stored in the advanced help; please
- * check the API topic. This help will primarily be aimed at documenting
- * classes and function calls.
- *
- * An online version of the advanced help API documentation is available from:
- * @link http://views-help.doc.logrus.com/help/views/api @endlink
- *
- * Topics:
- * - @ref view_lifetime
- * - @ref views_hooks
- * - @ref views_handlers
- * - @ref views_plugins
- * - @ref views_templates
- */
-
-/**
- * @page view_lifetime The life of a view
- *
- * This page explains the basic cycle of a view and what processes happen.
- */
-
-/**
- * @page views_handlers About Views' handlers
- *
- * This page explains what views handlers are, how they're written, and what
- * the basic conventions are.
- *
- * - @ref views_field_handlers
- * - @ref views_sort_handlers
- * - @ref views_filter_handlers
- * - @ref views_argument_handlers
- * - @ref views_relationship_handlers
- */
-
-/**
- * @page views_plugins About Views' plugins
- *
- * This page explains what views plugins are, how they're written, and what
- * the basic conventions are.
- *
- * - @ref views_display_plugins
- * - @ref views_style_plugins
- * - @ref views_row_plugins
- */
-
-/**
- * @defgroup views_hooks Views' hooks
- * @{
- * Hooks that can be implemented by other modules in order to implement the
- * Views API.
- */
-
-/**
- * Describe table structure to Views.
- *
- * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
- * MODULENAME.views.inc must be in the directory specified by the 'path' key
- * returned by MODULENAME_views_api(), or the same directory as the .module
- * file, if 'path' is unspecified.
- *
- * The full documentation for this hook is in the advanced help.
- * @link http://views-help.doc.logrus.com/help/views/api-tables @endlink
- */
-function hook_views_data() {
- // This example describes how to write hook_views_data() for the following
- // table:
- //
- // CREATE TABLE example_table (
- // nid INT(11) NOT NULL COMMENT 'Primary key; refers to {node}.nid.',
- // plain_text_field VARCHAR(32) COMMENT 'Just a plain text field.',
- // numeric_field INT(11) COMMENT 'Just a numeric field.',
- // boolean_field INT(1) COMMENT 'Just an on/off field.',
- // timestamp_field INT(8) COMMENT 'Just a timestamp field.',
- // PRIMARY KEY(nid)
- // );
-
- // The 'group' index will be used as a prefix in the UI for any of this
- // table's fields, sort criteria, etc. so it's easy to tell where they came
- // from.
- $data['example_table']['table']['group'] = t('Example table');
-
- // Define this as a base table. In reality this is not very useful for
- // this table, as it isn't really a distinct object of its own, but
- // it makes a good example.
- $data['example_table']['table']['base'] = array(
- 'field' => 'nid',
- 'title' => t('Example table'),
- 'help' => t("Example table contains example content and can be related to nodes."),
- 'weight' => -10,
- );
-
- // This table references the {node} table.
- // This creates an 'implicit' relationship to the node table, so that when 'Node'
- // is the base table, the fields are automatically available.
- $data['example_table']['table']['join'] = array(
- // Index this array by the table name to which this table refers.
- // 'left_field' is the primary key in the referenced table.
- // 'field' is the foreign key in this table.
- 'node' => array(
- 'left_field' => 'nid',
- 'field' => 'nid',
- ),
- );
-
- // Next, describe each of the individual fields in this table to Views. For
- // each field, you may define what field, sort, argument, and/or filter
- // handlers it supports. This will determine where in the Views interface you
- // may use the field.
-
- // Node ID field.
- $data['example_table']['nid'] = array(
- 'title' => t('Example content'),
- 'help' => t('Some example content that references a node.'),
- // Because this is a foreign key to the {node} table. This allows us to
- // have, when the view is configured with this relationship, all the fields
- // for the related node available.
- 'relationship' => array(
- 'base' => 'node',
- 'field' => 'nid',
- 'handler' => 'views_handler_relationship',
- 'label' => t('Example node'),
- ),
- );
-
- // Example plain text field.
- $data['example_table']['plain_text_field'] = array(
- 'title' => t('Plain text field'),
- 'help' => t('Just a plain text field.'),
- 'field' => array(
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE,
- ),
- 'sort' => array(
- 'handler' => 'views_handler_sort',
- ),
- 'filter' => array(
- 'handler' => 'views_handler_filter_string',
- ),
- 'argument' => array(
- 'handler' => 'views_handler_argument_string',
- ),
- );
-
- // Example numeric text field.
- $data['example_table']['numeric_field'] = array(
- 'title' => t('Numeric field'),
- 'help' => t('Just a numeric field.'),
- 'field' => array(
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ),
- 'filter' => array(
- 'handler' => 'views_handler_filter_numeric',
- ),
- 'sort' => array(
- 'handler' => 'views_handler_sort',
- ),
- );
-
- // Example boolean field.
- $data['example_table']['boolean_field'] = array(
- 'title' => t('Boolean field'),
- 'help' => t('Just an on/off field.'),
- 'field' => array(
- 'handler' => 'views_handler_field_boolean',
- 'click sortable' => TRUE,
- ),
- 'filter' => array(
- 'handler' => 'views_handler_filter_boolean_operator',
- 'label' => t('Published'),
- 'type' => 'yes-no',
- // use boolean_field = 1 instead of boolean_field <> 0 in WHERE statment
- 'use equal' => TRUE,
- ),
- 'sort' => array(
- 'handler' => 'views_handler_sort',
- ),
- );
-
- // Example timestamp field.
- $data['example_table']['timestamp_field'] = array(
- 'title' => t('Timestamp field'),
- 'help' => t('Just a timestamp field.'),
- 'field' => array(
- 'handler' => 'views_handler_field_date',
- 'click sortable' => TRUE,
- ),
- 'sort' => array(
- 'handler' => 'views_handler_sort_date',
- ),
- 'filter' => array(
- 'handler' => 'views_handler_filter_date',
- ),
- );
-
- return $data;
-}
-
-/**
- * Alter table structure.
- *
- * You can add/edit/remove to existing tables defined by hook_views_data().
- *
- * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
- * MODULENAME.views.inc must be in the directory specified by the 'path' key
- * returned by MODULENAME_views_api(), or the same directory as the .module
- * file, if 'path' is unspecified.
- *
- * The full documentation for this hook is in the advanced help.
- * @link http://views-help.doc.logrus.com/help/views/api-tables @endlink
- */
-function hook_views_data_alter(&$data) {
- // This example alters the title of the node: nid field for the admin.
- $data['node']['nid']['title'] = t('Node-Nid');
-
- // This example adds a example field to the users table
- $data['users']['example_field'] = array(
- 'title' => t('Example field'),
- 'help' => t('Some examüple content that references a user'),
- 'handler' => 'hook_handlers_field_example_field',
- );
-
- // This example changes the handler of the node title field.
- // In this handler you could do stuff, like preview of the node, when clicking the node title.
-
- $data['node']['title']['handler'] = 'modulename_handlers_field_node_title';
-}
-
-
-/**
- * The full documentation for this hook is now in the advanced help.
- *
- * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
- * MODULENAME.views.inc must be in the directory specified by the 'path' key
- * returned by MODULENAME_views_api(), or the same directory as the .module
- * file, if 'path' is unspecified.
- *
- * This is a stub list as a reminder that this needs to be doc'd and is not used
- * in views anywhere so might not be remembered when this is formally documented:
- * - style: 'even empty'
- */
-function hook_views_plugins() {
- // example code here
-}
-
-/**
- * Alter existing plugins data, defined by modules.
- */
-function hook_views_plugins_alter(&$plugins) {
- // Add apachesolr to the base of the node row plugin.
- $plugins['row']['node']['base'][] = 'apachesolr';
-}
-
-/**
- * Register View API information. This is required for your module to have
- * its include files loaded; for example, when implementing
- * hook_views_default_views().
- *
- * @return
- * An array with the following possible keys:
- * - api: (required) The version of the Views API the module implements.
- * - path: (optional) If includes are stored somewhere other than within
- * the root module directory, specify its path here.
- * - template path: (optional) A path where the module has stored it's views template files.
- * When you have specificed this key views automatically uses the template files for the views.
- * You can use the same naming conventions like for normal views template files.
- */
-function hook_views_api() {
- return array(
- 'api' => 3,
- 'path' => drupal_get_path('module', 'example') . '/includes/views',
- 'template path' => drupal_get_path('module', 'example') . 'themes',
- );
-}
-
-/**
- * This hook allows modules to provide their own views which can either be used
- * as-is or as a "starter" for users to build from.
- *
- * This hook should be placed in MODULENAME.views_default.inc and it will be
- * auto-loaded. MODULENAME.views_default.inc must be in the directory specified
- * by the 'path' key returned by MODULENAME_views_api(), or the same directory
- * as the .module file, if 'path' is unspecified.
- *
- * The $view->disabled boolean flag indicates whether the View should be
- * enabled or disabled by default.
- *
- * @return
- * An associative array containing the structures of views, as generated from
- * the Export tab, keyed by the view name. A best practice is to go through
- * and add t() to all title and label strings, with the exception of menu
- * strings.
- */
-function hook_views_default_views() {
- // Begin copy and paste of output from the Export tab of a view.
- $view = new view;
- $view->name = 'frontpage';
- $view->description = t('Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page.');
- $view->tag = t('default');
- $view->base_table = 'node';
- $view->api_version = 2;
- $view->disabled = FALSE; // Edit this to true to make a default view disabled initially
- $view->display = array();
- $display = new views_display;
- $display->id = 'default';
- $display->display_title = t('Master');
- $display->display_plugin = 'default';
- $display->position = '1';
- $display->display_options = array (
- 'style_plugin' => 'default',
- 'style_options' =>
- array (
- ),
- 'row_plugin' => 'node',
- 'row_options' =>
- array (
- 'teaser' => 1,
- 'links' => 1,
- ),
- 'relationships' =>
- array (
- ),
- 'fields' =>
- array (
- ),
- 'sorts' =>
- array (
- 'sticky' =>
- array (
- 'id' => 'sticky',
- 'table' => 'node',
- 'field' => 'sticky',
- 'order' => 'ASC',
- ),
- 'created' =>
- array (
- 'id' => 'created',
- 'table' => 'node',
- 'field' => 'created',
- 'order' => 'ASC',
- 'relationship' => 'none',
- 'granularity' => 'second',
- ),
- ),
- 'arguments' =>
- array (
- ),
- 'filters' =>
- array (
- 'promote' =>
- array (
- 'id' => 'promote',
- 'table' => 'node',
- 'field' => 'promote',
- 'operator' => '=',
- 'value' => '1',
- 'group' => 0,
- 'exposed' => false,
- 'expose' =>
- array (
- 'operator' => false,
- 'label' => '',
- ),
- ),
- 'status' =>
- array (
- 'id' => 'status',
- 'table' => 'node',
- 'field' => 'status',
- 'operator' => '=',
- 'value' => '1',
- 'group' => 0,
- 'exposed' => false,
- 'expose' =>
- array (
- 'operator' => false,
- 'label' => '',
- ),
- ),
- ),
- 'items_per_page' => 10,
- 'use_pager' => '1',
- 'pager_element' => 0,
- 'title' => '',
- 'header' => '',
- 'header_format' => '1',
- 'footer' => '',
- 'footer_format' => '1',
- 'empty' => '',
- 'empty_format' => '1',
- );
- $view->display['default'] = $display;
- $display = new views_display;
- $display->id = 'page';
- $display->display_title = t('Page');
- $display->display_plugin = 'page';
- $display->position = '2';
- $display->display_options = array (
- 'defaults' =>
- array (
- 'access' => true,
- 'title' => true,
- 'header' => true,
- 'header_format' => true,
- 'header_empty' => true,
- 'footer' => true,
- 'footer_format' => true,
- 'footer_empty' => true,
- 'empty' => true,
- 'empty_format' => true,
- 'items_per_page' => true,
- 'offset' => true,
- 'use_pager' => true,
- 'pager_element' => true,
- 'link_display' => true,
- 'php_arg_code' => true,
- 'exposed_options' => true,
- 'style_plugin' => true,
- 'style_options' => true,
- 'row_plugin' => true,
- 'row_options' => true,
- 'relationships' => true,
- 'fields' => true,
- 'sorts' => true,
- 'arguments' => true,
- 'filters' => true,
- 'use_ajax' => true,
- 'distinct' => true,
- ),
- 'relationships' =>
- array (
- ),
- 'fields' =>
- array (
- ),
- 'sorts' =>
- array (
- ),
- 'arguments' =>
- array (
- ),
- 'filters' =>
- array (
- ),
- 'path' => 'frontpage',
- );
- $view->display['page'] = $display;
- $display = new views_display;
- $display->id = 'feed';
- $display->display_title = t('Feed');
- $display->display_plugin = 'feed';
- $display->position = '3';
- $display->display_options = array (
- 'defaults' =>
- array (
- 'access' => true,
- 'title' => false,
- 'header' => true,
- 'header_format' => true,
- 'header_empty' => true,
- 'footer' => true,
- 'footer_format' => true,
- 'footer_empty' => true,
- 'empty' => true,
- 'empty_format' => true,
- 'use_ajax' => true,
- 'items_per_page' => true,
- 'offset' => true,
- 'use_pager' => true,
- 'pager_element' => true,
- 'use_more' => true,
- 'distinct' => true,
- 'link_display' => true,
- 'php_arg_code' => true,
- 'exposed_options' => true,
- 'style_plugin' => false,
- 'style_options' => false,
- 'row_plugin' => false,
- 'row_options' => false,
- 'relationships' => true,
- 'fields' => true,
- 'sorts' => true,
- 'arguments' => true,
- 'filters' => true,
- ),
- 'relationships' =>
- array (
- ),
- 'fields' =>
- array (
- ),
- 'sorts' =>
- array (
- ),
- 'arguments' =>
- array (
- ),
- 'filters' =>
- array (
- ),
- 'displays' =>
- array (
- 'default' => 'default',
- 'page' => 'page',
- ),
- 'style_plugin' => 'rss',
- 'style_options' =>
- array (
- 'description' => '',
- ),
- 'row_plugin' => 'node_rss',
- 'row_options' =>
- array (
- 'item_length' => 'default',
- ),
- 'path' => 'rss.xml',
- 'title' => t('Front page feed'),
- );
- $view->display['feed'] = $display;
- // End copy and paste of Export tab output.
-
- // Add view to list of views to provide.
- $views[$view->name] = $view;
-
- // ...Repeat all of the above for each view the module should provide.
-
- // At the end, return array of default views.
- return $views;
-}
-
-/**
- * Alter default views defined by other modules.
- *
- * This hook is called right before all default views are cached to the
- * database. It takes a keyed array of views by reference.
- *
- * Example usage to add a field to a view:
- * @code
- * $handler =& $view->display['DISPLAY_ID']->handler;
- * // Add the user name field to the view.
- * $handler->display->display_options['fields']['name']['id'] = 'name';
- * $handler->display->display_options['fields']['name']['table'] = 'users';
- * $handler->display->display_options['fields']['name']['field'] = 'name';
- * $handler->display->display_options['fields']['name']['label'] = 'Author';
- * $handler->display->display_options['fields']['name']['link_to_user'] = 1;
- * @endcode
- */
-function hook_views_default_views_alter(&$views) {
- if (isset($views['taxonomy_term'])) {
- $views['taxonomy_term']->display['default']->display_options['title'] = 'Categories';
- }
-}
-
-/**
- * Stub hook documentation
- */
-function hook_views_query_substitutions() {
- // example code here
-}
-
-/**
- * This hook is called to get a list of placeholders and their substitutions,
- * used when preprocessing a View with form elements.
- */
-function hook_views_form_substitutions() {
- return array(
- '<!--views-form-example-substitutions-->' => 'Example Substitution',
- );
-}
-
-/**
- * Views form (View with form elements) validate handler.
- * Called for all steps ($form_state['step']) of the multistep form.
- */
-function hook_views_form_validate($form, &$form_state) {
- // example code here
-}
-
-/**
- * Views form (View with form elements) submit handler.
- * Called for all steps ($form_state['step']) of the multistep form.
- */
-function hook_views_form_submit($form, &$form_state) {
- // example code here
-}
-
-/**
- * This hook is called at the very beginning of views processing,
- * before anything is done.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after.
- */
-function hook_views_pre_view(&$view, &$display_id, &$args) {
- // example code here
-}
-
-/**
- * This hook is called right before the build process, but after displays
- * are attached and the display performs its pre_execute phase.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after.
- */
-function hook_views_pre_build(&$view) {
- // example code here
-}
-
-/**
- * This hook is called right after the build process. The query is
- * now fully built, but it has not yet been run through db_rewrite_sql.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after.
- */
-function hook_views_post_build(&$view) {
- // example code here
-}
-
-/**
- * This hook is called right before the execute process. The query is
- * now fully built, but it has not yet been run through db_rewrite_sql.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after.
- */
-function hook_views_pre_execute(&$view) {
- // example code here
-}
-
-/**
- * This hook is called right after the execute process. The query has
- * been executed, but the pre_render() phase has not yet happened for
- * handlers.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after. Altering the
- * content can be achieved by editing the items of $view->result.
- */
-function hook_views_post_execute(&$view) {
- // example code here
-}
-
-/**
- * This hook is called right before the render process. The query has
- * been executed, and the pre_render() phase has already happened for
- * handlers, so all data should be available.
- *
- * Adding output to the view can be accomplished by placing text on
- * $view->attachment_before and $view->attachment_after. Altering the
- * content can be achieved by editing the items of $view->result.
- *
- * This hook can be utilized by themes.
- */
-function hook_views_pre_render(&$view) {
- // example code here
-}
-
-/**
- * Post process any rendered data.
- *
- * This can be valuable to be able to cache a view and still have some level of
- * dynamic output. In an ideal world, the actual output will include HTML
- * comment based tokens, and then the post process can replace those tokens.
- *
- * Example usage. If it is known that the view is a node view and that the
- * primary field will be a nid, you can do something like this:
- *
- * <!--post-FIELD-NID-->
- *
- * And then in the post render, create an array with the text that should
- * go there:
- *
- * strtr($output, array('<!--post-FIELD-1-->', 'output for FIELD of nid 1');
- *
- * All of the cached result data will be available in $view->result, as well,
- * so all ids used in the query should be discoverable.
- *
- * This hook can be utilized by themes.
- */
-function hook_views_post_render(&$view, &$output, &$cache) {
-
-}
-
-/**
- * Stub hook documentation
- *
- * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
- * MODULENAME.views.inc must be in the directory specified by the 'path' key
- * returned by MODULENAME_views_api(), or the same directory as the .module
- * file, if 'path' is unspecified.
- *
- */
-function hook_views_query_alter(&$view, &$query) {
- // example code here
-}
-
-/**
- * This hook should be placed in MODULENAME.views.inc and it will be auto-loaded.
- * MODULENAME.views.inc must be in the directory specified by the 'path' key
- * returned by MODULENAME_views_api(), or the same directory as the .module
- * file, if 'path' is unspecified.
- *
- * Alter the rows that appear with a view preview, which include query and
- * performance statistics. $rows is an associative array with two keys:
- * - query: An array of rows suitable for theme('table'), containing information
- * about the query and the display title and path.
- * - statistics: An array of rows suitable for theme('table'), containing
- * performance statistics.
- *
- * Warning: $view is not a reference in PHP4 and cannot be modified here. But it IS
- * a reference in PHP5, and can be modified. Please be careful with it.
- *
- * @see theme_table
- */
-function hook_views_preview_info_alter(&$rows, $view) {
- // example code here
-}
-
-/**
- * This hooks allows to alter the links at the top of the view edit form.
- * Some modules might want to add links there.
- *
- * @param $links
- * The links which will be displayed at the top of the view edit form.
- * @param view $view
- * The full view object which is currently changed.
- * @param $display_id
- * The current display id which is edited. For example that's 'default' or 'page_1'.
- */
-function hook_views_ui_display_top_links_alter(&$links, $view, $display_id) {
- // example code here
-}
-
-/**
- * This hook allows to alter the commands which are used on a views ajax
- * request.
- *
- * @param $commands
- * An array of ajax commands
- * @param $view view
- * The view which is requested.
- */
-function hook_views_ajax_data_alter(&$commands, $view) {
-}
-
-
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/drush/views.drush.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/drush/views.drush.inc
index 4116d30..dd8af1b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/drush/views.drush.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/drush/views.drush.inc
@@ -1,10 +1,11 @@
<?php
+
/**
* @file
* Drush integration of views.
*
- * * drush cache-clear views - Clears the views specific caches.
- * * views-revert - Drush command to revert views overridden in the system.
+ * drush cache-clear views - Clears the views specific caches.
+ * views-revert - Drush command to revert views overridden in the system.
*/
/**
@@ -50,7 +51,7 @@ function views_drush_command() {
$items['views-dev'] = array(
'callback' => 'views_development_settings',
'drupal dependencies' => array('views'),
- 'description' => 'Setup the views settings to a more developer oriented value..',
+ 'description' => 'Set the Views settings to more developer-oriented values.',
'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL,
'aliases' => array('vd'),
);
@@ -236,6 +237,7 @@ function views_development_settings() {
variable_set('views_ui_show_listing_filters', TRUE);
variable_set('views_ui_show_master_display', TRUE);
variable_set('views_ui_show_advanced_column', TRUE);
+ variable_set('views_ui_always_live_preview', FALSE);
variable_set('views_ui_always_live_preview_button', TRUE);
variable_set('views_ui_show_preview_information', TRUE);
variable_set('views_ui_show_sql_query', TRUE);
@@ -455,8 +457,8 @@ function drush_views_disable() {
_views_drush_changestatus($viewnames, TRUE);
}
-/*
-* Helper function to enable / disable views
+/**
+ * Helper function to enable / disable views
* @param $viewnames: array of viewnames to process
* @param $status: TRUE to disable or FALSE to enable the view
*/
@@ -481,8 +483,7 @@ function _views_drush_changestatus($viewnames = array(), $status = NULL) {
variable_set('views_defaults', $views_status);
views_invalidate_cache();
drush_log(dt("Views cache was cleared"), 'ok');
- menu_rebuild();
- drush_log(dt("Menu cache was cleared"), 'ok');
+ drush_log(dt("Menu cache is set to be rebuilt on the next request."), 'ok');
}
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area.inc
index 295e14d..9fed11c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area.inc
@@ -1,17 +1,37 @@
<?php
+
/**
* @file
* Views area handlers.
*/
/**
- * @defgroup views_area_handlers Views' area handlers
+ * @defgroup views_area_handlers Views area handlers
* @{
* Handlers to tell Views what can display in header, footer
* and empty text in a view.
*/
+/**
+ * Base class for area handlers.
+ *
+ * @ingroup views_area_handlers
+ */
class views_handler_area extends views_handler {
+
+ /**
+ * Overrides views_handler::init().
+ *
+ * Make sure that no result area handlers are set to be shown when the result
+ * is empty.
+ */
+ function init(&$view, &$options) {
+ parent::init($view, $options);
+ if ($this->handler_type == 'empty') {
+ $this->options['empty'] = TRUE;
+ }
+ }
+
/**
* Get this field's label.
*/
@@ -28,7 +48,7 @@ class views_handler_area extends views_handler {
$this->definition['field'] = !empty($this->definition['field']) ? $this->definition['field'] : '';
$label = !empty($this->definition['label']) ? $this->definition['label'] : $this->definition['field'];
$options['label'] = array('default' => $label, 'translatable' => TRUE);
- $options['empty'] = array('default' => 0, 'bool' => TRUE);
+ $options['empty'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_result.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_result.inc
index a52aa8c..86b1849 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_result.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_result.inc
@@ -2,13 +2,13 @@
/**
* @file
- * Contains views_handler_area_result handler.
+ * Definition of views_handler_area_result.
*/
/**
* Views area handler to display some configurable result summary.
*
- * @ingroup views_area_handlers Views' area handlers
+ * @ingroup views_area_handlers
*/
class views_handler_area_result extends views_handler_area {
@@ -33,6 +33,7 @@ class views_handler_area_result extends views_handler_area {
'@name -- the human-readable name of the view',
'@per_page -- the number of items per page',
'@current_page -- the current page number',
+ '@current_record_count -- the current page record count',
'@page_count -- the total page count',
),
);
@@ -61,7 +62,9 @@ class views_handler_area_result extends views_handler_area {
$current_page = (int) $this->view->get_current_page() + 1;
$per_page = (int) $this->view->get_items_per_page();
$count = count($this->view->result);
- $total = $this->view->total_rows;
+ // @TODO: Maybe use a possible is views empty functionality.
+ // Not every view has total_rows set, use view->result instead.
+ $total = isset($this->view->total_rows) ? $this->view->total_rows : count($this->view->result);
$name = check_plain($this->view->human_name);
if ($per_page === 0) {
$page_count = 1;
@@ -77,8 +80,9 @@ class views_handler_area_result extends views_handler_area {
$start = ($current_page - 1) * $per_page + 1;
$end = $total_count;
}
+ $current_record_count = ($end - $start) + 1;
// Get the search information.
- $items = array('start', 'end', 'total', 'name', 'per_page', 'current_page', 'page_count');
+ $items = array('start', 'end', 'total', 'name', 'per_page', 'current_page', 'current_record_count', 'page_count');
$replacements = array();
foreach ($items as $item) {
$replacements["@$item"] = ${$item};
@@ -90,4 +94,3 @@ class views_handler_area_result extends views_handler_area {
return $output;
}
}
-
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text.inc
index 2b9adb3..d772786 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text.inc
@@ -2,20 +2,21 @@
/**
* @file
- * Contains views_handler_area_text handler.
+ * Definition of views_handler_area_text.
*/
/**
* Views area text handler.
- * @ingroup views_area_handlers Views' area handlers
-*/
+ *
+ * @ingroup views_area_handlers
+ */
class views_handler_area_text extends views_handler_area {
function option_definition() {
$options = parent::option_definition();
$options['content'] = array('default' => '', 'translatable' => TRUE, 'format_key' => 'format');
$options['format'] = array('default' => NULL);
- $options['tokenize'] = array('default' => FALSE);
+ $options['tokenize'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -30,7 +31,7 @@ class views_handler_area_text extends views_handler_area {
'#wysiwyg' => FALSE,
);
-
+ // @TODO: Refactor token handling into a base class.
$form['tokenize'] = array(
'#type' => 'checkbox',
'#title' => t('Use replacement tokens from the first row'),
@@ -50,7 +51,7 @@ class views_handler_area_text extends views_handler_area {
}
if (!empty($options)) {
- $output = '<p>' . t('The following tokens are available. If you would like to have the characters %5B and %5D please use the html entity codes \'%5B\' or \'%5D\' or they will get replaced with empty space.)' . '</p>');
+ $output = '<p>' . t('The following tokens are available. If you would like to have the characters \'[\' and \']\' please use the html entity codes \'%5B\' or \'%5D\' or they will get replaced with empty space.' . '</p>');
foreach (array_keys($options) as $type) {
if (!empty($options[$type])) {
$items = array();
@@ -106,5 +107,4 @@ class views_handler_area_text extends views_handler_area {
return check_markup($value, $format, '', FALSE);
}
}
-
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text_custom.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text_custom.inc
new file mode 100644
index 0000000..3627f0c
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_text_custom.inc
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_area_text_custom.
+ */
+
+/**
+ * Views area text custom handler.
+ *
+ * @ingroup views_area_handlers
+ */
+class views_handler_area_text_custom extends views_handler_area_text {
+
+ function option_definition() {
+ $options = parent::option_definition();
+ unset($options['format']);
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+
+ // Alter the form element, to be a regular text area.
+ $form['content']['#type'] = 'textarea';
+ unset($form['content']['#format']);
+ unset($form['content']['#wysiwyg']);
+
+ // @TODO: Use the token refactored base class.
+ }
+
+ // Empty, so we don't inherit options_submit from the parent.
+ function options_submit(&$form, &$form_state) {
+ }
+
+ function render($empty = FALSE) {
+ if (!$empty || !empty($this->options['empty'])) {
+ return $this->render_textarea_custom($this->options['content']);
+ }
+
+ return '';
+ }
+
+ /**
+ * Render a text area with filter_xss_admin.
+ */
+ function render_textarea_custom($value) {
+ if ($value) {
+ if ($this->options['tokenize']) {
+ $value = $this->view->style_plugin->tokenize_value($value, 0);
+ }
+ return $this->sanitize_value($value, 'xss_admin');
+ }
+ }
+
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_view.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_view.inc
index b8fad3f..45ea499 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_view.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_area_view.inc
@@ -2,8 +2,9 @@
/**
* @file
- * Contains views_handler_area_view handler.
+ * Definition of views_handler_area_view.
*/
+
/**
* Views area handlers. Insert a view inside of an area.
*
@@ -15,7 +16,7 @@ class views_handler_area_view extends views_handler_area {
$options = parent::option_definition();
$options['view_to_insert'] = array('default' => '');
- $options['inherit_arguments'] = array('default' => FALSE, 'boolean' => TRUE);
+ $options['inherit_arguments'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -29,7 +30,7 @@ class views_handler_area_view extends views_handler_area {
$view_display = $this->view->name . ':' . $this->view->current_display;
$options = array('' => t('-Select-'));
- $options += views_get_views_as_options(FALSE, 'all', $view_display);
+ $options += views_get_views_as_options(FALSE, 'all', $view_display, FALSE, TRUE);
$form['view_to_insert'] = array(
'#type' => 'select',
'#title' => t('View to insert'),
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument.inc
index 72c07e2..42617e7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument.inc
@@ -1,7 +1,13 @@
<?php
/**
- * @defgroup views_argument_handlers Handlers for arguments
+ * @file
+ * @todo.
+ */
+
+/**
+ * @defgroup views_argument_handlers Views argument handlers
+ * Handlers to tell Views how to contextually filter queries.
* @{
*/
@@ -79,6 +85,9 @@ class views_handler_argument extends views_handler {
$this->options['summary']['format'] = $options['style_plugin'];
}
+ // Setup default value.
+ $options['style_options'] = isset($options['style_options']) ? $options['style_options'] : array();
+
if (!isset($options['summary']['sort_order']) && !empty($options['default_action']) && $options['default_action'] == 'summary asc') {
$this->options['default_action'] = 'summary';
$this->options['summary']['sort_order'] = 'asc';
@@ -173,17 +182,17 @@ class views_handler_argument extends views_handler {
$options['exception'] = array(
'contains' => array(
'value' => array('default' => 'all'),
- 'title_enable' => array('default' => 0),
- 'title' => array('default' => t('All'), 'translatable' => TRUE),
+ 'title_enable' => array('default' => FALSE, 'bool' => TRUE),
+ 'title' => array('default' => 'All', 'translatable' => TRUE),
),
);
- $options['title_enable'] = array('default' => 0);
+ $options['title_enable'] = array('default' => FALSE, 'bool' => TRUE);
$options['title'] = array('default' => '', 'translatable' => TRUE);
- $options['breadcrumb_enable'] = array('default' => 0);
+ $options['breadcrumb_enable'] = array('default' => FALSE, 'bool' => TRUE);
$options['breadcrumb'] = array('default' => '', 'translatable' => TRUE);
$options['default_argument_type'] = array('default' => 'fixed', 'export' => 'export_plugin');
$options['default_argument_options'] = array('default' => array(), 'export' => FALSE);
- $options['default_argument_skip_url'] = array('default' => FALSE);
+ $options['default_argument_skip_url'] = array('default' => FALSE, 'bool' => TRUE);
$options['summary_options'] = array('default' => array(), 'export' => FALSE);
$options['summary'] = array(
'contains' => array(
@@ -192,7 +201,7 @@ class views_handler_argument extends views_handler {
'format' => array('default' => 'default_summary', 'export' => 'export_summary'),
),
);
- $options['specify_validation'] = array('default' => 0);
+ $options['specify_validation'] = array('default' => FALSE, 'bool' => TRUE);
$options['validate'] = array(
'contains' => array(
'type' => array('default' => 'none', 'export' => 'export_validation'),
@@ -371,6 +380,7 @@ class views_handler_argument extends views_handler {
'#prefix' => '<div id="edit-options-validate-options-' . $id . '-wrapper">',
'#suffix' => '</div>',
'#type' => 'item',
+ // Even if the plugin has no options add the key to the form_state.
'#input' => TRUE, // trick it into checking input to make #process run
'#dependency' => array(
'edit-options-specify-validation' => array('1'),
@@ -507,6 +517,11 @@ class views_handler_argument extends views_handler {
'method' => 'default_empty',
'breadcrumb' => TRUE, // generate a breadcrumb to here
),
+ 'access denied' => array(
+ 'title' => t('Display "Access Denied"'),
+ 'method' => 'default_access_denied',
+ 'breadcrumb' => FALSE, // generate a breadcrumb to here
+ ),
);
if ($this->view->display_handler->has_path()) {
@@ -565,6 +580,8 @@ class views_handler_argument extends views_handler {
'#suffix' => '</div>',
'#id' => 'edit-options-argument-default-options-' . $id,
'#type' => 'item',
+ // Even if the plugin has no options add the key to the form_state.
+ '#input' => TRUE,
'#dependency' => array(
'radio:options[default_action]' => array('default'),
'edit-options-default-argument-type' => array($id)
@@ -707,6 +724,17 @@ class views_handler_argument extends views_handler {
}
/**
+ * Default action: access denied.
+ *
+ * If an argument was expected and was not given, in this case, report
+ * the view as 'access denied'.
+ */
+ function default_access_denied() {
+ $this->view->build_info['denied'] = TRUE;
+ return FALSE;
+ }
+
+ /**
* Default action: empty
*
* If an argument was expected and was not given, in this case, display
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_date.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_date.inc
index 7ed4b03..6803c36 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_date.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_date.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_date.
+ */
+
/**
* Abstract argument handler for dates.
*
@@ -12,7 +18,8 @@
* - many to one: If true, the "many to one" helper will be used.
* - invalid input: A string to give to the user for obviously invalid input.
* This is deprecated in favor of argument validators.
- * @see views_many_to_one_helper
+ *
+ * @see views_many_to_one_helper()
*
* @ingroup views_argument_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_formula.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_formula.inc
index c4287be..76f5991 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_formula.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_formula.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_formula.
+ */
+
/**
* Abstract argument handler for simple formulae.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_group_by_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_group_by_numeric.inc
index 2ecccaf..aa522ea 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_group_by_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_group_by_numeric.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_group_by_numeric.
+ */
+
+/**
* Simple handler for arguments using group by.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc
index 1f5229e..3446760 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_many_to_one.
+ */
+
/**
* An argument handler for use in fields that have a many to one relationship
* with the table(s) to the left. This adds a bunch of options that are
@@ -26,11 +32,11 @@ class views_handler_argument_many_to_one extends views_handler_argument {
$options = parent::option_definition();
if (!empty($this->definition['numeric'])) {
- $options['break_phrase'] = array('default' => FALSE);
+ $options['break_phrase'] = array('default' => FALSE, 'bool' => TRUE);
}
- $options['add_table'] = array('default' => FALSE);
- $options['require_value'] = array('default' => FALSE);
+ $options['add_table'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['require_value'] = array('default' => FALSE, 'bool' => TRUE);
if (isset($this->helper)) {
$this->helper->option_definition($options);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_null.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_null.inc
index e4804dc..5b42728 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_null.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_null.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_null.
+ */
+
/**
* Argument handler that ignores the argument.
*
@@ -7,7 +13,7 @@
class views_handler_argument_null extends views_handler_argument {
function option_definition() {
$options = parent::option_definition();
- $options['must_not_be'] = array('default' => FALSE);
+ $options['must_not_be'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_numeric.inc
index 5b91232..8f36b21 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_numeric.inc
@@ -1,7 +1,8 @@
<?php
+
/**
* @file
- * Contains the numeric argument handler.
+ * Definition of views_handler_argument_numeric.
*/
/**
@@ -26,8 +27,8 @@ class views_handler_argument_numeric extends views_handler_argument {
function option_definition() {
$options = parent::option_definition();
- $options['break_phrase'] = array('default' => FALSE);
- $options['not'] = array('default' => FALSE);
+ $options['break_phrase'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['not'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_string.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_string.inc
index 45bdbab..dbb98fe 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_string.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_argument_string.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_string.
+ */
+
+/**
* Basic argument handler to implement string arguments that may have length
* limits.
*
@@ -21,16 +26,16 @@ class views_handler_argument_string extends views_handler_argument {
function option_definition() {
$options = parent::option_definition();
- $options['glossary'] = array('default' => FALSE);
+ $options['glossary'] = array('default' => FALSE, 'bool' => TRUE);
$options['limit'] = array('default' => 0);
$options['case'] = array('default' => 'none');
$options['path_case'] = array('default' => 'none');
- $options['transform_dash'] = array('default' => FALSE);
- $options['break_phrase'] = array('default' => FALSE);
+ $options['transform_dash'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['break_phrase'] = array('default' => FALSE, 'bool' => TRUE);
if (!empty($this->definition['many to one'])) {
- $options['add_table'] = array('default' => FALSE);
- $options['require_value'] = array('default' => FALSE);
+ $options['add_table'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['require_value'] = array('default' => FALSE, 'bool' => TRUE);
}
return $options;
@@ -124,7 +129,6 @@ class views_handler_argument_string extends views_handler_argument {
* Build the summary query based on a string
*/
function summary_query() {
- $this->placeholder_length = $this->placeholder();
if (empty($this->definition['many to one'])) {
$this->ensure_my_table();
}
@@ -140,13 +144,7 @@ class views_handler_argument_string extends views_handler_argument {
else {
// Add the field.
$formula = $this->get_formula();
- $params = array(
- 'placeholders' => array(
- $this->placeholder_length => intval($this->options['limit']),
- ),
- );
-
- $this->base_alias = $this->query->add_field(NULL, $formula, $this->field . '_truncated', $params);
+ $this->base_alias = $this->query->add_field(NULL, $formula, $this->field . '_truncated');
$this->query->set_count_field(NULL, $formula, $this->field, $this->field . '_truncated');
}
@@ -160,7 +158,7 @@ class views_handler_argument_string extends views_handler_argument {
* $this->ensure_my_table() MUST have been called prior to this.
*/
function get_formula() {
- return "SUBSTRING($this->table_alias.$this->real_field, 1, $this->placeholder_length)";
+ return "SUBSTRING($this->table_alias.$this->real_field, 1, " . intval($this->options['limit']) . ")";
}
/**
@@ -171,7 +169,6 @@ class views_handler_argument_string extends views_handler_argument {
if (!empty($this->options['transform_dash'])) {
$argument = strtr($argument, '-', ' ');
}
- $this->placeholder_length = $this->placeholder();
if (!empty($this->options['break_phrase'])) {
views_break_phrase_string($argument, $this);
@@ -186,8 +183,6 @@ class views_handler_argument_string extends views_handler_argument {
$this->helper->formula = TRUE;
}
$this->helper->ensure_my_table();
-
- $this->helper->placeholders = array($this->placeholder_length => intval($this->options['limit']));
$this->helper->add_filter();
return;
}
@@ -212,7 +207,6 @@ class views_handler_argument_string extends views_handler_argument {
if ($formula) {
$placeholder = $this->placeholder();
- $placeholder_length = $this->placeholder_length;
if ($operator == 'IN') {
$field .= " IN($placeholder)";
}
@@ -220,7 +214,6 @@ class views_handler_argument_string extends views_handler_argument {
$field .= ' = ' . $placeholder;
}
$placeholders = array(
- $placeholder_length => intval($this->options['limit']),
$placeholder => $argument,
);
$this->query->add_where_expression(0, $field, $placeholders);
@@ -231,7 +224,7 @@ class views_handler_argument_string extends views_handler_argument {
}
function summary_argument($data) {
- $value = $this->case_transform($data->{$this->base_alias}, 'path_case');
+ $value = $this->case_transform($data->{$this->base_alias}, $this->options['path_case']);
if (!empty($this->options['transform_dash'])) {
$value = strtr($value, ' ', '-');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field.inc
index ff2c32d..c687575 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field.inc
@@ -1,13 +1,19 @@
<?php
+
+/**
+ * @file
+ * @todo.
+ */
+
/**
- * @defgroup views_field_handlers Views' field handlers
+ * @defgroup views_field_handlers Views field handlers
* @{
* Handlers to tell Views how to build and display fields.
*
*/
/**
- * Indicator of the render_text() mehtod for rendering a single item.
+ * Indicator of the render_text() method for rendering a single item.
* (If no render_item() is present).
*/
define('VIEWS_HANDLER_RENDER_TEXT_PHASE_SINGLE_ITEM', 0);
@@ -33,12 +39,21 @@ define('VIEWS_HANDLER_RENDER_TEXT_PHASE_EMPTY', 2);
* 'field' => fieldname); as many fields as are necessary
* may be in this array.
* - click sortable: If TRUE, this field may be click sorted.
+ *
+ * @ingroup views_field_handlers
*/
class views_handler_field extends views_handler {
var $field_alias = 'unknown';
var $aliases = array();
/**
+ * The field value prior to any rewriting.
+ *
+ * @var mixed
+ */
+ public $original_value = NULL;
+
+ /**
* @var array
* Stores additional fields which get's added to the query.
* The generated aliases are stored in $aliases.
@@ -363,6 +378,17 @@ class views_handler_field extends views_handler {
}
}
+ /**
+ * Determines if this field will be available as an option to group the result
+ * by in the style settings.
+ *
+ * @return bool
+ * TRUE if this field handler is groupable, otherwise FALSE.
+ */
+ function use_string_group_by() {
+ return TRUE;
+ }
+
function option_definition() {
$options = parent::option_definition();
@@ -370,32 +396,32 @@ class views_handler_field extends views_handler {
$options['exclude'] = array('default' => FALSE, 'bool' => TRUE);
$options['alter'] = array(
'contains' => array(
- 'alter_text' => array('default' => FALSE),
+ 'alter_text' => array('default' => FALSE, 'bool' => TRUE),
'text' => array('default' => '', 'translatable' => TRUE),
- 'make_link' => array('default' => FALSE),
- 'path' => array('default' => '', 'translatable' => TRUE),
- 'absolute' => array('default' => '', 'translatable' => FALSE),
- 'external' => array('default' => '', 'translatable' => FALSE),
- 'replace_spaces' => array('default' => '', 'translatable' => FALSE),
+ 'make_link' => array('default' => FALSE, 'bool' => TRUE),
+ 'path' => array('default' => ''),
+ 'absolute' => array('default' => FALSE, 'bool' => TRUE),
+ 'external' => array('default' => FALSE, 'bool' => TRUE),
+ 'replace_spaces' => array('default' => FALSE, 'bool' => TRUE),
'path_case' => array('default' => 'none', 'translatable' => FALSE),
- 'trim_whitespace' => array('default' => FALSE),
+ 'trim_whitespace' => array('default' => FALSE, 'bool' => TRUE),
'alt' => array('default' => '', 'translatable' => TRUE),
'rel' => array('default' => ''),
'link_class' => array('default' => ''),
'prefix' => array('default' => '', 'translatable' => TRUE),
'suffix' => array('default' => '', 'translatable' => TRUE),
'target' => array('default' => '', 'translatable' => TRUE),
- 'nl2br' => array('default' => FALSE),
+ 'nl2br' => array('default' => FALSE, 'bool' => TRUE),
'max_length' => array('default' => ''),
- 'word_boundary' => array('default' => TRUE),
- 'ellipsis' => array('default' => TRUE),
- 'more_link' => array('default' => FALSE),
+ 'word_boundary' => array('default' => TRUE, 'bool' => TRUE),
+ 'ellipsis' => array('default' => TRUE, 'bool' => TRUE),
+ 'more_link' => array('default' => FALSE, 'bool' => TRUE),
'more_link_text' => array('default' => '', 'translatable' => TRUE),
'more_link_path' => array('default' => ''),
- 'strip_tags' => array('default' => FALSE),
- 'trim' => array('default' => FALSE),
+ 'strip_tags' => array('default' => FALSE, 'bool' => TRUE),
+ 'trim' => array('default' => FALSE, 'bool' => TRUE),
'preserve_tags' => array('default' => ''),
- 'html' => array('default' => FALSE),
+ 'html' => array('default' => FALSE, 'bool' => TRUE),
),
);
$options['element_type'] = array('default' => '');
@@ -403,17 +429,17 @@ class views_handler_field extends views_handler {
$options['element_label_type'] = array('default' => '');
$options['element_label_class'] = array('default' => '');
- $options['element_label_colon'] = array('default' => TRUE);
+ $options['element_label_colon'] = array('default' => TRUE, 'bool' => TRUE);
$options['element_wrapper_type'] = array('default' => '');
$options['element_wrapper_class'] = array('default' => '');
- $options['element_default_classes'] = array('default' => TRUE);
+ $options['element_default_classes'] = array('default' => TRUE, 'bool' => TRUE);
$options['empty'] = array('default' => '', 'translatable' => TRUE);
- $options['hide_empty'] = array('default' => FALSE);
- $options['empty_zero'] = array('default' => FALSE);
- $options['hide_alter_empty'] = array('default' => TRUE);
+ $options['hide_empty'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['empty_zero'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['hide_alter_empty'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
@@ -783,7 +809,7 @@ class views_handler_field extends views_handler {
// We have some options, so make a list.
if (!empty($options)) {
$output = t('<p>The following tokens are available for this field. Note that due to rendering order, you cannot use fields that come after this field; if you need a field not listed here, rearrange your fields.
-If you would like to have the characters %5B and %5D please use the html entity codes \'%5B\' or \'%5D\' or they will get replaced with empty space.</p>');
+If you would like to have the characters \'[\' and \']\' please use the html entity codes \'%5B\' or \'%5D\' or they will get replaced with empty space.</p>');
foreach (array_keys($options) as $type) {
if (!empty($options[$type])) {
$items = array();
@@ -1006,6 +1032,10 @@ If you would like to have the characters %5B and %5D please use the html entity
function advanced_render($values) {
if ($this->allow_advanced_render() && method_exists($this, 'render_item')) {
$raw_items = $this->get_items($values);
+ // If there are no items, set the original value to NULL.
+ if (empty($raw_items)) {
+ $this->original_value = NULL;
+ }
}
else {
$value = $this->render($values);
@@ -1049,7 +1079,7 @@ If you would like to have the characters %5B and %5D please use the html entity
}
if (empty($this->last_render)) {
- if (($this->last_render !== 0 && $this->last_render !== '0') || !empty($this->options['empty_zero'])) {
+ if ($this->is_value_empty($this->last_render, $this->options['empty_zero'], FALSE)) {
$alter = $this->options['alter'];
$alter['alter_text'] = 1;
$alter['text'] = $this->options['empty'];
@@ -1062,6 +1092,33 @@ If you would like to have the characters %5B and %5D please use the html entity
}
/**
+ * Checks if a field value is empty.
+ *
+ * @param $value
+ * The field value.
+ * @param bool $empty_zero
+ * Whether or not this field is configured to consider 0 as empty.
+ * @param bool $no_skip_empty
+ * Whether or not to use empty() to check the value.
+ *
+ * @return bool
+ * TRUE if the value is considered empty, FALSE otherwise.
+ */
+ function is_value_empty($value, $empty_zero, $no_skip_empty = TRUE) {
+ if (!isset($value)) {
+ $empty = TRUE;
+ }
+ else {
+ $empty = ($empty_zero || ($value !== 0 && $value !== '0'));
+ }
+
+ if ($no_skip_empty) {
+ $empty = empty($value) && $empty;
+ }
+ return $empty;
+ }
+
+ /**
* Perform an advanced text render for the item.
*
* This is separated out as some fields may render lists, and this allows
@@ -1080,15 +1137,14 @@ If you would like to have the characters %5B and %5D please use the html entity
}
// Check if there should be no further rewrite for empty values.
- $no_rewrite_for_empty = $this->options['hide_alter_empty'] && empty($this->original_value);
+ $no_rewrite_for_empty = $this->options['hide_alter_empty'] && $this->is_value_empty($this->original_value, $this->options['empty_zero']);
// Check whether the value is empty and return nothing, so the field isn't rendered.
// First check whether the field should be hidden if the value(hide_alter_empty = TRUE) /the rewrite is empty (hide_alter_empty = FALSE).
// For numeric values you can specify whether "0"/0 should be empty.
if ((($this->options['hide_empty'] && empty($value))
|| ($alter['phase'] != VIEWS_HANDLER_RENDER_TEXT_PHASE_EMPTY && $no_rewrite_for_empty))
- && (($value !== 0 && $value !== '0')
- || $this->options['empty_zero'])) {
+ && $this->is_value_empty($value, $this->options['empty_zero'], FALSE)) {
return '';
}
// Only in empty phase.
@@ -1120,7 +1176,7 @@ If you would like to have the characters %5B and %5D please use the html entity
$more_link_path = drupal_substr($more_link_path, drupal_strlen($base_path));
}
- $more_link = l($more_link_text, $more_link_path);
+ $more_link = l($more_link_text, $more_link_path, array('attributes' => array('class' => array('views-more-link'))));
$suffix .= " " . $more_link;
}
@@ -1230,7 +1286,15 @@ If you would like to have the characters %5B and %5D please use the html entity
if (isset($url['query'])) {
$path = strtr($path, array('?' . $url['query'] => ''));
- $options['query'] = drupal_get_query_array($url['query']);
+ $query = drupal_get_query_array($url['query']);
+ // Remove query parameters that were assigned a query string replacement
+ // token for which there is no value available.
+ foreach ($query as $param => $val) {
+ if ($val == '%' . $param) {
+ unset($query[$param]);
+ }
+ }
+ $options['query'] = $query;
}
if (isset($url['fragment'])) {
$path = strtr($path, array('#' . $url['fragment'] => ''));
@@ -1333,6 +1397,9 @@ If you would like to have the characters %5B and %5D please use the html entity
$tokens['!' . $count] = isset($this->view->args[$count - 1]) ? strip_tags(decode_entities($this->view->args[$count - 1])) : '';
}
+ // Get flattened set of tokens for any array depth in $_GET parameters.
+ $tokens += $this->get_token_values_recursive($_GET);
+
// Now add replacements for our fields.
foreach ($this->view->display_handler->get_handlers('field') as $field => $handler) {
if (isset($handler->last_render)) {
@@ -1354,6 +1421,64 @@ If you would like to have the characters %5B and %5D please use the html entity
// Store the tokens for the row so we can reference them later if necessary.
$this->view->style_plugin->render_tokens[$this->view->row_index] = $tokens;
$this->last_tokens = $tokens;
+
+ return $tokens;
+ }
+
+ /**
+ * Recursive function to add replacements for nested query string parameters.
+ *
+ * E.g. if you pass in the following array:
+ * array(
+ * 'foo' => array(
+ * 'a' => 'value',
+ * 'b' => 'value',
+ * ),
+ * 'bar' => array(
+ * 'a' => 'value',
+ * 'b' => array(
+ * 'c' => value,
+ * ),
+ * ),
+ * );
+ *
+ * Would yield the following array of tokens:
+ * array(
+ * '%foo_a' => 'value'
+ * '%foo_b' => 'value'
+ * '%bar_a' => 'value'
+ * '%bar_b_c' => 'value'
+ * );
+ *
+ * @param $array
+ * An array of values.
+ *
+ * @param $parent_keys
+ * An array of parent keys. This will represent the array depth.
+ *
+ * @return
+ * An array of available tokens, with nested keys representative of the array structure.
+ */
+ function get_token_values_recursive(array $array, array $parent_keys = array()) {
+ $tokens = array();
+
+ foreach ($array as $param => $val) {
+ if (is_array($val)) {
+ // Copy parent_keys array, so we don't afect other elements of this iteration.
+ $child_parent_keys = $parent_keys;
+ $child_parent_keys[] = $param;
+ // Get the child tokens.
+ $child_tokens = $this->get_token_values_recursive($val, $child_parent_keys);
+ // Add them to the current tokens array.
+ $tokens += $child_tokens;
+ }
+ else {
+ // Create a token key based on array element structure.
+ $token_string = !empty($parent_keys) ? implode('_', $parent_keys) . '_' . $param : $param;
+ $tokens['%' . $token_string] = strip_tags(decode_entities($val));
+ }
+ }
+
return $tokens;
}
@@ -1373,7 +1498,7 @@ If you would like to have the characters %5B and %5D please use the html entity
/**
* Document any special tokens this field might use for itself.
*
- * @see add_self_tokens() for details.
+ * @see add_self_tokens()
*/
function document_self_tokens(&$tokens) { }
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_boolean.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_boolean.inc
index c388d4f..13fff07 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_boolean.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_boolean.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_boolean.
+ */
+
+/**
* A handler to provide proper displays for booleans.
*
* Allows for display of true/false, yes/no, on/off, enabled/disabled.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_contextual_links.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_contextual_links.inc
index a55ac58..faeeedc 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_contextual_links.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_contextual_links.inc
@@ -1,11 +1,21 @@
<?php
+/**
+ * @file
+ * Definition of views_handler_field_contextual_links.
+ */
+
+/**
+ * Provides a handler that adds contextual links.
+ *
+ * @ingroup views_field_handlers
+ */
class views_handler_field_contextual_links extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
$options['fields'] = array('default' => array());
- $options['destination'] = array('default' => 1);
+ $options['destination'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
@@ -22,13 +32,9 @@ class views_handler_field_contextual_links extends views_handler_field {
'#default_value' => $this->options['fields'],
);
$form['destination'] = array(
- '#type' => 'select',
+ '#type' => 'checkbox',
'#title' => t('Include destination'),
'#description' => t('Include a "destination" parameter in the link to return the user to the original view upon completing the contextual action.'),
- '#options' => array(
- '0' => t('No'),
- '1' => t('Yes'),
- ),
'#default_value' => $this->options['destination'],
);
}
@@ -50,7 +56,7 @@ class views_handler_field_contextual_links extends views_handler_field {
function render($values) {
$links = array();
foreach ($this->options['fields'] as $field) {
- if (empty($this->view->field[$field]->last_render_text)) {
+ if (empty($this->view->style_plugin->rendered_fields[$this->view->row_index][$field])) {
continue;
}
$title = $this->view->field[$field]->last_render_text;
@@ -58,7 +64,11 @@ class views_handler_field_contextual_links extends views_handler_field {
if (!empty($this->view->field[$field]->options['alter']['path'])) {
$path = $this->view->field[$field]->options['alter']['path'];
}
- if (!empty($title)) {
+ if (!empty($title) && !empty($path)) {
+ // Make sure that tokens are replaced for this paths as well.
+ $tokens = $this->get_render_tokens(array());
+ $path = strip_tags(decode_entities(strtr($path, $tokens)));
+
$links[$field] = array(
'href' => $path,
'title' => $title,
@@ -68,19 +78,24 @@ class views_handler_field_contextual_links extends views_handler_field {
}
}
}
- $build = array(
- '#prefix' => '<div class="contextual-links-wrapper">',
- '#suffix' => '</div>',
- '#theme' => 'links__contextual',
- '#links' => $links,
- '#attributes' => array('class' => array('contextual-links')),
- '#attached' => array(
- 'library' => array(array('contextual', 'contextual-links')),
- ),
- '#access' => user_access('access contextual links'),
- );
- return drupal_render($build);
+ if (!empty($links)) {
+ $build = array(
+ '#prefix' => '<div class="contextual-links-wrapper">',
+ '#suffix' => '</div>',
+ '#theme' => 'links__contextual',
+ '#links' => $links,
+ '#attributes' => array('class' => array('contextual-links')),
+ '#attached' => array(
+ 'library' => array(array('contextual', 'contextual-links')),
+ ),
+ '#access' => user_access('access contextual links'),
+ );
+ return drupal_render($build);
+ }
+ else {
+ return '';
+ }
}
function query() { }
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_counter.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_counter.inc
index d4e52fc..76213a6 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_counter.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_counter.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_counter.
+ */
+
+/**
* Field handler to show a counter of the current row.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_custom.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_custom.inc
index 92b5d7c..66586de 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_custom.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_custom.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_custom.
+ */
+
+/**
* A handler to provide a field that is completely custom by the administrator.
*
* @ingroup views_field_handlers
@@ -14,8 +19,8 @@ class views_handler_field_custom extends views_handler_field {
$options = parent::option_definition();
// Override the alter text option to always alter the text.
- $options['alter']['contains']['alter_text'] = array('default' => TRUE);
- $options['hide_alter_empty'] = array('default' => FALSE);
+ $options['alter']['contains']['alter_text'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['hide_alter_empty'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_date.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_date.inc
index b122b66..8517f0b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_date.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_date.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_date.
+ */
+
/**
* A handler to provide proper displays for dates.
*
@@ -10,6 +16,7 @@ class views_handler_field_date extends views_handler_field {
$options['date_format'] = array('default' => 'small');
$options['custom_date_format'] = array('default' => '');
+ $options['timezone'] = array('default' => '');
return $options;
}
@@ -19,7 +26,7 @@ class views_handler_field_date extends views_handler_field {
$date_formats = array();
$date_types = system_get_date_types();
foreach ($date_types as $key => $value) {
- $date_formats[$value['type']] = check_plain(t($value['title'] . ' format')) . ': ' . format_date(REQUEST_TIME, $value['type']);
+ $date_formats[$value['type']] = t('@date_format format', array('@date_format' => $value['title'])) . ': ' . format_date(REQUEST_TIME, $value['type']);
}
$form['date_format'] = array(
@@ -40,10 +47,18 @@ class views_handler_field_date extends views_handler_field {
$form['custom_date_format'] = array(
'#type' => 'textfield',
'#title' => t('Custom date format'),
- '#description' => t('If "Custom", see <a href="http://us.php.net/manual/en/function.date.php" target="_blank">the PHP docs</a> for date formats. Otherwise, enter the number of different time units to display, which defaults to 2.'),
+ '#description' => t('If "Custom", see the <a href="@url" target="_blank">PHP manual</a> for date formats. Otherwise, enter the number of different time units to display, which defaults to 2.', array('@url' => 'http://php.net/manual/function.date.php')),
'#default_value' => isset($this->options['custom_date_format']) ? $this->options['custom_date_format'] : '',
'#dependency' => array('edit-options-date-format' => array('custom', 'raw time ago', 'time ago', 'raw time hence', 'time hence', 'raw time span', 'time span', 'raw time span', 'inverse time span', 'time span')),
);
+ $form['timezone'] = array(
+ '#type' => 'select',
+ '#title' => t('Timezone'),
+ '#description' => t('Timezone to be used for date output.'),
+ '#options' => array('' => t('- Default site/user timezone -')) + system_time_zones(FALSE),
+ '#default_value' => $this->options['timezone'],
+ '#dependency' => array('edit-options-date-format' => array_merge(array('custom'), array_keys($date_formats))),
+ );
parent::options_form($form, $form_state);
}
@@ -56,6 +71,7 @@ class views_handler_field_date extends views_handler_field {
}
if ($value) {
+ $timezone = !empty($this->options['timezone']) ? $this->options['timezone'] : NULL;
$time_diff = REQUEST_TIME - $value; // will be positive for a datetime in the past (ago), and negative for a datetime in the future (hence)
switch ($format) {
case 'raw time ago':
@@ -74,11 +90,11 @@ class views_handler_field_date extends views_handler_field {
return t(($time_diff < 0 ? '%time hence' : '%time ago'), array('%time' => format_interval(abs($time_diff), is_numeric($custom_format) ? $custom_format : 2)));
case 'custom':
if ($custom_format == 'r') {
- return format_date($value, $format, $custom_format, null, 'en');
+ return format_date($value, $format, $custom_format, $timezone, 'en');
}
- return format_date($value, $format, $custom_format);
+ return format_date($value, $format, $custom_format, $timezone);
default:
- return format_date($value, $format);
+ return format_date($value, $format, '', $timezone);
}
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_entity.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_entity.inc
index 0e13b23..d8aaba4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_entity.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_entity.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_entity.
+ */
+
/**
* A handler to display data from entity objects.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_machine_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_machine_name.inc
index 96a0cf7..9f3587f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_machine_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_machine_name.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_machine_name.
+ */
+
+/**
* Field handler whichs allows to show machine name content as human name.
* @ingroup views_field_handlers
*
@@ -34,7 +39,7 @@ class views_handler_field_machine_name extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['machine_name'] = array('default' => FALSE);
+ $options['machine_name'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_markup.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_markup.inc
index 10444d5..b0f1cea 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_markup.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_markup.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_markup.
+ */
+
+/**
* A handler to run a field through check_markup, using a companion
* format field.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_math.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_math.inc
index 9df9987..08fba06 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_math.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_math.inc
@@ -1,10 +1,16 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_math.
+ */
+
/**
* Render a mathematical expression as a numeric value
*
* Definition terms:
* - float: If true this field contains a decimal value. If unset this field
- * will be assumed to be integer.
+ * will be assumed to be integer.
*
* @ingroup views_field_handlers
*/
@@ -20,7 +26,7 @@ class views_handler_field_math extends views_handler_field_numeric {
$form['expression'] = array(
'#type' => 'textarea',
'#title' => t('Expression'),
- '#description' => t('Enter mathematical expressions such as 2 + 2 or sqrt(5). You my assign variables and create mathematical functions and evaluate them. Use the ; to separate these. For example: f(x) = x + 2; f(2).'),
+ '#description' => t('Enter mathematical expressions such as 2 + 2 or sqrt(5). You may assign variables and create mathematical functions and evaluate them. Use the ; to separate these. For example: f(x) = x + 2; f(2).'),
'#default_value' => $this->options['expression'],
);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_numeric.inc
index 5f7f450..d10d3d0 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_numeric.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_numeric.
+ */
+
/**
* Render a field as a numeric value
*
@@ -12,11 +18,11 @@ class views_handler_field_numeric extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['set_precision'] = array('default' => FALSE);
+ $options['set_precision'] = array('default' => FALSE, 'bool' => TRUE);
$options['precision'] = array('default' => 0);
$options['decimal'] = array('default' => '.', 'translatable' => TRUE);
$options['separator'] = array('default' => ',', 'translatable' => TRUE);
- $options['format_plural'] = array('default' => FALSE);
+ $options['format_plural'] = array('default' => FALSE, 'bool' => TRUE);
$options['format_plural_singular'] = array('default' => '1');
$options['format_plural_plural'] = array('default' => '@count');
$options['prefix'] = array('default' => '', 'translatable' => TRUE);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_prerender_list.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_prerender_list.inc
index 16b30b6..00a571a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_prerender_list.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_prerender_list.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_prerender_list.
+ */
+
+/**
* Field handler to provide a list of items.
*
* The items are expected to be loaded by a child object during pre_render,
@@ -84,7 +89,7 @@ class views_handler_field_prerender_list extends views_handler_field {
function render_items($items) {
if (!empty($items)) {
if ($this->options['type'] == 'separator') {
- return implode($this->sanitize_value($this->options['separator']), $items);
+ return implode($this->sanitize_value($this->options['separator'], 'xss_admin'), $items);
}
else {
return theme('item_list',
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_serialized.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_serialized.inc
index 01dd0c0..1579fce 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_serialized.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_serialized.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_serialized.
+ */
+
+/**
* Field handler to show data of serialized fields.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_time_interval.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_time_interval.inc
index ca50885..e6063af 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_time_interval.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_time_interval.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_time_interval.
+ */
+
/**
* A handler to provide proper displays for time intervals.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_url.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_url.inc
index 2491f35..4a76548 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_url.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_field_url.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_url.
+ */
+
+/**
* Field handler to provide simple renderer that turns a URL into a clickable link.
*
* @ingroup views_field_handlers
@@ -9,7 +14,7 @@ class views_handler_field_url extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['display_as_link'] = array('default' => TRUE);
+ $options['display_as_link'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
@@ -29,7 +34,10 @@ class views_handler_field_url extends views_handler_field {
function render($values) {
$value = $this->get_value($values);
if (!empty($this->options['display_as_link'])) {
- return l($this->sanitize_value($value), $value, array('html' => TRUE));
+ $this->options['alter']['make_link'] = TRUE;
+ $this->options['alter']['path'] = $value;
+ $text = !empty($this->options['text']) ? $this->sanitize_value($this->options['text']) : $this->sanitize_value($value, 'url');
+ return $text;
}
else {
return $this->sanitize_value($value, 'url');
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter.inc
index b267976..f5db70f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter.inc
@@ -1,6 +1,12 @@
<?php
+
/**
- * @defgroup views_filter_handlers Views' filter handlers
+ * @file
+ * @todo.
+ */
+
+/**
+ * @defgroup views_filter_handlers Views filter handlers
* @{
* Handlers to tell Views how to filter queries.
*
@@ -22,6 +28,8 @@
/**
* Base class for filters.
+ *
+ * @ingroup views_filter_handlers
*/
class views_handler_filter extends views_handler {
/**
@@ -36,6 +44,11 @@ class views_handler_filter extends views_handler {
var $operator = '=';
/**
+ * Contains the information of the selected item in a gruped filter.
+ */
+ var $group_info = NULL;
+
+ /**
* @var bool
* Disable the possibility to force a single value.
*/
@@ -64,6 +77,7 @@ class views_handler_filter extends views_handler {
$this->operator = $this->options['operator'];
$this->value = $this->options['value'];
+ $this->group_info = $this->options['group_info']['default_group'];
// Compatibility: The new UI changed several settings.
if (!empty($options['exposed']) && !empty($options['expose']['optional']) && !isset($options['expose']['required'])) {
@@ -76,6 +90,11 @@ class views_handler_filter extends views_handler {
$this->options['expose']['operator_id'] = $options['expose']['operator_id'] = $options['expose']['operator'];
}
+ if ($this->multiple_exposed_input()) {
+ $this->group_info = array_filter($options['group_info']['default_group_multiple']);
+ $this->options['expose']['multiple'] = TRUE;
+ }
+
// If there are relationships in the view, allow empty should be true
// so that we can do IS NULL checks on items. Not all filters respect
// allow empty, but string and numeric do and that covers enough.
@@ -90,17 +109,45 @@ class views_handler_filter extends views_handler {
$options['operator'] = array('default' => '=');
$options['value'] = array('default' => '');
$options['group'] = array('default' => '1');
- $options['exposed'] = array('default' => FALSE);
+ $options['exposed'] = array('default' => FALSE, 'bool' => TRUE);
$options['expose'] = array(
'contains' => array(
'operator_id' => array('default' => FALSE),
'label' => array('default' => '', 'translatable' => TRUE),
- 'use_operator' => array('default' => 0),
+ 'description' => array('default' => '', 'translatable' => TRUE),
+ 'use_operator' => array('default' => FALSE, 'bool' => TRUE),
'operator' => array('default' => ''),
'identifier' => array('default' => ''),
- 'required' => array('default' => 0),
+ 'required' => array('default' => FALSE, 'bool' => TRUE),
+ 'remember' => array('default' => FALSE, 'bool' => TRUE),
+ 'multiple' => array('default' => FALSE, 'bool' => TRUE),
+ 'remember_roles' => array('default' => array(
+ DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID,
+ )),
+ ),
+ );
+
+ // A group is a combination of a filter, an operator and a value
+ // operating like a single filter.
+ // Users can choose from a select box which group they want to apply.
+ // Views will filter the view according to the defined values.
+ // Because it acts as a standard filter, we have to define
+ // an identifier and other settings like the widget and the label.
+ // This settings are saved in another array to allow users to switch
+ // between a normal filter and a group of filters with a single click.
+ $options['is_grouped'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['group_info'] = array(
+ 'contains' => array(
+ 'label' => array('default' => '', 'translatable' => TRUE),
+ 'description' => array('default' => '', 'translatable' => TRUE),
+ 'identifier' => array('default' => ''),
+ 'optional' => array('default' => TRUE, 'bool' => TRUE),
+ 'widget' => array('default' => 'select'),
+ 'multiple' => array('default' => FALSE, 'bool' => TRUE),
'remember' => array('default' => 0),
- 'multiple' => array('default' => 0),
+ 'default_group' => array('default' => 'All'),
+ 'default_group_multiple' => array('default' => array()),
+ 'group_items' => array('default' => array()),
),
);
@@ -120,6 +167,21 @@ class views_handler_filter extends views_handler {
function can_expose() { return TRUE; }
/**
+ * Determine if a filter can be converted into a group.
+ * Only exposed filters with operators available can be converted into groups.
+ */
+ function can_build_group() {
+ return $this->is_exposed() && (count($this->operator_options()) > 0);
+ }
+
+ /**
+ * Returns TRUE if the exposed filter works like a grouped filter.
+ */
+ function is_a_group() {
+ return $this->is_exposed() && !empty($this->options['is_grouped']);
+ }
+
+ /**
* Provide the basic form which calls through to subforms.
* If overridden, it is best to call through to the parent,
* or to at least make sure all of the functions in this form
@@ -130,19 +192,36 @@ class views_handler_filter extends views_handler {
if ($this->can_expose()) {
$this->show_expose_button($form, $form_state);
}
+ if ($this->can_build_group()) {
+ $this->show_build_group_button($form, $form_state);
+ }
$form['clear_markup_start'] = array(
'#markup' => '<div class="clearfix">',
);
- // Add the subform from operator_form().
- $this->show_operator_form($form, $form_state);
- // Add the subform from value_form().
- $this->show_value_form($form, $form_state);
- $form['clear_markup_end'] = array(
- '#markup' => '</div>',
- );
- if ($this->can_expose()) {
- // Add the subform from expose_form().
- $this->show_expose_form($form, $form_state);
+ if ($this->is_a_group()) {
+ if ($this->can_build_group()) {
+ $form['clear_markup_start'] = array(
+ '#markup' => '<div class="clearfix">',
+ );
+ // Render the build group form.
+ $this->show_build_group_form($form, $form_state);
+ $form['clear_markup_end'] = array(
+ '#markup' => '</div>',
+ );
+ }
+ }
+ else {
+ // Add the subform from operator_form().
+ $this->show_operator_form($form, $form_state);
+ // Add the subform from value_form().
+ $this->show_value_form($form, $form_state);
+ $form['clear_markup_end'] = array(
+ '#markup' => '</div>',
+ );
+ if ($this->can_expose()) {
+ // Add the subform from expose_form().
+ $this->show_expose_form($form, $form_state);
+ }
}
}
@@ -152,9 +231,12 @@ class views_handler_filter extends views_handler {
function options_validate(&$form, &$form_state) {
$this->operator_validate($form, $form_state);
$this->value_validate($form, $form_state);
- if (!empty($this->options['exposed'])) {
+ if (!empty($this->options['exposed']) && !$this->is_a_group()) {
$this->expose_validate($form, $form_state);
}
+ if ($this->is_a_group()) {
+ $this->build_group_validate($form, $form_state);
+ }
}
/**
@@ -162,11 +244,17 @@ class views_handler_filter extends views_handler {
*/
function options_submit(&$form, &$form_state) {
unset($form_state['values']['expose_button']); // don't store this.
- $this->operator_submit($form, $form_state);
- $this->value_submit($form, $form_state);
+ unset($form_state['values']['group_button']); // don't store this.
+ if (!$this->is_a_group()) {
+ $this->operator_submit($form, $form_state);
+ $this->value_submit($form, $form_state);
+ }
if (!empty($this->options['exposed'])) {
$this->expose_submit($form, $form_state);
}
+ if ($this->is_a_group()) {
+ $this->build_group_submit($form, $form_state);
+ }
}
/**
@@ -184,7 +272,7 @@ class views_handler_filter extends views_handler {
* This may be overridden by child classes, and it must
* define $form['operator'];
*
- * @see options_form().
+ * @see options_form()
*/
function operator_form(&$form, &$form_state) {
$options = $this->operator_options();
@@ -232,7 +320,7 @@ class views_handler_filter extends views_handler {
* This should be overridden by all child classes and it must
* define $form['value']
*
- * @see options_form().
+ * @see options_form()
*/
function value_form(&$form, &$form_state) { $form['value'] = array(); }
@@ -248,6 +336,78 @@ class views_handler_filter extends views_handler {
function value_submit($form, &$form_state) { }
/**
+ * Shortcut to display the exposed options form.
+ */
+ function show_build_group_form(&$form, &$form_state) {
+ if (empty($this->options['is_grouped'])) {
+ return;
+ }
+
+ $this->build_group_form($form, $form_state);
+
+ // When we click the expose button, we add new gadgets to the form but they
+ // have no data in $_POST so their defaults get wiped out. This prevents
+ // these defaults from getting wiped out. This setting will only be TRUE
+ // during a 2nd pass rerender.
+ if (!empty($form_state['force_build_group_options'])) {
+ foreach (element_children($form['group_info']) as $id) {
+ if (isset($form['group_info'][$id]['#default_value']) && !isset($form['group_info'][$id]['#value'])) {
+ $form['group_info'][$id]['#value'] = $form['group_info'][$id]['#default_value'];
+ }
+ }
+ }
+ }
+
+ /**
+ * Shortcut to display the build_group/hide button.
+ */
+ function show_build_group_button(&$form, &$form_state) {
+
+ $form['group_button'] = array(
+ '#prefix' => '<div class="views-grouped clearfix">',
+ '#suffix' => '</div>',
+ // Should always come after the description and the relationship.
+ '#weight' => -190,
+ );
+
+ $grouped_description = t('Grouped filters allow a choice between predefined operator|value pairs.');
+ $form['group_button']['radios'] = array(
+ '#theme_wrappers' => array('container'),
+ '#attributes' => array('class' => array('js-only')),
+ );
+ $form['group_button']['radios']['radios'] = array(
+ '#title' => t('Filter type to expose'),
+ '#description' => $grouped_description,
+ '#type' => 'radios',
+ '#options' => array(
+ t('Single filter'),
+ t('Grouped filters'),
+ ),
+ );
+
+ if (empty($this->options['is_grouped'])) {
+ $form['group_button']['markup'] = array(
+ '#markup' => '<div class="description grouped-description">' . $grouped_description . '</div>',
+ );
+ $form['group_button']['button'] = array(
+ '#limit_validation_errors' => array(),
+ '#type' => 'submit',
+ '#value' => t('Grouped filters'),
+ '#submit' => array('views_ui_config_item_form_build_group'),
+ );
+ $form['group_button']['radios']['radios']['#default_value'] = 0;
+ }
+ else {
+ $form['group_button']['button'] = array(
+ '#limit_validation_errors' => array(),
+ '#type' => 'submit',
+ '#value' => t('Single filter'),
+ '#submit' => array('views_ui_config_item_form_build_group'),
+ );
+ $form['group_button']['radios']['radios']['#default_value'] = 1;
+ }
+ }
+ /**
* Shortcut to display the expose/hide button.
*/
function show_expose_button(&$form, &$form_state) {
@@ -299,7 +459,7 @@ class views_handler_filter extends views_handler {
/**
* Options form subform for exposed filter options.
*
- * @see options_form().
+ * @see options_form()
*/
function expose_form(&$form, &$form_state) {
$form['#theme'] = 'views_ui_expose_filter_form';
@@ -330,6 +490,13 @@ class views_handler_filter extends views_handler {
'#size' => 40,
);
+ $form['expose']['description'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $this->options['expose']['description'],
+ '#title' => t('Description'),
+ '#size' => 60,
+ );
+
if (!empty($form['operator']['#type'])) {
// Increase the width of the left (operator) column.
$form['operator']['#prefix'] = '<div class="views-group-box views-left-40">';
@@ -377,6 +544,18 @@ class views_handler_filter extends views_handler {
'#default_value' => $this->options['expose']['remember'],
);
+ $role_options = array_map('check_plain', user_roles());
+ $form['expose']['remember_roles'] = array(
+ '#type' => 'checkboxes',
+ '#title' => t('User roles'),
+ '#description' => t('Remember exposed selection only for the selected user role(s). If you select no roles, the exposed data will never be stored.'),
+ '#default_value' => $this->options['expose']['remember_roles'],
+ '#options' => $role_options,
+ '#dependency' => array(
+ 'edit-options-expose-remember' => array(1),
+ ),
+ );
+
$form['expose']['identifier'] = array(
'#type' => 'textfield',
'#default_value' => $this->options['expose']['identifier'],
@@ -404,6 +583,83 @@ class views_handler_filter extends views_handler {
}
}
+ /**
+ * Validate the build group options form.
+ */
+ function build_group_validate($form, &$form_state) {
+ if (!empty($form_state['values']['options']['group_info'])) {
+ if (empty($form_state['values']['options']['group_info']['identifier'])) {
+ form_error($form['group_info']['identifier'], t('The identifier is required if the filter is exposed.'));
+ }
+
+ if (!empty($form_state['values']['options']['group_info']['identifier']) && $form_state['values']['options']['group_info']['identifier'] == 'value') {
+ form_error($form['group_info']['identifier'], t('This identifier is not allowed.'));
+ }
+
+ if (!$this->view->display_handler->is_identifier_unique($form_state['id'], $form_state['values']['options']['group_info']['identifier'])) {
+ form_error($form['group_info']['identifier'], t('This identifier is used by another handler.'));
+ }
+ }
+
+ if (!empty($form_state['values']['options']['group_info']['group_items'])) {
+ foreach ($form_state['values']['options']['group_info']['group_items'] as $id => $group) {
+ if (empty($group['remove'])) {
+
+ // Check if the title is defined but value wasn't defined.
+ if (!empty($group['title'])) {
+ if ((!is_array($group['value']) && trim($group['value']) == "") ||
+ (is_array($group['value']) && count(array_filter($group['value'], '_views_array_filter_zero')) == 0)) {
+ form_error($form['group_info']['group_items'][$id]['value'],
+ t('The value is required if title for this item is defined.'));
+ }
+ }
+
+ // Check if the value is defined but title wasn't defined.
+ if ((!is_array($group['value']) && trim($group['value']) != "") ||
+ (is_array($group['value']) && count(array_filter($group['value'], '_views_array_filter_zero')) > 0)) {
+ if (empty($group['title'])) {
+ form_error($form['group_info']['group_items'][$id]['title'],
+ t('The title is required if value for this item is defined.'));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Save new group items, re-enumerates and remove groups marked to delete.
+ */
+ function build_group_submit($form, &$form_state) {
+ $groups = array();
+ uasort($form_state['values']['options']['group_info']['group_items'], 'drupal_sort_weight');
+ // Filter out removed items.
+
+ // Start from 1 to avoid problems with #default_value in the widget.
+ $new_id = 1;
+ $new_default = 'All';
+ foreach ($form_state['values']['options']['group_info']['group_items'] as $id => $group) {
+ if (empty($group['remove'])) {
+ // Don't store this.
+ unset($group['remove']);
+ unset($group['weight']);
+ $groups[$new_id] = $group;
+
+ if ($form_state['values']['options']['group_info']['default_group'] === $id) {
+ $new_default = $new_id;
+ }
+ }
+ $new_id++;
+ }
+ if ($new_default != 'All') {
+ $form_state['values']['options']['group_info']['default_group'] = $new_default;
+ }
+ $filter_default_multiple = array_filter($form_state['values']['options']['group_info']['default_group_multiple']);
+ $form_state['values']['options']['group_info']['default_group_multiple'] = $filter_default_multiple;
+
+ $form_state['values']['options']['group_info']['group_items'] = $groups;
+ }
+
/**
* Provide default options for exposed filters.
*/
@@ -413,12 +669,76 @@ class views_handler_filter extends views_handler {
'operator' => $this->options['id'] . '_op',
'identifier' => $this->options['id'],
'label' => $this->definition['title'],
+ 'description' => NULL,
'remember' => FALSE,
'multiple' => FALSE,
'required' => FALSE,
);
}
+ /**
+ * Provide default options for exposed filters.
+ */
+ function build_group_options() {
+ $this->options['group_info'] = array(
+ 'label' => $this->definition['title'],
+ 'description' => NULL,
+ 'identifier' => $this->options['id'],
+ 'optional' => TRUE,
+ 'widget' => 'select',
+ 'multiple' => FALSE,
+ 'remember' => FALSE,
+ 'default_group' => 'All',
+ 'default_group_multiple' => array(),
+ 'group_items' => array(),
+ );
+ }
+
+ /**
+ * Build a form containing a group of operator | values to apply as a
+ * single filter.
+ */
+ function group_form(&$form, &$form_state) {
+ if (!empty($this->options['group_info']['optional']) && !$this->multiple_exposed_input()) {
+
+ $old_any = $this->options['group_info']['widget'] == 'select' ? '<Any>' : '&lt;Any&gt;';
+ $any_label = variable_get('views_exposed_filter_any_label', 'new_any') == 'old_any' ? $old_any : t('- Any -');
+ $groups = array('All' => $any_label);
+ }
+ foreach ($this->options['group_info']['group_items'] as $id => $group) {
+ if (!empty($group['title'])) {
+ $groups[$id] = $id != 'All' ? t($group['title']) : $group['title'];
+ }
+ }
+
+ if (count($groups)) {
+ $value = $this->options['group_info']['identifier'];
+
+ $form[$value] = array(
+ '#type' => $this->options['group_info']['widget'],
+ '#default_value' => $this->group_info,
+ '#options' => $groups,
+ );
+ if (!empty($this->options['group_info']['multiple'])) {
+ if (count($groups) < 5) {
+ $form[$value]['#type'] = 'checkboxes';
+ }
+ else {
+ $form[$value]['#type'] = 'select';
+ $form[$value]['#size'] = 5;
+ $form[$value]['#multiple'] = TRUE;
+ }
+ unset($form[$value]['#default_value']);
+ if (empty($form_state['input'])) {
+ $form_state['input'][$value] = $this->group_info;
+ }
+ }
+
+ $this->options['expose']['label'] = '';
+ }
+ }
+
+
/**
* Render our chunk of the exposed filter form when selecting
*
@@ -471,6 +791,254 @@ class views_handler_filter extends views_handler {
}
/**
+ * Build the form to let users create the group of exposed filters.
+ * This form is displayed when users click on button 'Build group'
+ */
+ function build_group_form(&$form, &$form_state) {
+ if (empty($this->options['exposed']) || empty($this->options['is_grouped'])) {
+ return;
+ }
+ $form['#theme'] = 'views_ui_build_group_filter_form';
+
+ // #flatten will move everything from $form['group_info'][$key] to $form[$key]
+ // prior to rendering. That's why the pre_render for it needs to run first,
+ // so that when the next pre_render (the one for fieldsets) runs, it gets
+ // the flattened data.
+ array_unshift($form['#pre_render'], 'views_ui_pre_render_flatten_data');
+ $form['group_info']['#flatten'] = TRUE;
+
+ if (!empty($this->options['group_info']['identifier'])) {
+ $identifier = $this->options['group_info']['identifier'];
+ }
+ else {
+ $identifier = 'group_' . $this->options['expose']['identifier'];
+ }
+ $form['group_info']['identifier'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $identifier,
+ '#title' => t('Filter identifier'),
+ '#size' => 40,
+ '#description' => t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
+ '#fieldset' => 'more',
+ );
+ $form['group_info']['label'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $this->options['group_info']['label'],
+ '#title' => t('Label'),
+ '#size' => 40,
+ );
+
+ $form['group_info']['optional'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Optional'),
+ '#description' => t('This exposed filter is optional and will have added options to allow it not to be set.'),
+ '#default_value' => $this->options['group_info']['optional'],
+ );
+ $form['group_info']['multiple'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Allow multiple selections'),
+ '#description' => t('Enable to allow users to select multiple items.'),
+ '#default_value' => $this->options['group_info']['multiple'],
+ );
+ $form['group_info']['widget'] = array(
+ '#type' => 'radios',
+ '#default_value' => $this->options['group_info']['widget'],
+ '#title' => t('Widget type'),
+ '#options' => array(
+ 'radios' => t('Radios'),
+ 'select' => t('Select'),
+ ),
+ '#description' => t('Select which kind of widget will be used to render the group of filters'),
+ );
+ $form['group_info']['remember'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Remember'),
+ '#description' => t('Remember the last setting the user gave this filter.'),
+ '#default_value' => $this->options['group_info']['remember'],
+ );
+
+ if (!empty($this->options['group_info']['identifier'])) {
+ $identifier = $this->options['group_info']['identifier'];
+ }
+ else {
+ $identifier = 'group_' . $this->options['expose']['identifier'];
+ }
+ $form['group_info']['identifier'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $identifier,
+ '#title' => t('Filter identifier'),
+ '#size' => 40,
+ '#description' => t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
+ '#fieldset' => 'more',
+ );
+ $form['group_info']['label'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $this->options['group_info']['label'],
+ '#title' => t('Label'),
+ '#size' => 40,
+ );
+ $form['group_info']['description'] = array(
+ '#type' => 'textfield',
+ '#default_value' => $this->options['group_info']['description'],
+ '#title' => t('Description'),
+ '#size' => 60,
+ );
+ $form['group_info']['optional'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Optional'),
+ '#description' => t('This exposed filter is optional and will have added options to allow it not to be set.'),
+ '#default_value' => $this->options['group_info']['optional'],
+ );
+ $form['group_info']['widget'] = array(
+ '#type' => 'radios',
+ '#default_value' => $this->options['group_info']['widget'],
+ '#title' => t('Widget type'),
+ '#options' => array(
+ 'radios' => t('Radios'),
+ 'select' => t('Select'),
+ ),
+ '#description' => t('Select which kind of widget will be used to render the group of filters'),
+ );
+ $form['group_info']['remember'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Remember'),
+ '#description' => t('Remember the last setting the user gave this filter.'),
+ '#default_value' => $this->options['group_info']['remember'],
+ );
+
+ $groups = array('All' => '- Any -'); // The string '- Any -' will not be rendered see @theme_views_ui_build_group_filter_form
+
+ // Provide 3 options to start when we are in a new group.
+ if (count($this->options['group_info']['group_items']) == 0) {
+ $this->options['group_info']['group_items'] = array_fill(1, 3, array());
+ }
+
+ // After the general settings, comes a table with all the existent groups.
+ $default_weight = 0;
+ foreach ($this->options['group_info']['group_items'] as $item_id => $item) {
+ if (!empty($form_state['values']['options']['group_info']['group_items'][$item_id]['remove'])) {
+ continue;
+ }
+ // Each rows contains three widgets:
+ // a) The title, where users define how they identify a pair of operator | value
+ // b) The operator
+ // c) The value (or values) to use in the filter with the selected operator
+
+ // In each row, we have to display the operator form and the value from
+ // $row acts as a fake form to render each widget in a row.
+ $row = array();
+ $groups[$item_id] = '';
+ $this->operator_form($row, $form_state);
+ // Force the operator form to be a select box. Some handlers uses
+ // radios and they occupy a lot of space in a table row.
+ $row['operator']['#type'] = 'select';
+ $row['operator']['#title'] = '';
+ $this->value_form($row, $form_state);
+
+ // Fix the dependencies to update value forms when operators
+ // changes. This is needed because forms are inside a new form and
+ // their ids changes. Dependencies are used when operator changes
+ // from to 'Between', 'Not Between', etc, and two or more widgets
+ // are displayed.
+ $without_children = TRUE;
+ foreach (element_children($row['value']) as $children) {
+ if (isset($row['value'][$children]['#dependency']['edit-options-operator'])) {
+ $row['value'][$children]['#dependency']["edit-options-group-info-group-items-$item_id-operator"] = $row['value'][$children]['#dependency']['edit-options-operator'];
+ unset($row['value'][$children]['#dependency']['edit-options-operator']);
+ $row['value'][$children]['#title'] = '';
+
+ if (!empty($this->options['group_info']['group_items'][$item_id]['value'][$children])) {
+ $row['value'][$children]['#default_value'] = $this->options['group_info']['group_items'][$item_id]['value'][$children];
+ }
+ }
+ $without_children = FALSE;
+ }
+
+ if ($without_children) {
+ if (!empty($this->options['group_info']['group_items'][$item_id]['value'])) {
+ $row['value']['#default_value'] = $this->options['group_info']['group_items'][$item_id]['value'];
+ }
+ }
+
+ if (!empty($this->options['group_info']['group_items'][$item_id]['operator'])) {
+ $row['operator']['#default_value'] = $this->options['group_info']['group_items'][$item_id]['operator'];
+ }
+
+ $default_title = '';
+ if (!empty($this->options['group_info']['group_items'][$item_id]['title'])) {
+ $default_title = $this->options['group_info']['group_items'][$item_id]['title'];
+ }
+
+ // Per item group, we have a title that identifies it.
+ $form['group_info']['group_items'][$item_id] = array(
+ 'title' => array(
+ '#type' => 'textfield',
+ '#size' => 20,
+ '#default_value' => $default_title,
+ ),
+ 'operator' => $row['operator'],
+ 'value' => $row['value'],
+ 'remove' => array(
+ '#type' => 'checkbox',
+ '#id' => 'views-removed-' . $item_id,
+ '#attributes' => array('class' => array('views-remove-checkbox')),
+ '#default_value' => 0,
+ ),
+ 'weight' => array(
+ '#type' => 'weight',
+ '#delta' => 10,
+ '#default_value' => $default_weight++,
+ '#attributes' => array('class' => array('weight')),
+ ),
+ );
+ }
+ // From all groups, let chose which is the default.
+ $form['group_info']['default_group'] = array(
+ '#type' => 'radios',
+ '#options' => $groups,
+ '#default_value' => $this->options['group_info']['default_group'],
+ '#required' => TRUE,
+ '#attributes' => array(
+ 'class' => array('default-radios'),
+ )
+ );
+ // From all groups, let chose which is the default.
+ $form['group_info']['default_group_multiple'] = array(
+ '#type' => 'checkboxes',
+ '#options' => $groups,
+ '#default_value' => $this->options['group_info']['default_group_multiple'],
+ '#attributes' => array(
+ 'class' => array('default-checkboxes'),
+ )
+ );
+
+ $form['group_info']['add_group'] = array(
+ '#prefix' => '<div class="views-build-group clear-block">',
+ '#suffix' => '</div>',
+ '#type' => 'submit',
+ '#value' => t('Add another item'),
+ '#submit' => array('views_ui_config_item_form_add_group'),
+ );
+
+ $js = array();
+ $js['tableDrag']['views-filter-groups']['weight'][0] = array(
+ 'target' => 'weight',
+ 'source' => NULL,
+ 'relationship' => 'sibling',
+ 'action' => 'order',
+ 'hidden' => TRUE,
+ 'limit' => 0,
+ );
+ if (!empty($form_state['js settings']) && is_array($js)) {
+ $form_state['js settings'] = array_merge($form_state['js settings'], $js);
+ }
+ else {
+ $form_state['js settings'] = $js;
+ }
+ }
+
+
+ /**
* Make some translations to a form item to make it more suitable to
* exposing.
*/
@@ -496,6 +1064,11 @@ class views_handler_filter extends views_handler {
$form['#size'] = NULL;
}
+ // Cleanup in case the translated element's (radios or checkboxes) display value contains html.
+ if ($form['#type'] == 'select') {
+ $this->prepare_filter_select_options($form['#options']);
+ }
+
if ($type == 'value' && empty($this->always_required) && empty($this->options['expose']['required']) && $form['#type'] == 'select' && empty($form['#multiple'])) {
$any_label = variable_get('views_exposed_filter_any_label', 'new_any') == 'old_any' ? t('<Any>') : t('- Any -');
$form['#options'] = array('All' => $any_label) + $form['#options'];
@@ -507,28 +1080,168 @@ class views_handler_filter extends views_handler {
}
}
+
+
+ /**
+ * Sanitizes the HTML select element's options.
+ *
+ * The function is recursive to support optgroups.
+ */
+ function prepare_filter_select_options(&$options) {
+ foreach ($options as $value => $label) {
+ // Recurse for optgroups.
+ if (is_array($label)) {
+ $this->prepare_filter_select_options($options[$value]);
+ }
+ // FAPI has some special value to allow hierarchy.
+ // @see _form_options_flatten
+ elseif (is_object($label)) {
+ $this->prepare_filter_select_options($options[$value]->option);
+ }
+ else {
+ $options[$value] = strip_tags(decode_entities($label));
+ }
+ }
+ }
+
/**
* Tell the renderer about our exposed form. This only needs to be
* overridden for particularly complex forms. And maybe not even then.
*
* @return array|null
- * An array with the following keys:
+ * For standard exposed filters. An array with the following keys:
* - operator: The $form key of the operator. Set to NULL if no operator.
* - value: The $form key of the value. Set to NULL if no value.
* - label: The label to use for this piece.
+ * For grouped exposed filters. An array with the following keys:
+ * - value: The $form key of the value. Set to NULL if no value.
+ * - label: The label to use for this piece.
*/
function exposed_info() {
if (empty($this->options['exposed'])) {
return;
}
+ if ($this->is_a_group()) {
+ return array(
+ 'value' => $this->options['group_info']['identifier'],
+ 'label' => $this->options['group_info']['label'],
+ 'description' => $this->options['group_info']['description'],
+ );
+ }
+
return array(
'operator' => $this->options['expose']['operator_id'],
'value' => $this->options['expose']['identifier'],
'label' => $this->options['expose']['label'],
+ 'description' => $this->options['expose']['description'],
);
}
+ /*
+ * Transform the input from a grouped filter into a standard filter.
+ *
+ * When a filter is a group, find the set of operator and values
+ * that the choosed item represents, and inform views that a normal
+ * filter was submitted by telling the operator and the value selected.
+ *
+ * The param $selected_group_id is only passed when the filter uses the
+ * checkboxes widget, and this function will be called for each item
+ * choosed in the checkboxes.
+ */
+ function convert_exposed_input(&$input, $selected_group_id = NULL) {
+ if ($this->is_a_group()) {
+ // If it is already defined the selected group, use it. Only valid
+ // when the filter uses checkboxes for widget.
+ if (!empty($selected_group_id)) {
+ $selected_group = $selected_group_id;
+ }
+ else {
+ $selected_group = $input[$this->options['group_info']['identifier']];
+ }
+ if ($selected_group == 'All' && !empty($this->options['group_info']['optional'])) {
+ return NULL;
+ }
+ if ($selected_group != 'All' && empty($this->options['group_info']['group_items'][$selected_group])) {
+ return FALSE;
+ }
+ if (isset($selected_group) && isset($this->options['group_info']['group_items'][$selected_group])) {
+ $input[$this->options['expose']['operator']] = $this->options['group_info']['group_items'][$selected_group]['operator'];
+
+ // Value can be optional, For example for 'empty' and 'not empty' filters.
+ if (!empty($this->options['group_info']['group_items'][$selected_group]['value'])) {
+ $input[$this->options['expose']['identifier']] = $this->options['group_info']['group_items'][$selected_group]['value'];
+ }
+ $this->options['expose']['use_operator'] = TRUE;
+
+ $this->group_info = $input[$this->options['group_info']['identifier']];
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+ }
+ }
+
+ /**
+ * Returns the options available for a grouped filter that users checkboxes
+ * as widget, and therefore has to be applied several times, one per
+ * item selected.
+ */
+ function group_multiple_exposed_input(&$input) {
+ if (!empty($input[$this->options['group_info']['identifier']])) {
+ return array_filter($input[$this->options['group_info']['identifier']]);
+ }
+ return array();
+ }
+
+ /**
+ * Returns TRUE if users can select multiple groups items of a
+ * grouped exposed filter.
+ */
+ function multiple_exposed_input() {
+ return $this->is_a_group() && !empty($this->options['group_info']['multiple']);
+ }
+
+ /**
+ * If set to remember exposed input in the session, store it there.
+ * This function is similar to store_exposed_input but modified to
+ * work properly when the filter is a group.
+ */
+ function store_group_input($input, $status) {
+ if (!$this->is_a_group() || empty($this->options['group_info']['identifier'])) {
+ return TRUE;
+ }
+
+ if (empty($this->options['group_info']['remember'])) {
+ return;
+ }
+
+ // Figure out which display id is responsible for the filters, so we
+ // know where to look for session stored values.
+ $display_id = ($this->view->display_handler->is_defaulted('filters')) ? 'default' : $this->view->current_display;
+
+ // false means that we got a setting that means to recuse ourselves,
+ // so we should erase whatever happened to be there.
+ if ($status === FALSE && isset($_SESSION['views'][$this->view->name][$display_id])) {
+ $session = &$_SESSION['views'][$this->view->name][$display_id];
+
+ if (isset($session[$this->options['group_info']['identifier']])) {
+ unset($session[$this->options['group_info']['identifier']]);
+ }
+ }
+
+ if ($status !== FALSE) {
+ if (!isset($_SESSION['views'][$this->view->name][$display_id])) {
+ $_SESSION['views'][$this->view->name][$display_id] = array();
+ }
+
+ $session = &$_SESSION['views'][$this->view->name][$display_id];
+
+ $session[$this->options['group_info']['identifier']] = $input[$this->options['group_info']['identifier']];
+ }
+ }
+
/**
* Check to see if input from the exposed filters should change
* the behavior of this filter.
@@ -587,6 +1300,14 @@ class views_handler_filter extends views_handler {
return;
}
+ // Check if we store exposed value for current user.
+ global $user;
+ $allowed_rids = empty($this->options['expose']['remember_roles']) ? array() : array_filter($this->options['expose']['remember_roles']);
+ $intersect_rids = array_intersect_key($allowed_rids, $user->roles);
+ if (empty($intersect_rids)) {
+ return;
+ }
+
// Figure out which display id is responsible for the filters, so we
// know where to look for session stored values.
$display_id = ($this->view->display_handler->is_defaulted('filters')) ? 'default' : $this->view->current_display;
@@ -674,6 +1395,15 @@ class views_handler_filter_broken extends views_handler_filter {
function broken() { return TRUE; }
}
+/**
+ * Filter by no empty values, though allow to use "0".
+ * @param $var
+ * @return bool
+ */
+function _views_array_filter_zero($var) {
+ return trim($var) != "";
+}
+
/**
* @}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc
index f795b9f..56365e1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_boolean_operator.
+ */
+
/**
* Simple filter to handle matching of boolean values
*
@@ -123,6 +129,9 @@ class views_handler_filter_boolean_operator extends views_handler_filter {
}
function admin_summary() {
+ if ($this->is_a_group()) {
+ return t('grouped');
+ }
if (!empty($this->options['exposed'])) {
return t('exposed');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator_string.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator_string.inc
index b27cae4..b49dde9 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator_string.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_boolean_operator_string.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_boolean_operator_string.
+ */
+
/**
* Simple filter to handle matching of boolean values.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_combine.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_combine.inc
new file mode 100644
index 0000000..c9def53
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_combine.inc
@@ -0,0 +1,137 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_combine.
+ */
+
+/**
+ * Filter handler which allows to search on multiple fields.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_filter_combine extends views_handler_filter_string {
+ /**
+ * @var views_plugin_query_default
+ */
+ var $query;
+
+ function option_definition() {
+ $options = parent::option_definition();
+ $options['fields'] = array('default' => array());
+
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+ $this->view->init_style();
+
+ // Allow to choose all fields as possible
+ if ($this->view->style_plugin->uses_fields()) {
+ $options = array();
+ foreach ($this->view->display_handler->get_handlers('field') as $name => $field) {
+ $options[$name] = $field->ui_name(TRUE);
+ }
+ if ($options) {
+ $form['fields'] = array(
+ '#type' => 'select',
+ '#title' => t('Choose fields to combine for filtering'),
+ '#description' => t("This filter doesn't work for very special field handlers."),
+ '#multiple' => TRUE,
+ '#options' => $options,
+ '#default_value' => $this->options['fields'],
+ );
+ }
+ else {
+ form_set_error('', t('You have to add some fields to be able to use this filter.'));
+ }
+ }
+ }
+
+ function query() {
+ $this->view->_build('field');
+ $fields = array();
+ // Only add the fields if they have a proper field and table alias.
+ foreach ($this->options['fields'] as $id) {
+ $field = $this->view->field[$id];
+ // Always add the table of the selected fields to be sure a table alias exists.
+ $field->ensure_my_table();
+ if (!empty($field->field_alias) && !empty($field->field_alias)) {
+ $fields[] = "$field->table_alias.$field->real_field";
+ }
+ }
+ if ($fields) {
+ $count = count($fields);
+ $seperated_fields = array();
+ foreach ($fields as $key => $field) {
+ $seperated_fields[] = $field;
+ if ($key < $count-1) {
+ $seperated_fields[] = "' '";
+ }
+ }
+ $expression = implode(', ', $seperated_fields);
+ $expression = "CONCAT_WS(' ', $expression)";
+
+ $info = $this->operators();
+ if (!empty($info[$this->operator]['method'])) {
+ $this->{$info[$this->operator]['method']}($expression);
+ }
+ }
+ }
+
+ // By default things like op_equal uses add_where, that doesn't support
+ // complex expressions, so override all operators.
+
+ function op_equal($field) {
+ $placeholder = $this->placeholder();
+ $operator = $this->operator();
+ $this->query->add_where_expression($this->options['group'], "$field $operator $placeholder", array($placeholder => $this->value));
+ }
+
+ function op_contains($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field LIKE $placeholder", array($placeholder => '%' . db_like($this->value) . '%'));
+ }
+
+ function op_starts($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field LIKE $placeholder", array($placeholder => db_like($this->value) . '%'));
+ }
+
+ function op_not_starts($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field NOT LIKE $placeholder", array($placeholder => db_like($this->value) . '%'));
+ }
+
+ function op_ends($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field LIKE $placeholder", array($placeholder => '%' . db_like($this->value)));
+ }
+
+ function op_not_ends($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field NOT LIKE $placeholder", array($placeholder => '%' . db_like($this->value)));
+ }
+
+ function op_not($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field NOT LIKE $placeholder", array($placeholder => '%' . db_like($this->value) . '%'));
+ }
+
+ function op_regex($field) {
+ $placeholder = $this->placeholder();
+ $this->query->add_where_expression($this->options['group'], "$field RLIKE $placeholder", array($placeholder => $this->value));
+ }
+
+ function op_empty($field) {
+ if ($this->operator == 'empty') {
+ $operator = "IS NULL";
+ }
+ else {
+ $operator = "IS NOT NULL";
+ }
+
+ $this->query->add_where_expression($this->options['group'], "$field $operator");
+ }
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_date.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_date.inc
index b89d003..4ef61b4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_date.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_date.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_date.
+ */
+
+/**
* Filter to handle dates stored as a timestamp.
*
* @ingroup views_filter_handlers
@@ -90,6 +95,34 @@ class views_handler_filter_date extends views_handler_filter_numeric {
}
}
+ /**
+ * Validate the build group options form.
+ */
+ function build_group_validate($form, &$form_state) {
+ // Special case to validate grouped date filters, this is because the
+ // $group['value'] array contains the type of filter (date or offset)
+ // and therefore the number of items the comparission has to be done
+ // against 'one' instead of 'zero'.
+ foreach ($form_state['values']['options']['group_info']['group_items'] as $id => $group) {
+ if (empty($group['remove'])) {
+ // Check if the title is defined but value wasn't defined.
+ if (!empty($group['title'])) {
+ if ((!is_array($group['value']) && empty($group['value'])) || (is_array($group['value']) && count(array_filter($group['value'])) == 1)) {
+ form_error($form['group_info']['group_items'][$id]['value'], t('The value is required if title for this item is defined.'));
+ }
+ }
+
+ // Check if the value is defined but title wasn't defined.
+ if ((!is_array($group['value']) && !empty($group['value'])) || (is_array($group['value']) && count(array_filter($group['value'])) > 1)) {
+ if (empty($group['title'])) {
+ form_error($form['group_info']['group_items'][$id]['title'], t('The title is required if value for this item is defined.'));
+ }
+ }
+ }
+ }
+ }
+
+
function accept_exposed_input($input) {
if (empty($this->options['exposed'])) {
return TRUE;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_entity_bundle.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_entity_bundle.inc
new file mode 100644
index 0000000..c46cd0b
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_entity_bundle.inc
@@ -0,0 +1,122 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_entity_bundle
+ */
+
+/**
+ * Filter class which allows to filter by certain bundles of an entity.
+ *
+ * This class provides workarounds for taxonomy and comment.
+ *
+ * @ingroup views_filter_handlers
+ */
+class views_handler_filter_entity_bundle extends views_handler_filter_in_operator {
+ /**
+ * Stores the entity type on which the filter filters.
+ *
+ * @var string
+ */
+ public $entity_type;
+
+ function init(&$view, &$options) {
+ parent::init($view, $options);
+
+ $this->get_entity_type();
+ }
+
+ /**
+ * Set and returns the entity_type.
+ *
+ * @return string
+ * The entity type on the filter.
+ */
+ function get_entity_type() {
+ if (!isset($this->entity_type)) {
+ $data = views_fetch_data($this->table);
+ if (isset($data['table']['entity type'])) {
+ $this->entity_type = $data['table']['entity type'];
+ }
+
+ // If the current filter is under a relationship you can't be sure that the
+ // entity type of the view is the entity type of the current filter
+ // For example a filter from a node author on a node view does have users as entity type.
+ if (!empty($this->options['relationship']) && $this->options['relationship'] != 'none') {
+ $relationships = $this->view->display_handler->get_option('relationships');
+ if (!empty($relationships[$this->options['relationship']])) {
+ $options = $relationships[$this->options['relationship']];
+ $data = views_fetch_data($options['table']);
+ $this->entity_type = $data['table']['entity type'];
+ }
+ }
+ }
+
+ return $this->entity_type;
+ }
+
+
+ function get_value_options() {
+ if (!isset($this->value_options)) {
+ $info = entity_get_info($this->entity_type);
+ $types = $info['bundles'];
+ $this->value_title = t('@entity types', array('@entity' => $info['label']));
+
+ $options = array();
+ foreach ($types as $type => $info) {
+ $options[$type] = t($info['label']);
+ }
+ asort($options);
+ $this->value_options = $options;
+ }
+ }
+
+ /**
+ * All entity types beside comment and taxonomy terms have a proper implement
+ * bundle, though these two need an additional join to node/vocab table
+ * to work as required.
+ */
+ function query() {
+ $this->ensure_my_table();
+
+ // Adjust the join for the comment case.
+ if ($this->entity_type == 'comment') {
+ $join = new views_join();
+ $def = array(
+ 'table' => 'node',
+ 'field' => 'nid',
+ 'left_table' => $this->table_alias,
+ 'left_field' => 'nid',
+ );
+ $join->definition = $def;
+ $join->construct();
+ $join->adjusted = TRUE;
+ $this->table_alias = $this->query->add_table('node', $this->relationship, $join);
+ $this->real_field = 'type';
+
+ // Replace the value to match the node type column.
+ foreach ($this->value as &$value) {
+ $value = str_replace('comment_node_', '', $value);
+ }
+ }
+ elseif ($this->entity_type == 'taxonomy_term') {
+ $join = new views_join();
+ $def = array(
+ 'table' => 'taxonomy_vocabulary',
+ 'field' => 'vid',
+ 'left_table' => $this->table_alias,
+ 'left_field' => 'vid',
+ );
+ $join->definition = $def;
+ $join->construct();
+ $join->adjusted = TRUE;
+ $this->table_alias = $this->query->add_table('taxonomy_vocabulary', $this->relationship, $join);
+ $this->real_field = 'machine_name';
+ }
+ else {
+ $entity_info = entity_get_info($this->entity_type);
+ $this->real_field = $entity_info['bundle keys']['bundle'];
+ }
+ parent::query();
+ }
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_equality.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_equality.inc
index dfe2445..e045c7e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_equality.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_equality.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_equality.
+ */
+
/**
* Simple filter to handle equal to / not equal to filters
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_group_by_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_group_by_numeric.inc
index 2332d39..2b265be 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_group_by_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_group_by_numeric.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_group_by_numeric.
+ */
+
+/**
* Simple filter to handle greater than/less than filters
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_in_operator.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_in_operator.inc
index 8054542..fc2700b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_in_operator.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_in_operator.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_in_operator.
+ */
+
/**
* Simple filter to handle matching of multiple options selectable via checkboxes
*
@@ -74,7 +80,7 @@ class views_handler_filter_in_operator extends views_handler_filter {
$options['operator']['default'] = 'in';
$options['value']['default'] = array();
- $options['expose']['contains']['reduce'] = array('default' => FALSE);
+ $options['expose']['contains']['reduce'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -284,6 +290,9 @@ class views_handler_filter_in_operator extends views_handler_filter {
}
function admin_summary() {
+ if ($this->is_a_group()) {
+ return t('grouped');
+ }
if (!empty($this->options['exposed'])) {
return t('exposed');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc
index c6d6d20..f384796 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_many_to_one.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_many_to_one.
+ */
+
+/**
* Complex filter to handle filtering for many to one relationships,
* such as terms (many terms per node) or roles (many roles per user).
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_numeric.inc
index 71d8b9e..982abd8 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_numeric.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_numeric.
+ */
+
+/**
* Simple filter to handle greater than/less than filters
*
* @ingroup views_filter_handlers
@@ -257,6 +262,9 @@ class views_handler_filter_numeric extends views_handler_filter {
}
function admin_summary() {
+ if ($this->is_a_group()) {
+ return t('grouped');
+ }
if (!empty($this->options['exposed'])) {
return t('exposed');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_string.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_string.inc
index eec7a07..c50eff4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_string.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_filter_string.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_string.
+ */
+
+/**
* Basic textfield filter to handle string filtering commands
* including equality, like, not like, etc.
*
@@ -13,7 +18,7 @@ class views_handler_filter_string extends views_handler_filter {
function option_definition() {
$options = parent::option_definition();
- $options['expose']['contains']['required'] = array('default' => FALSE);
+ $options['expose']['contains']['required'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -143,6 +148,9 @@ class views_handler_filter_string extends views_handler_filter {
}
function admin_summary() {
+ if ($this->is_a_group()) {
+ return t('grouped');
+ }
if (!empty($this->options['exposed'])) {
return t('exposed');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship.inc
index 18f21f8..695082b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship.inc
@@ -1,11 +1,12 @@
<?php
+
/**
* @file
* Views' relationship handlers.
*/
/**
- * @defgroup views_relationship_handlers Views' relationship handlers
+ * @defgroup views_relationship_handlers Views relationship handlers
* @{
* Handlers to tell Views how to create alternate relationships.
*/
@@ -31,6 +32,8 @@
* - label: The default label to provide for this relationship, which is
* shown in parentheses next to any field/sort/filter/argument that uses
* the relationship.
+ *
+ * @ingroup views_relationship_handlers
*/
class views_handler_relationship extends views_handler {
/**
@@ -72,7 +75,7 @@ class views_handler_relationship extends views_handler {
}
$options['label'] = array('default' => $label, 'translatable' => TRUE);
- $options['required'] = array('default' => FALSE);
+ $options['required'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship_groupwise_max.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship_groupwise_max.inc
index b027357..23198c6 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship_groupwise_max.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_relationship_groupwise_max.inc
@@ -1,6 +1,6 @@
<?php
-// $Id$
-/*
+
+/**
* @file
* Relationship for groupwise maximum handler.
*/
@@ -64,7 +64,7 @@ class views_handler_relationship_groupwise_max extends views_handler_relationshi
$options['subquery_sort'] = array('default' => NULL);
// Descending more useful.
$options['subquery_order'] = array('default' => 'DESC');
- $options['subquery_regenerate'] = array('default' => FALSE);
+ $options['subquery_regenerate'] = array('default' => FALSE, 'bool' => TRUE);
$options['subquery_view'] = array('default' => FALSE);
$options['subquery_namespace'] = array('default' => FALSE);
@@ -148,21 +148,6 @@ class views_handler_relationship_groupwise_max extends views_handler_relationshi
}
/**
- * Perform any necessary changes to the form values prior to storage.
- * There is no need for this function to actually store the data.
- *
- * Generate the subquery string when the user submits the options, and store
- * it. This saves the expense of generating it when the view is run.
- */
- function options_submit(&$form, &$form_state) {
- // Get the new user options from the form values.
- $new_options = $form_state['values']['options'];
- $subquery = $this->left_query($new_options);
- // Add the subquery string to the options we're about to store.
- $this->options['subquery_string'] = $subquery;
- }
-
- /**
* Helper function to create a pseudo view.
*
* We use this to obtain our subquery SQL.
@@ -177,6 +162,14 @@ class views_handler_relationship_groupwise_max extends views_handler_relationshi
}
/**
+ * When the form is submitted, take sure to clear the subquery string cache.
+ */
+ function options_form_submit(&$form, &$form_state) {
+ $cid = 'views_relationship_groupwise_max:' . $this->view->name . ':' . $this->view->current_display . ':' . $this->options['id'];
+ cache_clear_all($cid, 'cache_views_data');
+ }
+
+ /**
* Generate a subquery given the user options, as set in the options.
* These are passed in rather than picked up from the object because we
* generate the subquery when the options are saved, rather than when the view
@@ -359,7 +352,15 @@ class views_handler_relationship_groupwise_max extends views_handler_relationshi
}
else {
// Get the stored subquery SQL string.
- $def['left_query'] = $this->options['subquery_string'];
+ $cid = 'views_relationship_groupwise_max:' . $this->view->name . ':' . $this->view->current_display . ':' . $this->options['id'];
+ $cache = cache_get($cid, 'cache_views_data');
+ if (isset($cache->data)) {
+ $def['left_query'] = $cache->data;
+ }
+ else {
+ $def['left_query'] = $this->left_query($this->options);
+ cache_set($cid, $def['left_query'], 'cache_views_data');
+ }
}
if (!empty($def['join_handler']) && class_exists($def['join_handler'])) {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort.inc
index 3587290..99574e4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort.inc
@@ -1,12 +1,20 @@
<?php
+
+/**
+ * @file
+ * @todo.
+ */
+
/**
- * @defgroup views_sort_handlers Views' sort handlers
+ * @defgroup views_sort_handlers Views sort handlers
* @{
- * Handlers to tell Views how to sort queries
+ * Handlers to tell Views how to sort queries.
*/
/**
- * Base sort handler that has no options and performs a simple sort
+ * Base sort handler that has no options and performs a simple sort.
+ *
+ * @ingroup views_sort_handlers
*/
class views_handler_sort extends views_handler {
@@ -28,7 +36,7 @@ class views_handler_sort extends views_handler {
$options = parent::option_definition();
$options['order'] = array('default' => 'ASC');
- $options['exposed'] = array('default' => FALSE);
+ $options['exposed'] = array('default' => FALSE, 'bool' => TRUE);
$options['expose'] = array(
'contains' => array(
'label' => array('default' => '', 'translatable' => TRUE),
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_date.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_date.inc
index 8101482..b37cc41 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_date.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_date.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_sort_date.
+ */
+
+/**
* Basic sort handler for dates.
*
* This handler enables granularity, which is the ability to make dates
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_group_by_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_group_by_numeric.inc
index 1d1be41..4a521c1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_group_by_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_group_by_numeric.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_sort_group_by_numeric.
+ */
+
/**
* Handler for GROUP BY on simple numeric fields.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_menu_hierarchy.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_menu_hierarchy.inc
index 294b3c4..dacb1fe 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_menu_hierarchy.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_menu_hierarchy.inc
@@ -1,18 +1,53 @@
<?php
/**
+ * @file
+ * Definition of views_handler_sort_menu_hierarchy.
+ */
+
+/**
* Sort in menu hierarchy order.
*
- * Given a field name of 'p' this produces an ORDER BY on p1, p2, ..., p9.
+ * Given a field name of 'p' this produces an ORDER BY on p1, p2, ..., p9;
+ * and optionally injects multiple joins to {menu_links} to sort by weight
+ * and title as well.
+ *
* This is only really useful for the {menu_links} table.
*
* @ingroup views_sort_handlers
*/
class views_handler_sort_menu_hierarchy extends views_handler_sort {
+ function option_definition() {
+ $options = parent::option_definition();
+ $options['sort_within_level'] = array('default' => FALSE);
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+ $form['sort_within_level'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Sort within each hierarchy level'),
+ '#description' => t('Enable this to sort the items within each level of the hierarchy by weight and title. Warning: this may produce a slow query.'),
+ '#default_value' => $this->options['sort_within_level'],
+ );
+ }
+
function query() {
$this->ensure_my_table();
$max_depth = isset($this->definition['max depth']) ? $this->definition['max depth'] : MENU_MAX_DEPTH;
for ($i = 1; $i <= $max_depth; ++$i) {
+ if ($this->options['sort_within_level']) {
+ $join = new views_join();
+ $join->construct('menu_links', $this->table_alias, $this->field . $i, 'mlid');
+ $menu_links = $this->query->add_table('menu_links', NULL, $join);
+ $this->query->add_orderby($menu_links, 'weight', $this->options['order']);
+ $this->query->add_orderby($menu_links, 'link_title', $this->options['order']);
+ }
+
+ // We need this even when also sorting by weight and title, to make sure
+ // that children of two parents with the same weight and title are
+ // correctly separated.
$this->query->add_orderby($this->table_alias, $this->field . $i, $this->options['order']);
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_random.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_random.inc
index 75f3153..eaaaf79 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_random.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/handlers/views_handler_sort_random.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_sort_random.
+ */
+
+/**
* Handle a random sort.
*
* @ingroup views_sort_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/about.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/about.html
index fd0a576..8ba77f8 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/about.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/about.html
@@ -1,6 +1,6 @@
-The views module allows administrators and site designers to create, manage, and display lists of content. Each list managed by the views module is known as a "view", and the output of a view is known as a "display". Displays are provided in either block or page form, and a single view may have multiple displays. Optional navigation aids, including a system path and menu item, can be set for each page-based display of a view. By default, views may be created that list content (a <em>Node</em> view type), content revisions (a <em>Node revisions</em> view type) or users (a <em>User</em> view type). A view may be restricted to members of specific user roles, and may be added, edited or deleted at the <a href="base_url:admin/structure/views">views administration page</a>.
+The views module allows administrators and site designers to create, manage, and display lists of content. Each list managed by the views module is known as a "view", and the output of a view is known as a "display". Displays are provided in either block or page form, and a single view may have multiple displays. Optional navigation aids, including a system path and menu item, can be set for each page-based display of a view. By default, views may be created that list content (a <em>Node</em> view type), content revisions (a <em>Node revisions</em> view type) or users (a <em>User</em> view type). A view may be restricted to members of specific user roles, and may be added, edited or deleted at the <a href="base_url:admin/structure/views">views administration page</a>.
-For more technical users and in terms views can be understood simple as a user interface to compose SQL-queries and to pull information (Content, Users, etc.) from the database and show it on a screen as desired.
+For more technical users, views can be understood as a user interface to compose SQL-queries and to pull information (Content, Users, etc.) from the database and show it on a screen as desired.
The "building block" design of the views system provides power and flexibility, allowing parameters to be specified only when needed. While an advanced view may use all of available parameters to create complex and highly interactive applications, a simple content listing may specify only a few options. All views rely on a conceptual framework that includes:
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-settings.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-settings.html
index 23d05d4..6a16859 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-settings.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-settings.html
@@ -1,8 +1,43 @@
+In the category <strong>Other</strong> you have different options to set Advanced configurations in your View.
+
+<strong>Machine Name:</strong>
+You can change the default machine name of the view.
+
+<strong>Comment: No comment</strong>
+You can Use the comment option to write comments for your Views, the comments are only shown in the Views UI. Comment your Display for other Maintainer
+
<strong>Use AJAX: No</strong>
-If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This prevents the entire page from refreshing. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content.
-<strong>Distinct: No</strong>
-This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution.
-<strong>Use grouping: No</strong>
+If set, this view will use an AJAX mechanism for paging, table sorting and exposed filters. This prevents the entire page from refreshing. It is not recommended that you use this if this view is the main content of the page as it will prevent deep linking to specific pages, but it is very useful for side content. Block displays require this setting to be ON if exposed filters are being used.
+
+<strong>Hide attachments in summary: No</strong>
+
+<strong>Use aggregation: No</strong>
All fields that are selected for grouping will be collapsed to one record per distinct value. Other fields which are selected for aggregation will have the function run on them. For example, you can group nodes on title and count the number of nids in order to get a list of duplicate titles.
+For more Information how aggregation work see the "Use Aggregation" Help Page
+
+<strong>Query settings: Settings</strong>
+
+Here can you set advanced Settings for the SQL Settings
+<ul>
+ <li><strong>Disable SQL rewriting</strong></li>
+
+ <li><strong>Distinct: No</strong></li>
+ This will make the view display only distinct items. If there are multiple identical items, each will be displayed only once. You can use this to try and remove duplicates from a view, though it does not always work. Note that this can slow queries down, so use it with caution.
+
+ <li><strong>Use Slave Server</strong></li>
+
+ <li><strong>Query Comment</strong></li>
+</ul>
+<strong>Field Language: Current user's language</strong>
+
<strong>Caching: None</strong>
You can choose a "Time-based" Caching if you want. With it you get the option to choose the length of time raw query results should be cached and "The length of time rendered HTML output should be cached."
+
+<strong>Link display: Page</strong>
+
+<strong>CSS class: None</strong>
+You can define some own CSS Classes for your View
+
+<strong>Theme: Information</strong>
+Clicking on the "Theme: Information" link provides you with a listing of all posiible theming files. The highlighted files are the ones Views is currently using. All other filenames are suggested templates.
+For more Information see the <a href="/help/views/analyze-theme" title="Theme Information" >"Theme information"</a> Page
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-style-settings.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-style-settings.html
new file mode 100644
index 0000000..9c90c0f
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/advanced-style-settings.html
@@ -0,0 +1,30 @@
+In Views 3 you can set Advanced Style Settings, they help you to insert markup of your own from the Views UI, so that you can fairly easily override the default markup without having to restyle via templates.
+
+
+<ul>
+<li> Customize field HTML</li>
+With Customize field HTML you can generate html tags around the field.
+
+<li>Customize label HTML</li>
+Here you can generate html tags around the label of a field.
+
+<li>Customize field and label wrapper HTML</li>
+Here you can generate html tags around the wrapper of the label and field
+</ul>
+
+<a href="path:images/views3-semanticviews.png"><img src="path:images/views3-semanticviews.png" /></a>
+
+Usage example
+
+In a view with a field:
+<ol>
+<li>Configure the field. (Click on the field.)</li>
+
+<li>In the modal that opens, scroll down to <strong>Style Settings</strong>.</li>
+
+<li>Choose one or more of the three <i>Customize</i> options. This will reveal a dropdown menu where you can choose from one or more HTML tags to use on that field and allow you to add a CSS class specific to that field should you desire.</li>
+
+<li>Decide if you want to keep the Views default classes. Unchecking this box means your markup is *it*.</li>
+</ol>
+
+In Views 2 you needed for Style Settings the <a href="http://drupal.org/project/semanticviews">Semantic Views</a> Modul, now the Semantic Views module has been mostly incorporated into Views 3.x. Semantic Views is still around for people who need it, though. For some details on how the original module is different from the Views implementation, please see <a href="http://drupal.org/node/1013876">this issue</a>.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-forms.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-forms.html
index f7f4ff6..2772909 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-forms.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-forms.html
@@ -76,8 +76,6 @@ Then, views_form would call form_example_confirmation($form, $form_state, $view,
<ul>
<li>template_preprocess_views_view()</li>
<li>views_form()</li>
-<li>views_form_validate()</li>
-<li>views_form_submit()</li>
<li>views_form_views_form()</li>
<li>views_form_views_form_validate()</li>
<li>views_form_views_form_submit()</li>
@@ -87,6 +85,4 @@ Then, views_form would call form_example_confirmation($form, $form_state, $view,
<h2>Hooks</h2>
<ul>
<li>hook_views_form_substitutions()</li>
-<li>hook_views_form_validate($form, &$form_state)</li>
-<li>hook_views_form_submit($form, &$form_state)</li>
</ul>
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-handlers.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-handlers.html
deleted file mode 100644
index 9eca851..0000000
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-handlers.html
+++ /dev/null
@@ -1,71 +0,0 @@
-In Views, a handler is an object that is part of the view and is part of the query building flow.
-
-Handlers are objects; much of the time, the base handlers will work, but often you'll need to override the handler for something. One typical handler override will be views_handler_filter_operator_in which allows you to have a filter select from a list of options; you'll need to override this to provide your list.
-
-Handlers have two distint code flows; the UI flow and the view building flow.
-
-For the query flow:
-
-<dl>
-<dt>handler-&gt;construct()</dt>
-<dd>Create the initial handler; at this time it is not yet attached to a view. It is here that you can set basic defaults if needed, but there will be no knowledge of the environment yet.</dd>
-<dt>handler-&gt;set_definition()</dt>
-<dd>Set the data from hook_views_data() relevant to the handler.</dd>
-<dt>handler-&gt;init()</dt>
-<dd>Attach the handler to a view, and usually provides the options from the display.</dd>
-<dt>handler-&gt;pre_query()</dt>
-<dd>Run prior to the query() stage to do early processing.</dd>
-<dt>handler-&gt;query()</dt>
-<dd>Do the bulk of the work this handler needs to do to add itself to the query.</dd>
-</dl>
-
-Fields, being the only handlers concerned with output, also have an extended piece of the flow:
-<dl>
-<dt>handler-&gt;pre_render(&$values)</dt>
-<dd>Called prior to the actual rendering, this allows handlers to query for extra data; the entire resultset is available here, and this is where items that have "multiple values" per record can do their extra query for all of the records available. There are several examples of this at work in the code.</dd>
-<dt>handler-&gt;render()</dt>
-<dd>This does the actual work of rendering the field.</dd>
-</dl>
-
-Most handlers are just extensions of existing classes with a few tweaks that are specific to the field in question. For example:
-
-<pre>
-/**
- * Filter by node type
- *
- * @ingroup views_filter_handlers
- */
-class views_handler_filter_node_type extends views_handler_filter_in_operator {
- function get_value_options() {
- if (!isset($this-&gt;value_options)) {
- $this-&gt;value_title = t('Node type');
- $types = node_get_types();
- foreach ($types as $type =&gt; $info) {
- $options[$type] = $info-&gt;name;
- }
- $this-&gt;value_options = $options;
- }
- }
-}
-</pre>
-
-<i>views_handler_filter_in_operator</i> provides a simple mechanism to set the list used and the rest of the handler is perfectly fine for this.
-
-Handlers are stored in their own files and loaded on demand.
-Like all other module files, they must first be registered through the module's info file. For example:
-<pre>
-name = Example module
-description = "Gives an example of a module."
-core = 7.x
-files[] = example.module
-files[] = example.install
-
-; Views handlers
-files[] = includes/views/handlers/example_handler_argument_string.inc
-</pre>
-
-The best place to learn more about handlers and how they work is to explore <a href="http://views.doc.logrus.com">the views API site</a> and use existing handlers as a guide and a model. Understanding how views_handler and its child classes work is handy but you can do a lot just following these models. You can also explore the views module directory, particularly node.views.inc.
-
-Please note that while all handler names in views are prefixed with views_, you should use your own module's name to prefix your handler names in order to ensure namespace safety. Note that the basic pattern for handler naming goes like this:
-
-[module]_handler_[type]_[tablename]_[fieldname]. Sometimes table and fieldname are not appropriate, but something that resembles what the table/field would be can be used.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-plugins.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-plugins.html
deleted file mode 100644
index 4d1c120..0000000
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-plugins.html
+++ /dev/null
@@ -1,114 +0,0 @@
-In Views, a plugin is a bit like a handler, but plugins are not directly responsible for building the query. Instead, they are objects that are used to display the view or make other modifications.
-
-There are 10 types of plugins in Views:
-<dl>
-<dt>Display</dt>
-<dd>Display plugins are responsible for controlling <strong>where</strong> a view lives. Page and block are the most common displays, as well as the ubiquitous 'default' display which is likely what will be embedded.</dd>
-<dt>Style</dt>
-<dd>Style plugins control how a view is displayed. For the most part they are object wrappers around theme templates.
-<dt>Row style</dt>
-<dd>Row styles handle each individual record from a node.</dd>
-<dt>Argument default</dt>
-<dd>Argument default plugins allow pluggable ways of providing arguments for blocks. Views includes plugins to extract node and user IDs from the URL; additional plugins could be used for a wide variety of tasks.</dd>
-<dt>Argument validator</dt>
-<dd>Validator plugins can ensure arguments are valid, and even do transformations on the arguments.</dd>
-<dt>Access</dt>
-<dd>Access plugins are responsible for controlling access to the view.</dd>
-<dt>Query</dt>
-<dd>Query plugins generate and execute a query, it can be seen as a data backend. The default implementation
-is using sql.</dd>
-<dt>Cache</dt>
-<dd>Cache plugins control the storage and loading of caches. Currently they can do both result and render caching,
-but maybe one day cache the generated query</dd>
-<dt>Pager plugins</dt>
-<dd>Pager plugins take care of everything regarding pagers. From getting and setting the total amount of items
-to render the pager and setting the global pager arrays.</dd>
-<dt>Exposed form plugins</dt>
-<dd>Exposed form plugins are responsible for building, rendering and controlling exposed forms. They can expose new
-parts of the view to the user and more.</dd>
-<dt>Localization plugins</dt>
-<dd>Localization plugins take care how the view options are translated. There are example implementations
-for t(), none translation and i18n.</dd>
-</dl>
-
-Plugins are registered by implementing <strong>hook_views_plugins()</strong> in your modulename.views.inc file and returning an array of data.
-For examples please look at views_views_plugins() in views/includes/plugins.inc as it has examples
-for all of them.
-
-For example plugins please look at the one provided by views, too.
-
-Similar to handlers take sure that you added the plugin file to the module.info.
-
-The array will look something like this:
-<pre>
- return array(
- 'display' =&gt; array(
- // ... list of display plugins,
- ),
- 'style' =&gt; array(
- // ... list of style plugins,
- ),
- 'row' =&gt; array(
- // ... list of row style plugins,
- ),
- 'argument default' =&gt; array(
- // ... list of argument default plugins,
- ),
- 'argument validator' =&gt; array(
- // ... list of argument validator plugins,
- ),
- 'access' =&gt; array(
- // ... list of access plugins,
- ),
- 'query' =&gt; array(
- // ... list of query plugins,
- ),,
- 'cache' =&gt; array(
- // ... list of cache plugins,
- ),,
- 'pager' =&gt; array(
- // ... list of pager plugins,
- ),,
- 'exposed_form' =&gt; array(
- // ... list of exposed_form plugins,
- ),,
- 'localization' =&gt; array(
- // ... list of localization plugins,
- ),
- );
-</pre>
-
-Each plugin will be registered with an identifier for the plugin, plus a fairly lengthy list of items that can define how and where the plugin is used. Here is an example from Views core:
-
-<pre>
- 'node' =&gt; array(
- 'title' =&gt; t('Node'),
- 'help' =&gt; t('Display the node with standard node view.'),
- 'handler' =&gt; 'views_plugin_row_node_view',
- 'path' =&gt; drupal_get_path('module', 'views') . '/modules/node', // not necessary for most modules
- 'theme' =&gt; 'views_view_row_node',
- 'base' =&gt; array('node'), // only works with 'node' as base.
- 'uses options' =&gt; TRUE,
- 'type' =&gt; 'normal',
- ),
-</pre>
-
-Of particular interest is the <em>path</em> directive, which works a little differently from handler registration; each plugin must define its own path, rather than relying on a global info for the paths. For example:
-
-<pre>
- 'feed' =&gt; array(
- 'title' =&gt; t('Feed'),
- 'help' =&gt; t('Display the view as a feed, such as an RSS feed.'),
- 'handler' =&gt; 'views_plugin_display_feed',
- 'uses hook menu' =&gt; TRUE,
- 'use ajax' =&gt; FALSE,
- 'use pager' =&gt; FALSE,
- 'accept attachments' =&gt; FALSE,
- 'admin' =&gt; t('Feed'),
- 'help topic' =&gt; 'display-feed',
- ),
-</pre>
-
-Please be sure to prefix your plugin identifiers with your module name to ensure namespace safety; after all, two different modules could try to implement the 'grid2' plugin, and that would cause one plugin to completely fail.
-
-...TODO: Finish this document....
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-tables.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-tables.html
index 47af4ab..cafbbab 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-tables.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api-tables.html
@@ -1,15 +1,21 @@
-Tables are described to Views via hook_views_data(), which returns an array of table information, keyed by the name of the table. For example, if your module is describing three tables, 'foo', 'bar' and 'baz', your array will look like this:
-<pre>$data = array(
- 'foo' =&gt; array(
- // ...info here...
- ),
- 'bar' =&gt; array(
- // ...info here...
- ),
- 'baz' =&gt; array(
- // ...info here...
- ),
-);
+Tables are described to Views by implementing hook_views_data(). This should be placed in MODULENAME.views.inc and it will be autoloaded (see <a href="topic:views/api">Views' API</a>). The hook implementation should return an array of table information, keyed by the name of the table. For example, if your module is describing three tables, 'foo', 'bar' and 'baz', your hook will look like this:
+<pre> /**
+ * Implements hook_views_data().
+ */
+ function MODULENAME_views_data() {
+ $data = array(
+ 'foo' =&gt; array(
+ // ...info about the table named 'foo'...
+ ),
+ 'bar' =&gt; array(
+ // ...info about the table named 'bar'...
+ ),
+ 'baz' =&gt; array(
+ // ...info about the table named 'baz'...
+ ),
+ );
+ return $data;
+ }
</pre>
The key should be the actual database name of the table (not including prefix), but it can be an alias as long as the join information (explained later) contains the real name of the table.
@@ -230,7 +236,7 @@ The following items are allowed in the field definition:
<dt>sort</dt>
<dd>A handler definition for the "Sort criteria" section, which will be used to add an ORDER BY clause to the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_sort'.</dd>
<dt>relationship</dt>
-<dd>A handler definition for the "Field" section, which is a way to bring in new or alternative base tables in the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_relationship'. The basic relationship handler requires 'base' and 'base field' to be set; 'base' and 'base field' represent the "right" half of the join that will use this field as the left side.</dd>
+<dd>A handler definition for the "Field" section, which is a way to bring in new or alternative base tables in the view. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_relationship'. All relationships need the 'base' to be set. The basic relationship handler also requires 'base field' to be set. 'base' and 'base field' represent the "right" half of the join that will use this field as the left side.</dd>
<dt>argument</dt>
<dd>A handler definition for the "Field" section, which is method of accepting user input from the URL or some other source. The definition is an array; the contents of the array are completely up to the handler, other than the 'handler' definition. If omitted, handler will default to 'views_handler_argument'.</dd>
</dl>
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api.html
index 6337e8b..2b743a7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/api.html
@@ -2,7 +2,7 @@ Views allows modules to describe their tables relationships to each other, as we
Views also allows modules to create new display types, style types, row styles, argument default handlers and argument validators via <strong>hook_views_handlers()</strong> and <strong>hook_views_plugins()</strong>.
-These hooks are kept in a file named MODULENAME.views.inc. This file is automatically included upon need, so there is no need to try and include this in hook_init or any other method of including .inc files. This file should store hook_views_data, hook_views_data_alter(), hook_views_plugins(), hook_views_handlers(), as well as any other hooks and subsidiary data that will only be used by your module when Views is active. All handlers and plugins provided by your module should be in separate .inc files.
+These hooks are kept in a file named MODULENAME.views.inc. This file is automatically included upon need, so there is no need to try and include this in hook_init or any other method of including .inc files. This file should store hook_views_data, hook_views_data_alter(), hook_views_plugins(), hook_views_handlers(), as well as any other hooks and subsidiary data that will only be used by your module when Views is active. All handlers and plugins provided by your module should be in separate .inc files, and must be referenced in your module's .info file with the files[] directive.
There are two similar files, MODULENAME.views_default.inc and MODULENAME.views_convert.inc which contain default views and views 1 to views 2 convert helpers, respectively.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/example-slideshow-thumb-pager.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/example-slideshow-thumb-pager.html
new file mode 100644
index 0000000..1c83984
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/example-slideshow-thumb-pager.html
@@ -0,0 +1,54 @@
+<p>In this example you will create a views block that displays images in a slideshow using thumbnails of the images as a pager underneath the slideshow. This will demonstrate using <em>Views Slideshow </em>and <em>Image Styles</em> to display images.</p>
+
+<p>For this example, we are going to display a single image from each content item of the type &quot;Photos&quot;, which we assume you have already set up with an image field. We are also assuming that <em>Views Slideshow</em> and at least one plugin is installed and activated.</p>
+
+<h3>Creating the image styles</h3>
+
+<p>The first step is creating the right image styles to display the images from the node. We will create one for the slideshow image, and one for the pagers. Go to <a target="_blank" href="base_url:admin/structure/views/add">Image Styles</a> and create the following two styles:</p>
+
+<dl>
+ <dt>Style name</dt>
+ <dd>slideshow_image</dd>
+ <dt>Effects</dt>
+ <dd>Scale and crop: 600px wide, 400px high</dd>
+</dl>
+<dl>
+ <dt>Style name</dt>
+ <dd>slideshow_thumbnail</dd>
+ <dt>Effects</dt>
+ <dd>Scale and crop: 30px wide, 20px high</dd>
+</dl>
+
+<h3>Creating the View and block</h3>
+
+<p>The next step is creating a view for the slideshow. Because the block will show the images in content, this view is considered a "Content" view. Go to <a target="_blank" href="base_url:admin/structure/views/add">add new view</a>, enter the following properties, and click <strong>Next</strong>:</p>
+<dl>
+ <dt>View name</dt>
+ <dd>Photo Slideshow</dd>
+ <dt>Description</dt>
+ <dd>Slideshow of images from Photos.</dd>
+</dl>
+
+<p>Choose <strong>Show</strong> <em>Content</em> <strong>of type</strong> <em>Photos</em>. You can choose any way you wish to sort the content.</p>
+<p>Untick the box next to <strong>Create a page</strong> and tick the box next to <strong>Create a block</strong>. Enter a block title and choose Slideshow from the <strong>Display format</strong> select box. Select <em>fields</em> from the other select box. Leave the remaining settings as they are.</p>
+<p>Click on <strong>Continue &amp; edit</strong>.</p>
+
+<h3>Editing the view settings</h3>
+
+<p>Turn off the pager by clicking on <strong>Display a specified number of items</strong> in the middle column and selecting <strong>Display all items</strong> in the next screen, and applying the settings.</p>
+<p>Enter a Block name by clicking on <strong>None</strong> at the top of the middle column.</p>
+<p>Next, remove the <em>Content: Title</em> field from the fields list in the left column by blicking on <strong>rearrage</strong> under the arrow.</p>
+<p>Next we have to add the thumbnail image field. Click on <strong>Add</strong> under the fields section and select your image field from the list. In the next screen, turn off the label, select <em>Exclude from display</em> and select <em>slideshow_thumbnail</em> from the Image Style select box. Under MORE, enter <em>Thumbnail</em> under Administrative Title.</p>
+<p>Click on <strong>Apply (all displays)</strong>.</p>
+<p>Now we have to add the image field to display in the slideshow. Clcik on <strong>Add</strong> under the fields section and select your image field from the list. In the next screen, turn off the label and select <em>slideshow_image</em> from the Image Style select box. Under MORE, enter <em>Display Image</em> under Administrative Title.</p>
+<p>Click on <strong>Apply (all displays)</strong>.</p>
+
+<h3>Editing the slideshow settings</h3>
+
+<p>Click on <strong>Settings</strong> next to Format: Slideshow in the first column. In the screen that opens we can choose the options for our slideshow.</p>
+<p>For the purpose of this example, we will only add the thumbnails as a pager, and leave the remaining slideshow settings as they are. Select the tick box next to <em>Pager</em> under Bottom Widgets. Select <em>Fields</em> from the Pager Type select box. Select the tick box next to <em>Thumbnail</em>.</p>
+<p>Click on <strong>Apply (all displays)</strong>.</p>
+
+<h3>Saving &amp; testing the view</h3>
+<p>Click on <strong>Save</strong> to save the view.</p>
+<p>You can test the view by adding the block you have created to your theme.</p>
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/filter.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/filter.html
index 752617f..cb84f8a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/filter.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/filter.html
@@ -15,6 +15,21 @@ When you click the Rearrange Icon you can first rearrange your filters, easily d
When you want that the user to select their own filter, you can expose the filter. A selection box will show for the user and they will be able to select one item. After that the view will reload and only the selected item will be displayed. You can also choose to expose the selection to a block, see <a href="topic:views/exposed-form">here</a>.
+For exposed filters, you can create a grouped filter. When filters are in a group, each item of the group represents a set of operators and values. The following table illustrates how this feature works. The values of the first column of the table are displayed as options of a single select box:
+
+<table>
+<thead>
+<tr><th>What the user see</th><th>What views does</th></tr>
+</thead>
+<tbody>
+<tr><td>Is lower than 10</td><td><strong>Operator:</strong> Is Lower than. <strong>Value:</strong> 10</td></tr>
+<tr><td>Is between 10 and 20</td><td><strong>Operator:</strong> Is between. <strong>Value:</strong> 10 and 20</td></tr>
+<tr><td>Is greater than 20</td><td><strong>Operator:</strong> Is Greater. <strong>Value:</strong> 20</td></tr>
+</tbody>
+</table>
+
+<strong>Please note:</strong> When using grouped filters with the option: 'Enable to allow users to select multiple items' checked, you probably may want to to place the filter in a separated group and define the operator of the group as 'OR'. This may be neccesary because in order to use multiple times the same filter, all options have to be applied using the OR operator, if not, probably you will get nothing listed since usually items in a group are mutually exclusive.
+
Taxonomy filters have been significantly altered in Views 7.x-3.x. D7 significantly re-organized taxonomy, there was a lot of duplicate taxonomy related fields and filters. Some of them were removed to try and reduce confusion between them. Implicit relationships to taxonomy have been removed, in favor of explicit relationships. If the filters you can find don't do what you need, try adding either the related taxonomy terms relationship, or a relationship on the specific taxonomy field. That will give you the term specific filters.
You can override the complete filter section - see <a href="topic:views/overrides">here</a> for more information.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/group-by.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/group-by.html
index d90ed62..871fb53 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/group-by.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/group-by.html
@@ -6,7 +6,7 @@ This is another major new feature for Views that has been long requested. It inc
Grouping is available for sorts and filters. To use grouping, “Use grouping” must be enabled on a per-view basis in the Views UI. This is toggled in the Advanced settings box by clicking the link next to “Use grouping”. Once you activate this checkbox (be sure to read the notes in the UI!), functions for aggregating particular fields will become available. The gear icon that should be familiar to users with any amount of Views experience will now appear next to any sorted or filtered field with aggregation capabilities. Choosing that icon will open up the configuration for the aggregation functions. As an example, this could be used to count things like number of posts in a day, or number of published posts. This could also be used to sum the values of a row, instead of everything in the view.
-Setting only the "Use aggregation" turned on itself does nothing. It only gives the possibility to set Aggregation types.
+Setting only the "Use aggregation" turned on itself does nothing. It only gives the possibility to set Aggregation types.
<div class="help-box" style="text-align:center">
<a href="path:images/views3-group-aggregation-types.png"><img src="path:images/views3-group-aggregation-types.png" /></a>
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/images/views3-views-all.png b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/images/views3-views-all.png
new file mode 100644
index 0000000..27ce88e
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/images/views3-views-all.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/misc-notes.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/misc-notes.html
index a9d318f..8efc1f9 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/misc-notes.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/misc-notes.html
@@ -1,4 +1,3 @@
-<!-- $Id: $ -->
<h3>Image Assist &amp; ImageField Assist</h3>
Under certain conditions these modules can block access to the header input section of the admin.
They need to be disabled on certain views paths. To do this go to
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/style-jump.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/style-jump.html
index d08e67f..dc8532f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/style-jump.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/style-jump.html
@@ -1,6 +1,6 @@
With the <strong>jump menu</strong> style can you create selectbox menus for the content of your site.
-<a href="path:images/views3-jump-style-menu.png"><img src="path:images/views3-jump-style-menu.png" /></a>
+<a href="path:images/views3-jump-style-menu.png"><img src="path:images/views3-jump-style-menu.png" /></a>
The <strong>jump menu</strong> style will display each row of your view within a jump menu. This style requires that your view's <a href="topic:views/style-row">row style</a> is set to <a href="topic:views/style-fields">fields</a>.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/view-add.html b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/view-add.html
index 233d885..619d1b6 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/view-add.html
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/view-add.html
@@ -1,7 +1,13 @@
-When you want to create a new view you can enter the following information about it.
-First, you must enter a <strong>view name</strong>. This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If you are overriding a module provided view, the name must not be changed or a new view will be created instead of overriding.
-You can enter a <strong>description of the view</strong>. This description will appear on the Views administrative UI to tell you what the view is about.
-You can enter a <strong>view tag</strong>. It will be used help sort views on the administrative page.
+<p>When you want to create a new view navigate to <strong> Structure > Views </strong>. There you can see all the views specified. Fresh install has a few examples ready and you can choose "edit" to investigate how the is made. To create a new view press "Add new view".</p>
+
+<div class="help-box" style="text-align:center">
+<a href="path:images/views3-views-all.png"><img src="path:images/views3-views-all.png" /></a>
+<em>All the created Views</em>
+</div>
+
+<p>You can enter the following information about it.</p>
+<p> First, you must enter a <strong>view name</strong>. This is the unique name of the view. It must contain only alphanumeric characters and underscores; it is used to identify the view internally and to generate unique theming template names for this view. If you are overriding a module provided view, the name must not be changed or a new view will be created instead of overriding.</p>
+<p> You can enter a <strong>description of the view</strong>. This description will appear on the Views administrative UI to tell you what the view is about. You can enter a <strong>view tag</strong>. It will be used help sort views on the administrative page.</p>
You must choose a view type.
<dl>
<dt>Node</dt>
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/views.help.ini b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/views.help.ini
index 4a249f5..bd2d457 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/help/views.help.ini
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/help/views.help.ini
@@ -34,11 +34,6 @@ parent = getting-started
weight = 40
-[example-bulk-export]
-title = "Create a module from bulk exported views"
-parent = getting-started
-weight = 50
-
[view-add]
title = "Add a View"
weight = -10
@@ -173,8 +168,8 @@ title = "Using CSS with Views"
parent = style-settings
weight = 20
-[semantic-views]
-title = "Semantic Views"
+[advanced-style-settings]
+title = "Advanced Style Settings"
parent = style-settings
[group-by]
@@ -358,3 +353,7 @@ weight = 218
[example-filter-by-current-user]
title = "Example to filter content by the current logged-in user"
weight = 219
+
+[example-slideshow-thumb-pager]
+title = "Example to create a slideshow with thumbnails as a pager underneath"
+weight = 220
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/admin.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/admin.inc
index 80aa592..ff4a99f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/admin.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/admin.inc
@@ -1,6 +1,7 @@
<?php
+
/**
- * @file admin.inc
+ * @file
* Provides the Views' administrative interface.
*/
@@ -399,11 +400,11 @@ function views_ui_add_form($form, &$form_state) {
/**
* Helper form element validator: integer.
*
- * @see _element_validate_integer_positive
- *
* The problem with this is that the function is private so it's not guaranteed
* that it might not be renamed/changed. In the future field.module or something else
* should provide a public validate function.
+ *
+ * @see _element_validate_integer_positive()
*/
function views_element_validate_integer($element, &$form_state) {
$value = $element['#value'];
@@ -713,9 +714,7 @@ function views_ui_add_form_save_submit($form, &$form_state) {
$form_state['redirect'] = 'admin/structure/views';
}
$view->save();
- menu_rebuild();
- cache_clear_all('*', 'cache_views', TRUE);
- cache_clear_all();
+
$form_state['redirect'] = 'admin/structure/views';
if (!empty($view->display['page'])) {
$display = $view->display['page'];
@@ -851,7 +850,7 @@ function views_ui_break_lock_confirm($form, &$form_state, $view) {
$form = array();
if (empty($view->locked)) {
- $form['#markup'] = t('There is no lock on view %view to break.', array('%name' => $view->name));
+ $form['message']['#markup'] = t('There is no lock on view %name to break.', array('%name' => $view->name));
return $form;
}
@@ -966,11 +965,13 @@ function views_ui_build_preview($view, $display_id, $render = TRUE) {
*
* @todo Rename to views_ui_edit_view_form(). See that function for the "old"
* version.
+ *
+ * @see views_ui_ajax_get_form()
*/
function views_ui_edit_form($form, &$form_state, $view, $display_id = NULL) {
// Do not allow the form to be cached, because $form_state['view'] can become
// stale between page requests.
- // @see views_ui_ajax_get_form() for how this affects #ajax.
+ // See views_ui_ajax_get_form() for how this affects #ajax.
// @todo To remove this and allow the form to be cacheable:
// - Change $form_state['view'] to $form_state['temporary']['view'].
// - Add a #process function to initialize $form_state['temporary']['view']
@@ -1459,7 +1460,7 @@ function views_ui_edit_form_submit_delay_destination($form, &$form_state) {
* having them as secondary local tasks isn't desired. The caller is responsible
* for setting the active tab's #active property to TRUE.
*
- * @param $view
+ * @param view $view
* The view which will be edited.
* @param $display_id
* The display_id which is edited on the current request.
@@ -1480,7 +1481,7 @@ function views_ui_edit_page_display_tabs($view, $display_id = NULL) {
if (!empty($display->deleted)) {
$tabs[$id]['#link']['localized_options']['attributes']['class'][] = 'views-display-deleted-link';
}
- if (empty($display->options['enabled'])) {
+ if (isset($display->display_options['enabled']) && !$display->display_options['enabled']) {
$tabs[$id]['#link']['localized_options']['attributes']['class'][] = 'views-display-disabled-link';
}
}
@@ -1490,6 +1491,18 @@ function views_ui_edit_page_display_tabs($view, $display_id = NULL) {
$tabs['default']['#access'] = FALSE;
}
+ // Mark the display tab as red to show validation errors.
+ $view->validate();
+ foreach ($view->display as $id => $display) {
+ if (!empty($view->display_errors[$id])) {
+ // Always show the tab.
+ $tabs[$id]['#access'] = TRUE;
+ // Add a class to mark the error and a title to make a hover tip.
+ $tabs[$id]['#link']['localized_options']['attributes']['class'][] = 'error';
+ $tabs[$id]['#link']['localized_options']['attributes']['title'] = t('This display has one or more validation errors; please review it.');
+ }
+ }
+
return $tabs;
}
@@ -1914,7 +1927,7 @@ function views_ui_pre_render_move_argument_options($form) {
* While doing that, create a container element underneath each option, which
* contains the settings related to that option.
*
- * @see form_process_radios
+ * @see form_process_radios()
*/
function views_ui_process_container_radios($element) {
if (count($element['#options']) > 0) {
@@ -1945,7 +1958,7 @@ function views_ui_process_container_radios($element) {
return $element;
}
-/*
+/**
* Import a view from cut & paste.
*/
function views_ui_import_page($form, &$form_state) {
@@ -1960,6 +1973,12 @@ function views_ui_import_page($form, &$form_state) {
'#title' => t('Replace an existing view if one exists with the same name'),
);
+ $form['bypass_validation'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Bypass view validation'),
+ '#description' => t('Bypass the validation of plugins and handlers when importing this view.'),
+ );
+
$form['view'] = array(
'#type' => 'textarea',
'#title' => t('Paste view code here'),
@@ -2030,38 +2049,42 @@ function views_ui_import_validate($form, &$form_state) {
$view->init_display();
$broken = FALSE;
- // Make sure that all plugins and handlers needed by this view actually exist.
- foreach ($view->display as $id => $display) {
- if (empty($display->handler) || !empty($display->handler->broken)) {
- drupal_set_message(t('Display plugin @plugin is not available.', array('@plugin' => $display->display_plugin)), 'error');
- $broken = TRUE;
- continue;
- }
- $plugin = views_get_plugin('style', $display->handler->get_option('style_plugin'));
- if (!$plugin) {
- drupal_set_message(t('Style plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('style_plugin'))), 'error');
- $broken = TRUE;
- }
- elseif ($plugin->uses_row_plugin()) {
- $plugin = views_get_plugin('row', $display->handler->get_option('row_plugin'));
+ // Bypass the validation of view pluigns/handlers if option is checked.
+ if (!$form_state['values']['bypass_validation']) {
+ // Make sure that all plugins and handlers needed by this view actually exist.
+ foreach ($view->display as $id => $display) {
+ if (empty($display->handler) || !empty($display->handler->broken)) {
+ drupal_set_message(t('Display plugin @plugin is not available.', array('@plugin' => $display->display_plugin)), 'error');
+ $broken = TRUE;
+ continue;
+ }
+
+ $plugin = views_get_plugin('style', $display->handler->get_option('style_plugin'));
if (!$plugin) {
- drupal_set_message(t('Row plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('row_plugin'))), 'error');
+ drupal_set_message(t('Style plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('style_plugin'))), 'error');
$broken = TRUE;
}
- }
+ elseif ($plugin->uses_row_plugin()) {
+ $plugin = views_get_plugin('row', $display->handler->get_option('row_plugin'));
+ if (!$plugin) {
+ drupal_set_message(t('Row plugin @plugin is not available.', array('@plugin' => $display->handler->get_option('row_plugin'))), 'error');
+ $broken = TRUE;
+ }
+ }
- foreach (views_object_types() as $type => $info) {
- $handlers = $display->handler->get_handlers($type);
- if ($handlers) {
- foreach ($handlers as $id => $handler) {
- if ($handler->broken()) {
- drupal_set_message(t('@type handler @table.@field is not available.', array(
- '@type' => $info['stitle'],
- '@table' => $handler->table,
- '@field' => $handler->field,
- )), 'error');
- $broken = TRUE;
+ foreach (views_object_types() as $type => $info) {
+ $handlers = $display->handler->get_handlers($type);
+ if ($handlers) {
+ foreach ($handlers as $id => $handler) {
+ if ($handler->broken()) {
+ drupal_set_message(t('@type handler @table.@field is not available.', array(
+ '@type' => $info['stitle'],
+ '@table' => $handler->table,
+ '@field' => $handler->field,
+ )), 'error');
+ $broken = TRUE;
+ }
}
}
}
@@ -2142,15 +2165,6 @@ function views_ui_edit_view_form_submit($form, &$form_state) {
$form_state['view']->save();
drupal_set_message(t('The view %name has been saved.', array('%name' => $form_state['view']->get_human_name())));
- // Make sure menu items get rebuilt as neces
- menu_rebuild();
-
- // Clear the views cache.
- cache_clear_all('*', 'cache_views');
-
- // Clear the page cache.
- cache_clear_all();
-
// Remove this view from cache so we can edit it properly.
ctools_object_cache_clear('view', $form_state['view']->name);
}
@@ -2309,14 +2323,18 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
continue;
}
- $field_name = $handler->ui_name(TRUE);
+ $field_name = check_plain($handler->ui_name(TRUE));
if (!empty($field['relationship']) && !empty($relationships[$field['relationship']])) {
$field_name = '(' . $relationships[$field['relationship']] . ') ' . $field_name;
}
- $description = $handler->admin_summary();
+ $description = filter_xss_admin($handler->admin_summary());
$link_text = $field_name . (empty($description) ? '' : " ($description)");
- $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => array('class' => array('views-ajax-link')), 'html' => TRUE));
+ $link_attributes = array('class' => array('views-ajax-link'));
+ if (!empty($field['exclude'])) {
+ $link_attributes['class'][] = 'views-field-excluded';
+ }
+ $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/config-item/$view->name/$display->id/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
$build['fields'][$id]['#class'][] = drupal_clean_css_identifier($display->id . '-' . $type . '-' . $id);
if (!empty($view->changed_sections[$display->id . '-' . $type . '-' . $id])) {
// @TODO: #changed is no longer being used?
@@ -2830,7 +2848,7 @@ function views_ui_build_form_url($form_state) {
* Add another form to the stack; clicking 'apply' will go to this form
* rather than closing the ajax popup.
*/
-function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FALSE) {
+function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FALSE, $rebuild_keys = FALSE) {
if (empty($view->stack)) {
$view->stack = array();
}
@@ -2860,6 +2878,11 @@ function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FAL
// Now that the previously $first slot is free, move the new form into it.
$view->stack[$first] = $stack;
ksort($view->stack);
+
+ // Start the keys from 0 again, if requested.
+ if ($rebuild_keys) {
+ $view->stack = array_values($view->stack);
+ }
}
}
@@ -3165,11 +3188,13 @@ function theme_views_ui_reorder_displays_form($vars) {
drupal_add_tabledrag('reorder-displays', 'order', 'sibling', 'weight');
$output = drupal_render($form['override']);
+ $output .= '<div class="scroll">';
$output .= theme('table',
array('header' => $header,
'rows' => $rows,
'attributes' => array('id' => 'reorder-displays'),
));
+ $output .= '</div>';
$output .= drupal_render_children($form);
return $output;
@@ -3486,10 +3511,12 @@ function theme_views_ui_expose_filter_form($variables) {
$output = drupal_render($form['form_description']);
$output .= drupal_render($form['expose_button']);
+ $output .= drupal_render($form['group_button']);
if (isset($form['required'])) {
$output .= drupal_render($form['required']);
}
$output .= drupal_render($form['label']);
+ $output .= drupal_render($form['description']);
$output .= drupal_render($form['operator']);
$output .= drupal_render($form['value']);
@@ -3515,6 +3542,78 @@ function theme_views_ui_expose_filter_form($variables) {
return $output;
}
+ /**
+ * Theme the build group filter form.
+ */
+function theme_views_ui_build_group_filter_form($variables) {
+ $form = $variables['form'];
+ $more = drupal_render($form['more']);
+
+ $output = drupal_render($form['form_description']);
+ $output .= drupal_render($form['expose_button']);
+ $output .= drupal_render($form['group_button']);
+ if (isset($form['required'])) {
+ $output .= drupal_render($form['required']);
+ }
+
+ $output .= drupal_render($form['operator']);
+ $output .= drupal_render($form['value']);
+
+ $output .= '<div class="views-left-40">';
+ $output .= drupal_render($form['optional']);
+ $output .= drupal_render($form['remember']);
+ $output .= '</div>';
+
+ $output .= '<div class="views-right-60">';
+ $output .= drupal_render($form['widget']);
+ $output .= drupal_render($form['label']);
+ $output .= drupal_render($form['description']);
+ $output .= '</div>';
+
+
+ $header = array(
+ t('Default'),
+ t('Weight'),
+ t('Label'),
+ t('Operator'),
+ t('Value'),
+ t('Operations'),
+ );
+
+ $form['default_group'] = form_process_radios($form['default_group']);
+ $form['default_group_multiple'] = form_process_checkboxes($form['default_group_multiple']);
+ $form['default_group']['All']['#title'] = '';
+
+ drupal_render($form['default_group_multiple']['All']); // Don't render
+ $rows[] = array(
+ drupal_render($form['default_group']['All']),
+ '',
+ array(
+ 'data' => variable_get('views_exposed_filter_any_label', 'new_any') == 'old_any' ? t('&lt;Any&gt;') : t('- Any -'),
+ 'colspan' => 4,
+ 'class' => array('class' => 'any-default-radios-row'),
+ ),
+ );
+
+ foreach (element_children($form['group_items']) as $group_id) {
+ $form['group_items'][$group_id]['value']['#title'] = '';
+ $data = array(
+ 'default' => drupal_render($form['default_group'][$group_id]) . drupal_render($form['default_group_multiple'][$group_id]),
+ 'weight' => drupal_render($form['group_items'][$group_id]['weight']),
+ 'title' => drupal_render($form['group_items'][$group_id]['title']),
+ 'operator' => drupal_render($form['group_items'][$group_id]['operator']),
+ 'value' => drupal_render($form['group_items'][$group_id]['value']),
+ 'remove' => drupal_render($form['group_items'][$group_id]['remove']) . l('<span>' . t('Remove') . '</span>', 'javascript:void()', array('attributes' => array('id' => 'views-remove-link-' . $group_id, 'class' => array('views-hidden', 'views-button-remove', 'views-groups-remove-link', 'views-remove-link'), 'alt' => t('Remove this item'), 'title' => t('Remove this item')), 'html' => true)),
+ );
+ $rows[] = array('data' => $data, 'id' => 'views-row-' . $group_id, 'class' => array('draggable'));
+ }
+ $table = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('class' => array('views-filter-groups'), 'id' => 'views-filter-groups'))) . drupal_render($form['add_group']);
+ drupal_add_tabledrag('views-filter-groups', 'order', 'sibling', 'weight');
+ $render_form = drupal_render_children($form);
+ return $output . $render_form . $table . $more;
+}
+
+
/**
* Submit handler for rearranging form
*/
@@ -4124,6 +4223,45 @@ function views_ui_add_item_form_submit($form, &$form_state) {
views_ui_cache_set($form_state['view']);
}
+/**
+ * Override handler for views_ui_edit_display_form
+ */
+function views_ui_config_item_form_build_group($form, &$form_state) {
+ $item = &$form_state['handler']->options;
+ // flip. If the filter was a group, set back to a standard filter.
+ $item['is_grouped'] = empty($item['is_grouped']);
+
+ // If necessary, set new defaults:
+ if ($item['is_grouped']) {
+ $form_state['handler']->build_group_options();
+ }
+
+ $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+ views_ui_add_form_to_stack($form_state['form_key'], $form_state['view'], $form_state['display_id'], array($form_state['type'], $form_state['id']), TRUE, TRUE);
+
+ views_ui_cache_set($form_state['view']);
+ $form_state['rerender'] = TRUE;
+ $form_state['rebuild'] = TRUE;
+ $form_state['force_build_group_options'] = TRUE;
+}
+
+/**
+ * Add a new group to the exposed filter groups.
+ */
+function views_ui_config_item_form_add_group($form, &$form_state) {
+ $item =& $form_state['handler']->options;
+
+ // Add a new row.
+ $item['group_info']['group_items'][] = array();
+
+ $form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+
+ views_ui_cache_set($form_state['view']);
+ $form_state['rerender'] = TRUE;
+ $form_state['rebuild'] = TRUE;
+ $form_state['force_build_group_options'] = TRUE;
+}
/**
* Form to config_item items in the views UI.
@@ -4469,6 +4607,8 @@ function views_ui_config_item_form_expose($form, &$form_state) {
$form_state['view']->set_item($form_state['display_id'], $form_state['type'], $form_state['id'], $item);
+ views_ui_add_form_to_stack($form_state['form_key'], $form_state['view'], $form_state['display_id'], array($form_state['type'], $form_state['id']), TRUE, TRUE);
+
views_ui_cache_set($form_state['view']);
$form_state['rerender'] = TRUE;
$form_state['rebuild'] = TRUE;
@@ -4978,7 +5118,14 @@ function _views_sort_types($a, $b) {
/**
* Fetch a list of all fields available for a given base type.
*
- * @return
+ * @param (array|string) $base
+ * A list or a single base_table, for example node.
+ * @param string $type
+ * The handler type, for example field or filter.
+ * @param bool $grouping
+ * Should the result grouping by its 'group' label.
+ *
+ * @return array
* A keyed array of in the form of 'base_table' => 'Description'.
*/
function views_fetch_fields($base, $type, $grouping = FALSE) {
@@ -5240,7 +5387,7 @@ function views_ui_default_button($element, &$form_state, $form) {
*
* Therefore it builds up a table of each field which is used in any view.
*
- * @see field_ui_fields_list
+ * @see field_ui_fields_list()
*/
function views_ui_field_list() {
$views = views_get_all_views();
@@ -5289,3 +5436,26 @@ function views_ui_field_list() {
return $output;
}
+
+/**
+ * Lists all plugins and what enabled Views use them.
+ */
+function views_ui_plugin_list() {
+ $rows = views_plugin_list();
+ foreach ($rows as &$row) {
+ // Link each view name to the view itself.
+ foreach ($row['views'] as $row_name => $view) {
+ $row['views'][$row_name] = l($view, "admin/structure/views/view/$view");
+ }
+ $row['views'] = implode(', ', $row['views']);
+ }
+
+ // Sort rows by field name.
+ ksort($rows);
+ return array(
+ '#theme' => 'table',
+ '#header' => array(t('Type'), t('Name'), t('Provided by'), t('Used in')),
+ '#rows' => $rows,
+ '#empty' => t('There are no enabled views.'),
+ );
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/ajax.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/ajax.inc
index 4e2ad38..39d8c6f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/ajax.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/ajax.inc
@@ -1,12 +1,14 @@
<?php
/**
- * @file ajax.inc
- *
+ * @file
* Handles the server side AJAX interactions of Views.
- *
- * @defgroup ajax Views ajax library
+ */
+
+/**
+ * @defgroup ajax Views AJAX library
* @{
+ * Handles the server side AJAX interactions of Views.
*/
/**
@@ -17,14 +19,12 @@ function views_ajax() {
$name = $_REQUEST['view_name'];
$display_id = $_REQUEST['view_display_id'];
$args = isset($_REQUEST['view_args']) && $_REQUEST['view_args'] !== '' ? explode('/', $_REQUEST['view_args']) : array();
- $path = isset($_REQUEST['view_path']) ? $_REQUEST['view_path'] : NULL;
+ $path = isset($_REQUEST['view_path']) ? rawurldecode($_REQUEST['view_path']) : NULL;
$dom_id = isset($_REQUEST['view_dom_id']) ? preg_replace('/[^a-zA-Z0-9_-]+/', '-', $_REQUEST['view_dom_id']) : NULL;
$pager_element = isset($_REQUEST['pager_element']) ? intval($_REQUEST['pager_element']) : NULL;
$commands = array();
- $arg = explode('/', $_REQUEST['view_path']);
-
// Remove all of this stuff from $_GET so it doesn't end up in pagers and tablesort URLs.
foreach (array('view_name', 'view_display_id', 'view_args', 'view_path', 'view_dom_id', 'pager_element', 'view_base_path', 'ajax_html_ids', 'ajax_page_state') as $key) {
if (isset($_GET[$key])) {
@@ -48,7 +48,7 @@ function views_ajax() {
// Add all $_POST data, because AJAX is always a post and many things,
// such as tablesorts, exposed filters and paging assume $_GET.
- $_GET += $_POST;
+ $_GET = $_POST + $_GET;
// Overwrite the destination.
// @see drupal_get_destination()
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/analyze.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/analyze.inc
index df7b743..68ee334 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/analyze.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/analyze.inc
@@ -47,6 +47,7 @@ function views_analyze_format_result($view, $messages) {
$output = '';
foreach ($types as $type => $messages) {
+ $type .= ' messages';
$message = '';
if (count($messages) > 1) {
$message = theme('item_list', array('items' => $messages));
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/base.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/base.inc
index b5d09a4..0e2a407 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/base.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/base.inc
@@ -1,12 +1,12 @@
<?php
+
/**
* @file
- *
* Provides the basic object definitions used by plugins and handlers.
*/
/**
- * Basic definition for many views objects
+ * Basic definition for many views objects.
*/
class views_object {
/**
@@ -33,17 +33,24 @@ class views_object {
* @code
* 'option_name' => array(
* - 'default' => default value,
- * - 'translatable' => TRUE/FALSE (wrap in t() on export if true),
- * - 'contains' => array of items this contains, with its own defaults, etc.
- * If contains is set, the default will be ignored and assumed to
- * be array()
- *
+ * - 'translatable' => (optional) TRUE/FALSE (wrap in t() on export if true),
+ * - 'contains' => (optional) array of items this contains, with its own
+ * defaults, etc. If contains is set, the default will be ignored and
+ * assumed to be array().
+ * - 'bool' => (optional) TRUE/FALSE Is the value a boolean value. This will
+ * change the export format to TRUE/FALSE instead of 1/0.
+ * - 'export' => (optional) FALSE or a callback for special export handling
+ * if necessary.
+ * - 'unpack_translatable' => (optional) callback for special handling for
+ * translating data within the option, if necessary.
* ),
- * @endcode
- * Each option may have any of the following functions:
- * - export_option_OPTIONNAME -- Special export handling if necessary.
- * - translate_option_OPTIONNAME -- Special handling for translating data
- * within the option, if necessary.
+ *
+ * @return array
+ * Returns the options of this handler/plugin.
+ *
+ * @see views_object::export_option()
+ * @see views_object::export_option_always()
+ * @see views_object::unpack_translatable()
*/
function option_definition() { return array(); }
@@ -56,6 +63,8 @@ class views_object {
/**
* Set default options on this object. Called by the constructor in a
* complex chain to deal with backward compatibility.
+ *
+ * @deprecated since views2
*/
function options(&$options) { }
@@ -251,6 +260,17 @@ class views_object {
}
/**
+ * Always exports the option, regardless of the default value.
+ */
+ function export_option_always($indent, $prefix, $storage, $option, $definition, $parents) {
+ // If there is no default, the option will always be exported.
+ unset($definition['default']);
+ // Unset our export method to prevent recursion.
+ unset($definition['export']);
+ return $this->export_option($indent, $prefix, $storage, $option, $definition, $parents);
+ }
+
+ /**
* Unpacks each handler to store translatable texts.
*/
function unpack_translatables(&$translatable, $parents = array()) {
@@ -326,7 +346,7 @@ class views_object {
$value = $options;
// Build source data and add to the array
$format = NULL;
- if (isset($definition['format_key']) && isset($storage[$definition['format_key']])) {
+ if (isset($definition['format_key']) && isset($options[$definition['format_key']])) {
$format = $options[$definition['format_key']];
}
$translatable[] = array(
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/cache.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/cache.inc
index b2fe7d8..c655c21 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/cache.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/cache.inc
@@ -1,9 +1,8 @@
<?php
+
/**
- * @file cache.inc
- *
- * Functions to load Views' data so that it knows what is available to
- * build queries from.
+ * @file
+ * Load Views' data so that it knows what is available to build queries from.
*/
/**
@@ -14,8 +13,8 @@
* One example is views_get_handler.
*/
function _views_fetch_data($table = NULL, $move = TRUE, $reset = FALSE) {
- static $cache = NULL;
- static $recursion_protection = array();
+ $cache = &drupal_static(__FUNCTION__ . '_cache');
+ $recursion_protection = &drupal_static(__FUNCTION__ . '_recursion_protected');
if (!isset($cache) || $reset) {
$start = microtime(TRUE);
// NOTE: This happens whether we retrieve them from cache or otherwise.
@@ -146,16 +145,19 @@ function views_cache_set($cid, $data, $use_language = FALSE) {
*
* This is just a convenience wrapper around cache_get().
*
- * @param $cid
+ * @param int $cid
* The cache ID of the data to retrieve.
- * @param $use_language
+ * @param bool $use_language
* If TRUE, the data will be requested specific to the currently active language.
+ *
+ * @return stdClass|bool
+ * The cache or FALSE on failure.
*/
function views_cache_get($cid, $use_language = FALSE) {
global $language;
if (variable_get('views_skip_cache', FALSE)) {
- return 0;
+ return FALSE;
}
if ($use_language) {
$cid .= ':' . $language->language;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/form.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/form.inc
deleted file mode 100644
index 9152ae9..0000000
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/form.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @file form.inc
- * Views' replacements for Drupal's form functions.
- *
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/handlers.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/handlers.inc
index 45a3a45..a79aa5c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/handlers.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/handlers.inc
@@ -1,6 +1,7 @@
<?php
+
/**
- * @file handlers.inc
+ * @file
* Defines the various handler objects to help build and display views.
*/
@@ -57,6 +58,7 @@ function _views_create_handler($definition, $type = 'handler', $handler_type = N
else {
$handler->is_plugin = TRUE;
$handler->plugin_type = $type;
+ $handler->plugin_name = $definition['name'];
}
// let the handler have something like a constructor.
@@ -313,12 +315,18 @@ class views_handler extends views_object {
* The value being rendered.
* @param $type
* The type of sanitization needed. If not provided, check_plain() is used.
+ *
+ * @return string
+ * Returns the safe value.
*/
function sanitize_value($value, $type = NULL) {
switch ($type) {
case 'xss':
$value = filter_xss($value);
break;
+ case 'xss_admin':
+ $value = filter_xss_admin($value);
+ break;
case 'url':
$value = check_url($value);
break;
@@ -556,11 +564,11 @@ class views_handler extends views_object {
}
}
- /**
- * Check whether current user has access to this handler.
- *
- * @return boolean
- */
+ /**
+ * Check whether current user has access to this handler.
+ *
+ * @return boolean
+ */
function access() {
if (isset($this->definition['access callback']) && function_exists($this->definition['access callback'])) {
if (isset($this->definition['access arguments']) && is_array($this->definition['access arguments'])) {
@@ -664,6 +672,18 @@ class views_handler extends views_object {
}
/**
+ * Returns TRUE if the exposed filter works like a grouped filter.
+ */
+ function is_a_group() { return FALSE; }
+
+ /**
+ * Define if the exposed input has to be submitted multiple times.
+ * This is TRUE when exposed filters grouped are using checkboxes as
+ * widgets.
+ */
+ function multiple_exposed_input() { return FALSE; }
+
+ /**
* Take input from exposed handlers and assign to this handler, if necessary.
*/
function accept_exposed_input($input) { return TRUE; }
@@ -736,7 +756,7 @@ class views_many_to_one_helper {
}
static function option_definition(&$options) {
- $options['reduce_duplicates'] = array('default' => FALSE);
+ $options['reduce_duplicates'] = array('default' => FALSE, 'bool' => TRUE);
}
function options_form(&$form, &$form_state) {
@@ -1030,7 +1050,7 @@ class views_many_to_one_helper {
}
}
-/*
+/**
* Break x,y,z and x+y+z into an array. Works for strings.
*
* @param $str
@@ -1062,12 +1082,17 @@ function views_break_phrase_string($str, &$handler = NULL) {
return $handler;
}
- if (preg_match('/^(\w+[+ ])+\w+$/', $str)) {
- // The '+' character in a query string may be parsed as ' '.
+ // Determine if the string has 'or' operators (plus signs) or 'and' operators
+ // (commas) and split the string accordingly. If we have an 'and' operator,
+ // spaces are treated as part of the word being split, but otherwise they are
+ // treated the same as a plus sign.
+ $or_wildcard = '[^\s+,]';
+ $and_wildcard = '[^+,]';
+ if (preg_match("/^({$or_wildcard}+[+ ])+{$or_wildcard}+$/", $str)) {
$handler->operator = 'or';
$handler->value = preg_split('/[+ ]/', $str);
}
- else if (preg_match('/^((\w|\s)+,)*(\w|\s)+$/', $str)) {
+ elseif (preg_match("/^({$and_wildcard}+,)*{$and_wildcard}+$/", $str)) {
$handler->operator = 'and';
$handler->value = explode(',', $str);
}
@@ -1085,7 +1110,8 @@ function views_break_phrase_string($str, &$handler = NULL) {
return $handler;
}
-/*
+
+/**
* Break x,y,z and x+y+z into an array. Numeric only.
*
* @param $str
@@ -1386,10 +1412,10 @@ function views_date_sql_extract($extract_type, $field, $field_type = 'int', $set
*/
/**
- * @defgroup views_join_handlers Views' join handlers
+ * @defgroup views_join_handlers Views join handlers
* @{
* Handlers to tell Views how to join tables together.
-
+ *
* Here is how you do complex joins:
*
* @code
@@ -1408,6 +1434,7 @@ function views_date_sql_extract($extract_type, $field, $field_type = 'int', $set
* }
* @endcode
*/
+
/**
* A function class to represent a join and create the SQL necessary
* to implement the join.
@@ -1425,9 +1452,9 @@ function views_date_sql_extract($extract_type, $field, $field_type = 'int', $set
* - type: either LEFT (default) or INNER
* - extra: An array of extra conditions on the join. Each condition is
* either a string that's directly added, or an array of items:
- * - - table: if not set, current table; if NULL, no table. This field can't
- * be set in the cached definition because it can't know aliases; this field
- * can only be used by realtime joins.
+ * - - table: If not set, current table; if NULL, no table. If you specify a
+ * table in cached definition, Views will try to load from an existing
+ * alias. If you use realtime joins, it works better.
* - - field: Field or formula
* in formulas we can reference the right table by using %alias
* @see SelectQueryInterface::addJoin()
@@ -1479,14 +1506,14 @@ class views_join {
/**
* Build the SQL for the join this object represents.
*
+ * When possible, try to use table alias instead of table names.
+ *
* @param $select_query
* An implementation of SelectQueryInterface.
* @param $table
* The base table to join.
* @param $view_query
* The source query, implementation of views_plugin_query.
- * @return
- *
*/
function build_join($select_query, $table, $view_query) {
if (empty($this->definition['table formula'])) {
@@ -1521,7 +1548,14 @@ class views_join {
$join_table = $table['alias'] . '.';
}
elseif (isset($info['table'])) {
- $join_table = $info['table'] . '.';
+ // If we're aware of a table alias for this table, use the table
+ // alias instead of the table name.
+ if (isset($left) && $left['table'] == $info['table']) {
+ $join_table = $left['alias'] . '.';
+ }
+ else {
+ $join_table = $info['table'] . '.';
+ }
}
// Convert a single-valued array of values to the single-value case,
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/plugins.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/plugins.inc
index 51d0e93..bf09573 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/plugins.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/plugins.inc
@@ -1,15 +1,15 @@
<?php
+
/**
- * @file plugins.inc
+ * @file
* Built in plugins for Views output handling.
- *
*/
// @todo: Remove this once update.php can use the registry
views_include('base');
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function views_views_plugins() {
$js_path = drupal_get_path('module', 'ctools') . '/js';
@@ -86,6 +86,7 @@ function views_views_plugins() {
'title' => t('Embed'),
'help' => t('Provide a display which can be embedded using the views api.'),
'handler' => 'views_plugin_display_embed',
+ 'theme' => 'views_view',
'uses hook menu' => FALSE,
'use ajax' => TRUE,
'use pager' => TRUE,
@@ -135,6 +136,7 @@ function views_views_plugins() {
'help' => t('Displays rows in a grid.'),
'handler' => 'views_plugin_style_grid',
'theme' => 'views_view_grid',
+ 'uses fields' => FALSE,
'uses row plugin' => TRUE,
'uses row class' => TRUE,
'uses options' => TRUE,
@@ -193,6 +195,16 @@ function views_views_plugins() {
'type' => 'normal',
'help topic' => 'style-row-fields',
),
+ 'rss_fields' => array(
+ 'title' => t('Fields'),
+ 'help' => t('Display fields as RSS items.'),
+ 'handler' => 'views_plugin_row_rss_fields',
+ 'theme' => 'views_view_row_rss',
+ 'uses fields' => TRUE,
+ 'uses options' => TRUE,
+ 'type' => 'feed',
+ 'help topic' => 'style-row-fields',
+ ),
),
'argument default' => array(
'parent' => array(
@@ -475,6 +487,11 @@ class views_plugin extends views_object {
var $plugin_type = NULL;
/**
+ * The plugin name of this plugin, for example table or full.
+ */
+ var $plugin_name = NULL;
+
+ /**
* Init will be called after construct, when the plugin is attached to a
* view and a display.
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/view.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/view.inc
index 4848879..90dd3a2 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/view.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/includes/view.inc
@@ -1,11 +1,12 @@
<?php
+
/**
- * @file view.inc
+ * @file
* Provides the view object type and associated methods.
*/
/**
- * @defgroup views_objects Objects that represent a View or part of a view.
+ * @defgroup views_objects Objects that represent a View or part of a view
* @{
* These objects are the core of Views do the bulk of the direction and
* storing of data. All database activity is in these objects.
@@ -91,7 +92,13 @@ class view extends views_db_object {
var $use_ajax = FALSE;
- // Where the results of a query will go.
+ /**
+ * Where the results of a query will go.
+ *
+ * The array must use a numeric index starting at 0.
+ *
+ * @var array
+ */
var $result = array();
// May be used to override the current pager info.
@@ -122,7 +129,7 @@ class view extends views_db_object {
// Stores the next steps of form items to handle.
// It's an array of stack items, which contain the form id, the type of form,
// the view, the display and some additional arguments.
- // @see views_ui_add_form_to_stack().
+ // @see views_ui_add_form_to_stack()
// var $stack;
/**
@@ -300,24 +307,40 @@ class view extends views_db_object {
*/
function set_current_page($page) {
$this->current_page = $page;
+
+ // If the pager is already initialized, pass it through to the pager.
+ if (!empty($this->query->pager)) {
+ return $this->query->pager->set_current_page($page);
+ }
+
}
/**
* Get the current page from the pager.
*/
function get_current_page() {
+ // If the pager is already initialized, pass it through to the pager.
if (!empty($this->query->pager)) {
return $this->query->pager->get_current_page();
}
+
+ if (isset($this->current_page)) {
+ return $this->current_page;
+ }
}
/**
* Get the items per page from the pager.
*/
function get_items_per_page() {
+ // If the pager is already initialized, pass it through to the pager.
if (!empty($this->query->pager)) {
return $this->query->pager->get_items_per_page();
}
+
+ if (isset($this->items_per_page)) {
+ return $this->items_per_page;
+ }
}
/**
@@ -336,9 +359,14 @@ class view extends views_db_object {
* Get the pager offset from the pager.
*/
function get_offset() {
+ // If the pager is already initialized, pass it through to the pager.
if (!empty($this->query->pager)) {
return $this->query->pager->get_offset();
}
+
+ if (isset($this->offset)) {
+ return $this->offset;
+ }
}
/**
@@ -575,7 +603,7 @@ class view extends views_db_object {
foreach ($this->display_handler->get_option('relationships') as $id => $options) {
$options['table'] = views_move_table($options['table']);
$data = views_fetch_data($options['table'], FALSE);
- if (isset($data[$options['field']])) {
+ if (isset($data[$options['field']]['relationship']['base'])) {
$base_tables[$data[$options['field']]['relationship']['base']] = TRUE;
}
}
@@ -1035,27 +1063,53 @@ class view extends views_db_object {
/**
* Internal method to build an individual set of handlers.
+ *
+ * @param string $key
+ * The type of handlers (filter etc.) which should be iterated over to
+ * build the relationship and query information.
*/
function _build($key) {
$handlers = &$this->$key;
foreach ($handlers as $id => $data) {
+
if (!empty($handlers[$id]) && is_object($handlers[$id])) {
- // Give this handler access to the exposed filter input.
- if (!empty($this->exposed_data)) {
- $rc = $handlers[$id]->accept_exposed_input($this->exposed_data);
- $handlers[$id]->store_exposed_input($this->exposed_data, $rc);
- if (!$rc) {
- continue;
+ $multiple_exposed_input = array(0 => NULL);
+ if ($handlers[$id]->multiple_exposed_input()) {
+ $multiple_exposed_input = $handlers[$id]->group_multiple_exposed_input($this->exposed_data);
+ }
+ foreach ($multiple_exposed_input as $group_id) {
+ // Give this handler access to the exposed filter input.
+ if (!empty($this->exposed_data)) {
+ $converted = FALSE;
+ if ($handlers[$id]->is_a_group()) {
+ $converted = $handlers[$id]->convert_exposed_input($this->exposed_data, $group_id);
+ $handlers[$id]->store_group_input($this->exposed_data, $converted);
+ if (!$converted) {
+ continue;
+ }
+ }
+ $rc = $handlers[$id]->accept_exposed_input($this->exposed_data);
+ $handlers[$id]->store_exposed_input($this->exposed_data, $rc);
+ if (!$rc) {
+ continue;
+ }
}
+ $handlers[$id]->set_relationship();
+ $handlers[$id]->query($this->display_handler->use_group_by());
}
- $handlers[$id]->set_relationship();
- $handlers[$id]->query($this->display_handler->use_group_by());
}
}
}
/**
* Execute the view's query.
+ *
+ * @param string $display_id
+ * The machine name of the display, which should be executed.
+ *
+ * @return bool
+ * Return whether the executing was successful, for example an argument
+ * could stop the process.
*/
function execute($display_id = NULL) {
if (empty($this->built)) {
@@ -1096,6 +1150,9 @@ class view extends views_db_object {
}
else {
$this->query->execute($this);
+ // Enforce the array key rule as documented in
+ // views_plugin_query::execute().
+ $this->result = array_values($this->result);
$this->_post_execute();
if ($cache) {
$cache->cache_set('results');
@@ -1112,7 +1169,16 @@ class view extends views_db_object {
}
/**
- * Render this view for display.
+ * Render this view for a certain display.
+ *
+ * Note: You should better use just the preview function if you want to
+ * render a view.
+ *
+ * @param string $display_id
+ * The machine name of the display, which should be rendered.
+ *
+ * @return (string|NULL)
+ * Return the output of the rendered view or NULL if something failed in the process.
*/
function render($display_id = NULL) {
$this->execute($display_id);
@@ -1121,6 +1187,9 @@ class view extends views_db_object {
if (!empty($this->build_info['fail'])) {
return;
}
+ if (!empty($this->view->build_info['denied'])) {
+ return;
+ }
drupal_theme_initialize();
@@ -1172,7 +1241,13 @@ class view extends views_db_object {
$function($this);
}
- // Let the theme play too, because pre render is a very themey thing.
+ // Let the themes play too, because pre render is a very themey thing.
+ foreach ($GLOBALS['base_theme_info'] as $base) {
+ $function = $base->name . '_views_pre_render';
+ if (function_exists($function)) {
+ $function($this);
+ }
+ }
$function = $GLOBALS['theme'] . '_views_pre_render';
if (function_exists($function)) {
$function($this);
@@ -1196,7 +1271,13 @@ class view extends views_db_object {
$function($this, $this->display_handler->output, $cache);
}
- // Let the theme play too, because post render is a very themey thing.
+ // Let the themes play too, because post render is a very themey thing.
+ foreach ($GLOBALS['base_theme_info'] as $base) {
+ $function = $base->name . '_views_post_render';
+ if (function_exists($function)) {
+ $function($this);
+ }
+ }
$function = $GLOBALS['theme'] . '_views_post_render';
if (function_exists($function)) {
$function($this, $this->display_handler->output, $cache);
@@ -1211,7 +1292,19 @@ class view extends views_db_object {
}
/**
- * Render a specific field via the field ID and the row #.
+ * Render a specific field via the field ID and the row #
+ *
+ * Note: You might want to use views_plugin_style::render_fields as it
+ * caches the output for you.
+ *
+ * @param string $field
+ * The id of the field to be rendered.
+ *
+ * @param int $row
+ * The row number in the $view->result which is used for the rendering.
+ *
+ * @return string
+ * The rendered output of the field.
*/
function render_field($field, $row) {
if (isset($this->field[$field]) && isset($this->result[$row])) {
@@ -1291,6 +1384,9 @@ class view extends views_db_object {
$function($this, $display_id, $this->args);
}
+ // Allow hook_views_pre_view() to set the dom_id, then ensure it is set.
+ $this->dom_id = !empty($this->dom_id) ? $this->dom_id : md5($this->name . REQUEST_TIME . rand());
+
// Allow the display handler to set up for execution
$this->display_handler->pre_execute();
}
@@ -1571,7 +1667,7 @@ class view extends views_db_object {
$title = t('Home');
}
if ($title) {
- $breadcrumb[] = l($title, $path, array('html' => true));
+ $breadcrumb[] = l($title, $path, array('html' => TRUE));
}
}
@@ -1708,28 +1804,42 @@ class view extends views_db_object {
if ($this->vid == 'new') {
$this->vid = NULL;
}
+ // If there is no vid, check if a view with this machine name already exists.
+ elseif (empty($this->vid)) {
+ $vid = db_query("SELECT vid from {views_view} WHERE name = :name", array(':name' => $this->name))->fetchField();
+ $this->vid = $vid ? $vid : NULL;
+ }
- // If we have no vid or our vid is a string, this is a new view.
- if (!empty($this->vid)) {
- // remove existing table entries
- foreach ($this->db_objects() as $key) {
- db_delete('views_' . $key)
- ->condition('vid', $this->vid)
- ->execute();
+ $transaction = db_transaction();
+
+ try {
+ // If we have no vid or our vid is a string, this is a new view.
+ if (!empty($this->vid)) {
+ // remove existing table entries
+ foreach ($this->db_objects() as $key) {
+ db_delete('views_' . $key)
+ ->condition('vid', $this->vid)
+ ->execute();
+ }
}
- }
- $this->save_row(!empty($this->vid) ? 'vid' : FALSE);
+ $this->save_row(!empty($this->vid) ? 'vid' : FALSE);
- // Save all of our subtables.
- foreach ($this->db_objects() as $key) {
- $this->_save_rows($key);
+ // Save all of our subtables.
+ foreach ($this->db_objects() as $key) {
+ $this->_save_rows($key);
+ }
+ }
+ catch (Exception $e) {
+ $transaction->rollback();
+ watchdog_exception('views', $e);
+ throw $e;
}
$this->save_locale_strings();
- cache_clear_all('views_urls', 'cache_views');
- cache_clear_all(); // clear the page cache as well.
+ // Clear caches.
+ views_invalidate_cache();
}
/**
@@ -1766,8 +1876,8 @@ class view extends views_db_object {
cache_clear_all('views_query:' . $this->name, 'cache_views');
if ($clear) {
- cache_clear_all(); // this clears the block and page caches only.
- menu_rebuild(); // force a menu rebuild when a view is deleted.
+ // Clear caches.
+ views_invalidate_cache();
}
}
@@ -1909,6 +2019,16 @@ class view extends views_db_object {
unset($this->$key);
}
}
+
+ // These keys are checked by the next init, so instead of unsetting them,
+ // just set the default values.
+ $keys = array('items_per_page', 'offset', 'current_page');
+ foreach ($keys as $key) {
+ if (isset($this->$key)) {
+ $this->$key = NULL;
+ }
+ }
+
$this->built = $this->executed = FALSE;
$this->build_info = array();
$this->attachment_before = '';
@@ -1925,6 +2045,7 @@ class view extends views_db_object {
$this->init_display();
$errors = array();
+ $this->display_errors = NULL;
$current_display = $this->current_display;
foreach ($this->display as $id => $display) {
@@ -1936,6 +2057,8 @@ class view extends views_db_object {
$result = $this->display[$id]->handler->validate();
if (!empty($result) && is_array($result)) {
$errors = array_merge($errors, $result);
+ // Mark this display as having validation errors.
+ $this->display_errors[$id] = TRUE;
}
}
}
@@ -1955,6 +2078,7 @@ class view extends views_db_object {
$this->localization_plugin = views_get_plugin('localization', views_get_localization_plugin());
if (empty($this->localization_plugin)) {
+ $this->localization_plugin = views_get_plugin('localization', 'none');
return FALSE;
}
@@ -1989,9 +2113,9 @@ class view extends views_db_object {
$this->process_locale_strings('delete');
}
- /**
- * Export localized strings.
- */
+ /**
+ * Export localized strings.
+ */
function export_locale_strings() {
$this->process_locale_strings('export');
}
@@ -2136,7 +2260,7 @@ class views_db_object {
}
$schema = drupal_get_schema($this->db_table);
- $output = $indent . '$' . $identifier . ' = new ' . get_class($this) . ";\n";
+ $output = $indent . '$' . $identifier . ' = new ' . get_class($this) . "();\n";
// Go through our schema and build correlations.
foreach ($schema['fields'] as $field => $info) {
if (!empty($info['no export'])) {
@@ -2152,7 +2276,7 @@ class views_db_object {
// serialized defaults must be set as serialized.
if (isset($info['serialize'])) {
- $this->$field = unserialize(db_decode_blob($this->$field));
+ $this->$field = unserialize($this->$field);
}
}
$value = $this->$field;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax.js b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax.js
index 097c44a..82b332f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax.js
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax.js
@@ -1,6 +1,5 @@
/**
- * @file ajax_admin.js
- *
+ * @file
* Handles AJAX submission and response in Views UI.
*/
(function ($) {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax_view.js b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax_view.js
index a89d4aa..2a4012f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax_view.js
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/ajax_view.js
@@ -1,6 +1,5 @@
/**
- * @file ajaxView.js
- *
+ * @file
* Handles AJAX fetching of views, including filter submission and response.
*/
(function ($) {
@@ -12,13 +11,13 @@ Drupal.behaviors.ViewsAjaxView = {};
Drupal.behaviors.ViewsAjaxView.attach = function() {
if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) {
$.each(Drupal.settings.views.ajaxViews, function(i, settings) {
- // @todo: Figure out where to store the object.
- new Drupal.views.ajaxView(settings);
+ Drupal.views.instances[i] = new Drupal.views.ajaxView(settings);
});
}
};
Drupal.views = {};
+Drupal.views.instances = {};
/**
* Javascript object for a certain view.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/base.js b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/base.js
index 3cb649a..5855dce 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/base.js
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/base.js
@@ -1,6 +1,5 @@
/**
- * @file base.js
- *
+ * @file
* Some basic behaviors and utility functions for Views.
*/
(function ($) {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/jquery.ui.dialog.patch.js b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/jquery.ui.dialog.patch.js
index 52b2f12..d00e6ab 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/jquery.ui.dialog.patch.js
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/jquery.ui.dialog.patch.js
@@ -6,8 +6,8 @@
*
* @see http://bugs.jqueryui.com/ticket/4671
* @see https://bugs.webkit.org/show_bug.cgi?id=19033
- * @see /views_ui.module
- * @see /js/jquery.ui.dialog.min.js
+ * @see views_ui.module
+ * @see js/jquery.ui.dialog.min.js
*
* This javascript patch overwrites the $.ui.dialog.overlay.events object to remove
* the mousedown, mouseup and click events from the list of events that are bound
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/views-admin.js b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/views-admin.js
index e2cd16f..1eb3897 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/js/views-admin.js
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/js/views-admin.js
@@ -1,3 +1,7 @@
+/**
+ * @file
+ * Some basic behaviors and utility functions for Views UI.
+ */
Drupal.viewsUi = {};
Drupal.behaviors.viewsUiEditView = {};
@@ -225,7 +229,7 @@ Drupal.behaviors.viewsUiRenderAddViewButton.attach = function (context, settings
if (!$menu.length) {
return;
}
- var $addDisplayDropdown = $('<li class="add"><a href="#"><span class="icon add"></span>Add</a><ul class="action-list" style="display:none;"></ul></li>');
+ var $addDisplayDropdown = $('<li class="add"><a href="#"><span class="icon add"></span>' + Drupal.t('Add') + '</a><ul class="action-list" style="display:none;"></ul></li>');
var $displayButtons = $menu.nextAll('input.add-display').detach();
$displayButtons.appendTo($addDisplayDropdown.find('.action-list')).wrap('<li>')
.parent().first().addClass('first').end().last().addClass('last');
@@ -772,6 +776,14 @@ Drupal.behaviors.viewsFilterConfigSelectAll.attach = function(context) {
$(this).attr('checked', checked);
});
});
+ // Uncheck the select all checkbox if any of the others are unchecked.
+ $('#views-ui-config-item-form div.form-type-checkbox').not($('.form-item-options-value-all')).find('input[type=checkbox]').each(function() {
+ $(this).click(function() {
+ if ($(this).is('checked') == 0) {
+ $('#edit-options-value-all').removeAttr('checked');
+ }
+ });
+ });
};
/**
@@ -815,7 +827,7 @@ Drupal.behaviors.viewsRemoveIconClass.attach = function (context, settings) {
$('.icon', $this).removeClass('icon');
$('.horizontal', $this).removeClass('horizontal');
});
-}
+};
/**
* Change "Expose filter" buttons into checkboxes.
@@ -823,7 +835,7 @@ Drupal.behaviors.viewsRemoveIconClass.attach = function (context, settings) {
Drupal.behaviors.viewsUiCheckboxify = {};
Drupal.behaviors.viewsUiCheckboxify.attach = function (context, settings) {
var $ = jQuery;
- var $buttons = $('#edit-options-expose-button-button').once('views-ui-checkboxify');
+ var $buttons = $('#edit-options-expose-button-button, #edit-options-group-button-button').once('views-ui-checkboxify');
var length = $buttons.length;
var i;
for (i = 0; i < length; i++) {
@@ -832,6 +844,33 @@ Drupal.behaviors.viewsUiCheckboxify.attach = function (context, settings) {
};
/**
+ * Change the default widget to select the default group according to the
+ * selected widget for the exposed group.
+ */
+Drupal.behaviors.viewsUiChangeDefaultWidget = {};
+Drupal.behaviors.viewsUiChangeDefaultWidget.attach = function (context, settings) {
+ var $ = jQuery;
+ function change_default_widget(multiple) {
+ if (multiple) {
+ $('input.default-radios').hide();
+ $('td.any-default-radios-row').parent().hide();
+ $('input.default-checkboxes').show();
+ }
+ else {
+ $('input.default-checkboxes').hide();
+ $('td.any-default-radios-row').parent().show();
+ $('input.default-radios').show();
+ }
+ }
+ // Update on widget change.
+ $('input[name="options[group_info][multiple]"]').change(function() {
+ change_default_widget($(this).attr("checked"));
+ });
+ // Update the first time the form is rendered.
+ $('input[name="options[group_info][multiple]"]').trigger('change');
+};
+
+/**
* Attaches an expose filter button to a checkbox that triggers its click event.
*
* @param button
@@ -840,13 +879,14 @@ Drupal.behaviors.viewsUiCheckboxify.attach = function (context, settings) {
Drupal.viewsUi.Checkboxifier = function (button) {
var $ = jQuery;
this.$button = $(button);
- this.$parent = this.$button.parent('div.views-expose');
- this.$checkbox = this.$parent.find('input:checkbox');
+ this.$parent = this.$button.parent('div.views-expose, div.views-grouped');
+ this.$input = this.$parent.find('input:checkbox, input:radio');
// Hide the button and its description.
this.$button.hide();
- this.$parent.find('.exposed-description').hide();
+ this.$parent.find('.exposed-description, .grouped-description').hide();
+
+ this.$input.click($.proxy(this, 'clickHandler'));
- this.$checkbox.click($.proxy(this, 'clickHandler'));
};
/**
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator.views.inc
index 0ca9e33..0fcae2c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator.views.inc
@@ -1,20 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for aggregator.module
- */
/**
- * @defgroup views_aggregator_module aggregator.module handlers
- *
- * Includes the core 'aggregator_feed,' 'aggregator_category,' and 'aggregator_item'
- * tables.
+ * @file
+ * Provide views data and handlers for aggregator.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function aggregator_views_data() {
// ----------------------------------------------------------------------
@@ -249,6 +243,9 @@ function aggregator_views_data() {
'filter' => array(
'handler' => 'views_handler_filter_string',
),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_string',
+ ),
);
// link
@@ -263,7 +260,6 @@ function aggregator_views_data() {
'sort' => array(
'handler' => 'views_handler_sort',
),
- // Information for accepting a title as a filter
'filter' => array(
'handler' => 'views_handler_filter_string',
),
@@ -281,7 +277,6 @@ function aggregator_views_data() {
'sort' => array(
'handler' => 'views_handler_sort_date',
),
- // Information for accepting a title as a filter
'filter' => array(
'handler' => 'views_handler_filter_date',
),
@@ -299,7 +294,6 @@ function aggregator_views_data() {
'handler' => 'views_handler_field_xss',
'click sortable' => FALSE,
),
- // Information for accepting a title as a filter
'filter' => array(
'handler' => 'views_handler_filter_string',
),
@@ -390,7 +384,7 @@ function aggregator_views_data() {
}
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function aggregator_views_plugins() {
return array(
@@ -410,6 +404,3 @@ function aggregator_views_plugins() {
),
);
}
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
index c67832c..92ae8b7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_category_cid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_aggregator_category_cid.
+ */
+
+/**
* Argument handler to accept an aggregator category id.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_fid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_fid.inc
index ed11288..4147626 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_fid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_fid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_aggregator_fid.
+ */
+
+/**
* Argument handler to accept an aggregator feed id.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_iid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_iid.inc
index fe19ab6..d959b04 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_iid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_argument_aggregator_iid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_aggregator_iid.
+ */
+
+/**
* Argument handler to accept an aggregator item id.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc
index 0564810..99fffa1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_category.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_aggregator_category.
+ */
+
+/**
* Field handler to provide simple renderer that allows linking to aggregator
* category.
*
@@ -17,7 +22,7 @@ class views_handler_field_aggregator_category extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_category'] = array('default' => FALSE);
+ $options['link_to_category'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_title_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_title_link.inc
index d428f44..d8bf578 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_title_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_title_link.inc
@@ -1,6 +1,11 @@
<?php
- /**
+/**
+ * @file
+ * Definition of views_handler_field_aggregator_title_link.
+ */
+
+/**
* Field handler that turns an item's title into a clickable link to the original
* source article.
*
@@ -15,7 +20,7 @@ class views_handler_field_aggregator_title_link extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['display_as_link'] = array('default' => TRUE);
+ $options['display_as_link'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_xss.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_xss.inc
index 0813e35..d39b101 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_xss.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_field_aggregator_xss.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_aggregator_xss.
+ */
+
/**
* Filters htmls tags from item.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
index 27cf674..f9931c8 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_handler_filter_aggregator_category_cid.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_aggregator_category_cid.
+ */
+
/**
* Filter by aggregator category cid
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_plugin_row_aggregator_rss.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_plugin_row_aggregator_rss.inc
index 35aadec..672952e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_plugin_row_aggregator_rss.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/aggregator/views_plugin_row_aggregator_rss.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the Aggregator Item RSS row style plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book.views.inc
index 2b1a82a..15a2183 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book.views.inc
@@ -1,17 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for book.module
- */
/**
- * @defgroup views_book_module book.module handlers
+ * @file
+ * Provide views data and handlers for book.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function book_views_data() {
// ----------------------------------------------------------------------
@@ -119,5 +116,16 @@ function book_views_data() {
}
/**
- * @}
+ * Implements hook_views_plugins().
*/
+function book_views_plugins() {
+ return array(
+ 'module' => 'views',
+ 'argument default' => array(
+ 'book_root' => array(
+ 'title' => t('Book root from current node'),
+ 'handler' => 'views_plugin_argument_default_book_root'
+ ),
+ ),
+ );
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book/views_plugin_argument_default_book_root.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book/views_plugin_argument_default_book_root.inc
new file mode 100644
index 0000000..1ce3046
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/book/views_plugin_argument_default_book_root.inc
@@ -0,0 +1,21 @@
+<?php
+/**
+ * @file
+ * Contains the book root from current node argument default plugin.
+ */
+
+/**
+ * Default argument plugin to get the current node's book root.
+ */
+class views_plugin_argument_default_book_root extends views_plugin_argument_default_node {
+ function get_argument() {
+ // Use the argument_default_node plugin to get the nid argument.
+ $nid = parent::get_argument();
+ if (!empty($nid)) {
+ $node = node_load($nid);
+ if (isset($node->book['bid'])) {
+ return $node->book['bid'];
+ }
+ }
+ }
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment.views.inc
index e22ccd5..65ef18c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for comment.module
- */
/**
- * @defgroup views_comment_module comment.module handlers
+ * @file
+ * Provide views data and handlers for comment.module.
*
- * Includes the tables 'comment' and 'node_comment_statistics'
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function comment_views_data() {
@@ -172,6 +168,28 @@ function comment_views_data() {
),
);
+
+ // Language field
+ if (module_exists('locale')) {
+ $data['comment']['language'] = array(
+ 'title' => t('Language'),
+ 'help' => t('The language the comment is in.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_locale_language',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_locale_language',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_locale_language',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+ }
+
$data['comments']['timestamp']['moved to'] = array('comment', 'changed');
// changed (when comment was last updated)
$data['comment']['changed'] = array(
@@ -505,7 +523,7 @@ function comment_views_data() {
'handler' => 'views_handler_argument_numeric',
),
'field' => array(
- 'handler' => 'views_handler_filter_user_name',
+ 'handler' => 'views_handler_field_numeric',
),
);
@@ -585,7 +603,7 @@ function comment_views_data_alter(&$data) {
}
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function comment_views_plugins() {
return array(
@@ -642,7 +660,3 @@ function template_preprocess_views_view_row_comment(&$vars) {
}
$vars['comment'] = drupal_render($build);
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc
index 11144a9..d821f32 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_comment_user_uid.
+ */
+
+/**
* Argument handler to accept a user id to check for nodes that
* user posted or commented on.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment.inc
index b855b63..7ca3256 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment.
+ */
+
/**
* Field handler to allow linking to a comment.
*
@@ -18,8 +24,8 @@ class views_handler_field_comment extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_comment'] = array('default' => TRUE);
- $options['link_to_node'] = array('default' => FALSE);
+ $options['link_to_comment'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['link_to_node'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_depth.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_depth.inc
index 8872a6a..4840a1e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_depth.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_depth.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_depth.
+ */
+
/**
* Field handler to display the depth of a comment.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link.inc
index e0e0ba7..162924e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_link.
+ */
+
/**
* Base field handler to present a link.
*
@@ -12,7 +18,7 @@ class views_handler_field_comment_link extends views_handler_field_entity {
function option_definition() {
$options = parent::option_definition();
$options['text'] = array('default' => '', 'translatable' => TRUE);
- $options['link_to_node'] = array('default' => FALSE);
+ $options['link_to_node'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_approve.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_approve.inc
index 8063e20..0953d0c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_approve.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_approve.inc
@@ -1,6 +1,11 @@
<?php
+
/**
* @file
+ * Definition of views_handler_field_comment_link_approve.
+ */
+
+/**
* Provides a comment approve link.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_delete.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_delete.inc
index b74661b..c55ac1c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_delete.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_delete.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_link_delete.
+ */
+
/**
* Field handler to present a link to delete a node.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_edit.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_edit.inc
index ffd1f93..0b06c0e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_edit.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_edit.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_link_edit.
+ */
+
/**
* Field handler to present a link node edit.
*
@@ -7,7 +13,7 @@
class views_handler_field_comment_link_edit extends views_handler_field_comment_link {
function option_definition() {
$options = parent::option_definition();
- $options['destination'] = array('default' => FALSE);
+ $options['destination'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_reply.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_reply.inc
index 1564164..47d0f17 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_reply.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_link_reply.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_comment_link_reply.
+ */
+
+/**
* Field handler to present a link to delete a node.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc
index 0e4f610..7feecfb 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_node_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_node_link.
+ */
+
/**
* Handler for showing comment module's node link.
*
@@ -22,7 +28,7 @@ class views_handler_field_comment_node_link extends views_handler_field_entity {
function option_definition() {
$options = parent::option_definition();
- $options['teaser'] = array('default' => 0);
+ $options['teaser'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -32,7 +38,6 @@ class views_handler_field_comment_node_link extends views_handler_field_entity {
'#title' => t('Show teaser-style link'),
'#default_value' => $this->options['teaser'],
'#description' => t('Show the comment link in the form used on standard node teasers, rather than the full node form.'),
- '#fieldset' => 'more',
);
parent::options_form($form, $form_state);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_username.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_username.inc
index 6b6186e..887a74e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_username.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_comment_username.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_comment_username.
+ */
+
/**
* Field handler to allow linking to a user account or homepage.
*
@@ -16,7 +22,7 @@ class views_handler_field_comment_username extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_user'] = array('default' => TRUE);
+ $options['link_to_user'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_last_comment_timestamp.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_last_comment_timestamp.inc
index 2bfa970..e7cf8bd 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_last_comment_timestamp.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_last_comment_timestamp.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_last_comment_timestamp.
+ */
+
+/**
* Field handler to display the timestamp of a comment with the count of comments.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_comment_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_comment_name.inc
index 63f948f..c9c6885 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_comment_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_comment_name.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_ncs_last_comment_name.
+ */
+
+/**
* Field handler to present the name of the last comment poster.
*
* @ingroup views_field_handlers
@@ -28,7 +33,7 @@ class views_handler_field_ncs_last_comment_name extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_user'] = array('default' => TRUE);
+ $options['link_to_user'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_updated.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_updated.inc
index 3950ffb..d1d7306 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_updated.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_ncs_last_updated.inc
@@ -1,4 +1,9 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_ncs_last_updated.
+ */
/**
* Field handler to display the newer of last comment / node updated.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_comment.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_comment.inc
index 6892fed..d863c44 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_comment.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_comment.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_node_comment.
+ */
+
+/**
* Display node comment status.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_new_comments.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_new_comments.inc
index 0ecdfc6..70b0581 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_new_comments.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_field_node_new_comments.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_node_new_comments.
+ */
+
+/**
* Field handler to display the number of new comments.
*
* @ingroup views_field_handlers
@@ -26,7 +31,7 @@ class views_handler_field_node_new_comments extends views_handler_field_numeric
function option_definition() {
$options = parent::option_definition();
- $options['link_to_comment'] = array('default' => TRUE);
+ $options['link_to_comment'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc
index 4f9e711..e76ebb7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_comment_user_uid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_comment_user_uid.
+ */
+
+/**
* Filter handler to accept a user id to check for nodes that user posted or
* commented on.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_ncs_last_updated.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_ncs_last_updated.inc
index 3818db9..2319edf 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_ncs_last_updated.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_ncs_last_updated.inc
@@ -1,6 +1,12 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_ncs_last_updated.
+ */
+
/**
- * Filter handler for the newer of last comment / node updated
+ * Filter handler for the newer of last comment / node updated.
*
* @ingroup views_filter_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_node_comment.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_node_comment.inc
index 659eaa6..befce10 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_node_comment.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_filter_node_comment.inc
@@ -1,7 +1,12 @@
<?php
/**
- * Filter based on comment node status
+ * @file
+ * Definition of views_handler_filter_node_comment.
+ */
+
+/**
+ * Filter based on comment node status.
*
* @ingroup views_filter_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_comment_thread.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_comment_thread.inc
index e529b2a..e513a93 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_comment_thread.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_comment_thread.inc
@@ -1,6 +1,14 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_sort_comment_thread.
+ */
+
/**
- * Sort handler for ordering by thread
+ * Sort handler for ordering by thread.
+ *
+ * @ingroup views_sort_handlers
*/
class views_handler_sort_comment_thread extends views_handler_sort {
function query() {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc
index 8eca177..613045a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_comment_name.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_sort_ncs_last_comment_name.
+ */
+
/**
* Sort handler to sort by last comment name which might be in 2 different
* fields.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_updated.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_updated.inc
index 04b01a1..83f0f54 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_updated.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_handler_sort_ncs_last_updated.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_sort_ncs_last_updated.
+ */
+
/**
* Sort handler for the newer of last comment / node updated.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_rss.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_rss.inc
index 7576bb5..d287b8e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_rss.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_rss.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the comment RSS row style plugin.
@@ -15,7 +16,7 @@ class views_plugin_row_comment_rss extends views_plugin_row {
$options = parent::option_definition();
$options['item_length'] = array('default' => 'default');
- $options['links'] = FALSE;
+ $options['links'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_view.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_view.inc
index 284fa5f..f78fa36 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_view.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/comment/views_plugin_row_comment_view.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the node RSS row style plugin.
@@ -27,7 +28,7 @@ class views_plugin_row_comment_view extends views_plugin_row {
function option_definition() {
$options = parent::option_definition();
- $options['links'] = array('default' => TRUE);
+ $options['links'] = array('default' => TRUE, 'bool' => TRUE);
$options['view_mode'] = array('default' => 'full');
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact.views.inc
index 85bcb94..412d824 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact.views.inc
@@ -1,10 +1,16 @@
<?php
+
/**
* @file
- * Provide views data and handlers for contact.module
+ * Provide views data and handlers for contact.module.
+ *
+ * @ingroup views_module_handlers
*/
-function contact_views_data() {
+/**
+ * Implements hook_views_data_alter().
+ */
+function contact_views_data_alter(&$data) {
$data['users']['contact'] = array(
'field' => array(
'title' => t('Link to contact page'),
@@ -12,5 +18,4 @@ function contact_views_data() {
'handler' => 'views_handler_field_contact_link',
),
);
- return $data;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc
index 0a44f21..9d22f01 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/contact/views_handler_field_contact_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_contact_link.
+ */
+
/**
* A field that links to the user contact page, if access is permitted.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field.views.inc
index dd4363f..fe1968b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field.views.inc
@@ -2,17 +2,13 @@
/**
* @file
- * Provide Views data and handlers for field.module
- */
-
-/**
- * @defgroup views_field_module field.module handlers
+ * Provide Views data and handlers for field.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*
* Field modules can implement hook_field_views_data() to override
* the default behavior for adding fields.
@@ -41,7 +37,7 @@ function field_views_data() {
}
/**
- * Implements hook_views_data_alter()
+ * Implements hook_views_data_alter().
*
* Field modules can implement hook_field_views_data_views_data_alter() to
* alter the views data on a per field basis. This is weirdly named so as
@@ -342,7 +338,7 @@ function field_views_field_default_views_data($field) {
'handler' => $argument,
'additional fields' => $additional_fields,
'field_name' => $field['field_name'],
- 'empty field name' => t('<No value>'),
+ 'empty field name' => t('- No value -'),
);
$data[$table][$column_real_name]['filter'] = array(
'field' => $column_real_name,
@@ -381,7 +377,7 @@ function field_views_field_default_views_data($field) {
'table' => $table,
'handler' => 'views_handler_argument_numeric',
'additional fields' => $additional_fields,
- 'empty field name' => t('<No value>'),
+ 'empty field name' => t('- No value -'),
'field_name' => $field['field_name'],
);
$data[$table]['delta']['filter'] = array(
@@ -412,18 +408,19 @@ function field_views_field_default_views_data($field) {
function list_field_views_data($field) {
$data = field_views_field_default_views_data($field);
foreach ($data as $table_name => $table_data) {
- foreach ($table_data as $field => $field_data) {
- if (isset($field_data['filter']) && $field != 'delta') {
- $data[$table_name][$field]['filter']['handler'] = 'views_handler_filter_field_list';
+ foreach ($table_data as $field_name => $field_data) {
+ if (isset($field_data['filter']) && $field_name != 'delta') {
+ $data[$table_name][$field_name]['filter']['handler'] = 'views_handler_filter_field_list';
}
- if (isset($field_data['argument']) && $field != 'delta') {
- $data[$table_name][$field]['argument']['handler'] = 'views_handler_argument_field_list';
+ if (isset($field_data['argument']) && $field_name != 'delta') {
+ if ($field['type'] == 'list_text') {
+ $data[$table_name][$field_name]['argument']['handler'] = 'views_handler_argument_field_list_string';
+ }
+ else {
+ $data[$table_name][$field_name]['argument']['handler'] = 'views_handler_argument_field_list';
+ }
}
}
}
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list.inc
index f8f10e9..e0f7abe 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list.inc
@@ -1,18 +1,21 @@
<?php
+
/**
* @file
- * Contains views_handler_argument_field_list handler
+ * Definition of views_handler_argument_field_list.
*/
/**
- * Argument handler for list field to show the human readable name in the summary.
+ * Argument handler for list field to show the human readable name in the
+ * summary.
*
* @ingroup views_argument_handlers
*/
class views_handler_argument_field_list extends views_handler_argument_numeric {
/**
- * @var array
* Stores the allowed values of this field.
+ *
+ * @var array
*/
var $allowed_values = NULL;
@@ -24,7 +27,7 @@ class views_handler_argument_field_list extends views_handler_argument_numeric {
function option_definition() {
$options = parent::option_definition();
- $options['summary']['contains']['human'] = array('default' => FALSE);
+ $options['summary']['contains']['human'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -35,7 +38,7 @@ class views_handler_argument_field_list extends views_handler_argument_numeric {
$form['summary']['human'] = array(
'#title' => t('Display list value as human readable'),
'#type' => 'checkbox',
- '#default_value' => $this->options['summary']['human'],#
+ '#default_value' => $this->options['summary']['human'],
'#dependency' => array('radio:options[default_action]' => array('summary')),
);
}
@@ -53,4 +56,3 @@ class views_handler_argument_field_list extends views_handler_argument_numeric {
}
}
}
-
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list_string.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list_string.inc
new file mode 100644
index 0000000..67a9f2d
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_argument_field_list_string.inc
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_field_list_text.
+ */
+
+/**
+ * Argument handler for list field to show the human readable name in the
+ * summary.
+ *
+ * @ingroup views_argument_handlers
+ */
+class views_handler_argument_field_list_string extends views_handler_argument_string {
+ /**
+ * Stores the allowed values of this field.
+ *
+ * @var array
+ */
+ var $allowed_values = NULL;
+
+ function init(&$view, &$options) {
+ parent::init($view, $options);
+ $field = field_info_field($this->definition['field_name']);
+ $this->allowed_values = list_allowed_values($field);
+ }
+
+ function option_definition() {
+ $options = parent::option_definition();
+
+ $options['summary']['contains']['human'] = array('default' => FALSE, 'bool' => TRUE);
+
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+
+ $form['summary']['human'] = array(
+ '#title' => t('Display list value as human readable'),
+ '#type' => 'checkbox',
+ '#default_value' => $this->options['summary']['human'],
+ '#dependency' => array('radio:options[default_action]' => array('summary')),
+ );
+ }
+
+
+ function summary_name($data) {
+ $value = $data->{$this->name_alias};
+ // If the list element has a human readable name show it,
+ if (isset($this->allowed_values[$value]) && !empty($this->options['summary']['human'])) {
+ return $this->case_transform(field_filter_xss($this->allowed_values[$value]), $this->options['case']);
+ }
+ // else fallback to the key.
+ else {
+ return $this->case_transform(check_plain($value), $this->options['case']);
+ }
+ }
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_field_field.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_field_field.inc
index 8e0b767..b50a0ae 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_field_field.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_field_field.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_field.
+ */
+
+/**
* Helper function: Return an array of formatter options for a field type.
*
* Borrowed from field_ui.
@@ -28,19 +33,54 @@ function _field_view_formatter_options($field_type = NULL) {
}
/**
- * A field that displays fields.
+ * A field that displays fieldapi fields.
+ *
+ * @ingroup views_field_handlers
*/
class views_handler_field_field extends views_handler_field {
/**
* An array to store field renderable arrays for use by render_items.
+ *
+ * @var array
*/
public $items = array();
/**
- * Store the field informations.
+ * Store the field information.
+ *
+ * @var array
*/
public $field_info = array();
+
+ /**
+ * Does the field supports multiple field values.
+ *
+ * @var bool
+ */
+ public $multiple;
+
+ /**
+ * Does the rendered fields get limited.
+ *
+ * @var bool
+ */
+ public $limit_values;
+
+ /**
+ * A shortcut for $view->base_table.
+ *
+ * @var string
+ */
+ public $base_table;
+
+ /**
+ * Store the field instance.
+ *
+ * @var array
+ */
+ public $instance;
+
function init(&$view, &$options) {
parent::init($view, $options);
@@ -68,10 +108,19 @@ class views_handler_field_field extends views_handler_field {
$this->limit_values = TRUE;
}
}
+
+ // Convert old style entity id group column to new format.
+ // @todo Remove for next major version.
+ if ($this->options['group_column'] == 'entity id') {
+ $this->options['group_column'] = 'entity_id';
+ }
}
/**
- * Return TRUE if the user has access to view this field.
+ * Check whether current user has access to this handler.
+ *
+ * @return bool
+ * Return TRUE if the user has access to view this field.
*/
function access() {
$base_table = $this->get_base_table();
@@ -80,6 +129,9 @@ class views_handler_field_field extends views_handler_field {
/**
* Set the base_table and base_table_alias.
+ *
+ * @return string
+ * The base table which is used in the current view "context".
*/
function get_base_table() {
if (!isset($this->base_table)) {
@@ -170,7 +222,7 @@ class views_handler_field_field extends views_handler_field {
$options = array($this->options['group_column'] => $this->options['group_column']);
}
- $options += $this->options['group_columns'];
+ $options += is_array($this->options['group_columns']) ? $this->options['group_columns'] : array();
$fields = array();
@@ -206,7 +258,8 @@ class views_handler_field_field extends views_handler_field {
$this->view->display_handler->options['field_language']);
$placeholder = $this->placeholder();
$language_fallback_candidates = array($language);
- if (variable_get('locale_field_language_fallback', TRUE) && module_exists('locale')) {
+ if (variable_get('locale_field_language_fallback', TRUE)) {
+ require_once DRUPAL_ROOT . '/includes/language.inc';
$language_fallback_candidates = array_merge($language_fallback_candidates, language_fallback_get_candidates());
}
else {
@@ -312,6 +365,7 @@ class views_handler_field_field extends views_handler_field {
// Options used for multiple value fields.
$options['group_rows'] = array(
'default' => TRUE,
+ 'bool' => TRUE,
);
// If we know the exact number of allowed values, then that can be
// the default. Otherwise, default to 'all'.
@@ -323,9 +377,11 @@ class views_handler_field_field extends views_handler_field {
);
$options['delta_reversed'] = array(
'default' => FALSE,
+ 'bool' => TRUE,
);
$options['delta_first_last'] = array(
'default' => FALSE,
+ 'bool' => TRUE,
);
$options['multi_type'] = array(
@@ -337,6 +393,7 @@ class views_handler_field_field extends views_handler_field {
$options['field_api_classes'] = array(
'default' => FALSE,
+ 'bool' => TRUE,
);
return $options;
@@ -364,7 +421,7 @@ class views_handler_field_field extends views_handler_field {
else {
$form['click_sort_column'] = array(
'#type' => 'select',
- '#title' => t('Click sort column'),
+ '#title' => t('Column used for click sorting'),
'#options' => drupal_map_assoc($column_names),
'#default_value' => $this->options['click_sort_column'],
'#description' => t('Used by Style: Table to determine the actual column to click sort the field on. The default is usually fine.'),
@@ -405,10 +462,10 @@ class views_handler_field_field extends views_handler_field {
// Provide an instance array for hook_field_formatter_settings_form().
ctools_include('fields');
- $instance = ctools_fields_fake_field_instance($this->definition['field_name'], '_dummy', $formatter, $settings);
+ $this->instance = ctools_fields_fake_field_instance($this->definition['field_name'], '_custom', $formatter, $settings);
- // Store the settings in a '_dummy' view mode.
- $instance['display']['_dummy'] = array(
+ // Store the settings in a '_custom' view mode.
+ $this->instance['display']['_custom'] = array(
'type' => $format,
'settings' => $settings,
);
@@ -417,7 +474,7 @@ class views_handler_field_field extends views_handler_field {
$settings_form = array('#value' => array());
$function = $formatter['module'] . '_field_formatter_settings_form';
if (function_exists($function)) {
- $settings_form = $function($field, $instance, '_dummy', $form, $form_state);
+ $settings_form = $function($field, $this->instance, '_custom', $form, $form_state);
}
$form['settings'] = $settings_form;
}
@@ -574,7 +631,7 @@ class views_handler_field_field extends views_handler_field {
$entities_by_type = array();
$revisions_by_type = array();
foreach ($values as $key => $object) {
- if (isset($object->{$this->field_alias}) && !isset($values[$key]->_field_data[$this->field_alias])) {
+ if (isset($this->aliases['entity_type']) && isset($object->{$this->aliases['entity_type']}) && isset($object->{$this->field_alias}) && !isset($values[$key]->_field_data[$this->field_alias])) {
$entity_type = $object->{$this->aliases['entity_type']};
if (empty($this->definition['is revision'])) {
$entity_id = $object->{$this->field_alias};
@@ -804,7 +861,7 @@ class views_handler_field_field extends views_handler_field {
if (isset($render_array['#access'])) {
$items[$count]['rendered']['#access'] = $render_array['#access'];
}
- // Only add the raw field items (for use in tokens) if the curent user
+ // Only add the raw field items (for use in tokens) if the current user
// has access to view the field content.
if ((!isset($items[$count]['rendered']['#access']) || $items[$count]['rendered']['#access']) && !empty($render_array['#items'][$count])) {
$items[$count]['raw'] = $render_array['#items'][$count];
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_filter_field_list.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_filter_field_list.inc
index 971fb35..440d55b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_filter_field_list.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_filter_field_list.inc
@@ -1,11 +1,30 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_field_list.
+ */
+
+/**
* Filter handler which uses list-fields as options.
*
* @ingroup views_filter_handlers
*/
-class views_handler_filter_field_list extends views_handler_filter_in_operator {
+class views_handler_filter_field_list extends views_handler_filter_many_to_one {
+
+ function init(&$view, &$options) {
+ parent::init($view, $options);
+ // Migrate the settings from the old filter_in_operator values to filter_many_to_one.
+ if ($this->options['operator'] == 'in') {
+ $this->options['operator'] = 'or';
+ }
+ if ($this->options['operator'] == 'not in') {
+ $this->options['operator'] = 'not';
+ }
+ $this->operator = $this->options['operator'];
+ }
+
+
function get_value_options() {
$field = field_info_field($this->definition['field_name']);
$this->value_options = list_allowed_values($field);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_relationship_entity_reverse.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_relationship_entity_reverse.inc
index c83fa11..89f2483 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_relationship_entity_reverse.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/field/views_handler_relationship_entity_reverse.inc
@@ -1,7 +1,8 @@
<?php
+
/**
* @file
- * Views' relationship handlers.
+ * Definition of views_handler_relationship_entity_reverse.
*/
/**
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/file.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/file.views.inc
index 30db20b..8556938 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/file.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/file.views.inc
@@ -1,14 +1,10 @@
<?php
-/**
- * @file
- *
- * Provide views data and handlers for file.module
- */
/**
- * @defgroup views_file_module file.module handlers
+ * @file
+ * Provide views data and handlers for file.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
@@ -75,7 +71,3 @@ function file_field_views_data_views_data_alter(&$data, $field) {
);
}
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter.views.inc
index c13d887..0a3b4fc 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter.views.inc
@@ -1,18 +1,14 @@
<?php
+
/**
* @file
* Provide basic views data for filter.module.
- */
-
-/**
- * @defgroup views_filter_module filter.module handlers
*
- * Only includes the table 'filter_formats'.
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function filter_views_data() {
// ----------------------------------------------------------------------
@@ -35,7 +31,3 @@ function filter_views_data() {
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc
index 9b7b457..0a7bf3b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/filter/views_handler_field_filter_format_name.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_filter_format_name.
+ */
+
/**
* Field handler to output the name of an input format.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/image.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/image.views.inc
index 1dec9e4..6fc6565 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/image.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/image.views.inc
@@ -1,14 +1,10 @@
<?php
-/**
- * @file
- *
- * Provide views data and handlers for image.module
- */
/**
- * @defgroup views_image_module image.module handlers
+ * @file
+ * Provide views data and handlers for image.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
@@ -74,7 +70,3 @@ function image_field_views_data_views_data_alter(&$data, $field) {
);
}
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale.views.inc
index 057b2a6..3bff7db 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale.views.inc
@@ -2,14 +2,9 @@
/**
* @file
- *
* Provides views data and handlers for locale.module.
- */
-
-/**
- * @defgroup views_locale_module locale.module handlers
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
@@ -202,5 +197,25 @@ function locale_views_data() {
}
/**
- * @}
+ * Implements hook_views_data_alter().
*/
+function locale_views_data_alter(&$data) {
+ // Language field
+ $data['node']['language'] = array(
+ 'title' => t('Language'),
+ 'help' => t('The language the content is in.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_node_language',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_node_language',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_node_language',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_group.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_group.inc
index 1525560..7ced836 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_group.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_group.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_locale_group.
+ */
+
+/**
* Argument handler to accept a language.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_language.inc
index 8d4f38c..316d4b1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_argument_locale_language.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_locale_language.
+ */
+
+/**
* Argument handler to accept a language.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_group.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_group.inc
index 22339e8..393a948 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_group.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_group.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_locale_group.
+ */
+
+/**
* Field handler to translate a group into its readable form.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_language.inc
index 0ff36a8..8038e2b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_language.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_locale_language.
+ */
+
+/**
* Field handler to translate a language into its readable form.
*
* @ingroup views_field_handlers
@@ -8,7 +13,7 @@
class views_handler_field_locale_language extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['native_language'] = array('default' => FALSE);
+ $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -24,8 +29,8 @@ class views_handler_field_locale_language extends views_handler_field {
}
function render($values) {
- $languages = locale_language_list(empty($this->$options['native_language']) ? 'name' : 'native');
+ $languages = locale_language_list(empty($this->options['native_language']) ? 'name' : 'native');
$value = $this->get_value($values);
- return isset($languages[$value]) ? $languages[$value]->name : '';
+ return isset($languages[$value]) ? $languages[$value] : '';
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_link_edit.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_link_edit.inc
index 6c8f8f4..3789355 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_link_edit.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_locale_link_edit.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_locale_link_edit.
+ */
+
+/**
* Field handler to present a link to edit a translation.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_node_language.inc
index b2e8d9c..467605b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_field_node_language.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_node_language.
+ */
+
+/**
* Field handler to translate a language into its readable form.
*
* @ingroup views_field_handlers
@@ -8,7 +13,7 @@
class views_handler_field_node_language extends views_handler_field_node {
function option_definition() {
$options = parent::option_definition();
- $options['native_language'] = array('default' => FALSE);
+ $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_group.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_group.inc
index 1941549..5ec1e92 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_group.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_group.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_locale_group.
+ */
+
+/**
* Filter by locale group.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_language.inc
index 9c7ba90..eee12a6 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_language.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_locale_language.
+ */
+
+/**
* Filter by language.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_version.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_version.inc
index d828b2c..7170860 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_version.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_locale_version.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_locale_version.
+ */
+
+/**
* Filter by version.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_node_language.inc
index 73af163..7592577 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/locale/views_handler_filter_node_language.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_node_language.
+ */
+
/**
* Filter by language.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views.inc
index bff3544..ebba3d3 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for node.module
- */
/**
- * @defgroup views_node_module node.module handlers
+ * @file
+ * Provide views data and handlers for node.module.
*
- * Includes the tables 'node', 'node_revision' and 'history'.
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function node_views_data() {
// ----------------------------------------------------------------
@@ -34,23 +30,11 @@ function node_views_data() {
);
$data['node']['table']['entity type'] = 'node';
-
- // For other base tables, explain how we join
- $data['node']['table']['join'] = array(
- // this explains how the 'node' table (named in the line above)
- // links toward the node_revision table.
+ $data['node']['table']['default_relationship'] = array(
'node_revision' => array(
- 'handler' => 'views_join', // this is actually optional
- 'left_table' => 'node_revision', // Because this is a direct link it could be left out.
- 'left_field' => 'nid',
- 'field' => 'nid',
- // also supported:
- // 'type' => 'INNER',
- // 'extra' => array(array('field' => 'fieldname', 'value' => 'value', 'operator' => '='))
- // Unfortunately, you can't specify other tables here, but you can construct
- // alternative joins in the handlers that can do that.
- // 'table' => 'the actual name of this table in the database',
- ),
+ 'table' => 'node_revision',
+ 'field' => 'vid',
+ ),
);
// ----------------------------------------------------------------
@@ -221,7 +205,7 @@ function node_views_data() {
'handler' => 'views_handler_field_boolean',
'click sortable' => TRUE,
'output formats' => array(
- 'sticky' => array(t('Sticky'), ''),
+ 'sticky' => array(t('Sticky'), t('Not sticky')),
),
),
'filter' => array(
@@ -239,6 +223,8 @@ function node_views_data() {
// table so they can be re-used with other query backends.
// @see views_handler_field_entity
+ $data['views_entity_node']['table']['group'] = t('Content');
+
$data['node']['view_node']['moved to'] = array('views_entity_node', 'view_node');
$data['views_entity_node']['view_node'] = array(
'field' => array(
@@ -426,6 +412,7 @@ function node_views_data() {
// Define the base group of this table. Fields that don't
// have a group defined will go into this field by default.
$data['node_revisions']['moved to'] = 'node_revision';
+ $data['node_revision']['table']['entity type'] = 'node';
$data['node_revision']['table']['group'] = t('Content revision');
// Support the conversion of the field body
$data['node_revisions']['body']['moved to'] = array('field_revision_data', 'body-revision_id');
@@ -449,6 +436,13 @@ function node_views_data() {
),
);
+ $data['node_revision']['table']['default_relationship'] = array(
+ 'node' => array(
+ 'table' => 'node',
+ 'field' => 'vid',
+ ),
+ );
+
// uid field for node revision
$data['node_revision']['uid'] = array(
'title' => t('User'),
@@ -543,6 +537,14 @@ function node_views_data() {
),
);
+ $data['node_revision']['link_to_revision'] = array(
+ 'field' => array(
+ 'title' => t('Link'),
+ 'help' => t('Provide a simple link to the revision.'),
+ 'handler' => 'views_handler_field_node_revision_link',
+ ),
+ );
+
$data['node_revision']['revert_revision'] = array(
'field' => array(
'title' => t('Revert link'),
@@ -665,7 +667,7 @@ function node_views_plugins() {
}
/**
- * Implements hook_preprocess_node
+ * Implements hook_preprocess_node().
*/
function node_row_node_view_preprocess_node(&$vars) {
$node = $vars['node'];
@@ -747,7 +749,3 @@ function node_views_analyze($view) {
return $ret;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views_template.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views_template.inc
index ca0ed75..b2b184d 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views_template.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node.views_template.inc
@@ -1,8 +1,10 @@
<?php
+
/**
* @file
* Contains views templates on behalf of the node module.
*/
+
function node_views_templates() {
// Only the standard install profile has the image field provided so only show it for it.
if (variable_get('install_profile', 'standard') != 'standard') {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc
index 95404f1..5f4e4b2 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc
@@ -1,11 +1,13 @@
<?php
+
/**
- * @defgroup views_argument_handlers Handlers for arguments
- * @{
+ * @file
+ * Handlers for various date arguments.
+ *
+ * @ingroup views_argument_handlers
*/
/**
- * @file
* Argument handler for a full date (CCYYMMDD)
*/
class views_handler_argument_node_created_fulldate extends views_handler_argument_date {
@@ -173,7 +175,3 @@ class views_handler_argument_node_created_week extends views_handler_argument_da
return t('Week @week', array('@week' => $created));
}
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_language.inc
index 1978168..170388a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_language.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_node_language.
+ */
+
/**
* Argument handler to accept a language.
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_nid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_nid.inc
index 991bc8d..b0dbee0 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_nid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_nid.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Provide node nid argument handler.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_type.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_type.inc
index 638973d..ea99d7c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_type.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_type.inc
@@ -1,8 +1,14 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_node_type.
+ */
+
/**
* Argument handler to accept a node type.
*/
-class views_handler_argument_node_type extends views_handler_argument {
+class views_handler_argument_node_type extends views_handler_argument_string {
function construct() {
parent::construct('type');
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_uid_revision.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_uid_revision.inc
index 995872c..142882a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_uid_revision.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_uid_revision.inc
@@ -1,5 +1,9 @@
<?php
-// $Id$
+
+/**
+ * @file
+ * Defintion of views_handler_argument_node_uid_revision.
+ */
/**
* Filter handler to accept a user id to check for nodes that
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_vid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_vid.inc
index 55db56a..1f970ad 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_vid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_argument_node_vid.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Provide node vid argument handler.
@@ -16,7 +17,7 @@ class views_handler_argument_node_vid extends views_handler_argument_numeric {
function title_query() {
$titles = array();
- $result = db_query("SELECT n.title FROM {node_revision} n WHERE n.nid IN (:nids)", array(':nids' => $this->value));
+ $result = db_query("SELECT n.title FROM {node_revision} n WHERE n.vid IN (:vids)", array(':vids' => $this->value));
foreach ($result as $term) {
$titles[] = check_plain($term->title);
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_history_user_timestamp.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_history_user_timestamp.inc
index 45f6c56..dfe4931 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_history_user_timestamp.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_history_user_timestamp.inc
@@ -1,8 +1,15 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_history_user_timestamp.
+ */
+
/**
* Field handler to display the marker for new content.
*
- * The handler is named history_user, because of compability reasons, the table is history.
+ * The handler is named history_user, because of compability reasons, the table
+ * is history.
*
* @ingroup views_field_handlers
*/
@@ -22,7 +29,7 @@ class views_handler_field_history_user_timestamp extends views_handler_field_nod
function option_definition() {
$options = parent::option_definition();
- $options['comments'] = array('default' => FALSE);
+ $options['comments'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -56,12 +63,11 @@ class views_handler_field_history_user_timestamp extends views_handler_field_nod
global $user;
if ($user->uid) {
$last_read = $this->get_value($values);
- $created = $this->get_value($values, 'created');
$changed = $this->get_value($values, 'changed');
$last_comment = module_exists('comment') && !empty($this->options['comments']) ? $this->get_value($values, 'last_comment') : 0;
- if (!$last_read && $created > NODE_NEW_LIMIT) {
+ if (!$last_read && $changed > NODE_NEW_LIMIT) {
$mark = MARK_NEW;
}
elseif ($changed > $last_read && $changed > NODE_NEW_LIMIT) {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node.inc
index eb90f01..f712a53 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the basic 'node' field handler.
@@ -26,7 +27,7 @@ class views_handler_field_node extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_node'] = array('default' => isset($this->definition['link_to_node default']) ? $this->definition['link_to_node default'] : FALSE);
+ $options['link_to_node'] = array('default' => isset($this->definition['link_to_node default']) ? $this->definition['link_to_node default'] : FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link.inc
index ee9c2b9..7e9bbd2 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_link.
+ */
+
/**
* Field handler to present a link to the node.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_delete.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_delete.inc
index 3e8075c..8271c0b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_delete.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_delete.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_link_delete.
+ */
+
/**
* Field handler to present a link to delete a node.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_edit.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_edit.inc
index f082c31..4e8aad0 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_edit.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_link_edit.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_link_edit.
+ */
+
/**
* Field handler to present a link node edit.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_path.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_path.inc
index 725869b..f47f85f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_path.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_path.inc
@@ -14,7 +14,7 @@ class views_handler_field_node_path extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['absolute'] = array('default' => FALSE);
+ $options['absolute'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision.inc
index 3195e64..c04693a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_revision.
+ */
+
/**
* Contains the basic 'node_revision' field handler.
*/
@@ -21,7 +27,7 @@ class views_handler_field_node_revision extends views_handler_field_node {
}
function option_definition() {
$options = parent::option_definition();
- $options['link_to_node_revision'] = array('default' => FALSE);
+ $options['link_to_node_revision'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link.inc
new file mode 100644
index 0000000..69047bb
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link.inc
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_revision_link.
+ */
+
+/**
+ * Field handler to present a link to a node revision.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_node_revision_link extends views_handler_field_node_link {
+
+ function construct() {
+ parent::construct();
+ $this->additional_fields['node_vid'] = array('table' => 'node_revision', 'field' => 'vid');
+ }
+
+ function access() {
+ return user_access('view revisions') || user_access('administer nodes');
+ }
+
+ function render_link($data, $values) {
+ list($node, $vid) = $this->get_revision_entity($values, 'view');
+ if (!isset($vid)) {
+ return;
+ }
+
+ // Current revision uses the node view path.
+ $path = 'node/' . $node->nid;
+ if ($node->vid != $vid) {
+ $path .= "/revisions/$vid/view";
+ }
+
+ $this->options['alter']['make_link'] = TRUE;
+ $this->options['alter']['path'] = $path;
+ $this->options['alter']['query'] = drupal_get_destination();
+
+ return !empty($this->options['text']) ? $this->options['text'] : t('view');
+ }
+
+ /**
+ * Returns the revision values of a node.
+ *
+ * @param object $values
+ * An object containing all retrieved values.
+ * @param string $op
+ * The operation being performed.
+ *
+ * @return array
+ * A numerically indexed array containing the current node object and the
+ * revision ID for this row.
+ */
+ function get_revision_entity($values, $op) {
+ $vid = $this->get_value($values, 'node_vid');
+ $node = $this->get_value($values);
+ // Unpublished nodes ignore access control.
+ $node->status = 1;
+ // Ensure user has access to perform the operation on this node.
+ if (!node_access($op, $node)) {
+ return array($node, NULL);
+ }
+ return array($node, $vid);
+ }
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_delete.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_delete.inc
index b005c2e..e0d00a7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_delete.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_delete.inc
@@ -1,38 +1,36 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_revision_link_delete.
+ */
+
/**
- * Field handler to present delete a node revision.
+ * Field handler to present link to delete a node revision.
*
* @ingroup views_field_handlers
*/
-class views_handler_field_node_revision_link_delete extends views_handler_field_node_link {
- function construct() {
- parent::construct();
- $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
- }
+class views_handler_field_node_revision_link_delete extends views_handler_field_node_revision_link {
function access() {
return user_access('delete revisions') || user_access('administer nodes');
}
function render_link($data, $values) {
- // ensure user has access to delete this node.
- $node = $this->get_value($values);
- $node->status = 1; // unpublished nodes ignore access control
- if (!node_access('delete', $node)) {
+ list($node, $vid) = $this->get_revision_entity($values, 'delete');
+ if (!isset($vid)) {
return;
}
// Current revision cannot be deleted.
- if ($node->vid == $this->get_value($values, 'node_vid')) {
+ if ($node->vid == $vid) {
return;
}
- $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
-
$this->options['alter']['make_link'] = TRUE;
- $this->options['alter']['path'] = "node/$node->nid/revisions/$node->vid/delete";
+ $this->options['alter']['path'] = 'node/' . $node->nid . "/revisions/$vid/delete";
$this->options['alter']['query'] = drupal_get_destination();
- return $text;
+ return !empty($this->options['text']) ? $this->options['text'] : t('delete');
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_revert.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_revert.inc
index f26c0a3..af20442 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_revert.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_revision_link_revert.inc
@@ -1,38 +1,36 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_revision_link_revert.
+ */
+
/**
* Field handler to present a link to revert a node to a revision.
*
* @ingroup views_field_handlers
*/
-class views_handler_field_node_revision_link_revert extends views_handler_field_node_link {
- function construct() {
- parent::construct();
- $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
- }
+class views_handler_field_node_revision_link_revert extends views_handler_field_node_revision_link {
function access() {
return user_access('revert revisions') || user_access('administer nodes');
}
function render_link($data, $values) {
- // ensure user has access to edit this node.
- $node = $this->get_value($values);
- $node->status = 1; // unpublished nodes ignore access control
- if (!node_access('update', $node)) {
+ list($node, $vid) = $this->get_revision_entity($values, 'update');
+ if (!isset($vid)) {
return;
}
// Current revision cannot be reverted.
- if ($node->vid == $this->get_value($values, 'node_vid')) {
+ if ($node->vid == $vid) {
return;
}
- $text = !empty($this->options['text']) ? $this->options['text'] : t('revert');
-
$this->options['alter']['make_link'] = TRUE;
- $this->options['alter']['path'] = "node/$node->nid/revisions/$node->vid/revert";
+ $this->options['alter']['path'] = 'node/' . $node->nid . "/revisions/$vid/revert";
$this->options['alter']['query'] = drupal_get_destination();
- return $text;
+ return !empty($this->options['text']) ? $this->options['text'] : t('revert');
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_type.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_type.inc
index 6d6202a..ba8ee3e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_type.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_field_node_type.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_node_type.
+ */
+
+/**
* Field handler to translate a node type into its readable form.
*
* @ingroup views_field_handlers
@@ -8,7 +13,7 @@
class views_handler_field_node_type extends views_handler_field_node {
function option_definition() {
$options = parent::option_definition();
- $options['machine_name'] = array('default' => FALSE);
+ $options['machine_name'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -24,7 +29,6 @@ class views_handler_field_node_type extends views_handler_field_node {
'#description' => t('Display field as the content type machine name.'),
'#type' => 'checkbox',
'#default_value' => !empty($this->options['machine_name']),
- '#fieldset' => 'more',
);
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc
index a13f531..acdb831 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_history_user_timestamp.inc
@@ -1,8 +1,15 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_history_user_timestamp.
+ */
+
/**
- * Filter for new content
+ * Filter for new content.
*
- * The handler is named history_user, because of compability reasons, the table is history.
+ * The handler is named history_user, because of compability reasons, the table
+ * is history.
*
* @ingroup views_filter_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_access.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_access.inc
index 37306f8..a9ee85c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_access.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_access.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_node_access.
+ */
+
/**
* Filter by node_access records.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc
index 0babe5b..2afb286 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_status.inc
@@ -1,6 +1,12 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_node_status.
+ */
+
/**
- * Filter by published status
+ * Filter by published status.
*
* @ingroup views_filter_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_type.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_type.inc
index 8312691..7f8ab4b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_type.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_type.inc
@@ -1,6 +1,12 @@
<?php
+
/**
- * Filter by node type
+ * @file
+ * Definition of views_handler_filter_node_type.
+ */
+
+/**
+ * Filter by node type.
*
* @ingroup views_filter_handlers
*/
@@ -9,6 +15,7 @@ class views_handler_filter_node_type extends views_handler_filter_in_operator {
if (!isset($this->value_options)) {
$this->value_title = t('Content types');
$types = node_type_get_types();
+ $options = array();
foreach ($types as $type => $info) {
$options[$type] = t($info->name);
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_uid_revision.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_uid_revision.inc
index 9c6055c..4d3d9a7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_uid_revision.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_handler_filter_node_uid_revision.inc
@@ -1,7 +1,8 @@
<?php
+
/**
* @file
- * Contains handler views_handler_filter_node_uid_revision.
+ * Definition of views_handler_filter_node_uid_revision.
*/
/**
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_default_node.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_default_node.inc
index f88af08..65fc0eb 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_default_node.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_default_node.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the node from URL argument default plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc
index 498ee76..018965d 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_argument_validate_node.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the 'node' argument validator plugin.
@@ -11,7 +12,7 @@ class views_plugin_argument_validate_node extends views_plugin_argument_validate
function option_definition() {
$options = parent::option_definition();
$options['types'] = array('default' => array());
- $options['access'] = array('default' => FALSE);
+ $options['access'] = array('default' => FALSE, 'bool' => TRUE);
$options['access_op'] = array('default' => 'view');
$options['nid_type'] = array('default' => 'nid');
@@ -20,6 +21,7 @@ class views_plugin_argument_validate_node extends views_plugin_argument_validate
function options_form(&$form, &$form_state) {
$types = node_type_get_types();
+ $options = array();
foreach ($types as $type => $info) {
$options[$type] = check_plain(t($info->name));
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc
index 189ff1f..5da746b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_rss.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the node RSS row style plugin.
@@ -20,7 +21,7 @@ class views_plugin_row_node_rss extends views_plugin_row {
$options = parent::option_definition();
$options['item_length'] = array('default' => 'default');
- $options['links'] = FALSE;
+ $options['links'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -135,8 +136,15 @@ class views_plugin_row_node_rss extends views_plugin_row {
if (!empty($node->rss_namespaces)) {
$this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $node->rss_namespaces);
- } else if (module_exists('rdf')) {
- $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, rdf_get_namespaces());
+ }
+ elseif (function_exists('rdf_get_namespaces')) {
+ // Merge RDF namespaces in the XML namespaces in case they are used
+ // further in the RSS content.
+ $xml_rdf_namespaces = array();
+ foreach (rdf_get_namespaces() as $prefix => $uri) {
+ $xml_rdf_namespaces['xmlns:' . $prefix] = $uri;
+ }
+ $this->view->style_plugin->namespaces += $xml_rdf_namespaces;
}
// Hide the links if desired.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_view.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_view.inc
index d745add..4aefe46 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_view.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/node/views_plugin_row_node_view.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the node view row style plugin.
@@ -35,8 +36,8 @@ class views_plugin_row_node_view extends views_plugin_row {
$options = parent::option_definition();
$options['view_mode'] = array('default' => 'teaser');
- $options['links'] = array('default' => TRUE);
- $options['comments'] = array('default' => FALSE);
+ $options['links'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['comments'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -98,10 +99,12 @@ class views_plugin_row_node_view extends views_plugin_row {
}
function render($row) {
- $node = $this->nodes[$row->{$this->field_alias}];
- $node->view = $this->view;
- $build = node_view($node, $this->options['view_mode']);
+ if (isset($this->nodes[$row->{$this->field_alias}])) {
+ $node = $this->nodes[$row->{$this->field_alias}];
+ $node->view = $this->view;
+ $build = node_view($node, $this->options['view_mode']);
- return drupal_render($build);
+ return drupal_render($build);
+ }
}
-}
+} \ No newline at end of file
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/poll.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/poll.views.inc
index 5819b7e..d3fd76a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/poll.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/poll.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for poll.module
- */
/**
- * @defgroup views_poll_module poll.module handlers
+ * @file
+ * Provide views data and handlers for poll.module.
*
- * Includes only the core 'poll' table for now.
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function poll_views_data() {
// Basic table information.
@@ -49,7 +45,3 @@ function poll_views_data() {
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile.views.inc
index 65ad71d..89db913 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile.views.inc
@@ -1,17 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for user.module
- */
/**
- * @defgroup views_profile_module profile.module handlers
+ * @file
+ * Provide views data and handlers for user.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function profile_views_data() {
$data['profile_values']['moved to'] = 'profile_value';
@@ -82,7 +79,7 @@ function profile_views_get_fields() {
}
else {
// serialized fields or modified version
- $row->options = unserialize(db_decode_blob($row->options));
+ $row->options = unserialize($row->options);
}
}
$fields[$row->fid] = $row;
@@ -218,7 +215,3 @@ function profile_views_fetch_field($field) {
// @todo: add access control to hidden fields.
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_date.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_date.inc
index e6b5fbc..2d9fe96 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_date.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_date.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_profile_date.
+ */
+
/**
* Field handler display a profile date
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_list.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_list.inc
index e3eaa30..8917b93 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_list.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_field_profile_list.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_profile_list.
+ */
+
/**
* Field handler display a profile list item.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_filter_profile_selection.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_filter_profile_selection.inc
index 9906753..d3403c9 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_filter_profile_selection.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/profile/views_handler_filter_profile_selection.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_profile_selection.
+ */
+
+/**
* Filter by a selection widget in the profile.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search.views.inc
index 6f0bc1b..dad84bb 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for search.module
- */
/**
- * @defgroup views_search_module search.module handlers
+ * @file
+ * Provide views data and handlers for search.module.
*
- * Includes the tables 'search_index'
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function search_views_data() {
// Basic table information.
@@ -134,7 +130,7 @@ function search_views_data() {
}
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function search_views_plugins() {
return;
@@ -204,8 +200,3 @@ function template_preprocess_views_view_row_search(&$vars) {
//$vars['score'] = $item->score;
$vars['snippet'] = search_excerpt($vars['view']->value, $node->body);
}
-
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_argument_search.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_argument_search.inc
index 1b2c6e5..f0a4a44 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_argument_search.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_argument_search.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_search.
+ */
+
+/**
* Argument that accepts query keys for search.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_field_search_score.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_field_search_score.inc
index 96f124d..0feddac 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_field_search_score.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_field_search_score.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_search_score.
+ */
+
/**
* Field handler to provide simple renderer that allows linking to a node.
*
@@ -72,5 +78,4 @@ class views_handler_field_search_score extends views_handler_field_numeric {
return parent::render($values);
}
}
-
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_filter_search.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_filter_search.inc
index c5defd8..7430494 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_filter_search.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_filter_search.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Contains a search filter handler.
+ */
+
+/**
* Field handler to provide simple renderer that allows linking to a node.
*
* @ingroup views_filter_handlers
@@ -170,6 +175,9 @@ class views_handler_filter_search extends views_handler_filter {
}
}
+/**
+ * Extends the core SearchQuery.
+ */
class viewsSearchQuery extends SearchQuery {
public function &conditions() {
return $this->conditions;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_sort_search_score.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_sort_search_score.inc
index 614d83a..d37fb65 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_sort_search_score.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_handler_sort_search_score.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_sort_search_score.
+ */
+
+/**
* Field handler to provide simple renderer that allows linking to a node.
*
* @ingroup views_sort_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_plugin_row_search_view.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_plugin_row_search_view.inc
index 7383344..e4aacdc 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_plugin_row_search_view.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/search/views_plugin_row_search_view.inc
@@ -1,7 +1,8 @@
<?php
+
/**
* @file
- * Contains the search row style plugin.
+ * Definition of views_plugin_row_search_view.
*/
/**
@@ -11,7 +12,7 @@ class views_plugin_row_search_view extends views_plugin_row {
function option_definition() {
$options = parent::option_definition();
- $options['score'] = array('default' => TRUE);
+ $options['score'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics.views.inc
index 187d9f1..d6637f3 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for statistics.module
- */
/**
- * @defgroup views_statistics_module statistics.module handlers
+ * @file
+ * Provide views data and handlers for statistics.module.
*
- * Includes the ability to create views of just the statistics table.
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function statistics_views_data() {
// Basic table information.
@@ -265,7 +261,3 @@ function statistics_views_data() {
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics/views_handler_field_accesslog_path.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics/views_handler_field_accesslog_path.inc
index d0daa69..85b2352 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics/views_handler_field_accesslog_path.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/statistics/views_handler_field_accesslog_path.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_accesslog_path.
+ */
+
/**
* Field handler to provide simple renderer that turns a URL into a clickable link.
*
@@ -18,7 +24,7 @@ class views_handler_field_accesslog_path extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['display_as_link'] = array('default' => TRUE);
+ $options['display_as_link'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system.views.inc
index d49385c..243cbc7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system.views.inc
@@ -1,19 +1,14 @@
<?php
-/**
- * @file
- *
- * Provide views data and handlers for system tables that are not represented by
- * their own module.
- */
/**
- * @defgroup views_system_module system.module handlers
+ * @file
+ * Provide views data and handlers for system.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function system_views_data() {
$data = array();
@@ -35,11 +30,6 @@ function system_views_data() {
);
$data['file_managed']['table']['entity type'] = 'file';
-
- // The file table does not inherently join to the node table,
- // but may things (such as upload.module) can add relationships
- // that allow file fields to be used.
-
// fid
$data['file_managed']['fid'] = array(
'title' => t('File ID'),
@@ -253,7 +243,7 @@ function system_views_data() {
'base' => 'node',
'base field' => 'nid',
'relationship field' => 'id',
- 'extra' => array(array('field' => 'type', 'value' => 'node')),
+ 'extra' => array(array('table' => 'file_usage', 'field' => 'type', 'operator' => '=', 'value' => 'node')),
),
);
$data['file_usage']['node_to_file'] = array(
@@ -431,6 +421,23 @@ function system_views_data() {
'handler' => 'views_handler_sort',
),
);
+ $data['file_usage']['id'] = array(
+ 'title' => t('Entity ID'),
+ 'help' => t('The ID of the entity that is related to the file.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_numeric',
+ 'click sortable' => TRUE,
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_numeric',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_numeric',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
$data['file_usage']['count'] = array(
'title' => t('Use count'),
'help' => t('The number of times the file is used by this entity.'),
@@ -569,7 +576,3 @@ function _views_file_status($choice = NULL) {
return $status;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_argument_file_fid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_argument_file_fid.inc
index 8a4088f..aa2d947 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_argument_file_fid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_argument_file_fid.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_file_fid.
+ */
+
/**
* Argument handler to accept multiple file ids.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file.inc
index f642b89..4168acf 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_file.
+ */
+
/**
* Field handler to provide simple renderer that allows linking to a file.
*
@@ -17,7 +23,7 @@ class views_handler_field_file extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_file'] = array('default' => FALSE);
+ $options['link_to_file'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_extension.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_extension.inc
index e64fbc9..6f9a03f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_extension.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_extension.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_file_extension.
+ */
+
+/**
* Returns a pure file extension of the file, for example 'module'.
* @ingroup views_field_handlers
*/
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
index 0b29c79..318fdcf 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_file_filemime.
+ */
+
+/**
* Field handler to add rendering MIME type images as an option on the filemime field.
*
* @ingroup views_field_handlers
@@ -8,7 +13,7 @@
class views_handler_field_file_filemime extends views_handler_field_file {
function option_definition() {
$options = parent::option_definition();
- $options['filemime_image'] = array('default' => FALSE);
+ $options['filemime_image'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_status.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_status.inc
index 84d9148..ac1022c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_status.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_status.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_file_status.
+ */
+
/**
* Field handler to translate a node type into its readable form.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_uri.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_uri.inc
index d36aba3..334e505 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_uri.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_field_file_uri.inc
@@ -1,12 +1,17 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_file_uri.
+ */
+
+/**
* Field handler to add rendering file paths as file URLs instead of as internal file URIs.
*/
class views_handler_field_file_uri extends views_handler_field_file {
function option_definition() {
$options = parent::option_definition();
- $options['file_download_path'] = array('default' => FALSE);
+ $options['file_download_path'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_file_status.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_file_status.inc
index 3133755..6194395 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_file_status.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_file_status.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_file_status.
+ */
+
/**
* Filter by file status.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_system_type.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_system_type.inc
index 5a9a811..84d4bcd 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_system_type.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/system/views_handler_filter_system_type.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_system_type.
+ */
+
+/**
* Filter by system type.
*/
class views_handler_filter_system_type extends views_handler_filter_in_operator {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy.views.inc
index 7dd225b..58d62d1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy.views.inc
@@ -1,18 +1,14 @@
<?php
-/**
- * @file
- *
- * Provide views data and handlers for taxonomy.module
- */
/**
- * @defgroup views_taxonomy_module taxonomy.module handlers
+ * @file
+ * Provide views data and handlers for taxonomy.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function taxonomy_views_data() {
$data = array();
@@ -90,6 +86,24 @@ function taxonomy_views_data() {
'handler' => 'views_handler_field',
),
);
+ $data['taxonomy_vocabulary']['weight'] = array(
+ 'title' => t('Weight'),
+ 'help' => t('The taxonomy vocabulary weight'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_numeric',
+ 'click sortable' => TRUE,
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_numeric',
+ 'name field' => 'weight',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_numeric',
+ ),
+ );
// ----------------------------------------------------------------------
// taxonomy_term_data table
@@ -152,6 +166,17 @@ function taxonomy_views_data() {
),
);
+ // raw tid field
+ $data['taxonomy_term_data']['tid_raw'] = array(
+ 'title' => t('Term ID'),
+ 'help' => t('The tid of a taxonomy term.'),
+ 'real field' => 'tid',
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_numeric',
+ 'allow empty' => TRUE,
+ ),
+ );
+
$data['taxonomy_term_data']['tid_representative'] = array(
'relationship' => array(
'title' => t('Representative node'),
@@ -204,6 +229,9 @@ function taxonomy_views_data() {
'filter' => array(
'handler' => 'views_handler_filter_numeric',
),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_numeric',
+ ),
);
// Term description
@@ -332,6 +360,10 @@ function taxonomy_views_data() {
'field' => 'parent',
'label' => t('Parent'),
),
+ 'filter' => array(
+ 'help' => t('Filter the results of "Taxonomy: Term" by the parent pid.'),
+ 'handler' => 'views_handler_filter_numeric',
+ ),
'argument' => array(
'help' => t('The parent term of the term.'),
'handler' => 'views_handler_argument_taxonomy',
@@ -457,7 +489,7 @@ function taxonomy_field_views_data_views_data_alter(&$data, $field) {
}
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function taxonomy_views_plugins() {
return array(
@@ -497,6 +529,7 @@ function views_taxonomy_set_breadcrumb(&$breadcrumb, &$argument) {
}
if (!empty($argument->options['use_taxonomy_term_path'])) {
$path = taxonomy_term_uri($parent);
+ $path = $path['path'];
}
else {
$args[$argument->position] = $parent->tid;
@@ -505,7 +538,3 @@ function views_taxonomy_set_breadcrumb(&$breadcrumb, &$argument) {
$breadcrumb[$path] = check_plain($parent->name);
}
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_taxonomy.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_taxonomy.inc
index 5c32ea4..10fc500 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_taxonomy.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_taxonomy.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_taxonomy.
+ */
+
+/**
* Argument handler for basic taxonomy tid.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid.inc
index e36c778..f47f08a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_term_node_tid.
+ */
+
/**
* Allow taxonomy term ID(s) as argument.
*
@@ -7,7 +13,7 @@
class views_handler_argument_term_node_tid extends views_handler_argument_many_to_one {
function option_definition() {
$options = parent::option_definition();
- $options['set_breadcrumb'] = array('default' => FALSE);
+ $options['set_breadcrumb'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
index 03b1409..116a4de 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_term_node_tid_depth.
+ */
+
/**
* Argument handler for taxonomy terms with depth.
*
@@ -12,9 +18,9 @@ class views_handler_argument_term_node_tid_depth extends views_handler_argument
$options = parent::option_definition();
$options['depth'] = array('default' => 0);
- $options['break_phrase'] = array('default' => FALSE);
- $options['set_breadcrumb'] = array('default' => FALSE);
- $options['use_taxonomy_term_path'] = array('default' => FALSE);
+ $options['break_phrase'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['set_breadcrumb'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['use_taxonomy_term_path'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
index da71796..2f9dd4e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_term_node_tid_depth_modif.
+ */
+
+/**
* Argument handler for to modify depth for a previous term.
*
* This handler is actually part of the node table and has some restrictions,
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc
index b91b08f..427cf2b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_vocabulary_machine_name.
+ */
+
+/**
* Argument handler to accept a vocabulary machine name.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc
index d79859b..c696640 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_argument_vocabulary_vid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_argument_vocabulary_vid.
+ */
+
+/**
* Argument handler to accept a vocabulary id.
*
* @ingroup views_argument_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_taxonomy.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_taxonomy.inc
index c1ccb6d..48da283 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_taxonomy.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_taxonomy.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_taxonomy.
+ */
+
+/**
* Field handler to provide simple renderer that allows linking to a taxonomy
* term.
*
@@ -25,8 +30,8 @@ class views_handler_field_taxonomy extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_taxonomy'] = array('default' => FALSE);
- $options['convert_spaces'] = array('default' => FALSE);
+ $options['link_to_taxonomy'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['convert_spaces'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_link_edit.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_link_edit.inc
index ae1f0a5..75ab0f8 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_link_edit.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_link_edit.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_term_link_edit.
+ */
+
+/**
* Field handler to present a term edit link.
*
* @ingroup views_field_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc
index 4a6c7a4..4c6362e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_term_node_tid.
+ */
+
+/**
* Field handler to display all taxonomy terms of a node.
*
* @ingroup views_field_handlers
@@ -30,8 +35,8 @@ class views_handler_field_term_node_tid extends views_handler_field_prerender_li
function option_definition() {
$options = parent::option_definition();
- $options['link_to_taxonomy'] = array('default' => TRUE);
- $options['limit'] = array('default' => FALSE);
+ $options['link_to_taxonomy'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['limit'] = array('default' => FALSE, 'bool' => TRUE);
$options['vocabularies'] = array('default' => array());
return $options;
@@ -51,7 +56,6 @@ class views_handler_field_term_node_tid extends views_handler_field_prerender_li
'#type' => 'checkbox',
'#title' => t('Limit terms by vocabulary'),
'#default_value'=> $this->options['limit'],
- '#fieldset' => 'more',
);
$options = array();
@@ -68,7 +72,6 @@ class views_handler_field_term_node_tid extends views_handler_field_prerender_li
'#options' => $options,
'#default_value' => $this->options['vocabularies'],
'#dependency' => array('edit-options-limit' => array(TRUE)),
- '#fieldset' => 'more',
);
parent::options_form($form, $form_state);
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc
index 25f9a7b..7eb868f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_term_node_tid.
+ */
+
+/**
* Filter by term id.
*
* @ingroup views_filter_handlers
@@ -33,10 +38,10 @@ class views_handler_filter_term_node_tid extends views_handler_filter_many_to_on
$options = parent::option_definition();
$options['type'] = array('default' => 'textfield');
- $options['limit'] = array('default' => TRUE);
+ $options['limit'] = array('default' => TRUE, 'bool' => TRUE);
$options['vocabulary'] = array('default' => 0);
$options['hierarchy'] = array('default' => 0);
- $options['error_message'] = array('default' => TRUE);
+ $options['error_message'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
@@ -168,6 +173,11 @@ class views_handler_filter_term_node_tid extends views_handler_filter_many_to_on
$keys = array_keys($options);
$default_value = array_shift($keys);
}
+ // Due to #1464174 there is a chance that array('') was saved in the admin ui.
+ // Let's choose a safe default value.
+ elseif ($default_value == array('')) {
+ $default_value = 'All';
+ }
else {
$copy = $default_value;
$default_value = array_shift($copy);
@@ -336,6 +346,7 @@ class views_handler_filter_term_node_tid extends views_handler_filter_many_to_on
$this->value_options = array();
if ($this->value) {
+ $this->value = array_filter($this->value);
$result = db_select('taxonomy_term_data', 'td')
->fields('td')
->condition('td.tid', $this->value)
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
index 3955269..fe12780 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_term_node_tid_depth.
+ */
+
/**
* Filter handler for taxonomy terms with depth.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc
index 5d2c9f5..062450c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_vocabulary_machine_name.
+ */
+
+/**
* Filter by vocabulary machine name.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
index a02f7b2..2759ee1 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_filter_vocabulary_vid.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_vocabulary_vid.
+ */
+
+/**
* Filter by vocabulary id.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_relationship_node_term_data.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_relationship_node_term_data.inc
index 1855cae..d7fbb4c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_relationship_node_term_data.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_handler_relationship_node_term_data.inc
@@ -1,10 +1,10 @@
<?php
+
/**
* @file
- * Views' relationship handlers.
+ * Definition of views_handler_relationship_node_term_data.
*/
-
/**
* Relationship handler to return the taxonomy terms of nodes.
*
@@ -58,8 +58,8 @@ class views_handler_relationship_node_term_data extends views_handler_relationsh
$def['table'] = 'taxonomy_term_data';
if (!array_filter($this->options['vocabularies'])) {
- $term_node = $this->query->add_table('taxonomy_index', $this->relationship);
- $def['left_table'] = 'taxonomy_index';
+ $taxonomy_index = $this->query->add_table('taxonomy_index', $this->relationship);
+ $def['left_table'] = $taxonomy_index;
$def['left_field'] = 'tid';
$def['field'] = 'tid';
$def['type'] = empty($this->options['required']) ? 'LEFT' : 'INNER';
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
index 17ee634..9c1d81f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
@@ -1,9 +1,13 @@
<?php
+
/**
* @file
- * Taxonomy tid default argument.
+ * Definition of views_plugin_argument_default_taxonomy_tid.
*/
+/**
+ * Taxonomy tid default argument.
+ */
class views_plugin_argument_default_taxonomy_tid extends views_plugin_argument_default {
function init(&$view, &$argument, $options) {
parent::init($view, $argument, $options);
@@ -22,10 +26,10 @@ class views_plugin_argument_default_taxonomy_tid extends views_plugin_argument_d
function option_definition() {
$options = parent::option_definition();
- $options['term_page'] = array('default' => TRUE);
- $options['node'] = array('default' => FALSE);
+ $options['term_page'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['node'] = array('default' => FALSE, 'bool' => TRUE);
$options['anyall'] = array('default' => ',');
- $options['limit'] = array('default' => FALSE);
+ $options['limit'] = array('default' => FALSE, 'bool' => TRUE);
$options['vocabularies'] = array('default' => array());
return $options;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
index c81c619..3a88199 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the 'taxonomy term' argument validator plugin.
@@ -26,7 +27,7 @@ class views_plugin_argument_validate_taxonomy_term extends views_plugin_argument
$options = parent::option_definition();
$options['vocabularies'] = array('default' => array());
$options['type'] = array('default' => 'tid');
- $options['transform'] = array('default' => FALSE);
+ $options['transform'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation.views.inc
index 8189faa..b36c7a7 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation.views.inc
@@ -2,14 +2,9 @@
/**
* @file
+ * Provide views data and handlers for translation.module.
*
- * Provide views data and handlers for translation.module
- */
-
-/**
- * @defgroup views_translation_module translation.module handlers
- *
- * @{
+ * @ingroup views_module_handlers
*/
/**
@@ -25,26 +20,6 @@ function translation_views_data_alter(&$data) {
'field' => 'tnid',
);
- // Language field
- $data['node']['language'] = array(
- 'group' => t('Content translation'),
- 'title' => t('Language'),
- 'help' => t('The language the content is in.'),
- 'field' => array(
- 'handler' => 'views_handler_field_node_language',
- 'click sortable' => TRUE,
- ),
- 'filter' => array(
- 'handler' => 'views_handler_filter_node_language',
- ),
- 'argument' => array(
- 'handler' => 'views_handler_argument_node_language',
- ),
- 'sort' => array(
- 'handler' => 'views_handler_sort',
- ),
- );
-
// The translation ID (nid of the "source" translation)
$data['node']['tnid'] = array(
'group' => t('Content translation'),
@@ -144,7 +119,3 @@ function translation_views_data_alter(&$data) {
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_argument_node_tnid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_argument_node_tnid.inc
index 9dd29a1..61e9eba 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_argument_node_tnid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_argument_node_tnid.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Provide node tnid argument handler.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_link_translate.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_link_translate.inc
index 962b4f9..3e30725 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_link_translate.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_link_translate.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_link_translate.
+ */
+
/**
* Field handler to present a link node translate.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_translation_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_translation_link.inc
index 537ba60..9d50369 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_translation_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_field_node_translation_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_node_translation_link.
+ */
+
/**
* Field handler to present a link to the node.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid.inc
index 6d8cfe7..ed4d6a9 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_node_tnid.
+ */
+
/**
* Filter by whether the node is the original translation.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid_child.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid_child.inc
index f0d953b..51316eb 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid_child.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_filter_node_tnid_child.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_node_tnid_child.
+ */
+
/**
* Filter by whether the node is not the original translation.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_relationship_translation.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_relationship_translation.inc
index b7d2641..509a935 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_relationship_translation.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/translation/views_handler_relationship_translation.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_relationship_translation.
+ */
+
+/**
* Handles relationships for content translation sets and provides multiple
* options.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user.views.inc
index 1d7f161..7077104 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user.views.inc
@@ -1,17 +1,14 @@
<?php
-/**
- * @file
- * Provide views data and handlers for user.module
- */
/**
- * @defgroup views_user_module user.module handlers
+ * @file
+ * Provide views data and handlers for user.module.
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function user_views_data() {
// ----------------------------------------------------------------
@@ -75,6 +72,16 @@ function user_views_data() {
),
);
+ // uid_raw
+ $data['users']['uid_raw'] = array(
+ 'help' => t('The raw numeric user ID.'),
+ 'real field' => 'uid',
+ 'filter' => array(
+ 'title' => t('The user ID'),
+ 'handler' => 'views_handler_filter_numeric',
+ ),
+ );
+
// uid
$data['users']['uid_representative'] = array(
'relationship' => array(
@@ -521,7 +528,7 @@ function user_views_data() {
}
/**
- * Implements hook_views_plugins
+ * Implements hook_views_plugins().
*/
function user_views_plugins() {
return array(
@@ -566,7 +573,3 @@ function user_views_query_substitutions($view) {
global $user;
return array('***CURRENT_USER***' => intval($user->uid));
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_user_uid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_user_uid.inc
index 21785a9..6ab9167 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_user_uid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_user_uid.inc
@@ -1,7 +1,8 @@
<?php
+
/**
* @file
- * Provide user uid argument handler.
+ * Definition of views_handler_argument_user_uid.
*/
/**
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_users_roles_rid.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_users_roles_rid.inc
index 89b3704..31c5814 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_users_roles_rid.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_argument_users_roles_rid.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_argument_users_roles_rid.
+ */
+
/**
* Allow role ID(s) as argument.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user.inc
index f90a6f9..f6b15b5 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_user.
+ */
+
+/**
* Field handler to provide simple renderer that allows linking to a user.
*
* @ingroup views_field_handlers
@@ -18,7 +23,7 @@ class views_handler_field_user extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_to_user'] = array('default' => TRUE);
+ $options['link_to_user'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_language.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_language.inc
index 96b784b..e29da31 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_language.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_language.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_user_language.
+ */
+
+/**
* Views field handler for user language.
*
* @ingroup views_field_handlers
@@ -9,9 +14,12 @@ class views_handler_field_user_language extends views_handler_field_user {
function render_link($data, $values) {
$uid = $this->get_value($values, 'uid');
- if (!empty($this->options['link_to_user']) && user_access('access user profiles') && $uid) {
- $this->options['alter']['make_link'] = TRUE;
- $this->options['alter']['path'] = 'user/' . $uid;
+ if (!empty($this->options['link_to_user'])) {
+ $uid = $this->get_value($values, 'uid');
+ if (user_access('access user profiles') && $uid) {
+ $this->options['alter']['make_link'] = TRUE;
+ $this->options['alter']['path'] = 'user/' . $uid;
+ }
}
if (empty($data)) {
$lang = language_default();
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link.inc
index 36135d5..03b5e0d 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_link.
+ */
+
/**
* Field handler to present a link to the user.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_cancel.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_cancel.inc
index 4debce9..9129c01 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_cancel.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_cancel.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_link_cancel.
+ */
+
/**
* Field handler to present a link to user cancel.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_edit.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_edit.inc
index 4f25bf6..e37feae 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_edit.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_link_edit.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_link_edit.
+ */
+
/**
* Field handler to present a link to user edit.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_mail.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_mail.inc
index 8408e64..82d1933 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_mail.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_mail.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_mail.
+ */
+
/**
* Field handler to provide acess control for the email field.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_name.inc
index 26cdbce..4551451 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_name.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_name.
+ */
+
/**
* Field handler to provide simple renderer that allows using a themed user link.
*
@@ -18,9 +24,9 @@ class views_handler_field_user_name extends views_handler_field_user {
function option_definition() {
$options = parent::option_definition();
- $options['overwrite_anonymous'] = array('default' => FALSE);
+ $options['overwrite_anonymous'] = array('default' => FALSE, 'bool' => TRUE);
$options['anonymous_text'] = array('default' => '', 'translatable' => TRUE);
- $options['format_username'] = array('default' => TRUE);
+ $options['format_username'] = array('default' => TRUE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_permissions.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_permissions.inc
index e20f27f..edc9c44 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_permissions.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_permissions.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_permissions.
+ */
+
/**
* Field handler to provide a list of permissions.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_picture.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_picture.inc
index 940a89a..babbae5 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_picture.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_picture.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_field_user_picture.
+ */
+
+/**
* Field handler to provide simple renderer that allows using a themed user link.
*
* @ingroup views_field_handlers
@@ -37,7 +42,7 @@ class views_handler_field_user_picture extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
- $options['link_photo_to_profile'] = array('default' => TRUE);
+ $options['link_photo_to_profile'] = array('default' => TRUE, 'bool' => TRUE);
$options['image_style'] = array('default' => '');
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_roles.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_roles.inc
index f556107..e6571cd 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_roles.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_field_user_roles.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_user_roles.
+ */
+
/**
* Field handler to provide a list of roles.
*
@@ -43,7 +49,9 @@ class views_handler_field_user_roles extends views_handler_field_prerender_list
}
function add_self_tokens(&$tokens, $item) {
- $tokens['[' . $this->options['id'] . '-role' . ']'] = $item['role'];
- $tokens['[' . $this->options['id'] . '-rid' . ']'] = $item['rid'];
+ if (!empty($item['role'])) {
+ $tokens['[' . $this->options['id'] . '-role' . ']'] = $item['role'];
+ $tokens['[' . $this->options['id'] . '-rid' . ']'] = $item['rid'];
+ }
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_current.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_current.inc
index 14deb0d..5f8fe4c 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_current.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_current.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_user_current.
+ */
+
+/**
* Filter handler for the current user.
*
* @ingroup views_filter_handlers
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_name.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_name.inc
index c885e1b..300607f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_name.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_name.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_handler_filter_user_name.
+ */
+
+/**
* Filter handler for usernames.
*
* @ingroup views_filter_handlers
@@ -69,9 +74,21 @@ class views_handler_filter_user_name extends views_handler_filter_in_operator {
}
$identifier = $this->options['expose']['identifier'];
- $values = drupal_explode_tags($form_state['values'][$identifier]);
+ $input = $form_state['values'][$identifier];
+
+ if ($this->options['is_grouped'] && isset($this->options['group_info']['group_items'][$input])) {
+ $this->operator = $this->options['group_info']['group_items'][$input]['operator'];
+ $input = $this->options['group_info']['group_items'][$input]['value'];
+ }
+
+ $values = drupal_explode_tags($input);
- $uids = $this->validate_user_strings($form[$identifier], $values);
+ if (!$this->options['is_grouped'] || ($this->options['is_grouped'] && ($input != 'All'))) {
+ $uids = $this->validate_user_strings($form[$identifier], $values);
+ }
+ else {
+ $uids = FALSE;
+ }
if ($uids) {
$this->validated_exposed_input = $uids;
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_permissions.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_permissions.inc
index 4cf51db..f999045 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_permissions.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_permissions.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_user_permissions.
+ */
+
/**
* Filter handler for user roles.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_roles.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_roles.inc
index cbf985d..ab9b8a2 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_roles.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_handler_filter_user_roles.inc
@@ -1,4 +1,10 @@
<?php
+
+/**
+ * @file
+ * Definition of views_handler_filter_user_roles.
+ */
+
/**
* Filter handler for user roles.
*
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_current_user.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_current_user.inc
index d79226c..e11c702 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_current_user.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_current_user.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the current user argument default plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_user.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_user.inc
index d14e345..bb10429 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_user.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_default_user.inc
@@ -1,11 +1,12 @@
<?php
+
/**
* @file
* Contains the user from URL argument default plugin.
*/
/**
- * Default argument plugin to extract a user via menu_get_object
+ * Default argument plugin to extract a user via menu_get_object.
*/
class views_plugin_argument_default_user extends views_plugin_argument_default {
function option_definition() {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_validate_user.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_validate_user.inc
index 4dfa4bc..b727094 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_validate_user.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/user/views_plugin_argument_validate_user.inc
@@ -1,6 +1,11 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_argument_validate_user.
+ */
+
+/**
* Validate whether an argument is a valid user.
*
* This supports either numeric arguments (UID) or strings (username) and
@@ -11,7 +16,7 @@ class views_plugin_argument_validate_user extends views_plugin_argument_validate
function option_definition() {
$options = parent::option_definition();
$options['type'] = array('default' => 'uid');
- $options['restrict_roles'] = array('default' => FALSE);
+ $options['restrict_roles'] = array('default' => FALSE, 'bool' => TRUE);
$options['roles'] = array('default' => array());
return $options;
@@ -117,7 +122,7 @@ class views_plugin_argument_validate_user extends views_plugin_argument_validate
}
$this->argument->argument = $account->uid;
- $this->argument->validated_title = isset($account->name) ? check_plain($account->name) : check_plain(variable_get('anonymous', t('Anonymous')));
+ $this->argument->validated_title = check_plain(format_username($account));
return TRUE;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/views.views.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/views.views.inc
index 6aa8a09..2029aa8 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/views.views.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/modules/views.views.inc
@@ -1,17 +1,14 @@
<?php
+
/**
* @file
* Provide views data and handlers that aren't tied to any other module.
- */
-
-/**
- * @defgroup views_views_module miscellaneous handlers
*
- * @{
+ * @ingroup views_module_handlers
*/
/**
- * Implements hook_views_data()
+ * Implements hook_views_data().
*/
function views_views_data() {
$data['views']['table']['group'] = t('Global');
@@ -60,6 +57,14 @@ function views_views_data() {
),
);
+ $data['views']['area_text_custom'] = array(
+ 'title' => t('Unfiltered text'),
+ 'help' => t('Add unrestricted, custom text or markup. This is similar to the custom text field.'),
+ 'area' => array(
+ 'handler' => 'views_handler_area_text_custom',
+ ),
+ );
+
$data['views']['view'] = array(
'title' => t('View area'),
'help' => t('Insert a view inside an area.'),
@@ -86,6 +91,14 @@ function views_views_data() {
);
}
+ $data['views']['combine'] = array(
+ 'title' => t('Combine fields filter'),
+ 'help' => t('Combine two fields together and search by them.'),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_combine',
+ ),
+ );
+
if (module_invoke('ctools', 'api_version', '1.7.1')) {
$data['views']['expression'] = array(
'title' => t('Math expression'),
@@ -99,7 +112,3 @@ function views_views_data() {
return $data;
}
-
-/**
- * @}
- */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access.inc
index b3fbb29..7f80d9b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access.inc
@@ -1,9 +1,20 @@
<?php
/**
- * The base plugin to handle access control.
+ * @file
+ * Definition of views_plugin_access.
+ */
+
+/**
+ * @defgroup views_access_plugins Views access plugins
+ * @{
+ * @todo.
*
- * @ingroup views_access_plugins
+ * @see hook_views_plugins()
+ */
+
+/**
+ * The base plugin to handle access control.
*/
class views_plugin_access extends views_plugin {
/**
@@ -79,3 +90,7 @@ class views_plugin_access extends views_plugin {
return TRUE;
}
}
+
+/**
+ * @}
+ */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_none.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_none.inc
index be563a2..d69fe8e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_none.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_none.inc
@@ -1,7 +1,14 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_access_none.
+ */
+
+/**
* Access plugin that provides no access control at all.
+ *
+ * @ingroup views_access_plugins
*/
class views_plugin_access_none extends views_plugin_access {
function summary_title() {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_perm.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_perm.inc
index c1b473b..7279d7d 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_perm.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_perm.inc
@@ -1,7 +1,14 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_access_perm.
+ */
+
+/**
* Access plugin that provides permission-based access control.
+ *
+ * @ingroup views_access_plugins
*/
class views_plugin_access_perm extends views_plugin_access {
function access($account) {
@@ -42,7 +49,7 @@ class views_plugin_access_perm extends views_plugin_access {
}
}
- asort($perms);
+ ksort($perms);
$form['perm'] = array(
'#type' => 'select',
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_role.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_role.inc
index 2ed1aff..b06812e 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_role.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_access_role.inc
@@ -1,7 +1,14 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_access_role.
+ */
+
+/**
* Access plugin that provides role-based access control.
+ *
+ * @ingroup views_access_plugins
*/
class views_plugin_access_role extends views_plugin_access {
function access($account) {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default.inc
index 7132afa..2b87730 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default.inc
@@ -1,17 +1,16 @@
<?php
+
/**
* @file
- * Contains the fixed argument default plugin.
+ * Definition of views_plugin_argument_default.
*/
/**
- * @defgroup views_argument_default_plugins Views' argument default plugins
+ * @defgroup views_argument_default_plugins Views argument default plugins
* @{
+ * Allow specialized methods of filling in arguments when they aren't provided.
*
- * Allow specialized methods of filling in arguments when they aren't
- * provided.
- *
- * @see hook_views_plugins
+ * @see hook_views_plugins()
*/
/**
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_fixed.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_fixed.inc
index fba63ec..38ede34 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_fixed.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_fixed.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the fixed argument default plugin.
@@ -6,6 +7,8 @@
/**
* The fixed argument default handler.
+ *
+ * @ingroup views_argument_default_plugins
*/
class views_plugin_argument_default_fixed extends views_plugin_argument_default {
function option_definition() {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc
index 53240da..c2fb14f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the php code argument default plugin.
@@ -6,6 +7,8 @@
/**
* Default argument plugin to provide a PHP code block.
+ *
+ * @ingroup views_argument_default_plugins
*/
class views_plugin_argument_default_php extends views_plugin_argument_default {
function option_definition() {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_raw.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_raw.inc
index dcaf22f..385ca91 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_raw.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_default_raw.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the raw value argument default plugin.
@@ -6,11 +7,14 @@
/**
* Default argument plugin to use the raw value from the URL.
+ *
+ * @ingroup views_argument_default_plugins
*/
class views_plugin_argument_default_raw extends views_plugin_argument_default {
function option_definition() {
$options = parent::option_definition();
$options['index'] = array('default' => '');
+ $options['use_alias'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
@@ -26,10 +30,20 @@ class views_plugin_argument_default_raw extends views_plugin_argument_default {
'#options' => range(1, 10),
'#description' => t('The numbering starts from 1, e.g. on the page admin/structure/types, the 3rd path component is "types".'),
);
+ $form['use_alias'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Use path alias'),
+ '#default_value' => $this->options['use_alias'],
+ '#description' => t('Use path alias instead of internal path.'),
+ );
}
function get_argument() {
- if ($arg = arg($this->options['index'])) {
+ $path = NULL;
+ if ($this->options['use_alias']) {
+ $path = drupal_get_path_alias();
+ }
+ if ($arg = arg($this->options['index'], $path)) {
return $arg;
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate.inc
index 19d84cd..07b49ee 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate.inc
@@ -1,22 +1,20 @@
<?php
+
/**
* @file
* Contains the base argument validator plugin.
*/
/**
- * @defgroup views_argument_validate_plugins Views' argument validate plugins
+ * @defgroup views_argument_validate_plugins Views argument validate plugins
* @{
- *
* Allow specialized methods of validating arguments.
*
- * @see hook_views_plugins
+ * @see hook_views_plugins()
*/
/**
* Base argument validator plugin to provide basic functionality.
- *
- * @ingroup views_argument_validate_plugins
*/
class views_plugin_argument_validate extends views_plugin {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_numeric.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_numeric.inc
index 2cfeced..049531b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_numeric.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_numeric.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the numeric argument validator plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_php.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_php.inc
index 00cc9f3..83b22b4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_php.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_argument_validate_php.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the php code argument validator plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache.inc
index 9899d48..4d21701 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache.inc
@@ -1,9 +1,20 @@
<?php
/**
- * The base plugin to handle caching.
+ * @file
+ * Definition of views_plugin_cache.
+ */
+
+/**
+ * @defgroup views_cache_plugins Views cache plugins
+ * @{
+ * @todo.
*
- * @ingroup views_cache_plugins
+ * @see hook_views_plugins()
+ */
+
+/**
+ * The base plugin to handle caching.
*/
class views_plugin_cache extends views_plugin {
/**
@@ -174,6 +185,7 @@ class views_plugin_cache extends views_plugin {
$this->storage['head'] = drupal_add_html_head();
$this->storage['css'] = drupal_add_css();
$this->storage['js'] = drupal_add_js();
+ $this->storage['headers'] = drupal_get_http_header();
}
/**
@@ -190,32 +202,23 @@ class views_plugin_cache extends views_plugin {
// Slightly less simple for CSS:
$css = drupal_add_css();
- $start = isset($this->storage['css']) ? $this->storage['css'] : array();
- $this->storage['css'] = array();
-
- foreach ($css as $file => $data) {
- if (!isset($this->storage['css'][$file])) {
- $this->storage['css'][$file] = $data;
- }
- }
+ $css_start = isset($this->storage['css']) ? $this->storage['css'] : array();
+ $this->storage['css'] = array_diff_assoc($css, $css_start);
- // Get javascript after views renders
+ // Get javascript after/before views renders.
$js = drupal_add_js();
-
- // Get javascript before views renders.
- $start = isset($this->storage['js']) ? $this->storage['js'] : array();
- $this->storage['js'] = array();
-
+ $js_start = isset($this->storage['js']) ? $this->storage['js'] : array();
// If there are any differences between the old and the new javascript then
// store them to be added later.
- if ($diff = array_diff_assoc($js, $start)) {
- $this->storage['js'] = $diff;
- }
+ $this->storage['js'] = array_diff_assoc($js, $js_start);
// Special case the settings key and get the difference of the data.
- if ($settings_diff = array_diff_assoc($js['settings']['data'], $start['settings']['data'])) {
- $this->storage['js']['settings'] = $settings_diff;
- }
+ $settings = isset($js['settings']['data']) ? $js['settings']['data'] : array();
+ $settings_start = isset($js_start['settings']['data']) ? $js_start['settings']['data'] : array();
+ $this->storage['js']['settings'] = array_diff_assoc($settings, $settings_start);
+
+ // Get difference of HTTP headers.
+ $this->storage['headers'] = array_diff_assoc(drupal_get_http_header(), $this->storage['headers']);
}
/**
@@ -232,7 +235,7 @@ class views_plugin_cache extends views_plugin {
}
if (!empty($this->storage['js'])) {
foreach ($this->storage['js'] as $key => $args) {
- if ($key != 'settings') {
+ if ($key !== 'settings') {
drupal_add_js($args['data'], $args);
}
else {
@@ -242,6 +245,11 @@ class views_plugin_cache extends views_plugin {
}
}
}
+ if (!empty($this->storage['headers'])) {
+ foreach ($this->storage['headers'] as $name => $value) {
+ drupal_add_http_header($name, $value);
+ }
+ }
}
function get_results_key() {
@@ -259,7 +267,7 @@ class views_plugin_cache extends views_plugin {
if ($build_info[$index] instanceof SelectQueryInterface) {
$query = clone $build_info[$index];
$query->preExecute();
- $build_info[$index] = (string)$query;
+ $build_info[$index] = (string) $query;
}
}
$key_data = array(
@@ -267,8 +275,9 @@ class views_plugin_cache extends views_plugin {
'roles' => array_keys($user->roles),
'super-user' => $user->uid == 1, // special caching for super user.
'language' => $GLOBALS['language']->language,
+ 'base_url' => $GLOBALS['base_url'],
);
- foreach (array('exposed_info', 'page', 'sort', 'order') as $key) {
+ foreach (array('exposed_info', 'page', 'sort', 'order', 'items_per_page', 'offset') as $key) {
if (isset($_GET[$key])) {
$key_data[$key] = $_GET[$key];
}
@@ -289,6 +298,7 @@ class views_plugin_cache extends views_plugin {
'super-user' => $user->uid == 1, // special caching for super user.
'theme' => $GLOBALS['theme'],
'language' => $GLOBALS['language']->language,
+ 'base_url' => $GLOBALS['base_url'],
);
$this->_output_key = $this->view->name . ':' . $this->display->id . ':output:' . md5(serialize($key_data));
@@ -296,5 +306,8 @@ class views_plugin_cache extends views_plugin {
return $this->_output_key;
}
-
}
+
+/**
+ * @}
+ */
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_none.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_none.inc
index 9cc2757..9927a9d 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_none.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_none.inc
@@ -1,7 +1,14 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_cache_none.
+ */
+
+/**
* Caching plugin that provides no caching at all.
+ *
+ * @ingroup views_cache_plugins
*/
class views_plugin_cache_none extends views_plugin_cache {
function cache_start() { /* do nothing */ }
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_time.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_time.inc
index ac84b1c..25245ea 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_time.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_cache_time.inc
@@ -1,13 +1,22 @@
<?php
/**
+ * @file
+ * Definition of views_plugin_cache_time.
+ */
+
+/**
* Simple caching of query results for Views displays.
+ *
+ * @ingroup views_cache_plugins
*/
class views_plugin_cache_time extends views_plugin_cache {
function option_definition() {
$options = parent::option_definition();
$options['results_lifespan'] = array('default' => 3600);
+ $options['results_lifespan_custom'] = array('default' => 0);
$options['output_lifespan'] = array('default' => 3600);
+ $options['output_lifespan_custom'] = array('default' => 0);
return $options;
}
@@ -16,7 +25,7 @@ class views_plugin_cache_time extends views_plugin_cache {
parent::options_form($form, $form_state);
$options = array(60, 300, 1800, 3600, 21600, 518400);
$options = drupal_map_assoc($options, 'format_interval');
- $options = array(-1 => t('Never cache')) + $options;
+ $options = array(-1 => t('Never cache')) + $options + array('custom' => t('Custom'));
$form['results_lifespan'] = array(
'#type' => 'select',
@@ -25,6 +34,18 @@ class views_plugin_cache_time extends views_plugin_cache {
'#options' => $options,
'#default_value' => $this->options['results_lifespan'],
);
+ $form['results_lifespan_custom'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Seconds'),
+ '#size' => '25',
+ '#maxlength' => '30',
+ '#description' => t('Length of time in seconds raw query results should be cached.'),
+ '#default_value' => $this->options['results_lifespan_custom'],
+ '#process' => array('form_process_select','ctools_dependent_process'),
+ '#dependency' => array(
+ 'edit-cache-options-results-lifespan' => array('custom'),
+ ),
+ );
$form['output_lifespan'] = array(
'#type' => 'select',
'#title' => t('Rendered output'),
@@ -32,14 +53,43 @@ class views_plugin_cache_time extends views_plugin_cache {
'#options' => $options,
'#default_value' => $this->options['output_lifespan'],
);
+ $form['output_lifespan_custom'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Seconds'),
+ '#size' => '25',
+ '#maxlength' => '30',
+ '#description' => t('Length of time in seconds rendered HTML output should be cached.'),
+ '#default_value' => $this->options['output_lifespan_custom'],
+ '#process' => array('form_process_select','ctools_dependent_process'),
+ '#dependency' => array(
+ 'edit-cache-options-output-lifespan' => array('custom'),
+ ),
+ );
+ }
+
+ function options_validate(&$form, &$form_state) {
+ $custom_fields = array('output_lifespan', 'results_lifespan');
+ foreach ($custom_fields as $field) {
+ if ($form_state['values']['cache_options'][$field] == 'custom' && !is_numeric($form_state['values']['cache_options'][$field . '_custom'])) {
+ form_error($form[$field .'_custom'], t('Custom time values must be numeric.'));
+ }
+ }
}
function summary_title() {
- return format_interval($this->options['results_lifespan'], 1) . '/' . format_interval($this->options['output_lifespan'], 1);
+ $results_lifespan = $this->get_lifespan('results');
+ $output_lifespan = $this->get_lifespan('output');
+ return format_interval($results_lifespan, 1) . '/' . format_interval($output_lifespan, 1);
+ }
+
+ function get_lifespan($type) {
+ $lifespan = $this->options[$type . '_lifespan'] == 'custom' ? $this->options[$type . '_lifespan_custom'] : $this->options[$type . '_lifespan'];
+ return $lifespan;
}
function cache_expire($type) {
- if ($lifespan = $this->options[$type . '_lifespan']) {
+ $lifespan = $this->get_lifespan($type);
+ if ($lifespan) {
$cutoff = REQUEST_TIME - $lifespan;
return $cutoff;
}
@@ -49,7 +99,8 @@ class views_plugin_cache_time extends views_plugin_cache {
}
function cache_set_expire($type) {
- if ($lifespan = $this->options[$type . '_lifespan']) {
+ $lifespan = $this->get_lifespan($type);
+ if ($lifespan) {
return time() + $lifespan;
}
else {
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display.inc
index b338043..6be3dcc 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display.inc
@@ -1,11 +1,12 @@
<?php
+
/**
* @file
* Contains the base display plugin.
*/
/**
- * @defgroup views_display_plugins Views' display plugins
+ * @defgroup views_display_plugins Views display plugins
* @{
* Display plugins control how Views interact with the rest of Drupal.
*
@@ -14,14 +15,12 @@
* handle creating Views from an external module source, such as
* a Panels pane, or an insert view, or a CCK field type.
*
- * @see hook_views_plugins
+ * @see hook_views_plugins()
*/
/**
* The default display plugin handler. Display plugins handle options and
* basic mechanisms for different output methods.
- *
- * @ingroup views_display_plugins
*/
class views_plugin_display extends views_plugin {
/**
@@ -42,6 +41,23 @@ class views_plugin_display extends views_plugin {
$this->view = &$view;
$this->display = &$display;
+ // Load extenders as soon as possible.
+ $this->extender = array();
+ $extenders = views_get_enabled_display_extenders();
+ // If you update to the dev version the registry might not be loaded yet.
+ if (!empty($extenders) && class_exists('views_plugin_display_extender')) {
+ foreach ($extenders as $extender) {
+ $plugin = views_get_plugin('display_extender', $extender);
+ if ($plugin) {
+ $plugin->init($this->view, $this);
+ $this->extender[$extender] = $plugin;
+ }
+ else {
+ vpr('Invalid display extender @extender', array('@handler' => $extender));
+ }
+ }
+ }
+
// Track changes that the user should know about.
$changed = FALSE;
@@ -212,31 +228,31 @@ class views_plugin_display extends views_plugin {
$changed = TRUE;
}
+ // Filter groups were allowed to be rewritten without its filters, so
+ // before this update the view was using the default values. To be sure that
+ // the existing view isn't broken, don't use this overridden values but copy
+ // them from the default display. Only do this if the filters are overridden
+ // but the filter_groups are not marked as so.
+ if (!$this->is_default_display() && !$this->options['defaults']['filters'] && $this->options['defaults']['filter_groups']) {
+ // Set filter_groups to be overridden and save the value in the
+ // display_options as well.
+ $this->options['defaults']['filter_groups'] = FALSE;
+ $this->display->display_options['defaults']['filter_groups'] = $this->options['defaults']['filter_groups'];
+ // Copy the filter_groups from the default, and add them to the
+ // display_options as well. $this->default_display is not initialized at
+ // this point.
+ $this->options['filter_groups'] = $this->view->display['default']->handler->options['filter_groups'];
+ $this->display->display_options['filter_groups'] = $this->options['filter_groups'];
+
+ $changed = TRUE;
+ }
+
// Mark the view as changed so the user has a chance to save it.
if ($changed) {
$this->view->changed = TRUE;
}
}
- function construct() {
- // Load extenders as soon as possible
- $this->extender = array();
- $extenders = views_get_enabled_display_extenders();
- // If you update to the dev version the registry might not be loaded yet.
- if (!empty($extenders) && class_exists('views_plugin_display_extender')) {
- foreach ($extenders as $extender) {
- $data = views_fetch_plugin_data('display_extender', $extender);
- if (isset($data['handler']) && class_exists($data['handler'])) {
- $this->extender[$extender] = new $data['handler']($this->view, $this);
- }
- else {
- vpr('Invalid display extender @extender', array('@handler' => $extender));
- }
- }
- }
- parent::construct();
- }
-
function destroy() {
parent::destroy();
@@ -395,9 +411,12 @@ class views_plugin_display extends views_plugin {
'css_class' => array('css_class'),
'use_ajax' => array('use_ajax'),
'hide_attachment_summary' => array('hide_attachment_summary'),
+ 'hide_admin_links' => array('hide_admin_links'),
'group_by' => array('group_by'),
'query' => array('query'),
'use_more' => array('use_more', 'use_more_always', 'use_more_text'),
+ 'use_more_always' => array('use_more', 'use_more_always', 'use_more_text'),
+ 'use_more_text' => array('use_more', 'use_more_always', 'use_more_text'),
'link_display' => array('link_display', 'link_url'),
// Force these to cascade properly.
@@ -421,6 +440,7 @@ class views_plugin_display extends views_plugin {
'sorts' => array('sorts'),
'arguments' => array('arguments'),
'filters' => array('filters', 'filter_groups'),
+ 'filter_groups' => array('filters', 'filter_groups'),
);
// If the display cannot use a pager, then we cannot default it.
@@ -456,6 +476,7 @@ class views_plugin_display extends views_plugin {
'display_description' => FALSE,
'use_ajax' => TRUE,
'hide_attachment_summary' => TRUE,
+ 'hide_admin_links' => FALSE,
'pager' => TRUE,
'pager_options' => TRUE,
'use_more' => TRUE,
@@ -515,6 +536,10 @@ class views_plugin_display extends views_plugin {
'default' => FALSE,
'bool' => TRUE,
),
+ 'hide_admin_links' => array(
+ 'default' => FALSE,
+ 'bool' => TRUE,
+ ),
// This is legacy code:
// Items_per/offset/use_pager is moved to the pager plugin
// but the automatic update path needs this items defined, so don't remove it.
@@ -535,7 +560,8 @@ class views_plugin_display extends views_plugin {
),
'use_more_always' => array(
'default' => FALSE,
- 'bool' => FALSE,
+ 'bool' => TRUE,
+ 'export' => 'export_option_always',
),
'use_more_text' => array(
'default' => 'more',
@@ -686,7 +712,7 @@ class views_plugin_display extends views_plugin {
}
foreach ($this->extender as $extender) {
- $extender->option_definition($options);
+ $extender->options_definition_alter($options);
}
return $options;
@@ -759,6 +785,10 @@ class views_plugin_display extends views_plugin {
}
}
+ function get_url() {
+ return $this->view->get_url();
+ }
+
/**
* Check to see if the display needs a breadcrumb
*
@@ -944,9 +974,19 @@ class views_plugin_display extends views_plugin {
/**
* Retrieve a list of fields for the current display with the
- * relationship associated if it exists.
+ * relationship associated if it exists.
+ *
+ * @param $groupable_only
+ * Return only an array of field labels from handler that return TRUE
+ * from use_string_group_by method.
*/
function get_field_labels() {
+ // Use func_get_arg so the function signature isn't amended
+ // but we can still pass TRUE into the function to filter
+ // by groupable handlers.
+ $args = func_get_args();
+ $groupable_only = isset($args[0]) ? $args[0] : FALSE;
+
$options = array();
foreach ($this->get_handlers('relationship') as $relationship => $handler) {
if ($label = $handler->label()) {
@@ -958,6 +998,10 @@ class views_plugin_display extends views_plugin {
}
foreach ($this->get_handlers('field') as $id => $handler) {
+ if ($groupable_only && !$handler->use_string_group_by()) {
+ // Continue to next handler if it's not groupable.
+ continue;
+ }
if ($label = $handler->label()) {
$options[$id] = $label;
}
@@ -1176,6 +1220,14 @@ class views_plugin_display extends views_plugin {
'desc' => t('Change whether or not to display attachments when displaying a contextual filter summary.'),
);
}
+ if (!isset($this->definition['contextual links locations']) || !empty($this->definition['contextual links locations'])) {
+ $options['hide_admin_links'] = array(
+ 'category' => 'other',
+ 'title' => t('Hide contextual links'),
+ 'value' => $this->get_option('hide_admin_links') ? t('Yes') : t('No'),
+ 'desc' => t('Change whether or not to display contextual links for this view.'),
+ );
+ }
$pager_plugin = $this->get_plugin('pager');
if (!$pager_plugin) {
@@ -1443,18 +1495,26 @@ class views_plugin_display extends views_plugin {
'#default_value' => $this->get_option('hide_attachment_summary') ? 1 : 0,
);
break;
+ case 'hide_admin_links':
+ $form['#title'] .= t('Hide contextual links on this view.');
+ $form['hide_admin_links'] = array(
+ '#type' => 'radios',
+ '#options' => array(1 => t('Yes'), 0 => t('No')),
+ '#default_value' => $this->get_option('hide_admin_links') ? 1 : 0,
+ );
+ break;
case 'use_more':
$form['#title'] .= t('Add a more link to the bottom of the display.');
$form['use_more'] = array(
'#type' => 'checkbox',
'#title' => t('Create more link'),
- '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above. You can override the url at the link display setting."),
+ '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' section under advanced. You can override the url at the link display setting."),
'#default_value' => $this->get_option('use_more'),
);
$form['use_more_always'] = array(
'#type' => 'checkbox',
- '#title' => t('Do not display more link unless there is more content'),
- '#description' => t("This will display the more link even if there are no more items to display."),
+ '#title' => t("Display 'more' link only if there is more content"),
+ '#description' => t("Leave this unchecked to display the 'more' link even if there are no more items to display."),
'#default_value' => !$this->get_option('use_more_always'),
'#dependency' => array(
'edit-use-more' => array(TRUE),
@@ -2292,6 +2352,7 @@ class views_plugin_display extends views_plugin {
break;
case 'use_ajax':
case 'hide_attachment_summary':
+ case 'hide_admin_links':
$this->set_option($section, (bool)$form_state['values'][$section]);
break;
case 'use_more':
@@ -2414,6 +2475,13 @@ class views_plugin_display extends views_plugin {
/**
* Flip the override setting for the given section.
+ *
+ * @param string $section
+ * Which option should be marked as overridden, for example "filters".
+ * @param bool $new_state
+ * Select the new state of the option.
+ * - TRUE: Revert to default.
+ * - FALSE: Mark it as overridden.
*/
function set_override($section, $new_state = NULL) {
$options = $this->defaultable_sections($section);
@@ -2584,6 +2652,10 @@ class views_plugin_display extends views_plugin {
foreach ($this->extender as $extender) {
$extender->pre_execute();
}
+
+ if ($this->get_option('hide_admin_links')) {
+ $this->view->hide_admin_links = TRUE;
+ }
}
/**
@@ -2666,13 +2738,29 @@ class views_plugin_display extends views_plugin {
/**
* Check if the provided identifier is unique.
+ *
+ * @param string $id
+ * The id of the handler which is checked.
+ * @param string $identifier
+ * The actual get identifier configured in the exposed settings.
+ *
+ * @return bool
+ * Returns whether the identifier is unique on all handlers.
+ *
*/
function is_identifier_unique($id, $identifier) {
foreach (views_object_types() as $type => $info) {
foreach ($this->get_handlers($type) as $key => $handler) {
if ($handler->can_expose() && $handler->is_exposed()) {
- if ($id != $key && $identifier == $handler->options['expose']['identifier']) {
- return FALSE;
+ if ($handler->is_a_group()) {
+ if ($id != $key && $identifier == $handler->options['group_info']['identifier']) {
+ return FALSE;
+ }
+ }
+ else {
+ if ($id != $key && $identifier == $handler->options['expose']['identifier']) {
+ return FALSE;
+ }
}
}
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_attachment.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_attachment.inc
index d05d1e6..91c8d1f 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_attachment.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_attachment.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the attachment display plugin.
@@ -19,10 +20,10 @@ class views_plugin_display_attachment extends views_plugin_display {
$options['displays'] = array('default' => array());
$options['attachment_position'] = array('default' => 'before');
- $options['inherit_arguments'] = array('default' => TRUE);
- $options['inherit_exposed_filters'] = array('default' => FALSE);
- $options['inherit_pager'] = array('default' => FALSE);
- $options['render_pager'] = array('default' => FALSE);
+ $options['inherit_arguments'] = array('default' => TRUE, 'bool' => TRUE);
+ $options['inherit_exposed_filters'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['inherit_pager'] = array('default' => FALSE, 'bool' => TRUE);
+ $options['render_pager'] = array('default' => FALSE, 'bool' => TRUE);
return $options;
}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_block.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_block.inc
index 4338d75..c903a9b 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_block.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_block.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the block display plugin.
@@ -30,10 +31,10 @@ class views_plugin_display_block extends views_plugin_display {
if (empty($desc)) {
if ($this->display->display_title == $this->definition['title']) {
- $desc = t('View: @view', array('@view' => $this->view->get_human_name()));
+ $desc = t('View: !view', array('!view' => $this->view->get_human_name()));
}
else {
- $desc = t('View: @view: @display', array('@view' => $this->view->get_human_name(), '@display' => $this->display->display_title));
+ $desc = t('View: !view: !display', array('!view' => $this->view->get_human_name(), '!display' => $this->display->display_title));
}
}
return array(
@@ -85,11 +86,6 @@ class views_plugin_display_block extends views_plugin_display {
'value' => views_ui_truncate($block_description, 24),
);
- $cache_type = $this->get_option('block_caching');
- if (empty($cache_type)) {
- $cache_type = DRUPAL_NO_CACHE;
- }
-
$types = $this->block_caching_modes();
$options['block_caching'] = array(
'category' => 'other',
@@ -129,7 +125,6 @@ class views_plugin_display_block extends views_plugin_display {
* Provide the default form for setting options.
*/
function options_form(&$form, &$form_state) {
- parent::options_form($form, $form_state);
// It is very important to call the parent function here:
parent::options_form($form, $form_state);
@@ -152,6 +147,14 @@ class views_plugin_display_block extends views_plugin_display {
'#default_value' => $this->get_cache_type(),
);
break;
+ case 'exposed_form_options':
+ $this->view->init_handlers();
+ if (!$this->uses_exposed() && parent::uses_exposed()) {
+ $form['exposed_form_options']['warning'] = array(
+ '#weight' => -10,
+ '#markup' => '<div class="messages warning">' . t('Exposed filters in block displays require "Use AJAX" to be set to work correctly.') . '</div>',
+ );
+ }
}
}
@@ -179,14 +182,13 @@ class views_plugin_display_block extends views_plugin_display {
/**
* Block views use exposed widgets only if AJAX is set.
*/
- function uses_exposed() {
- if ($this->use_ajax()) {
- return parent::uses_exposed();
+ function uses_exposed() {
+ if ($this->use_ajax()) {
+ return parent::uses_exposed();
+ }
+ return FALSE;
}
- return FALSE;
- }
-
/**
* Update the block delta when you change the machine readable name of the display.
*/
@@ -204,16 +206,21 @@ class views_plugin_display_block extends views_plugin_display {
$hashes[$md5_delta] = $delta;
$delta = $md5_delta;
}
- db_update('block')
- ->fields(array('delta' => $delta))
- ->condition('delta', $old_delta)
- ->execute();
+
+ // Maybe people don't have block module installed, so let's skip this.
+ if (db_table_exists('block')) {
+ db_update('block')
+ ->fields(array('delta' => $delta))
+ ->condition('delta', $old_delta)
+ ->execute();
+ }
// Update the hashes if needed.
if ($hashes != $old_hashes) {
variable_set('views_block_hashes', $hashes);
}
}
+
/**
* Save the block cache setting in the blocks table if this block allready
* exists in the blocks table. Dirty fix untill http://drupal.org/node/235673 gets in.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_default.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_default.inc
index d46a126..4b1fc08 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_default.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_default.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the default display plugin.
@@ -28,6 +29,7 @@ class views_plugin_display_default extends views_plugin_display {
* @code
* $view->set_arguments($args);
* $view->build('default'); // Build the query
+ * $view->pre_execute(); // Pre-execute the query.
* $view->execute(); // Run the query
* $output = $view->render(); // Render the view
* @endcode
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_embed.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_embed.inc
new file mode 100644
index 0000000..8b25cf9
--- /dev/null
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_embed.inc
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @file
+ * Contains the embed display plugin.
+ */
+
+/**
+ * The plugin that handles an embed display.
+ *
+ * @ingroup views_display_plugins
+ */
+class views_plugin_display_embed extends views_plugin_display {
+ // This display plugin does nothing apart from exist.
+}
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_extender.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_extender.inc
index c2cc488..08e981a 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_extender.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_extender.inc
@@ -1,9 +1,17 @@
<?php
+
+/**
+ * @file
+ * Definition of views_plugin_display_extender.
+ */
+
/**
- * @todo
+ * @todo.
+ *
+ * @ingroup views_display_plugins
*/
class views_plugin_display_extender extends views_plugin {
- function __construct(&$view, &$display) {
+ function init(&$view, &$display) {
$this->view = $view;
$this->display = $display;
}
@@ -12,7 +20,7 @@ class views_plugin_display_extender extends views_plugin {
/**
* Provide a form to edit options for this plugin.
*/
- function options_definition(&$options) { }
+ function options_definition_alter(&$options) { }
/**
* Provide a form to edit options for this plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_feed.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_feed.inc
index 3b07158..37d0ae4 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_feed.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_feed.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the feed display plugin.
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_page.inc b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_page.inc
index 77f2100..cd7fe37 100644
--- a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_page.inc
+++ b/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_display_page.inc
@@ -1,4 +1,5 @@
<?php
+
/**
* @file
* Contains the page display plugin.
@@ -217,6 +218,10 @@ class views_plugin_display_page extends views_plugin_display {
return drupal_not_found();
}
+ if (!empty($this->view->build_info['denied'])) {
+ return drupal_access_denied();
+ }
+
$this->view->get_breadcrumb(TRUE);
@@ -371,7 +376,6 @@ class views_plugin_display_page extends views_plugin_display {
);
}
$form['menu']['weight'] = array(
- '#suffix' => '</div>',
'#title' => t('Weight'),
'#type' => 'textfield',
'#default_value' => isset($menu['weight']) ? $menu['weight'] : 0,
@@ -380,6 +384,7 @@ class views_plugin_display_page extends views_plugin_display {
);
$form['menu']['context'] = array(
'#title' => t('Context'),
+ '#suffix' => '</div>',
'#type' => 'checkbox',
'#default_value' => !empty($menu['context']),
'#description' => t('Displays the link in contextual links'),
@@ -471,9 +476,8 @@ class views_plugin_display_page extends views_plugin_display {
form_error($form['path'], t('"%" may not be used for the first segment of a path.'));
}
- // automatically remove '/' from path.
- $form_state['values']['path'] = trim($form_state['values']['path'], '/');
-
+ // automatically remove '/' and trailing whitespace from path.
+ $form_state['values']['path'] = trim($form_state['values']['path'], '/ ');
break;
case 'menu':
$path = $this->get_option('path');
diff --git a/kolab.org/www/drupal-7.15/sites/all/modules/views/plugins/views_plugin_exposed