Testimonials Widget - Version 2.13.0

Version Description

= 2.12.0 =

  • CSS and JavaScript renaming
    • bottom_text renamed to bottom-text
    • close_quote renamed to close-quote
    • display_none renamed to display-none
    • join_location renamed to join-location
    • join_title renamed to join-title
    • open_quote renamed to open-quote
    • testimonialswidget_testimonial renamed to testimonials-widget-testimonial
    • testimonialswidget_testimonials renamed to testimonials-widget-testimonials

= 2.11.3 =

  • Correct filter name testimonials_widget_next_posts_link to testimonials_widget_next_posts_link_text

= 2.11.0 =

  • CSS class names are simplified. For the most part, other than testimonialswidget_testimonial remove testimonialswidget_ from the CSS class name in your CSS customizations.
    • Ex: .testimonialswidget_join becomes .join
    • Ex: .testimonialswidget_author becomes .author
  • Testimonials are now formatted using blockquote than q for HTML5 compliance. If you need q tag formatting, enable it at WP Admin > Testimonials > Settings, Compatibility & Reset tab
    • cite is now div.credit

= 2.8.0 =

  • Deprecated
    • hide_author now hide_source
  • Removed filters testimonials_widget_options_update, testimonials_widget_options_form
    • Use testimonials_widget_validate_settings and testimonials_widget_settings instead
  • Renamed variable and related class widget_text to bottom_text

= 2.7.3 =

  • Quotes are no longer handled via q, p:before, or p:after CSS. It's handled via .testimonialswidget_testimonial .testimonialswidget_open_quote:before and .testimonialswidget_testimonial .testimonialswidget_close_quote:after
  • This change was made to keep consistency in how quotes were managed and to reduce the number of exception cases. In the end, this is simpler.

= 2.7.0 =

  • Quotes with keep_whitespace=true aren't applied via CSS .testimonialswidget_testimonial q tag anymore, but .testimonialswidget_testimonial q p:first-child:before and .testimonialswidget_testimonial q p:last-child:after
  • Widget testimonial p tags are no longer CSS display: inline, display: block as expected

= 2.4.1 =

  • Paging is on by default, except for widgets

= 2.0.0 =

  • CSS
    • Class testimonialswidget_company replaces testimonialswidget_source
    • Class testimonialswidget_source replaces testimonialswidget_author
    • The tighten widget display up, p tags within q are displayed inline.
  • JavaScript
    • The JavaScript for rotating testimonials is moved to the footer. As such, your theme requires wp_footer() in the footer.
  • Shortcode options
    • hide_source replaced by hide_url
    • hide_author replaced by hide_source
  • Testimonials
    • Migration from the old custom table to new custom post type is automatically done. Import might take a few moments to complete.
    • Company, URL and email details are attempted to be identified and placed properly based upon the original author and source fields. The company is "guessed" from the author field when there's a ", " or " of " context. If the source is an email, it's saved as such. Otherwise, it's assumed to be a URL.
    • Public testimonials are saved as Published. Non-public testimonials are marked as Private.
  • Widget options
    • "Show author" and "Show source" options are replaced by "Hide source" and "Hide URL" respectively. There's no backwards compatibility for these changes.
    • Default min-height is now 250px than 150px.
Download this release

Release Info

Developer comprock
Plugin Icon wp plugin Testimonials Widget
Version 2.13.0
Comparing to
See all releases

Code changes from version 2.12.8 to 2.13.0

.travis.yml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ language:
2
+ - php
3
+
4
+ php:
5
+ - 5.3
6
+ # - 5.4
7
+
8
+ env:
9
+ - WP_VERSION=master WP_MULTISITE=1
10
+ # - WP_VERSION=master WP_MULTISITE=0
11
+ # - WP_VERSION=3.5.2 WP_MULTISITE=1
12
+ # - WP_VERSION=3.5.2 WP_MULTISITE=0
13
+
14
+ before_install:
15
+ - git submodule update --init --recursive
16
+
17
+ before_script:
18
+ - pear config-set auto_discover 1
19
+ - pear install PHP_CodeSniffer
20
+ - pear install phpunit/phpcpd
21
+ - pear channel-discover pear.phpmd.org
22
+ - pear channel-discover pear.pdepend.org
23
+ - pear install phpmd/PHP_PMD
24
+ - phpenv rehash
25
+ - git clone git://github.com/mrchrisadams/WordPress-Coding-Standards.git $(pear config-get php_dir)/PHP/CodeSniffer/Standards/WordPress
26
+ # - export WP_TESTS_DIR=/tmp/wordpress-tests/
27
+ # - bash ci/bin/install-wp-tests.sh wordpress_test root '' ${WP_VERSION}
28
+ - export PWD=`pwd`
29
+ - export DIR_CI="${PWD}/ci"
30
+
31
+ script:
32
+ - find . -name '*.php' -exec php -l {} \;
33
+ - phpcs -s -n --standard=${DIR_CI}/phpcs.travis.ruleset.xml .
34
+ - phpcpd .
35
+ - phpmd . --exclude class-redrokk-metabox-class.php text ${DIR_CI}/phpmd.ruleset.xml
36
+ # - phpunit
37
+
38
+ notifications:
39
+ email:
40
+ on_failure: change
API.md ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # API Testimonials Widget
2
+
3
+ The [Testimonials Widget plugin](http://wordpress.org/plugins/testimonials-widget/) comes with its own set of actions and filters, as described below.
4
+
5
+ ## Actions
6
+
7
+ None at this time.
8
+
9
+ ## Filters
10
+
11
+ ### Frontend
12
+
13
+ * `testimonials_widget_cite_html`
14
+
15
+ Adjust cite contents. [example](https://aihrus.zendesk.com/entries/24012926-How-do-I-add-the-date-to-the-cite-)
16
+
17
+ * `testimonials_widget_content_more`
18
+
19
+ More content ellipsis. [example](https://aihrus.zendesk.com/entries/23691577-How-do-I-change-the-more-content-ellipsis-)
20
+
21
+ * `testimonials_widget_get_testimonial_html`
22
+
23
+ Customize testimonial contents and layout within `get_testimonial_html`. Useful for moving processed parts around than regenerating everything from scratch.. [example](https://aihrus.zendesk.com/entries/23693433-How-do-I-use-filter-testimonials-widget-get-testimonial-html-)
24
+
25
+ * `testimonials_widget_gravatar_size`
26
+
27
+ Change the Gravatar size. [example](https://aihrus.zendesk.com/entries/23679271-How-do-I-change-the-Gravatar-size-)
28
+
29
+ * `testimonials_widget_image_size`
30
+
31
+ Change the image size. [example](https://aihrus.zendesk.com/entries/23677122-How-do-I-change-the-image-size-)
32
+
33
+ * `testimonials_widget_next_posts_link_text`
34
+
35
+ Configure Next page indicator. [example](https://aihrus.zendesk.com/entries/23691587-How-do-I-configure-Next-and-Previous-page-indicators-)
36
+
37
+ * `testimonials_widget_previous_posts_link_text`
38
+
39
+ Configure Previous page indicator. [example](https://aihrus.zendesk.com/entries/23691587-How-do-I-configure-Next-and-Previous-page-indicators-)
40
+
41
+ * `testimonials_widget_testimonial_html_single_content`
42
+
43
+ Customize single view content before appending filter `testimonials_widget_testimonial_html_single` results. [example](https://gist.github.com/michael-cannon/5833657)
44
+
45
+ * `testimonials_widget_testimonial_html_single`
46
+
47
+ Customize testimonials single view output post `get_testimonial_html`. [example](https://aihrus.zendesk.com/entries/23679391-How-do-I-customize-my-testimonial-single-output-)
48
+
49
+ * `testimonials_widget_testimonial_html`
50
+
51
+ Customize testimonials list and widget output post `get_testimonial_html`. [example](https://aihrus.zendesk.com/entries/23693413-How-do-I-customize-my-testimonial-list-and-widget-output-)
52
+
53
+ * `testimonials_widget_testimonials_css`
54
+
55
+ Alter dynamically generated CSS
56
+
57
+ * `testimonials_widget_testimonials_js`
58
+
59
+ Alter dynamically generated JavaScript. [example](https://gist.github.com/michael-cannon/5833678)
60
+
61
+ * `testimonials_widget_wp_pagenavi`
62
+
63
+ Configure WP-PageNavi specifically for Testimonial Widgets. [example](https://aihrus.zendesk.com/entries/23679361-How-do-I-get-page-numbers-for-pagination-)
64
+
65
+
66
+ ### Backend
67
+
68
+ * `testimonials_widget_cache_get`
69
+
70
+ Caching grabber. [example](https://gist.github.com/michael-cannon/5833685)
71
+
72
+ * `testimonials_widget_cache_set`
73
+
74
+ Caching setter. [example](https://gist.github.com/michael-cannon/5833685)
75
+
76
+ * `testimonials_widget_columns`
77
+
78
+ Customize testimonial posts column headers. [example](https://gist.github.com/michael-cannon/5833693)
79
+
80
+ * `testimonials_widget_content`
81
+
82
+ Testimonial content parser helper. [example](https://gist.github.com/michael-cannon/5833700)
83
+
84
+ * `testimonials_widget_data`
85
+
86
+ Process testimonials data before display processing. [example](https://aihrus.zendesk.com/entries/23692056-How-do-I-filter-the-testimonials-data-before-display-processing-)
87
+
88
+ * `testimonials_widget_defaults_single`
89
+
90
+ Create a global or central Testimonials Widget configuration for single view. [example](https://aihrus.zendesk.com/entries/23679071-How-do-I-add-testimonial-excerpt-to-single-view-). [example](https://aihrus.zendesk.com/entries/23679111-How-do-I-show-the-expert-and-hide-the-image-in-the-testimonial-single-view-)
91
+
92
+ * `testimonials_widget_defaults`
93
+
94
+ Create a global or central Testimonials Widget configuration. [example](https://aihrus.zendesk.com/entries/23691607-How-do-I-use-filter-testimonials-widget-defaults-)
95
+
96
+ * `testimonials_widget_meta_box`
97
+
98
+ Modify Testimonial Data fields. [example](https://gist.github.com/michael-cannon/5833704)
99
+
100
+ * `testimonials_widget_posts_custom_column`
101
+
102
+ Customize testimonial posts column contents. [example](https://gist.github.com/michael-cannon/5833716)
103
+
104
+ * `testimonials_widget_query_args`
105
+
106
+ Alter WP_Query arguments for testimonial selection. [example](https://gist.github.com/michael-cannon/5833740)
107
+
108
+ * `testimonials_widget_sections`
109
+
110
+ Alter section options. [example](https://gist.github.com/michael-cannon/5833757)
111
+
112
+ * `testimonials_widget_settings`
113
+
114
+ Alter setting options. [example](https://gist.github.com/michael-cannon/5833757)
115
+
116
+ * `testimonials_widget_validate_settings`
117
+
118
+ Validate settings helper. [example](https://gist.github.com/michael-cannon/5833768)
119
+
120
+ * `testimonials_widget_version`
121
+
122
+ Version tracking for settings. [example](https://gist.github.com/michael-cannon/5833774)
123
+
124
+ * `testimonials_widget_widget_options`
125
+
126
+ Alters displayed widget options. [example](https://gist.github.com/michael-cannon/5833782)
127
+
128
+
129
+ ## Need More?
130
+
131
+ Further examples and more can be found by reading and searching the [Testimonials Widget Knowledge Base](https://aihrus.zendesk.com/categories/20104507-Testimonials-Widget) and [source code](https://github.com/michael-cannon/testimonials-widget).
CONTRIBUTING.md ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CONTRIBUTE Testimonials Widget
2
+
3
+ Community made patches, localisation, bug reports and contributions are very welcome and help make Testimonials Widget the #1 testimonials plugin for WordPress.
4
+
5
+ When contributing please ensure you follow the guidelines below so that we can keep on top of things.
6
+
7
+ __Please Note:__ GitHub is for bug reports and contributions only - if you have a support question or a request for a customisation don't post here, go to our [Support Forum](http://wordpress.org/support/plugin/testimonials-widget) instead.
8
+
9
+ For localization, please refer to [How do I change Testimonials Widget text labels?](https://aihrus.zendesk.com/entries/23691557-How-do-I-change-Testimonials-Widget-text-labels-), though bugs with strings that can't be translated are welcome here.
10
+
11
+ ## Getting Started
12
+
13
+ * Submit a ticket for your issue, assuming one does not already exist.
14
+ * Raise it on our [Issue Tracker](https://github.com/michael-cannon/testimonials-widget/issues)
15
+ * Clearly describe the issue including steps to reproduce the bug.
16
+ * Make sure you fill in the earliest version that you know has the issue as well as the version of WordPress you're using.
17
+
18
+ ## Making Changes
19
+
20
+ * Fork the repository on GitHub
21
+ * Make the changes to your forked repository
22
+ * Ensure you stick to the [WordPress Coding Standards](http://codex.wordpress.org/WordPress_Coding_Standards) and have properly documented any new functions.
23
+ * When committing, reference your issue (if present) and include a note about the fix.
24
+ * Push the changes to your fork and submit a pull request to the 'master' branch of the Testimonials Widget repository.
25
+
26
+ ## Code Documentation
27
+
28
+ * Try to ensure that every Testimonials Widget function is documented well and follows the standards set by phpDoc.
29
+ * An example function, by Yoast, can be found [here](https://gist.github.com/jdevalk/5574677)
30
+ * Please make sure that every function is documented so that when we update our API Documentation things don't go awry!
31
+ * Finally, please use tabs and not spaces. The tab indent size should be 4 for all Testimonials Widget code.
32
+
33
+ At this point you're waiting on us to merge your pull request. We'll review all pull requests, and make suggestions and changes if necessary.
34
+
35
+
36
+ ## Additional Resources
37
+ * [Testimonials Widget API](https://github.com/michael-cannon/testimonials-widget/blob/master/API.md)
38
+ * [General GitHub Documentation](http://help.github.com/)
39
+ * [GitHub Pull Request documentation](http://help.github.com/send-pull-requests/)
README.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # README Testimonials Widget WordPress Plugin
2
+
3
+ [![Build Status](https://travis-ci.org/michael-cannon/testimonials-widget.png?branch=master)](https://travis-ci.org/michael-cannon/testimonials-widget)
4
+
5
+ ## Welcome to the Testimonials Widget Github repository
6
+
7
+ Testimonials Widget plugin allows you to display random or selected portfolio, quotes, reviews, showcases, or text with images on your WordPress blog.
8
+
9
+ While the documentation for the [Testimonials Widget plugin](http://wordpress.org/plugins/testimonials-widget/) can be found at WordPress.org Plugin Directory, here you can browse the source of the project, find and discuss open issues and, even [contribute yourself](https://github.com/michael-cannon/testimonials-widget/blob/master/CONTRIBUTING.md).
10
+
11
+ ## Installation
12
+
13
+ Here's a [guide on how to install Testimonials Widget in your WordPress site](http://wordpress.org/plugins/testimonials-widget/installation/). If you want to run the Git version though, you have two options:
14
+
15
+ * You can clone the GitHub repository: https://github.com/michael-cannon/testimonials-widget.git
16
+ * Download it directly as a ZIP file: https://github.com/michael-cannon/testimonials-widget/archive/master.zip
17
+
18
+ This will download the latest development version of Testimonials Widget by Michael Cannon. While this version is usually stable, it is not recommended for use in a production environment.
19
+
20
+ ## Bugs
21
+
22
+ If you find an issue, [let us know here](https://github.com/michael-cannon/testimonials-widget/issues/new)!
23
+
24
+ ## Support
25
+
26
+ This is a developer's portal for Testimonials Widget by Michael Cannon and should not be used for support. Please visit the [Testimonials Widget Knowledge Base](https://aihrus.zendesk.com/categories/20104507-Testimonials-Widget) for frequently asked questions, offering ideas, or getting support.
27
+
28
+ ## Contributions
29
+
30
+ Anyone is welcome to contribute to Testimonials Widget. Please [read the guidelines](https://github.com/michael-cannon/testimonials-widget/blob/master/CONTRIBUTING.md) for contributing to this repository.
31
+
32
+ There are various ways you can contribute:
33
+
34
+ * [Raise an issue](https://github.com/michael-cannon/testimonials-widget/issues) on GitHub.
35
+ * Send us a Pull Request with your bug fixes and/or new features.
36
+ * [Translate Testimonials Widget by Michael Cannon into different languages](https://aihrus.zendesk.com/entries/23691557-How-do-I-change-Testimonials-Widget-text-labels-).
37
+ * Provide feedback and [suggestions on enhancements](https://github.com/michael-cannon/testimonials-widget/issues?direction=desc&labels=Enhancement&page=1&sort=created&state=open).
38
+
39
+ ## Thank You
40
+
41
+ * Thank you [WordPress SEO by Yoast](https://github.com/jdevalk/wordpress-seo/blob/master/README.md) for this README.md and like inspirations.
TODO.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ # TODO Testimonials Widget
2
+
3
+ Is there something you want done? Write it up on the [support forums](http://wordpress.org/support/plugin/testimonials-widget) and then [donate](http://aihr.us/about-aihrus/donate/) or [write an awesome testimonial](http://aihr.us/about-aihrus/testimonials/add-testimonial/).
4
+
5
+ * BUG [IE8 + Google Font Issue](http://wordpress.org/support/topic/ie8-google-font-issue)
6
+ * Disengage from hard coded wp-content path
changelog.txt CHANGED
@@ -4,6 +4,31 @@
4
 
5
  = trunk =
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  = 2.12.8 =
8
  * Add filter `testimonials_widget_cite_html` to adjust cite contents - Thank you [Dimitrios](http://visualweb.gr/) for the suggestion
9
  * BUGFIX Warning: Illegal string offset 'exclude'
4
 
5
  = trunk =
6
 
7
+ = 2.13.0 =
8
+ * Add PHP Copy and Paste Detector
9
+ * Add PHP run-time checks
10
+ * Add Travis CI with PHP Code Sniffer
11
+ * Add developer README and CONTRIBUTING docs
12
+ * BUGFIX DOM Element error on last testimonial rotation
13
+ * BUGFIX Data delete on uninstall not firing
14
+ * BUGFIX Testimonials Widget edit page doesn't display custom taxonomies
15
+ * Beta test update text
16
+ * Coding standards updates
17
+ * Create TODO doc
18
+ * Disabled PHP Mess Detector
19
+ * Don't escape already escaped text
20
+ * Don't load plugin till all are loaded
21
+ * FEATURE [Animated widget rotation](http://wordpress.org/support/topic/animate-jumpy-widget)
22
+ * OPTION Add Disable animation?
23
+ * Relocate activation, deactivation, and uninstall hooks
24
+ * Remove WP_UNINSTALL_PLUGIN reference
25
+ * Remove class from settings page link
26
+ * Rename class-settings-testimonials-widget.php to class-testimonials-widget-settings.php
27
+ * Revise API doc headings
28
+ * Revise instance creators to only fire when ready
29
+ * Update Filters listing to API document
30
+ * Update POT
31
+
32
  = 2.12.8 =
33
  * Add filter `testimonials_widget_cite_html` to adjust cite contents - Thank you [Dimitrios](http://visualweb.gr/) for the suggestion
34
  * BUGFIX Warning: Illegal string offset 'exclude'
ci/bin/install-wp-tests.sh ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+
3
+ if [ $# -lt 3 ]; then
4
+ echo "usage: ${0} <db-name> <db-user> <db-pass> [wp-version]"
5
+ exit 1
6
+ fi
7
+
8
+ DB_NAME=${1}
9
+ DB_USER=${2}
10
+ DB_PASS=${3}
11
+ WP_VERSION=${4-master}
12
+
13
+ set -ex
14
+
15
+ # set up a WP install
16
+ WP_CORE_DIR=/tmp/wordpress/
17
+ mkdir -p ${WP_CORE_DIR}
18
+ wget -nv -O /tmp/wordpress.tar.gz https://github.com/WordPress/WordPress/tarball/${WP_VERSION}
19
+ tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C ${WP_CORE_DIR}
20
+
21
+ # set up testing suite
22
+ svn co --ignore-externals --quiet http://unit-tests.svn.wordpress.org/trunk/ ${WP_TESTS_DIR}
23
+
24
+ cd ${WP_TESTS_DIR}
25
+ cp wp-tests-config-sample.php wp-tests-config.php
26
+ sed -i "s:dirname( __FILE__ ) . '/wordpress/':'${WP_CORE_DIR}':" wp-tests-config.php
27
+ sed -i "s/yourdbnamehere/${DB_NAME}/" wp-tests-config.php
28
+ sed -i "s/yourusernamehere/${DB_USER}/" wp-tests-config.php
29
+ sed -i "s/yourpasswordhere/${DB_PASS}/" wp-tests-config.php
30
+
31
+ # create database
32
+ mysqladmin create ${DB_NAME} --user="${DB_USER}" --password="${DB_PASS}"
ci/phpcs.ruleset.xml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="Aihrus">
3
+ <description>
4
+ Custom phpcs rules to check for Aihrus' WordPress projects
5
+ </description>
6
+
7
+ <exclude-pattern>lib/class-redrokk-metabox-class.php</exclude-pattern>
8
+ <exclude-pattern>lib/Akismet.class.php</exclude-pattern>
9
+
10
+ <rule ref="Generic">
11
+ <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed" />
12
+ <exclude name="Generic.Files.EndFileNoNewline.Found" />
13
+ <exclude name="Generic.Files.LineLength.MaxExceeded" />
14
+ <exclude name="Generic.Formatting.NoSpaceAfterCast.SpaceFound" />
15
+ <exclude name="Generic.Functions.OpeningFunctionBraceBsdAllman.BraceOnSameLine" />
16
+ <exclude name="Generic.Metrics.CyclomaticComplexity.MaxExceeded" />
17
+ <exclude name="Generic.NamingConventions.CamelCapsFunctionName.ScopeNotCamelCaps" />
18
+ <exclude name="Generic.PHP.UpperCaseConstant.Found" />
19
+ <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" />
20
+ <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
21
+ </rule>
22
+
23
+ <rule ref="Squiz.PHP.CommentedOutCode"/>
24
+ <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
25
+ <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine" />
26
+ </rule>
27
+
28
+ <rule ref="WordPress">
29
+ <exclude name="WordPress.XSS.EscapeOutput" />
30
+ </rule>
31
+ </ruleset>
ci/phpcs.travis.ruleset.xml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="Aihrus">
3
+ <description>
4
+ Custom phpcs rules to check for Aihrus' WordPress projects
5
+ </description>
6
+
7
+ <exclude-pattern>lib/class-redrokk-metabox-class.php</exclude-pattern>
8
+ <exclude-pattern>lib/Akismet.class.php</exclude-pattern>
9
+
10
+ <rule ref="Generic">
11
+ <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed" />
12
+ <exclude name="Generic.Files.EndFileNoNewline.Found" />
13
+ <exclude name="Generic.Files.LineLength.MaxExceeded" />
14
+ <exclude name="Generic.Formatting.NoSpaceAfterCast.SpaceFound" />
15
+ <exclude name="Generic.Functions.OpeningFunctionBraceBsdAllman.BraceOnSameLine" />
16
+ <exclude name="Generic.Metrics.CyclomaticComplexity.MaxExceeded" />
17
+ <exclude name="Generic.NamingConventions.CamelCapsFunctionName.ScopeNotCamelCaps" />
18
+ <exclude name="Generic.PHP.UpperCaseConstant.Found" />
19
+ <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" />
20
+ <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
21
+ </rule>
22
+
23
+ <rule ref="Squiz.PHP.CommentedOutCode"/>
24
+ <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
25
+ <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine" />
26
+ </rule>
27
+
28
+ <rule ref="WordPress">
29
+ <exclude name="WordPress.XSS.EscapeOutput" />
30
+ <!-- travis-ci.org is puking on switch/case indentation -->
31
+ <exclude name="WordPress.WhiteSpace.ScopeIndent.Incorrect" />
32
+ </rule>
33
+ </ruleset>
ci/phpmd.ruleset.xml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="Aihrus"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
5
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
6
+ <description>
7
+ Custom phpmd rules to check for Aihrus' WordPress projects
8
+ </description>
9
+
10
+ <!-- @ref http://phpmd.org/documentation/creating-a-ruleset.html -->
11
+
12
+ <!--
13
+ <rule ref="rulesets/codesize.xml" />
14
+ -->
15
+ <rule ref="rulesets/controversial.xml/Superglobals" />
16
+ <rule ref="rulesets/design.xml" />
17
+ <rule ref="rulesets/naming.xml">
18
+ <exclude name="ShortVariable" />
19
+ </rule>
20
+ <rule ref="rulesets/unusedcode.xml" />
21
+ </ruleset>
ci/tests/bootstrap.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once getenv( 'WP_TESTS_DIR' ) . '/includes/functions.php';
4
+
5
+ function _manually_load_plugin() {
6
+ require dirname( __FILE__ ) . '/../../testimonials-widget.php';
7
+ }
8
+
9
+
10
+ tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
11
+
12
+ require getenv( 'WP_TESTS_DIR' ) . '/includes/bootstrap.php';
13
+ ?>
ci/tests/class.sample-test.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class SampleTest extends WP_UnitTestCase {
3
+ function test_sample() {
4
+ // replace this with some actual testing code
5
+ $this->assertTrue( true );
6
+ }
7
+
8
+
9
+ /**
10
+ *
11
+ *
12
+ * @SuppressWarnings(PHPMD.Superglobals)
13
+ */
14
+ function set_post( $key, $value ) {
15
+ $_POST[$key] = $_REQUEST[$key] = addslashes( $value );
16
+ }
17
+
18
+
19
+ /**
20
+ *
21
+ *
22
+ * @SuppressWarnings(PHPMD.Superglobals)
23
+ */
24
+ function unset_post( $key ) {
25
+ unset( $_POST[$key], $_REQUEST[$key] );
26
+ }
27
+
28
+
29
+ }
30
+
31
+
32
+ ?>
languages/testimonials-widget.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the Testimonials Widget package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Testimonials Widget 2.12.8\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/testimonials-widget\n"
7
- "POT-Creation-Date: 2013-06-10 16:38:54+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,457 +12,468 @@ msgstr ""
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: lib/class-settings-testimonials-widget.php:64
16
  msgid "General"
17
  msgstr ""
18
 
19
- #: lib/class-settings-testimonials-widget.php:65
20
  msgid "Selection"
21
  msgstr ""
22
 
23
- #: lib/class-settings-testimonials-widget.php:66
24
  msgid "Ordering"
25
  msgstr ""
26
 
27
- #: lib/class-settings-testimonials-widget.php:67
28
  msgid "Widget"
29
  msgstr ""
30
 
31
- #: lib/class-settings-testimonials-widget.php:68
32
  msgid "Post Type"
33
  msgstr ""
34
 
35
- #: lib/class-settings-testimonials-widget.php:69
36
  msgid "Compatibility & Reset"
37
  msgstr ""
38
 
39
- #: lib/class-settings-testimonials-widget.php:70
40
  msgid "About Testimonials Widget"
41
  msgstr ""
42
 
43
- #: lib/class-settings-testimonials-widget.php:85
44
  msgid "Widget Title"
45
  msgstr ""
46
 
47
- #: lib/class-settings-testimonials-widget.php:86 testimonials-widget.php:488
48
- #: testimonials-widget.php:533
49
  msgid "Testimonials"
50
  msgstr ""
51
 
52
- #: lib/class-settings-testimonials-widget.php:92
53
  msgid "Title Link"
54
  msgstr ""
55
 
56
- #: lib/class-settings-testimonials-widget.php:93
57
- msgid "URL or Post ID to link widget title to. Ex: 123 or http://example.com"
 
 
58
  msgstr ""
59
 
60
- #: lib/class-settings-testimonials-widget.php:99
61
  msgid "Character Limit"
62
  msgstr ""
63
 
64
- #: lib/class-settings-testimonials-widget.php:100
65
  msgid "Number of characters to limit non-single testimonial views to"
66
  msgstr ""
67
 
68
- #: lib/class-settings-testimonials-widget.php:106
69
  msgid "Height"
70
  msgstr ""
71
 
72
- #: lib/class-settings-testimonials-widget.php:107
73
  msgid "Testimonials height, in pixels. Overrides minimum and maximum height"
74
  msgstr ""
75
 
76
- #: lib/class-settings-testimonials-widget.php:113
77
  msgid "Rotation Speed"
78
  msgstr ""
79
 
80
- #: lib/class-settings-testimonials-widget.php:114
81
  msgid ""
82
  "Number of seconds between testimonial rotations or 0 for no rotation at all "
83
  "refresh"
84
  msgstr ""
85
 
86
- #: lib/class-settings-testimonials-widget.php:121
87
  msgid "Additional Widget Options"
88
  msgstr ""
89
 
90
- #: lib/class-settings-testimonials-widget.php:127
91
  msgid "Keep Whitespace?"
92
  msgstr ""
93
 
94
- #: lib/class-settings-testimonials-widget.php:128
95
  msgid "Keeps testimonials looking as entered than sans auto-formatting"
96
  msgstr ""
97
 
98
- #: lib/class-settings-testimonials-widget.php:134
 
 
 
 
 
 
 
 
 
 
99
  msgid "Minimum Height"
100
  msgstr ""
101
 
102
- #: lib/class-settings-testimonials-widget.php:135
103
  msgid "Set for minimum display height, in pixels"
104
  msgstr ""
105
 
106
- #: lib/class-settings-testimonials-widget.php:141
107
  msgid "Maximum Height"
108
  msgstr ""
109
 
110
- #: lib/class-settings-testimonials-widget.php:142
111
  msgid "Set for maximum display height, in pixels"
112
  msgstr ""
113
 
114
- #: lib/class-settings-testimonials-widget.php:148
115
  msgid "Testimonial Bottom Text"
116
  msgstr ""
117
 
118
- #: lib/class-settings-testimonials-widget.php:149
119
  msgid "Custom text or HTML for bottom of testimonials"
120
  msgstr ""
121
 
122
- #: lib/class-settings-testimonials-widget.php:161
123
  msgid "General Options"
124
  msgstr ""
125
 
126
- #: lib/class-settings-testimonials-widget.php:166
127
  msgid "Hide built-in quotes?"
128
  msgstr ""
129
 
130
- #: lib/class-settings-testimonials-widget.php:167
131
  msgid "Remove open and close quote span tags surrounding testimonial content"
132
  msgstr ""
133
 
134
- #: lib/class-settings-testimonials-widget.php:172
135
  msgid "Hide \"Testimonials Not Found\"?"
136
  msgstr ""
137
 
138
- #: lib/class-settings-testimonials-widget.php:177
139
  msgid "Hide Gravatar Image?"
140
  msgstr ""
141
 
142
- #: lib/class-settings-testimonials-widget.php:182
143
  msgid "Hide Image?"
144
  msgstr ""
145
 
146
- #: lib/class-settings-testimonials-widget.php:187
147
  msgid "Hide Image in Single View?"
148
  msgstr ""
149
 
150
- #: lib/class-settings-testimonials-widget.php:193
151
  msgid "Hide Testimonial Content?"
152
  msgstr ""
153
 
154
- #: lib/class-settings-testimonials-widget.php:198
155
  msgid "Hide Author/Source?"
156
  msgstr ""
157
 
158
- #: lib/class-settings-testimonials-widget.php:200
159
  msgid "Don't display \"Post Title\" in cite"
160
  msgstr ""
161
 
162
- #: lib/class-settings-testimonials-widget.php:204
163
  msgid "Hide Email?"
164
  msgstr ""
165
 
166
- #: lib/class-settings-testimonials-widget.php:210
167
  msgid "Hide Title?"
168
  msgstr ""
169
 
170
- #: lib/class-settings-testimonials-widget.php:215
171
  msgid "Hide Location?"
172
  msgstr ""
173
 
174
- #: lib/class-settings-testimonials-widget.php:220
175
  msgid "Hide Company?"
176
  msgstr ""
177
 
178
- #: lib/class-settings-testimonials-widget.php:225
179
  msgid "Hide URL?"
180
  msgstr ""
181
 
182
- #: lib/class-settings-testimonials-widget.php:230
183
  msgid "URL Target"
184
  msgstr ""
185
 
186
- #: lib/class-settings-testimonials-widget.php:231
187
  msgid "Add target to all URLs; leave blank if none"
188
  msgstr ""
189
 
190
- #: lib/class-settings-testimonials-widget.php:236
191
  msgid "Enable Paging?"
192
  msgstr ""
193
 
194
- #: lib/class-settings-testimonials-widget.php:237
195
  msgid "For `[testimonialswidget_list]`"
196
  msgstr ""
197
 
198
- #: lib/class-settings-testimonials-widget.php:240
199
  msgid "Disable"
200
  msgstr ""
201
 
202
- #: lib/class-settings-testimonials-widget.php:241
203
  msgid "Enable"
204
  msgstr ""
205
 
206
- #: lib/class-settings-testimonials-widget.php:242
207
  msgid "Before testimonials"
208
  msgstr ""
209
 
210
- #: lib/class-settings-testimonials-widget.php:243
211
  msgid "After testimonials"
212
  msgstr ""
213
 
214
- #: lib/class-settings-testimonials-widget.php:256
215
  msgid "Selection Options"
216
  msgstr ""
217
 
218
- #: lib/class-settings-testimonials-widget.php:262
219
  msgid "Category Filter"
220
  msgstr ""
221
 
222
- #: lib/class-settings-testimonials-widget.php:263
223
  msgid "Comma separated category slug-names. Ex: category-a, another-category"
224
  msgstr ""
225
 
226
- #: lib/class-settings-testimonials-widget.php:269
227
  msgid "Tags Filter"
228
  msgstr ""
229
 
230
- #: lib/class-settings-testimonials-widget.php:270
231
  msgid "Comma separated tag slug-names. Ex: tag-a, another-tag"
232
  msgstr ""
233
 
234
- #: lib/class-settings-testimonials-widget.php:276
235
  msgid "Require All Tags?"
236
  msgstr ""
237
 
238
- #: lib/class-settings-testimonials-widget.php:277
239
  msgid "Select only testimonials with all of the given tags"
240
  msgstr ""
241
 
242
- #: lib/class-settings-testimonials-widget.php:283
243
  msgid "Include IDs Filter"
244
  msgstr ""
245
 
246
- #: lib/class-settings-testimonials-widget.php:284
247
- #: lib/class-settings-testimonials-widget.php:291
248
  msgid "Comma separated testimonial IDs. Ex: 3,1,2"
249
  msgstr ""
250
 
251
- #: lib/class-settings-testimonials-widget.php:290
252
  msgid "Exclude IDs Filter"
253
  msgstr ""
254
 
255
- #: lib/class-settings-testimonials-widget.php:297
256
  msgid "Limit"
257
  msgstr ""
258
 
259
- #: lib/class-settings-testimonials-widget.php:298
260
  msgid "Number of testimonials to select per instance"
261
  msgstr ""
262
 
263
- #: lib/class-settings-testimonials-widget.php:311
264
  msgid "Ordering Options"
265
  msgstr ""
266
 
267
- #: lib/class-settings-testimonials-widget.php:317
268
  msgid "Random Order?"
269
  msgstr ""
270
 
271
- #: lib/class-settings-testimonials-widget.php:318
272
  msgid ""
273
  "If checked, ignores ORDER BY, ORDER BY meta_key, and ORDER BY Order. Widgets "
274
  "are random by default automatically"
275
  msgstr ""
276
 
277
- #: lib/class-settings-testimonials-widget.php:324
278
  msgid "ORDER BY"
279
  msgstr ""
280
 
281
- #: lib/class-settings-testimonials-widget.php:325
282
  msgid "Used when \"Random Order\" is disabled"
283
  msgstr ""
284
 
285
- #: lib/class-settings-testimonials-widget.php:328
286
  msgid "Testimonial ID"
287
  msgstr ""
288
 
289
- #: lib/class-settings-testimonials-widget.php:329
290
  msgid "Author"
291
  msgstr ""
292
 
293
- #: lib/class-settings-testimonials-widget.php:330 testimonials-widget.php:474
294
  msgid "Date"
295
  msgstr ""
296
 
297
- #: lib/class-settings-testimonials-widget.php:331
298
  msgid "Menu Order"
299
  msgstr ""
300
 
301
- #: lib/class-settings-testimonials-widget.php:332 testimonials-widget.php:464
302
  msgid "Source"
303
  msgstr ""
304
 
305
- #: lib/class-settings-testimonials-widget.php:333
306
  msgid "No order"
307
  msgstr ""
308
 
309
- #: lib/class-settings-testimonials-widget.php:341
310
  msgid "ORDER BY meta_key"
311
  msgstr ""
312
 
313
- #: lib/class-settings-testimonials-widget.php:342
314
  msgid ""
315
  "Used when \"Random Order\" is disabled and sorting by a testimonials meta "
316
  "key is needed. Overrides ORDER BY"
317
  msgstr ""
318
 
319
- #: lib/class-settings-testimonials-widget.php:345
320
  msgid "None"
321
  msgstr ""
322
 
323
- #: lib/class-settings-testimonials-widget.php:346 testimonials-widget.php:466
324
- #: testimonials-widget.php:1480
325
  msgid "Title"
326
  msgstr ""
327
 
328
- #: lib/class-settings-testimonials-widget.php:347 testimonials-widget.php:468
329
- #: testimonials-widget.php:1492
330
  msgid "Email"
331
  msgstr ""
332
 
333
- #: lib/class-settings-testimonials-widget.php:348 testimonials-widget.php:467
334
- #: testimonials-widget.php:1486
335
  msgid "Location"
336
  msgstr ""
337
 
338
- #: lib/class-settings-testimonials-widget.php:349 testimonials-widget.php:469
339
- #: testimonials-widget.php:1498
340
  msgid "Company"
341
  msgstr ""
342
 
343
- #: lib/class-settings-testimonials-widget.php:350 testimonials-widget.php:470
344
- #: testimonials-widget.php:1504
345
  msgid "URL"
346
  msgstr ""
347
 
348
- #: lib/class-settings-testimonials-widget.php:357
349
  msgid "ORDER BY Order"
350
  msgstr ""
351
 
352
- #: lib/class-settings-testimonials-widget.php:360
353
  msgid "Descending"
354
  msgstr ""
355
 
356
- #: lib/class-settings-testimonials-widget.php:361
357
  msgid "Ascending"
358
  msgstr ""
359
 
360
- #: lib/class-settings-testimonials-widget.php:375
361
  msgid "Allow Comments?"
362
  msgstr ""
363
 
364
- #: lib/class-settings-testimonials-widget.php:376
365
  msgid ""
366
  "Only affects the Testimonials Widget post edit page. Your theme controls the "
367
  "front-end view."
368
  msgstr ""
369
 
370
- #: lib/class-settings-testimonials-widget.php:381
371
  msgid "URL slug-name for <a href=\"%1s\">testimonials archive</a> page."
372
  msgstr ""
373
 
374
- #: lib/class-settings-testimonials-widget.php:387
375
  msgid "Archive Page URL"
376
  msgstr ""
377
 
378
- #: lib/class-settings-testimonials-widget.php:394
379
  msgid ""
380
  "URL slug-name for testimonial view pages. Shouldn't be the same as Archive "
381
  "Page URL."
382
  msgstr ""
383
 
384
- #: lib/class-settings-testimonials-widget.php:398
385
  msgid "Testimonial Page URL"
386
  msgstr ""
387
 
388
- #: lib/class-settings-testimonials-widget.php:408
389
  msgid "Compatiblity Options"
390
  msgstr ""
391
 
392
- #: lib/class-settings-testimonials-widget.php:414
393
  msgid "Remove `.hentry` CSS?"
394
  msgstr ""
395
 
396
- #: lib/class-settings-testimonials-widget.php:415
397
  msgid ""
398
  "Pre 2.6.4. Some themes use class `.hentry` in a manner that breaks "
399
  "Testimonials Widgets CSS"
400
  msgstr ""
401
 
402
- #: lib/class-settings-testimonials-widget.php:425
403
  msgid "Use `&lt;q&gt;` tag?"
404
  msgstr ""
405
 
406
- #: lib/class-settings-testimonials-widget.php:426
407
  msgid "Pre 2.11.0. Not HTML5 compliant"
408
  msgstr ""
409
 
410
- #: lib/class-settings-testimonials-widget.php:436
411
  msgid "Don't Use Default Taxonomies?"
412
  msgstr ""
413
 
414
- #: lib/class-settings-testimonials-widget.php:438
415
  msgid ""
416
  "If checked, use Testimonials Widget's own category and tag taxonomies instead"
417
  msgstr ""
418
 
419
- #: lib/class-settings-testimonials-widget.php:449
420
  msgid "Export Settings"
421
  msgstr ""
422
 
423
- #: lib/class-settings-testimonials-widget.php:451
424
  msgid ""
425
  "These are your current settings in a serialized format. Copy the contents to "
426
  "make a backup of your settings."
427
  msgstr ""
428
 
429
- #: lib/class-settings-testimonials-widget.php:459
430
  msgid "Import Settings"
431
  msgstr ""
432
 
433
- #: lib/class-settings-testimonials-widget.php:461
434
  msgid ""
435
  "Paste new serialized settings here to overwrite your current configuration."
436
  msgstr ""
437
 
438
- #: lib/class-settings-testimonials-widget.php:467
439
  msgid "Remove Plugin Data on Deletion?"
440
  msgstr ""
441
 
442
- #: lib/class-settings-testimonials-widget.php:470
443
  msgid ""
444
  "Delete all Testimonials Widget data and options from database on plugin "
445
  "deletion"
446
  msgstr ""
447
 
448
- #: lib/class-settings-testimonials-widget.php:476
449
  msgid "Reset to Defaults?"
450
  msgstr ""
451
 
452
- #: lib/class-settings-testimonials-widget.php:479
453
  msgid "Check this box to reset options to their defaults"
454
  msgstr ""
455
 
456
- #: lib/class-settings-testimonials-widget.php:545
457
- #: lib/class-settings-testimonials-widget.php:582
458
- msgid "Testimonials Widget Settings"
459
  msgstr ""
460
 
461
- #: lib/class-settings-testimonials-widget.php:545 testimonials-widget.php:69
462
- msgid "Settings"
463
  msgstr ""
464
 
465
- #: lib/class-settings-testimonials-widget.php:584
466
  msgid ""
467
  "These Testimonials Widget Settings establish the default option values for "
468
  "shortcodes, theme functions, and widget instances. Widgets, once created no "
@@ -471,15 +482,15 @@ msgid ""
471
  "then recreate it."
472
  msgstr ""
473
 
474
- #: lib/class-settings-testimonials-widget.php:601
475
  msgid "Save Changes"
476
  msgstr ""
477
 
478
- #: lib/class-settings-testimonials-widget.php:613
479
  msgid "Copyright &copy;%1$s %2$s."
480
  msgstr ""
481
 
482
- #: lib/class-settings-testimonials-widget.php:966
483
  msgid "Required"
484
  msgstr ""
485
 
@@ -487,7 +498,7 @@ msgstr ""
487
  msgid "Display testimonials with multiple selection and display options"
488
  msgstr ""
489
 
490
- #. #-#-#-#-# testimonials-widget.pot (Testimonials Widget 2.12.8) #-#-#-#-#
491
  #. Plugin Name of the plugin/theme
492
  #: lib/class-testimonials-widget-widget.php:37
493
  msgid "Testimonials Widget"
@@ -505,136 +516,136 @@ msgstr ""
505
  msgid "Expand/Collapse"
506
  msgstr ""
507
 
508
- #: testimonials-widget.php:271
509
  msgid ""
510
  "If your Testimonials Widget display has gone to funky town, please <a href="
511
  "\"%s\">read the FAQ</a> about possible CSS fixes."
512
  msgstr ""
513
 
514
- #: testimonials-widget.php:280
515
  msgid ""
516
  "Please donate $2 towards keeping Testimonials Widget plugin supported and "
517
  "maintained %s"
518
  msgstr ""
519
 
520
- #: testimonials-widget.php:463
521
  msgid "Image"
522
  msgstr ""
523
 
524
- #: testimonials-widget.php:465
525
  msgid "Shortcodes"
526
  msgstr ""
527
 
528
- #: testimonials-widget.php:471
529
  msgid "Published by"
530
  msgstr ""
531
 
532
- #: testimonials-widget.php:472
533
  msgid "Category"
534
  msgstr ""
535
 
536
- #: testimonials-widget.php:473
537
  msgid "Tags"
538
  msgstr ""
539
 
540
- #: testimonials-widget.php:485
541
  msgid "Add New"
542
  msgstr ""
543
 
544
- #: testimonials-widget.php:486 testimonials-widget.php:489
545
  msgid "Add New Testimonial"
546
  msgstr ""
547
 
548
- #: testimonials-widget.php:487
549
  msgid "Edit Testimonial"
550
  msgstr ""
551
 
552
- #: testimonials-widget.php:490 testimonials-widget.php:787
553
  msgid "No testimonials found"
554
  msgstr ""
555
 
556
- #: testimonials-widget.php:491
557
  msgid "No testimonials found in Trash"
558
  msgstr ""
559
 
560
- #: testimonials-widget.php:493
561
  msgid "Search Testimonials"
562
  msgstr ""
563
 
564
- #: testimonials-widget.php:494 testimonials-widget.php:1592
565
  msgid "Testimonial"
566
  msgstr ""
567
 
568
- #: testimonials-widget.php:495
569
  msgid "View Testimonial"
570
  msgstr ""
571
 
572
- #: testimonials-widget.php:898
573
  msgid "…"
574
  msgstr ""
575
 
576
- #: testimonials-widget.php:1218
577
  msgid "&laquo;"
578
  msgstr ""
579
 
580
- #: testimonials-widget.php:1227
581
  msgid "&raquo;"
582
  msgstr ""
583
 
584
- #: testimonials-widget.php:1516
585
  msgid "Testimonial Data"
586
  msgstr ""
587
 
588
- #: testimonials-widget.php:1541
589
  msgid "Enter title here"
590
  msgstr ""
591
 
592
- #: testimonials-widget.php:1542
593
  msgid "Enter testimonial source here"
594
  msgstr ""
595
 
596
- #: testimonials-widget.php:1567
597
  msgid "Testimonial updated. <a href=\"%s\">View testimonial</a>"
598
  msgstr ""
599
 
600
- #: testimonials-widget.php:1568
601
  msgid "Custom field updated."
602
  msgstr ""
603
 
604
- #: testimonials-widget.php:1569
605
  msgid "Custom field deleted."
606
  msgstr ""
607
 
608
- #: testimonials-widget.php:1570
609
  msgid "Testimonial updated."
610
  msgstr ""
611
 
612
  #. translators: %s: date and time of the revision
613
- #: testimonials-widget.php:1572
614
  msgid "Testimonial restored to revision from %s"
615
  msgstr ""
616
 
617
- #: testimonials-widget.php:1573
618
  msgid "Testimonial published. <a href=\"%s\">View testimonial</a>"
619
  msgstr ""
620
 
621
- #: testimonials-widget.php:1574
622
  msgid "Testimonial saved."
623
  msgstr ""
624
 
625
- #: testimonials-widget.php:1575
626
  msgid ""
627
  "Testimonial submitted. <a target=\"_blank\" href=\"%s\">Preview testimonial</"
628
  "a>"
629
  msgstr ""
630
 
631
- #: testimonials-widget.php:1576
632
  msgid ""
633
  "Testimonial scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
634
  "\"%2$s\">Preview testimonial</a>"
635
  msgstr ""
636
 
637
- #: testimonials-widget.php:1577
638
  msgid ""
639
  "Testimonial draft updated. <a target=\"_blank\" href=\"%s\">Preview "
640
  "testimonial</a>"
2
  # This file is distributed under the same license as the Testimonials Widget package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Testimonials Widget 2.13.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/testimonials-widget\n"
7
+ "POT-Creation-Date: 2013-06-25 06:58:38+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: lib/class-testimonials-widget-settings.php:64
16
  msgid "General"
17
  msgstr ""
18
 
19
+ #: lib/class-testimonials-widget-settings.php:65
20
  msgid "Selection"
21
  msgstr ""
22
 
23
+ #: lib/class-testimonials-widget-settings.php:66
24
  msgid "Ordering"
25
  msgstr ""
26
 
27
+ #: lib/class-testimonials-widget-settings.php:67
28
  msgid "Widget"
29
  msgstr ""
30
 
31
+ #: lib/class-testimonials-widget-settings.php:68
32
  msgid "Post Type"
33
  msgstr ""
34
 
35
+ #: lib/class-testimonials-widget-settings.php:69
36
  msgid "Compatibility & Reset"
37
  msgstr ""
38
 
39
+ #: lib/class-testimonials-widget-settings.php:70
40
  msgid "About Testimonials Widget"
41
  msgstr ""
42
 
43
+ #: lib/class-testimonials-widget-settings.php:85
44
  msgid "Widget Title"
45
  msgstr ""
46
 
47
+ #: lib/class-testimonials-widget-settings.php:86 testimonials-widget.php:490
48
+ #: testimonials-widget.php:535
49
  msgid "Testimonials"
50
  msgstr ""
51
 
52
+ #: lib/class-testimonials-widget-settings.php:92
53
  msgid "Title Link"
54
  msgstr ""
55
 
56
+ #: lib/class-testimonials-widget-settings.php:93
57
+ msgid ""
58
+ "URL, path, or post ID to link widget title to. Ex: http://example.com/"
59
+ "stuff, /testimonials, 123 or "
60
  msgstr ""
61
 
62
+ #: lib/class-testimonials-widget-settings.php:99
63
  msgid "Character Limit"
64
  msgstr ""
65
 
66
+ #: lib/class-testimonials-widget-settings.php:100
67
  msgid "Number of characters to limit non-single testimonial views to"
68
  msgstr ""
69
 
70
+ #: lib/class-testimonials-widget-settings.php:106
71
  msgid "Height"
72
  msgstr ""
73
 
74
+ #: lib/class-testimonials-widget-settings.php:107
75
  msgid "Testimonials height, in pixels. Overrides minimum and maximum height"
76
  msgstr ""
77
 
78
+ #: lib/class-testimonials-widget-settings.php:113
79
  msgid "Rotation Speed"
80
  msgstr ""
81
 
82
+ #: lib/class-testimonials-widget-settings.php:114
83
  msgid ""
84
  "Number of seconds between testimonial rotations or 0 for no rotation at all "
85
  "refresh"
86
  msgstr ""
87
 
88
+ #: lib/class-testimonials-widget-settings.php:121
89
  msgid "Additional Widget Options"
90
  msgstr ""
91
 
92
+ #: lib/class-testimonials-widget-settings.php:127
93
  msgid "Keep Whitespace?"
94
  msgstr ""
95
 
96
+ #: lib/class-testimonials-widget-settings.php:128
97
  msgid "Keeps testimonials looking as entered than sans auto-formatting"
98
  msgstr ""
99
 
100
+ #: lib/class-testimonials-widget-settings.php:134
101
+ msgid "Disable animation?"
102
+ msgstr ""
103
+
104
+ #: lib/class-testimonials-widget-settings.php:135
105
+ msgid ""
106
+ "Disable animation between testimonial transitions. Useful when stacking "
107
+ "widgets."
108
+ msgstr ""
109
+
110
+ #: lib/class-testimonials-widget-settings.php:141
111
  msgid "Minimum Height"
112
  msgstr ""
113
 
114
+ #: lib/class-testimonials-widget-settings.php:142
115
  msgid "Set for minimum display height, in pixels"
116
  msgstr ""
117
 
118
+ #: lib/class-testimonials-widget-settings.php:148
119
  msgid "Maximum Height"
120
  msgstr ""
121
 
122
+ #: lib/class-testimonials-widget-settings.php:149
123
  msgid "Set for maximum display height, in pixels"
124
  msgstr ""
125
 
126
+ #: lib/class-testimonials-widget-settings.php:155
127
  msgid "Testimonial Bottom Text"
128
  msgstr ""
129
 
130
+ #: lib/class-testimonials-widget-settings.php:156
131
  msgid "Custom text or HTML for bottom of testimonials"
132
  msgstr ""
133
 
134
+ #: lib/class-testimonials-widget-settings.php:168
135
  msgid "General Options"
136
  msgstr ""
137
 
138
+ #: lib/class-testimonials-widget-settings.php:173
139
  msgid "Hide built-in quotes?"
140
  msgstr ""
141
 
142
+ #: lib/class-testimonials-widget-settings.php:174
143
  msgid "Remove open and close quote span tags surrounding testimonial content"
144
  msgstr ""
145
 
146
+ #: lib/class-testimonials-widget-settings.php:179
147
  msgid "Hide \"Testimonials Not Found\"?"
148
  msgstr ""
149
 
150
+ #: lib/class-testimonials-widget-settings.php:184
151
  msgid "Hide Gravatar Image?"
152
  msgstr ""
153
 
154
+ #: lib/class-testimonials-widget-settings.php:189
155
  msgid "Hide Image?"
156
  msgstr ""
157
 
158
+ #: lib/class-testimonials-widget-settings.php:194
159
  msgid "Hide Image in Single View?"
160
  msgstr ""
161
 
162
+ #: lib/class-testimonials-widget-settings.php:200
163
  msgid "Hide Testimonial Content?"
164
  msgstr ""
165
 
166
+ #: lib/class-testimonials-widget-settings.php:205
167
  msgid "Hide Author/Source?"
168
  msgstr ""
169
 
170
+ #: lib/class-testimonials-widget-settings.php:207
171
  msgid "Don't display \"Post Title\" in cite"
172
  msgstr ""
173
 
174
+ #: lib/class-testimonials-widget-settings.php:211
175
  msgid "Hide Email?"
176
  msgstr ""
177
 
178
+ #: lib/class-testimonials-widget-settings.php:217
179
  msgid "Hide Title?"
180
  msgstr ""
181
 
182
+ #: lib/class-testimonials-widget-settings.php:222
183
  msgid "Hide Location?"
184
  msgstr ""
185
 
186
+ #: lib/class-testimonials-widget-settings.php:227
187
  msgid "Hide Company?"
188
  msgstr ""
189
 
190
+ #: lib/class-testimonials-widget-settings.php:232
191
  msgid "Hide URL?"
192
  msgstr ""
193
 
194
+ #: lib/class-testimonials-widget-settings.php:237
195
  msgid "URL Target"
196
  msgstr ""
197
 
198
+ #: lib/class-testimonials-widget-settings.php:238
199
  msgid "Add target to all URLs; leave blank if none"
200
  msgstr ""
201
 
202
+ #: lib/class-testimonials-widget-settings.php:243
203
  msgid "Enable Paging?"
204
  msgstr ""
205
 
206
+ #: lib/class-testimonials-widget-settings.php:244
207
  msgid "For `[testimonialswidget_list]`"
208
  msgstr ""
209
 
210
+ #: lib/class-testimonials-widget-settings.php:247
211
  msgid "Disable"
212
  msgstr ""
213
 
214
+ #: lib/class-testimonials-widget-settings.php:248
215
  msgid "Enable"
216
  msgstr ""
217
 
218
+ #: lib/class-testimonials-widget-settings.php:249
219
  msgid "Before testimonials"
220
  msgstr ""
221
 
222
+ #: lib/class-testimonials-widget-settings.php:250
223
  msgid "After testimonials"
224
  msgstr ""
225
 
226
+ #: lib/class-testimonials-widget-settings.php:263
227
  msgid "Selection Options"
228
  msgstr ""
229
 
230
+ #: lib/class-testimonials-widget-settings.php:269
231
  msgid "Category Filter"
232
  msgstr ""
233
 
234
+ #: lib/class-testimonials-widget-settings.php:270
235
  msgid "Comma separated category slug-names. Ex: category-a, another-category"
236
  msgstr ""
237
 
238
+ #: lib/class-testimonials-widget-settings.php:276
239
  msgid "Tags Filter"
240
  msgstr ""
241
 
242
+ #: lib/class-testimonials-widget-settings.php:277
243
  msgid "Comma separated tag slug-names. Ex: tag-a, another-tag"
244
  msgstr ""
245
 
246
+ #: lib/class-testimonials-widget-settings.php:283
247
  msgid "Require All Tags?"
248
  msgstr ""
249
 
250
+ #: lib/class-testimonials-widget-settings.php:284
251
  msgid "Select only testimonials with all of the given tags"
252
  msgstr ""
253
 
254
+ #: lib/class-testimonials-widget-settings.php:290
255
  msgid "Include IDs Filter"
256
  msgstr ""
257
 
258
+ #: lib/class-testimonials-widget-settings.php:291
259
+ #: lib/class-testimonials-widget-settings.php:298
260
  msgid "Comma separated testimonial IDs. Ex: 3,1,2"
261
  msgstr ""
262
 
263
+ #: lib/class-testimonials-widget-settings.php:297
264
  msgid "Exclude IDs Filter"
265
  msgstr ""
266
 
267
+ #: lib/class-testimonials-widget-settings.php:304
268
  msgid "Limit"
269
  msgstr ""
270
 
271
+ #: lib/class-testimonials-widget-settings.php:305
272
  msgid "Number of testimonials to select per instance"
273
  msgstr ""
274
 
275
+ #: lib/class-testimonials-widget-settings.php:318
276
  msgid "Ordering Options"
277
  msgstr ""
278
 
279
+ #: lib/class-testimonials-widget-settings.php:324
280
  msgid "Random Order?"
281
  msgstr ""
282
 
283
+ #: lib/class-testimonials-widget-settings.php:325
284
  msgid ""
285
  "If checked, ignores ORDER BY, ORDER BY meta_key, and ORDER BY Order. Widgets "
286
  "are random by default automatically"
287
  msgstr ""
288
 
289
+ #: lib/class-testimonials-widget-settings.php:331
290
  msgid "ORDER BY"
291
  msgstr ""
292
 
293
+ #: lib/class-testimonials-widget-settings.php:332
294
  msgid "Used when \"Random Order\" is disabled"
295
  msgstr ""
296
 
297
+ #: lib/class-testimonials-widget-settings.php:335
298
  msgid "Testimonial ID"
299
  msgstr ""
300
 
301
+ #: lib/class-testimonials-widget-settings.php:336
302
  msgid "Author"
303
  msgstr ""
304
 
305
+ #: lib/class-testimonials-widget-settings.php:337 testimonials-widget.php:467
306
  msgid "Date"
307
  msgstr ""
308
 
309
+ #: lib/class-testimonials-widget-settings.php:338
310
  msgid "Menu Order"
311
  msgstr ""
312
 
313
+ #: lib/class-testimonials-widget-settings.php:339 testimonials-widget.php:459
314
  msgid "Source"
315
  msgstr ""
316
 
317
+ #: lib/class-testimonials-widget-settings.php:340
318
  msgid "No order"
319
  msgstr ""
320
 
321
+ #: lib/class-testimonials-widget-settings.php:348
322
  msgid "ORDER BY meta_key"
323
  msgstr ""
324
 
325
+ #: lib/class-testimonials-widget-settings.php:349
326
  msgid ""
327
  "Used when \"Random Order\" is disabled and sorting by a testimonials meta "
328
  "key is needed. Overrides ORDER BY"
329
  msgstr ""
330
 
331
+ #: lib/class-testimonials-widget-settings.php:352
332
  msgid "None"
333
  msgstr ""
334
 
335
+ #: lib/class-testimonials-widget-settings.php:353 testimonials-widget.php:461
336
+ #: testimonials-widget.php:1503
337
  msgid "Title"
338
  msgstr ""
339
 
340
+ #: lib/class-testimonials-widget-settings.php:354 testimonials-widget.php:463
341
+ #: testimonials-widget.php:1515
342
  msgid "Email"
343
  msgstr ""
344
 
345
+ #: lib/class-testimonials-widget-settings.php:355 testimonials-widget.php:462
346
+ #: testimonials-widget.php:1509
347
  msgid "Location"
348
  msgstr ""
349
 
350
+ #: lib/class-testimonials-widget-settings.php:356 testimonials-widget.php:464
351
+ #: testimonials-widget.php:1521
352
  msgid "Company"
353
  msgstr ""
354
 
355
+ #: lib/class-testimonials-widget-settings.php:357 testimonials-widget.php:465
356
+ #: testimonials-widget.php:1527
357
  msgid "URL"
358
  msgstr ""
359
 
360
+ #: lib/class-testimonials-widget-settings.php:364
361
  msgid "ORDER BY Order"
362
  msgstr ""
363
 
364
+ #: lib/class-testimonials-widget-settings.php:367
365
  msgid "Descending"
366
  msgstr ""
367
 
368
+ #: lib/class-testimonials-widget-settings.php:368
369
  msgid "Ascending"
370
  msgstr ""
371
 
372
+ #: lib/class-testimonials-widget-settings.php:382
373
  msgid "Allow Comments?"
374
  msgstr ""
375
 
376
+ #: lib/class-testimonials-widget-settings.php:383
377
  msgid ""
378
  "Only affects the Testimonials Widget post edit page. Your theme controls the "
379
  "front-end view."
380
  msgstr ""
381
 
382
+ #: lib/class-testimonials-widget-settings.php:388
383
  msgid "URL slug-name for <a href=\"%1s\">testimonials archive</a> page."
384
  msgstr ""
385
 
386
+ #: lib/class-testimonials-widget-settings.php:394
387
  msgid "Archive Page URL"
388
  msgstr ""
389
 
390
+ #: lib/class-testimonials-widget-settings.php:401
391
  msgid ""
392
  "URL slug-name for testimonial view pages. Shouldn't be the same as Archive "
393
  "Page URL."
394
  msgstr ""
395
 
396
+ #: lib/class-testimonials-widget-settings.php:405
397
  msgid "Testimonial Page URL"
398
  msgstr ""
399
 
400
+ #: lib/class-testimonials-widget-settings.php:415
401
  msgid "Compatiblity Options"
402
  msgstr ""
403
 
404
+ #: lib/class-testimonials-widget-settings.php:421
405
  msgid "Remove `.hentry` CSS?"
406
  msgstr ""
407
 
408
+ #: lib/class-testimonials-widget-settings.php:422
409
  msgid ""
410
  "Pre 2.6.4. Some themes use class `.hentry` in a manner that breaks "
411
  "Testimonials Widgets CSS"
412
  msgstr ""
413
 
414
+ #: lib/class-testimonials-widget-settings.php:432
415
  msgid "Use `&lt;q&gt;` tag?"
416
  msgstr ""
417
 
418
+ #: lib/class-testimonials-widget-settings.php:433
419
  msgid "Pre 2.11.0. Not HTML5 compliant"
420
  msgstr ""
421
 
422
+ #: lib/class-testimonials-widget-settings.php:443
423
  msgid "Don't Use Default Taxonomies?"
424
  msgstr ""
425
 
426
+ #: lib/class-testimonials-widget-settings.php:445
427
  msgid ""
428
  "If checked, use Testimonials Widget's own category and tag taxonomies instead"
429
  msgstr ""
430
 
431
+ #: lib/class-testimonials-widget-settings.php:456
432
  msgid "Export Settings"
433
  msgstr ""
434
 
435
+ #: lib/class-testimonials-widget-settings.php:458
436
  msgid ""
437
  "These are your current settings in a serialized format. Copy the contents to "
438
  "make a backup of your settings."
439
  msgstr ""
440
 
441
+ #: lib/class-testimonials-widget-settings.php:466
442
  msgid "Import Settings"
443
  msgstr ""
444
 
445
+ #: lib/class-testimonials-widget-settings.php:468
446
  msgid ""
447
  "Paste new serialized settings here to overwrite your current configuration."
448
  msgstr ""
449
 
450
+ #: lib/class-testimonials-widget-settings.php:474
451
  msgid "Remove Plugin Data on Deletion?"
452
  msgstr ""
453
 
454
+ #: lib/class-testimonials-widget-settings.php:477
455
  msgid ""
456
  "Delete all Testimonials Widget data and options from database on plugin "
457
  "deletion"
458
  msgstr ""
459
 
460
+ #: lib/class-testimonials-widget-settings.php:483
461
  msgid "Reset to Defaults?"
462
  msgstr ""
463
 
464
+ #: lib/class-testimonials-widget-settings.php:486
465
  msgid "Check this box to reset options to their defaults"
466
  msgstr ""
467
 
468
+ #: lib/class-testimonials-widget-settings.php:552 testimonials-widget.php:63
469
+ msgid "Settings"
 
470
  msgstr ""
471
 
472
+ #: lib/class-testimonials-widget-settings.php:589
473
+ msgid "Testimonials Widget Settings"
474
  msgstr ""
475
 
476
+ #: lib/class-testimonials-widget-settings.php:591
477
  msgid ""
478
  "These Testimonials Widget Settings establish the default option values for "
479
  "shortcodes, theme functions, and widget instances. Widgets, once created no "
482
  "then recreate it."
483
  msgstr ""
484
 
485
+ #: lib/class-testimonials-widget-settings.php:608
486
  msgid "Save Changes"
487
  msgstr ""
488
 
489
+ #: lib/class-testimonials-widget-settings.php:620
490
  msgid "Copyright &copy;%1$s %2$s."
491
  msgstr ""
492
 
493
+ #: lib/class-testimonials-widget-settings.php:980
494
  msgid "Required"
495
  msgstr ""
496
 
498
  msgid "Display testimonials with multiple selection and display options"
499
  msgstr ""
500
 
501
+ #. #-#-#-#-# testimonials-widget.pot (Testimonials Widget 2.13.0) #-#-#-#-#
502
  #. Plugin Name of the plugin/theme
503
  #: lib/class-testimonials-widget-widget.php:37
504
  msgid "Testimonials Widget"
516
  msgid "Expand/Collapse"
517
  msgstr ""
518
 
519
+ #: testimonials-widget.php:253
520
  msgid ""
521
  "If your Testimonials Widget display has gone to funky town, please <a href="
522
  "\"%s\">read the FAQ</a> about possible CSS fixes."
523
  msgstr ""
524
 
525
+ #: testimonials-widget.php:262
526
  msgid ""
527
  "Please donate $2 towards keeping Testimonials Widget plugin supported and "
528
  "maintained %s"
529
  msgstr ""
530
 
531
+ #: testimonials-widget.php:458
532
  msgid "Image"
533
  msgstr ""
534
 
535
+ #: testimonials-widget.php:460
536
  msgid "Shortcodes"
537
  msgstr ""
538
 
539
+ #: testimonials-widget.php:466
540
  msgid "Published by"
541
  msgstr ""
542
 
543
+ #: testimonials-widget.php:472 testimonials-widget.php:475
544
  msgid "Category"
545
  msgstr ""
546
 
547
+ #: testimonials-widget.php:473 testimonials-widget.php:476
548
  msgid "Tags"
549
  msgstr ""
550
 
551
+ #: testimonials-widget.php:487
552
  msgid "Add New"
553
  msgstr ""
554
 
555
+ #: testimonials-widget.php:488 testimonials-widget.php:491
556
  msgid "Add New Testimonial"
557
  msgstr ""
558
 
559
+ #: testimonials-widget.php:489
560
  msgid "Edit Testimonial"
561
  msgstr ""
562
 
563
+ #: testimonials-widget.php:492 testimonials-widget.php:814
564
  msgid "No testimonials found"
565
  msgstr ""
566
 
567
+ #: testimonials-widget.php:493
568
  msgid "No testimonials found in Trash"
569
  msgstr ""
570
 
571
+ #: testimonials-widget.php:495
572
  msgid "Search Testimonials"
573
  msgstr ""
574
 
575
+ #: testimonials-widget.php:496 testimonials-widget.php:1615
576
  msgid "Testimonial"
577
  msgstr ""
578
 
579
+ #: testimonials-widget.php:497
580
  msgid "View Testimonial"
581
  msgstr ""
582
 
583
+ #: testimonials-widget.php:925
584
  msgid "…"
585
  msgstr ""
586
 
587
+ #: testimonials-widget.php:1244
588
  msgid "&laquo;"
589
  msgstr ""
590
 
591
+ #: testimonials-widget.php:1253
592
  msgid "&raquo;"
593
  msgstr ""
594
 
595
+ #: testimonials-widget.php:1539
596
  msgid "Testimonial Data"
597
  msgstr ""
598
 
599
+ #: testimonials-widget.php:1564
600
  msgid "Enter title here"
601
  msgstr ""
602
 
603
+ #: testimonials-widget.php:1565
604
  msgid "Enter testimonial source here"
605
  msgstr ""
606
 
607
+ #: testimonials-widget.php:1590
608
  msgid "Testimonial updated. <a href=\"%s\">View testimonial</a>"
609
  msgstr ""
610
 
611
+ #: testimonials-widget.php:1591
612
  msgid "Custom field updated."
613
  msgstr ""
614
 
615
+ #: testimonials-widget.php:1592
616
  msgid "Custom field deleted."
617
  msgstr ""
618
 
619
+ #: testimonials-widget.php:1593
620
  msgid "Testimonial updated."
621
  msgstr ""
622
 
623
  #. translators: %s: date and time of the revision
624
+ #: testimonials-widget.php:1595
625
  msgid "Testimonial restored to revision from %s"
626
  msgstr ""
627
 
628
+ #: testimonials-widget.php:1596
629
  msgid "Testimonial published. <a href=\"%s\">View testimonial</a>"
630
  msgstr ""
631
 
632
+ #: testimonials-widget.php:1597
633
  msgid "Testimonial saved."
634
  msgstr ""
635
 
636
+ #: testimonials-widget.php:1598
637
  msgid ""
638
  "Testimonial submitted. <a target=\"_blank\" href=\"%s\">Preview testimonial</"
639
  "a>"
640
  msgstr ""
641
 
642
+ #: testimonials-widget.php:1599
643
  msgid ""
644
  "Testimonial scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
645
  "\"%2$s\">Preview testimonial</a>"
646
  msgstr ""
647
 
648
+ #: testimonials-widget.php:1600
649
  msgid ""
650
  "Testimonial draft updated. <a target=\"_blank\" href=\"%s\">Preview "
651
  "testimonial</a>"
lib/{class-settings-testimonials-widget.php → class-testimonials-widget-settings.php} RENAMED
@@ -90,7 +90,7 @@ class Testimonials_Widget_Settings {
90
  self::$settings['title_link'] = array(
91
  'section' => 'widget',
92
  'title' => esc_html__( 'Title Link', 'testimonials-widget' ),
93
- 'desc' => esc_html__( 'URL or Post ID to link widget title to. Ex: 123 or http://example.com', 'testimonials-widget' ),
94
  'validate' => 'wp_kses_data',
95
  );
96
 
@@ -129,6 +129,13 @@ class Testimonials_Widget_Settings {
129
  'type' => 'checkbox',
130
  );
131
 
 
 
 
 
 
 
 
132
  self::$settings['min_height'] = array(
133
  'section' => 'widget',
134
  'title' => esc_html__( 'Minimum Height', 'testimonials-widget' ),
@@ -378,7 +385,7 @@ class Testimonials_Widget_Settings {
378
  'widget' => 0,
379
  );
380
 
381
- $desc = esc_html__( 'URL slug-name for <a href="%1s">testimonials archive</a> page.', 'testimonials-widget' );
382
  $has_archive = tw_get_option( 'has_archive', '' );
383
  $site_url = site_url( '/' . $has_archive );
384
 
@@ -542,7 +549,7 @@ class Testimonials_Widget_Settings {
542
 
543
 
544
  public function admin_menu() {
545
- $admin_page = add_submenu_page( 'edit.php?post_type=' . Testimonials_Widget::PT, esc_html__( 'Testimonials Widget Settings', 'testimonials-widget' ), esc_html__( 'Settings', 'testimonials-widget' ), 'manage_options', self::ID, array( 'Testimonials_Widget_Settings', 'display_page' ) );
546
 
547
  add_action( 'admin_print_scripts-' . $admin_page, array( &$this, 'scripts' ) );
548
  add_action( 'admin_print_styles-' . $admin_page, array( &$this, 'styles' ) );
@@ -692,6 +699,13 @@ class Testimonials_Widget_Settings {
692
  if ( ! empty( $class ) )
693
  $field_class = ' ' . $class;
694
 
 
 
 
 
 
 
 
695
  switch ( $type ) {
696
  case 'checkbox':
697
  $content .= '<input class="checkbox' . $field_class . '" type="checkbox" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="1" ' . checked( $options[$id], 1, false ) . ' /> ';
@@ -714,12 +728,12 @@ class Testimonials_Widget_Settings {
714
  break;
715
 
716
  case 'hidden':
717
- $content .= '<input type="hidden" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . esc_attr( $options[$id] ) . '" />';
718
 
719
  break;
720
 
721
  case 'password':
722
- $content .= '<input class="regular-text' . $field_class . '" type="password" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . esc_attr( $options[$id] ) . '" />';
723
 
724
  if ( ! empty( $desc ) )
725
  $content .= '<br /><span class="description">' . $desc . '</span>';
@@ -730,7 +744,7 @@ class Testimonials_Widget_Settings {
730
  $i = 1;
731
  $count_choices = count( $choices );
732
  foreach ( $choices as $value => $label ) {
733
- $content .= '<input class="radio' . $field_class . '" type="radio" name="' . self::ID . '[' . $id . ']" id="' . $id . $i . '" value="' . esc_attr( $value ) . '" ' . checked( $options[$id], $value, false ) . '> <label for="' . $id . $i . '">' . $label . '</label>';
734
 
735
  if ( $i < $count_choices )
736
  $content .= '<br />';
@@ -744,7 +758,7 @@ class Testimonials_Widget_Settings {
744
  break;
745
 
746
  case 'readonly':
747
- $content .= '<input class="regular-text' . $field_class . '" type="text" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . esc_attr( $options[$id] ) . '" readonly="readonly" />';
748
 
749
  if ( ! empty( $desc ) )
750
  $content .= '<br /><span class="description">' . $desc . '</span>';
@@ -755,7 +769,7 @@ class Testimonials_Widget_Settings {
755
  $content .= '<select class="select' . $field_class . '" name="' . self::ID . '[' . $id . ']">';
756
 
757
  foreach ( $choices as $value => $label )
758
- $content .= '<option value="' . esc_attr( $value ) . '"' . selected( $options[$id], $value, false ) . '>' . $label . '</option>';
759
 
760
  $content .= '</select>';
761
 
@@ -765,7 +779,7 @@ class Testimonials_Widget_Settings {
765
  break;
766
 
767
  case 'text':
768
- $content .= '<input class="regular-text' . $field_class . '" type="text" id="' . $id . '" name="' . self::ID . '[' . $id . ']" placeholder="' . $std . '" value="' . esc_attr( $options[$id] ) . '" />';
769
 
770
  if ( ! empty( $desc ) )
771
  $content .= '<br /><span class="description">' . $desc . '</span>';
@@ -1029,7 +1043,7 @@ class Testimonials_Widget_Settings {
1029
 
1030
 
1031
  /**
1032
- * allows for true, 'true', 1, 'yes' to be true
1033
  */
1034
  public static function is_true( $value = null, $return_boolean = true ) {
1035
  if ( true === $value || 'true' == strtolower( $value ) || 1 == $value || 'yes' == strtolower( $value ) ) {
90
  self::$settings['title_link'] = array(
91
  'section' => 'widget',
92
  'title' => esc_html__( 'Title Link', 'testimonials-widget' ),
93
+ 'desc' => esc_html__( 'URL, path, or post ID to link widget title to. Ex: http://example.com/stuff, /testimonials, 123 or ', 'testimonials-widget' ),
94
  'validate' => 'wp_kses_data',
95
  );
96
 
129
  'type' => 'checkbox',
130
  );
131
 
132
+ self::$settings['disable_animation'] = array(
133
+ 'section' => 'widget',
134
+ 'title' => esc_html__( 'Disable animation?', 'testimonials-widget' ),
135
+ 'desc' => esc_html__( 'Disable animation between testimonial transitions. Useful when stacking widgets.', 'testimonials-widget' ),
136
+ 'type' => 'checkbox',
137
+ );
138
+
139
  self::$settings['min_height'] = array(
140
  'section' => 'widget',
141
  'title' => esc_html__( 'Minimum Height', 'testimonials-widget' ),
385
  'widget' => 0,
386
  );
387
 
388
+ $desc = __( 'URL slug-name for <a href="%1s">testimonials archive</a> page.', 'testimonials-widget' );
389
  $has_archive = tw_get_option( 'has_archive', '' );
390
  $site_url = site_url( '/' . $has_archive );
391
 
549
 
550
 
551
  public function admin_menu() {
552
+ $admin_page = add_submenu_page( 'edit.php?post_type=' . Testimonials_Widget::PT, '', esc_html__( 'Settings', 'testimonials-widget' ), 'manage_options', self::ID, array( 'Testimonials_Widget_Settings', 'display_page' ) );
553
 
554
  add_action( 'admin_print_scripts-' . $admin_page, array( &$this, 'scripts' ) );
555
  add_action( 'admin_print_styles-' . $admin_page, array( &$this, 'styles' ) );
699
  if ( ! empty( $class ) )
700
  $field_class = ' ' . $class;
701
 
702
+ // desc isn't escaped because it's might contain allowed html
703
+ $choices = array_map( 'esc_attr', $choices );
704
+ $field_class = esc_attr( $field_class );
705
+ $id = esc_attr( $id );
706
+ $options[$id] = esc_attr( $options[$id] );
707
+ $std = esc_attr( $std );
708
+
709
  switch ( $type ) {
710
  case 'checkbox':
711
  $content .= '<input class="checkbox' . $field_class . '" type="checkbox" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="1" ' . checked( $options[$id], 1, false ) . ' /> ';
728
  break;
729
 
730
  case 'hidden':
731
+ $content .= '<input type="hidden" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . $options[$id] . '" />';
732
 
733
  break;
734
 
735
  case 'password':
736
+ $content .= '<input class="regular-text' . $field_class . '" type="password" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . $options[$id] . '" />';
737
 
738
  if ( ! empty( $desc ) )
739
  $content .= '<br /><span class="description">' . $desc . '</span>';
744
  $i = 1;
745
  $count_choices = count( $choices );
746
  foreach ( $choices as $value => $label ) {
747
+ $content .= '<input class="radio' . $field_class . '" type="radio" name="' . self::ID . '[' . $id . ']" id="' . $id . $i . '" value="' . $value . '" ' . checked( $options[$id], $value, false ) . '> <label for="' . $id . $i . '">' . $label . '</label>';
748
 
749
  if ( $i < $count_choices )
750
  $content .= '<br />';
758
  break;
759
 
760
  case 'readonly':
761
+ $content .= '<input class="regular-text' . $field_class . '" type="text" id="' . $id . '" name="' . self::ID . '[' . $id . ']" value="' . $options[$id] . '" readonly="readonly" />';
762
 
763
  if ( ! empty( $desc ) )
764
  $content .= '<br /><span class="description">' . $desc . '</span>';
769
  $content .= '<select class="select' . $field_class . '" name="' . self::ID . '[' . $id . ']">';
770
 
771
  foreach ( $choices as $value => $label )
772
+ $content .= '<option value="' . $value . '"' . selected( $options[$id], $value, false ) . '>' . $label . '</option>';
773
 
774
  $content .= '</select>';
775
 
779
  break;
780
 
781
  case 'text':
782
+ $content .= '<input class="regular-text' . $field_class . '" type="text" id="' . $id . '" name="' . self::ID . '[' . $id . ']" placeholder="' . $std . '" value="' . $options[$id] . '" />';
783
 
784
  if ( ! empty( $desc ) )
785
  $content .= '<br /><span class="description">' . $desc . '</span>';
1043
 
1044
 
1045
  /**
1046
+ * Let values like "true, 'true', 1, and 'yes'" to be true. Else, false
1047
  */
1048
  public static function is_true( $value = null, $return_boolean = true ) {
1049
  if ( true === $value || 'true' == strtolower( $value ) || 1 == $value || 'yes' == strtolower( $value ) ) {
phpcs.ruleset.xml CHANGED
@@ -7,11 +7,8 @@
7
  <exclude-pattern>lib/class-redrokk-metabox-class.php</exclude-pattern>
8
  <exclude-pattern>lib/Akismet.class.php</exclude-pattern>
9
 
10
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
11
-
12
  <rule ref="Generic">
13
  <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed" />
14
- <exclude name="Generic.Files.EndFileNewline.NotFound" />
15
  <exclude name="Generic.Files.EndFileNoNewline.Found" />
16
  <exclude name="Generic.Files.LineLength.MaxExceeded" />
17
  <exclude name="Generic.Formatting.NoSpaceAfterCast.SpaceFound" />
@@ -21,10 +18,14 @@
21
  <exclude name="Generic.PHP.UpperCaseConstant.Found" />
22
  <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" />
23
  <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
 
 
 
 
24
  <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine" />
25
  </rule>
26
 
27
  <rule ref="WordPress">
28
- <xexclude name="WordPress.XSS.EscapeOutput" />
29
  </rule>
30
  </ruleset>
7
  <exclude-pattern>lib/class-redrokk-metabox-class.php</exclude-pattern>
8
  <exclude-pattern>lib/Akismet.class.php</exclude-pattern>
9
 
 
 
10
  <rule ref="Generic">
11
  <exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed" />
 
12
  <exclude name="Generic.Files.EndFileNoNewline.Found" />
13
  <exclude name="Generic.Files.LineLength.MaxExceeded" />
14
  <exclude name="Generic.Formatting.NoSpaceAfterCast.SpaceFound" />
18
  <exclude name="Generic.PHP.UpperCaseConstant.Found" />
19
  <exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" />
20
  <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
21
+ </rule>
22
+
23
+ <rule ref="Squiz.PHP.CommentedOutCode"/>
24
+ <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
25
  <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine" />
26
  </rule>
27
 
28
  <rule ref="WordPress">
29
+ <exclude name="WordPress.XSS.EscapeOutput" />
30
  </rule>
31
  </ruleset>
phpunit.xml ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <phpunit
2
+ bootstrap="ci/tests/bootstrap.php"
3
+ backupGlobals="false"
4
+ colors="true"
5
+ convertErrorsToExceptions="true"
6
+ convertNoticesToExceptions="true"
7
+ convertWarningsToExceptions="true"
8
+ >
9
+ <testsuites>
10
+ <testsuite name="tests">
11
+ <directory prefix="test-" suffix=".php">./ci/tests/</directory>
12
+ </testsuite>
13
+ </testsuites>
14
+ </phpunit>
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: http://aihr.us/about-aihrus/donate/
5
  Tags: client, customer, quotations, quote, quotes, random, review, quote, recommendation, reference, testimonial, testimonials, testimony, widget, wpml
6
  Requires at least: 3.4
7
  Tested up to: 3.6.0
8
- Stable tag: 2.12.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -26,10 +26,10 @@ The single testimonial view supports image, source, title, location, email, comp
26
 
27
  = Primary Features =
28
 
 
29
  * Admin interface to add, edit and manage testimonials
30
  * Capable of handling multiple widgets per page or post
31
  * Fields for source, testimonial, image, title, location, email, company and URL details
32
- * Filters to manipulate testimonials output
33
  * Multiple paging options for testimonials listings
34
  * Settings export/import
35
  * Settings screen for site-wide option defaults
@@ -43,9 +43,11 @@ The single testimonial view supports image, source, title, location, email, comp
43
  Testimonials Widget Premium plugin extends the best [Testimonials Widget](http://wordpress.org/extend/plugins/testimonials-widget/) plugin for WordPress with [caching, excerpts, filters, read more links](http://aihr.us/downloads/testimonials-widget-premium-wordpress-plugin/), more selection options, and advanced capabilities like selecting posts, pages and other custom post types as testimonials. Additionally, users can add testimonials via a front-end form shortcode or widget.
44
 
45
  * "Read more" link column on testimonial posts admin page
 
46
  * Akismet anti-spam checking
47
  * Alternate destinations for "Read more" links
48
  * Alternating `.even` and `.odd` CSS classes for styling testimonial list entries
 
49
  * Built-in update notification
50
  * Caching of testimonials queries and content to decrease server load time improve page loading speed by 1/10 to 1/2 a second
51
  * Deactivates self if no active or incorrect version of Testimonials Widget plugin
@@ -54,7 +56,6 @@ Testimonials Widget Premium plugin extends the best [Testimonials Widget](http:/
54
  * Disable caching for widget, shortcode or theme functions
55
  * Email notification for user submitted testimonials
56
  * Excerpts for widget view, with read more link to complete testimonial
57
- * Filters for caching and more link control, text replacement, and more
58
  * Front-end entry form for user supplied testimonials. [Live demo](http://aihr.us/about-aihrus/testimonials/add-testimonial/)
59
  * Math-based CAPTCHA
60
  * Multiple anti-spam traps
@@ -201,6 +202,8 @@ Further, global settings are the baseline for shortcodes. If you want to alter t
201
  * The citation has no whitespace adaptations. It's straight text, except for email or URL links. The presentation is handled strictly by CSS.
202
  * Height - Testimonials height, in pixels. Overrides minimum and maximum height
203
  * `height` - default none; height=300
 
 
204
  * Minimum Height - Set for minimum display height, in pixels
205
  * `min_height` - default none; min_height=100
206
  * Maximum Height - Set for maximum display height, in pixels
@@ -252,36 +255,9 @@ Further, global settings are the baseline for shortcodes. If you want to alter t
252
  * `testimonialswidget_list()` - Testimonials listing with paging
253
  * `testimonialswidget_widget()` - Rotating testimonials
254
 
255
- = Filters =
256
-
257
- * `testimonials_widget_cache_get` - Caching grabber
258
- * `testimonials_widget_cache_set` - Caching setter
259
- * `testimonials_widget_cite_html` - Adjust cite contents
260
- * `testimonials_widget_columns` - Customize testimonial posts column headers
261
- * `testimonials_widget_content_more` - More content ellipsis
262
- * `testimonials_widget_content` - Testimonial content parser helper
263
- * `testimonials_widget_data` - Process testimonials data before display processing
264
- * `testimonials_widget_defaults_single` - Create a global or central Testimonials Widget configuration for single view
265
- * `testimonials_widget_defaults` - Create a global or central Testimonials Widget configuration
266
- * `testimonials_widget_get_testimonial_html` - Customize testimonial contents and layout within `get_testimonial_html`. Useful for moving processed parts around than regenerating everything from scratch.
267
- * `testimonials_widget_gravatar_size` - Change the Gravatar size
268
- * `testimonials_widget_image_size` - Change the image size
269
- * `testimonials_widget_meta_box` - Modify Testimonial Data fields
270
- * `testimonials_widget_next_posts_link_text` - Configure Next page indicator
271
- * `testimonials_widget_posts_custom_column` - Customize testimonial posts column contents
272
- * `testimonials_widget_previous_posts_link_text` - Configure Previous page indicator
273
- * `testimonials_widget_query_args` - Alter WP_Query arguments for testimonial selection
274
- * `testimonials_widget_sections` – Alter section options
275
- * `testimonials_widget_settings` – Alter setting options
276
- * `testimonials_widget_testimonial_html_single_content` - Customize single view content before appending filter `testimonials_widget_testimonial_html_single` results
277
- * `testimonials_widget_testimonial_html_single` - Customize testimonials single view output post `get_testimonial_html`
278
- * `testimonials_widget_testimonial_html` - Customize testimonials list and widget output post `get_testimonial_html`
279
- * `testimonials_widget_testimonials_css` - Alter dynamically generated CSS
280
- * `testimonials_widget_testimonials_js` - Alter dynamically generated JavaScript
281
- * `testimonials_widget_validate_settings` - Validate settings helper
282
- * `testimonials_widget_version` - Version tracking for settings
283
- * `testimonials_widget_widget_options` – Alters displayed widget options
284
- * `testimonials_widget_wp_pagenavi` - Configure WP-PageNavi specifically for Testimonial Widgets
285
 
286
  = Notes =
287
 
@@ -320,6 +296,8 @@ Prior to version 2.0.0, this plugin was a fork of [Quotes Collection](http://sri
320
 
321
  Please visit the [Testimonials Widget Knowledge Base](https://aihrus.zendesk.com/categories/20104507-Testimonials-Widget) for frequently asked questions, offering ideas, or getting support.
322
 
 
 
323
 
324
  == Installation ==
325
 
@@ -437,16 +415,14 @@ See [Changelog](http://aihr.us/testimonials-widget/changelog/)
437
 
438
  == Beta Testers Needed ==
439
 
440
- I really want Testimonials Widget and Testimonials Widget Premium to be the best WordPress plugins of their type. However, it's getting beyond me to do it alone.
441
 
442
  I need beta testers to help with ensuring pending releases of Testimonials Widget and Testimonials Widget Premium are solid. This would benefit us all by helping reduce the number of releases and raise code quality.
443
 
444
  [Please contact me directly](http://aihr.us/contact-aihrus/).
445
 
446
- Beta testers benefit directly with latest versions, free access to Testimonials Widget Premium, and personal support assistance by me.
447
 
448
  == TODO ==
449
 
450
- Is there something you want done? Write it up on the [support forums](http://wordpress.org/support/plugin/testimonials-widget) and then [donate](http://aihr.us/about-aihrus/donate/) or [write an awesome testimonial](http://aihr.us/about-aihrus/testimonials/add-testimonial/).
451
-
452
- * BUG [IE8 + Google Font Issue](http://wordpress.org/support/topic/ie8-google-font-issue)
5
  Tags: client, customer, quotations, quote, quotes, random, review, quote, recommendation, reference, testimonial, testimonials, testimony, widget, wpml
6
  Requires at least: 3.4
7
  Tested up to: 3.6.0
8
+ Stable tag: 2.13.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
26
 
27
  = Primary Features =
28
 
29
+ * API to manipulate testimonials output and selection
30
  * Admin interface to add, edit and manage testimonials
31
  * Capable of handling multiple widgets per page or post
32
  * Fields for source, testimonial, image, title, location, email, company and URL details
 
33
  * Multiple paging options for testimonials listings
34
  * Settings export/import
35
  * Settings screen for site-wide option defaults
43
  Testimonials Widget Premium plugin extends the best [Testimonials Widget](http://wordpress.org/extend/plugins/testimonials-widget/) plugin for WordPress with [caching, excerpts, filters, read more links](http://aihr.us/downloads/testimonials-widget-premium-wordpress-plugin/), more selection options, and advanced capabilities like selecting posts, pages and other custom post types as testimonials. Additionally, users can add testimonials via a front-end form shortcode or widget.
44
 
45
  * "Read more" link column on testimonial posts admin page
46
+ * API for caching and more link control, text replacement, and more
47
  * Akismet anti-spam checking
48
  * Alternate destinations for "Read more" links
49
  * Alternating `.even` and `.odd` CSS classes for styling testimonial list entries
50
+ * Animated widget rotation for smoother transitions. Disable by setting a height property. [Thank you DSafari](http://wordpress.org/support/topic/animate-jumpy-widget)
51
  * Built-in update notification
52
  * Caching of testimonials queries and content to decrease server load time improve page loading speed by 1/10 to 1/2 a second
53
  * Deactivates self if no active or incorrect version of Testimonials Widget plugin
56
  * Disable caching for widget, shortcode or theme functions
57
  * Email notification for user submitted testimonials
58
  * Excerpts for widget view, with read more link to complete testimonial
 
59
  * Front-end entry form for user supplied testimonials. [Live demo](http://aihr.us/about-aihrus/testimonials/add-testimonial/)
60
  * Math-based CAPTCHA
61
  * Multiple anti-spam traps
202
  * The citation has no whitespace adaptations. It's straight text, except for email or URL links. The presentation is handled strictly by CSS.
203
  * Height - Testimonials height, in pixels. Overrides minimum and maximum height
204
  * `height` - default none; height=300
205
+ * Disable animation? - Disable animation between testimonial transitions. Useful when stacking.
206
+ * `disable_animation` - default false; disable_animation=true
207
  * Minimum Height - Set for minimum display height, in pixels
208
  * `min_height` - default none; min_height=100
209
  * Maximum Height - Set for maximum display height, in pixels
255
  * `testimonialswidget_list()` - Testimonials listing with paging
256
  * `testimonialswidget_widget()` - Rotating testimonials
257
 
258
+ = API =
259
+
260
+ * Read the [Testimonials Widget API](https://github.com/michael-cannon/testimonials-widget/blob/master/API.md).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
 
262
  = Notes =
263
 
296
 
297
  Please visit the [Testimonials Widget Knowledge Base](https://aihrus.zendesk.com/categories/20104507-Testimonials-Widget) for frequently asked questions, offering ideas, or getting support.
298
 
299
+ If you want to contribute and I hope you do, visit the [Testimonials Widget Github repository](https://github.com/michael-cannon/testimonials-widget).
300
+
301
 
302
  == Installation ==
303
 
415
 
416
  == Beta Testers Needed ==
417
 
418
+ I really want Testimonials Widget and Testimonials Widget Premium to be the best WordPress plugins of their type. However, it's beyond me to do it alone.
419
 
420
  I need beta testers to help with ensuring pending releases of Testimonials Widget and Testimonials Widget Premium are solid. This would benefit us all by helping reduce the number of releases and raise code quality.
421
 
422
  [Please contact me directly](http://aihr.us/contact-aihrus/).
423
 
424
+ Beta testers benefit directly with latest versions, a free 1-site license for Testimonials Widget Premium, and personalized support assistance.
425
 
426
  == TODO ==
427
 
428
+ See [TODO](https://github.com/michael-cannon/testimonials-widget/blob/master/TODO.md)
 
 
testimonials-widget.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Testimonials Widget
4
  * Plugin URI: http://wordpress.org/extend/plugins/testimonials-widget/
5
  * Description: Testimonials Widget plugin allows you to display random or selected portfolio, quotes, reviews, showcases, or text with images on your WordPress blog.
6
- * Version: 2.12.8
7
  * Author: Michael Cannon
8
  * Author URI: http://aihr.us/about-aihrus/michael-cannon-resume/
9
  * License: GPLv2 or later
@@ -23,15 +23,12 @@
23
  */
24
 
25
 
26
- require_once 'lib/class-settings-testimonials-widget.php';
27
-
28
-
29
  class Testimonials_Widget {
30
  const ID = 'testimonials-widget-testimonials';
31
  const OLD_NAME = 'testimonialswidget';
32
  const PLUGIN_FILE = 'testimonials-widget/testimonials-widget.php';
33
  const PT = 'testimonials-widget';
34
- const VERSION = '2.12.8';
35
 
36
  private static $base = null;
37
  private static $max_num_pages = 0;
@@ -59,9 +56,6 @@ class Testimonials_Widget {
59
  add_shortcode( 'testimonialswidget_list', array( &$this, 'testimonialswidget_list' ) );
60
  add_shortcode( 'testimonialswidget_widget', array( &$this, 'testimonialswidget_widget' ) );
61
  load_plugin_textdomain( self::PT, false, 'testimonials-widget/languages' );
62
- register_activation_hook( __FILE__, array( &$this, 'activation' ) );
63
- register_deactivation_hook( __FILE__, array( &$this, 'deactivation' ) );
64
- register_uninstall_hook( __FILE__, array( 'Testimonials_Widget', 'uninstall' ) );
65
  }
66
 
67
 
@@ -168,12 +162,8 @@ EOD;
168
  if ( ! current_user_can( 'activate_plugins' ) )
169
  return;
170
 
171
- $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : false;
172
- if ( $plugin )
173
- check_admin_referer( "activate-plugin_{$plugin}" );
174
-
175
  self::init();
176
-
177
  flush_rewrite_rules();
178
  }
179
 
@@ -187,10 +177,6 @@ EOD;
187
  if ( ! current_user_can( 'activate_plugins' ) )
188
  return;
189
 
190
- $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : false;
191
- if ( $plugin )
192
- check_admin_referer( "deactivate-plugin_{$plugin}" );
193
-
194
  flush_rewrite_rules();
195
  }
196
 
@@ -199,20 +185,16 @@ EOD;
199
  if ( ! current_user_can( 'activate_plugins' ) )
200
  return;
201
 
202
- if ( __FILE__ != WP_UNINSTALL_PLUGIN )
203
- return;
204
-
205
- check_admin_referer( 'bulk-plugins' );
206
-
207
  global $wpdb;
208
 
 
209
  $delete_data = tw_get_option( 'delete_data', false );
210
  if ( $delete_data ) {
211
  delete_option( Testimonials_Widget_Settings::ID );
212
  delete_option( self::OLD_NAME );
213
  $wpdb->query( 'OPTIMIZE TABLE `' . $wpdb->options . '`' );
214
 
215
- self::delete_testimonials();
216
  }
217
  }
218
 
@@ -225,7 +207,7 @@ EOD;
225
 
226
  foreach ( $posts as $post ) {
227
  $post_id = $post->ID;
228
- self::delete_attachments( $post_id );
229
 
230
  // dels post, meta & comments
231
  // true is force delete
@@ -447,6 +429,19 @@ EOD;
447
  $result = false;
448
  }
449
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  }
451
 
452
  $result = apply_filters( 'testimonials_widget_posts_custom_column', $result, $column, $post_id );
@@ -469,11 +464,18 @@ EOD;
469
  'testimonials-widget-company' => __( 'Company', 'testimonials-widget' ),
470
  'testimonials-widget-url' => __( 'URL', 'testimonials-widget' ),
471
  'author' => __( 'Published by', 'testimonials-widget' ),
472
- 'categories' => __( 'Category', 'testimonials-widget' ),
473
- 'tags' => __( 'Tags', 'testimonials-widget' ),
474
  'date' => __( 'Date', 'testimonials-widget' ),
475
  );
476
 
 
 
 
 
 
 
 
 
 
477
  $columns = apply_filters( 'testimonials_widget_columns', $columns );
478
 
479
  return $columns;
@@ -520,13 +522,13 @@ EOD;
520
  'post_tag',
521
  );
522
  } else {
523
- self::register_taxonomies();
524
-
525
  $do_register_taxonomy = true;
526
  $taxonomies = array(
527
  self::$cpt_category,
528
  self::$cpt_tags,
529
  );
 
 
530
  }
531
 
532
  $args = array(
@@ -559,7 +561,7 @@ EOD;
559
 
560
  public static function register_taxonomies() {
561
  $args = array(
562
- 'hierarchical' => true,
563
  );
564
  register_taxonomy( self::$cpt_category, self::PT, $args );
565
 
@@ -720,21 +722,46 @@ EOF;
720
  // display attributes
721
  $refresh_interval = $atts['refresh_interval'];
722
 
723
- $id_base = self::ID . $widget_number;
724
- $scripts = array();
 
 
 
 
 
 
 
 
 
 
 
725
 
726
  if ( $refresh_interval && 1 < count( $testimonials ) ) {
727
  $javascript = <<<EOF
728
  <script type="text/javascript">
 
 
 
 
 
 
 
 
729
  function nextTestimonial{$widget_number}() {
730
  if ( ! jQuery('.{$id_base}').first().hasClass('hovered') ) {
731
  var active = jQuery('.{$id_base} .active');
732
- var next = (jQuery('.{$id_base} .active').next().length > 0) ? jQuery('.{$id_base} .active').next() : jQuery('.{$id_base} .testimonials-widget-testimonial:first');
 
733
  active.fadeOut(1250, function(){
734
  active.removeClass('active');
735
  next.fadeIn(500);
736
  next.removeClass('display-none');
737
  next.addClass('active');
 
 
 
 
 
738
  });
739
  }
740
  }
@@ -966,7 +993,6 @@ EOF;
966
  if ( $do_title && $cite )
967
  $cite .= '<span class="join-title"></span>';
968
 
969
-
970
  if ( $do_title ) {
971
  $cite .= '<span class="title">';
972
  $cite .= $testimonial['testimonial_title'];
@@ -1247,9 +1273,8 @@ EOF;
1247
 
1248
  public static function get_testimonials_css() {
1249
  if ( empty( self::$css_called ) ) {
1250
- foreach ( self::$css as $css ) {
1251
  echo $css;
1252
- }
1253
 
1254
  self::$css_called = true;
1255
  }
@@ -1258,9 +1283,8 @@ EOF;
1258
 
1259
  public static function get_testimonials_scripts() {
1260
  if ( empty( self::$scripts_called ) ) {
1261
- foreach ( self::$scripts as $script ) {
1262
  echo $script;
1263
- }
1264
 
1265
  self::$scripts_called = true;
1266
  }
@@ -1321,7 +1345,6 @@ EOF;
1321
  add_filter( 'posts_results', array( 'Testimonials_Widget', 'posts_results_sort_none' ), 10, 2 );
1322
  }
1323
 
1324
-
1325
  if ( $exclude ) {
1326
  $exclude = explode( ',', $exclude );
1327
 
@@ -1595,22 +1618,39 @@ EOF;
1595
  $a_close = '</a>';
1596
 
1597
  if ( current_user_can( 'edit_others_posts' ) )
1598
- echo sprintf( $content, Testimonials_Widget::PT, $count_f, $name, $a_open, $a_close );
1599
  else
1600
- echo sprintf( $content, Testimonials_Widget::PT, $count_f, $name, '', '' );
 
 
1601
  }
1602
 
1603
 
1604
  }
1605
 
1606
 
1607
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
1608
- if ( is_plugin_active( Testimonials_Widget::PLUGIN_FILE ) ) {
1609
- $Testimonials_Widget = new Testimonials_Widget();
1610
- $Testimonials_Widget_Settings = new Testimonials_Widget_Settings();
 
 
 
 
 
 
 
 
 
 
1611
  }
1612
 
1613
 
 
 
 
 
 
1614
  function testimonialswidget_list( $atts = array() ) {
1615
  global $Testimonials_Widget;
1616
 
3
  * Plugin Name: Testimonials Widget
4
  * Plugin URI: http://wordpress.org/extend/plugins/testimonials-widget/
5
  * Description: Testimonials Widget plugin allows you to display random or selected portfolio, quotes, reviews, showcases, or text with images on your WordPress blog.
6
+ * Version: 2.13.0
7
  * Author: Michael Cannon
8
  * Author URI: http://aihr.us/about-aihrus/michael-cannon-resume/
9
  * License: GPLv2 or later
23
  */
24
 
25
 
 
 
 
26
  class Testimonials_Widget {
27
  const ID = 'testimonials-widget-testimonials';
28
  const OLD_NAME = 'testimonialswidget';
29
  const PLUGIN_FILE = 'testimonials-widget/testimonials-widget.php';
30
  const PT = 'testimonials-widget';
31
+ const VERSION = '2.13.0';
32
 
33
  private static $base = null;
34
  private static $max_num_pages = 0;
56
  add_shortcode( 'testimonialswidget_list', array( &$this, 'testimonialswidget_list' ) );
57
  add_shortcode( 'testimonialswidget_widget', array( &$this, 'testimonialswidget_widget' ) );
58
  load_plugin_textdomain( self::PT, false, 'testimonials-widget/languages' );
 
 
 
59
  }
60
 
61
 
162
  if ( ! current_user_can( 'activate_plugins' ) )
163
  return;
164
 
165
+ require_once 'lib/class-testimonials-widget-settings.php';
 
 
 
166
  self::init();
 
167
  flush_rewrite_rules();
168
  }
169
 
177
  if ( ! current_user_can( 'activate_plugins' ) )
178
  return;
179
 
 
 
 
 
180
  flush_rewrite_rules();
181
  }
182
 
185
  if ( ! current_user_can( 'activate_plugins' ) )
186
  return;
187
 
 
 
 
 
 
188
  global $wpdb;
189
 
190
+ require_once 'lib/class-testimonials-widget-settings.php';
191
  $delete_data = tw_get_option( 'delete_data', false );
192
  if ( $delete_data ) {
193
  delete_option( Testimonials_Widget_Settings::ID );
194
  delete_option( self::OLD_NAME );
195
  $wpdb->query( 'OPTIMIZE TABLE `' . $wpdb->options . '`' );
196
 
197
+ Testimonials_Widget::delete_testimonials();
198
  }
199
  }
200
 
207
 
208
  foreach ( $posts as $post ) {
209
  $post_id = $post->ID;
210
+ Testimonials_Widget::delete_attachments( $post_id );
211
 
212
  // dels post, meta & comments
213
  // true is force delete
429
  $result = false;
430
  }
431
  break;
432
+
433
+ case self::$cpt_category:
434
+ case self::$cpt_tags:
435
+ $terms = get_the_terms( $post_id, $column );
436
+ $result = '';
437
+ if ( ! empty( $terms ) ) {
438
+ $out = array();
439
+ foreach ( $terms as $term )
440
+ $out[] = '<a href="' . admin_url( 'edit-tags.php?action=edit&taxonomy=' . $column . '&tag_ID=' . $term->term_id . '&post_type=' . self::PT ) . '">' . $term->name . '</a>';
441
+
442
+ $result = join( ', ', $out );
443
+ }
444
+ break;
445
  }
446
 
447
  $result = apply_filters( 'testimonials_widget_posts_custom_column', $result, $column, $post_id );
464
  'testimonials-widget-company' => __( 'Company', 'testimonials-widget' ),
465
  'testimonials-widget-url' => __( 'URL', 'testimonials-widget' ),
466
  'author' => __( 'Published by', 'testimonials-widget' ),
 
 
467
  'date' => __( 'Date', 'testimonials-widget' ),
468
  );
469
 
470
+ $use_cpt_taxonomy = tw_get_option( 'use_cpt_taxonomy', false );
471
+ if ( ! $use_cpt_taxonomy ) {
472
+ $columns[ 'categories' ] = __( 'Category', 'testimonials-widget' );
473
+ $columns[ 'tags' ] = __( 'Tags', 'testimonials-widget' );
474
+ } else {
475
+ $columns[ self::$cpt_category ] = __( 'Category', 'testimonials-widget' );
476
+ $columns[ self::$cpt_tags ] = __( 'Tags', 'testimonials-widget' );
477
+ }
478
+
479
  $columns = apply_filters( 'testimonials_widget_columns', $columns );
480
 
481
  return $columns;
522
  'post_tag',
523
  );
524
  } else {
 
 
525
  $do_register_taxonomy = true;
526
  $taxonomies = array(
527
  self::$cpt_category,
528
  self::$cpt_tags,
529
  );
530
+
531
+ self::register_taxonomies();
532
  }
533
 
534
  $args = array(
561
 
562
  public static function register_taxonomies() {
563
  $args = array(
564
+ 'hierarchical' => true,
565
  );
566
  register_taxonomy( self::$cpt_category, self::PT, $args );
567
 
722
  // display attributes
723
  $refresh_interval = $atts['refresh_interval'];
724
 
725
+ $id_base = self::ID . $widget_number;
726
+ $scripts = array();
727
+ $tw_padding = 'tw_padding' . $widget_number;
728
+ $tw_wrapper = 'tw_wrapper' . $widget_number;
729
+
730
+ $disable_animation = $atts['disable_animation'];
731
+ $height = $atts['height'];
732
+ $max_height = $atts['max_height'];
733
+ $min_height = $atts['min_height'];
734
+
735
+ $enable_animation = 1;
736
+ if ( $disable_animation || $height || $max_height || $min_height )
737
+ $enable_animation = 0;
738
 
739
  if ( $refresh_interval && 1 < count( $testimonials ) ) {
740
  $javascript = <<<EOF
741
  <script type="text/javascript">
742
+ if ( {$enable_animation} ) {
743
+ var {$tw_wrapper} = jQuery('.{$id_base}');
744
+ // tw_padding is the difference in height to take into account all styling options
745
+ var {$tw_padding} = {$tw_wrapper}.height() - jQuery('.{$id_base} .testimonials-widget').height();
746
+ // fixes first animation by defining height to adjust to
747
+ {$tw_wrapper}.height( {$tw_wrapper}.height() );
748
+ }
749
+
750
  function nextTestimonial{$widget_number}() {
751
  if ( ! jQuery('.{$id_base}').first().hasClass('hovered') ) {
752
  var active = jQuery('.{$id_base} .active');
753
+ var next = (jQuery('.{$id_base} .active').next().length > 0) ? jQuery('.{$id_base} .active').next() : jQuery('.{$id_base} .testimonials-widget-testimonial:first-child');
754
+
755
  active.fadeOut(1250, function(){
756
  active.removeClass('active');
757
  next.fadeIn(500);
758
  next.removeClass('display-none');
759
  next.addClass('active');
760
+
761
+ if ( {$enable_animation} ) {
762
+ // added padding
763
+ {$tw_wrapper}.animate({ height: next.height() + {$tw_padding} });
764
+ }
765
  });
766
  }
767
  }
993
  if ( $do_title && $cite )
994
  $cite .= '<span class="join-title"></span>';
995
 
 
996
  if ( $do_title ) {
997
  $cite .= '<span class="title">';
998
  $cite .= $testimonial['testimonial_title'];
1273
 
1274
  public static function get_testimonials_css() {
1275
  if ( empty( self::$css_called ) ) {
1276
+ foreach ( self::$css as $css )
1277
  echo $css;
 
1278
 
1279
  self::$css_called = true;
1280
  }
1283
 
1284
  public static function get_testimonials_scripts() {
1285
  if ( empty( self::$scripts_called ) ) {
1286
+ foreach ( self::$scripts as $script )
1287
  echo $script;
 
1288
 
1289
  self::$scripts_called = true;
1290
  }
1345
  add_filter( 'posts_results', array( 'Testimonials_Widget', 'posts_results_sort_none' ), 10, 2 );
1346
  }
1347
 
 
1348
  if ( $exclude ) {
1349
  $exclude = explode( ',', $exclude );
1350
 
1618
  $a_close = '</a>';
1619
 
1620
  if ( current_user_can( 'edit_others_posts' ) )
1621
+ $result = sprintf( $content, Testimonials_Widget::PT, $count_f, $name, $a_open, $a_close );
1622
  else
1623
+ $result = sprintf( $content, Testimonials_Widget::PT, $count_f, $name, '', '' );
1624
+
1625
+ echo $result;
1626
  }
1627
 
1628
 
1629
  }
1630
 
1631
 
1632
+ add_action( 'plugins_loaded', 'testimonialswidget_init' );
1633
+ function testimonialswidget_init() {
1634
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
1635
+
1636
+ if ( is_plugin_active( Testimonials_Widget::PLUGIN_FILE ) ) {
1637
+ require_once 'lib/class-testimonials-widget-settings.php';
1638
+ global $Testimonials_Widget_Settings;
1639
+ if ( is_null( $Testimonials_Widget_Settings ) )
1640
+ $Testimonials_Widget_Settings = new Testimonials_Widget_Settings();
1641
+
1642
+ global $Testimonials_Widget;
1643
+ if ( is_null( $Testimonials_Widget ) )
1644
+ $Testimonials_Widget = new Testimonials_Widget();
1645
+ }
1646
  }
1647
 
1648
 
1649
+ register_activation_hook( __FILE__, array( 'Testimonials_Widget', 'activation' ) );
1650
+ register_deactivation_hook( __FILE__, array( 'Testimonials_Widget', 'deactivation' ) );
1651
+ register_uninstall_hook( __FILE__, array( 'Testimonials_Widget', 'uninstall' ) );
1652
+
1653
+
1654
  function testimonialswidget_list( $atts = array() ) {
1655
  global $Testimonials_Widget;
1656