Version Description
- NEW - Adding multisite support for Repeater Templates - if using a multisite, please deactivate then re-activate Ajax Load More.
- NEW - Completely rebuilt update script for repeater templates to be more efficient and integrate with multisite installations.
- UPDATE - Split up ALM setting fields into Global and Admin settings for increased usability.
- NEW - Added new setting field for Error Reporting - User can now choose to display error notices regarding repeater template updating in the browser console.
Download this release
Release Info
Developer | dcooney |
Plugin | WordPress Infinite Scroll – Ajax Load More |
Version | 2.7.2 |
Comparing to | |
See all releases |
Code changes from version 2.7.1 to 2.7.2
- README.txt +21 -13
- admin/admin.php +202 -87
- admin/css/admin.css +119 -1
- admin/includes/cta/mailinglist.php +17 -0
- admin/includes/mailchimp/MailChimp.php +87 -0
- admin/includes/mailchimp/mailchimp-info.php +33 -0
- admin/js/admin.js +44 -0
- admin/views/add-ons.php +8 -8
- admin/views/licenses.php +1 -1
- admin/views/repeater-templates.php +10 -2
- admin/views/settings.php +1 -0
- ajax-load-more.php +52 -9
- core/functions.php +33 -4
- lang/ajax-load-more.pot +103 -73
README.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Ajax Load More ===
|
2 |
Contributors: dcooney
|
3 |
Donate link: http://connekthq.com/donate/
|
4 |
-
Tags: ajax, query, ajax pagination, paging, filter, infinite scroll, infinite, pagination, loop, dynamic, shortcode builder, shortcode, search, tags, category, post types, taxonomy, meta_query,
|
5 |
Requires at least: 3.6
|
6 |
Tested up to: 4.2.3
|
7 |
-
Stable tag: 2.7.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -12,8 +12,8 @@ A simple solution for lazy loading/infinite scrolling posts and pages with Ajax.
|
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
Ajax Load More is a
|
16 |
-
Build complex WordPress queries using
|
17 |
|
18 |
|
19 |
= Features =
|
@@ -22,6 +22,7 @@ Build complex WordPress queries using our shortcode builder then add the shortco
|
|
22 |
* **Customizable Repeater Templates** - Edit and extend the functionality of Ajax Load More by creating your own repeater template to match the look and feel of your website (see screenshots).
|
23 |
* **Setting Panel** - Customize your version of Ajax Load More by updating various plugin settings (see screenshots).
|
24 |
* **Multiple Instances** - You can include multiple instances of Ajax Load More on a single page, post or template.
|
|
|
25 |
|
26 |
Check out the **[demo site](http://connekthq.com/plugins/ajax-load-more/)** for more information!
|
27 |
|
@@ -110,20 +111,20 @@ Ajax Load More accepts a number of parameters that are passed to the WordPress q
|
|
110 |
The following Add-ons are available to increase the functionality of Ajax Load More.
|
111 |
|
112 |
> #### Custom Repeaters
|
113 |
-
> The **[Custom Repeaters](http://connekthq.com/plugins/ajax-load-more/custom-repeaters)** add-on will allow for **unlimited repeater templates** and provide the ability to create unique templates for different content types throughout your theme.<br />
|
114 |
-
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/custom-repeaters)
|
115 |
>
|
116 |
> #### Cache
|
117 |
-
> The **[Cache](http://connekthq.com/plugins/ajax-load-more/cache)** creates static HTML files of Ajax Load More requests then serves those static pages to your visitors without querying the database.<br />
|
118 |
-
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/cache)
|
119 |
>
|
120 |
> #### Paging
|
121 |
-
> The **[Paging](http://connekthq.com/plugins/ajax-load-more/paging)** add-on will transform Ajax Load More’s lazy load/infinite scroll functionality into a robust ajax powered navigation system.<br />
|
122 |
-
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/paging)
|
123 |
-
>
|
124 |
> #### Preloaded
|
125 |
-
> The **[Preloaded](http://connekthq.com/plugins/ajax-load-more/preloaded)** add-on will allow you to quickly and easily preload an initial set of posts before completing any Ajax requests to the server.<br />
|
126 |
-
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/preloaded)
|
127 |
>
|
128 |
> #### Search Engine Optimization
|
129 |
> The **[SEO](http://connekthq.com/plugins/ajax-load-more/seo/)** add-on will optimize your ajax loaded content for search engines and site visitors by generating standard WordPress paging URLs with each Ajax Load More query.<br />
|
@@ -264,6 +265,13 @@ How to install Ajax Load More.
|
|
264 |
== Changelog ==
|
265 |
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
= 2.7.1 =
|
268 |
* FIX - Fixed issue for querying by meta_key - users are not required to enter a meta_value to query by meta_key.
|
269 |
|
1 |
=== Ajax Load More ===
|
2 |
Contributors: dcooney
|
3 |
Donate link: http://connekthq.com/donate/
|
4 |
+
Tags: ajax, query, lazy load, lazy loading, ajax pagination, paging, filter, infinite scroll, infinite, pagination, loop, dynamic, shortcode builder, shortcode, search, tags, category, post types, taxonomy, meta_query, archives, date
|
5 |
Requires at least: 3.6
|
6 |
Tested up to: 4.2.3
|
7 |
+
Stable tag: 2.7.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
Ajax Load More is a powerful solution for infinite scrolling WordPress posts and pages using Ajax.
|
16 |
+
Build complex WordPress queries using the custom shortcode builder and then add the shortcode to your pages via the content editor or directly into your template files.
|
17 |
|
18 |
|
19 |
= Features =
|
22 |
* **Customizable Repeater Templates** - Edit and extend the functionality of Ajax Load More by creating your own repeater template to match the look and feel of your website (see screenshots).
|
23 |
* **Setting Panel** - Customize your version of Ajax Load More by updating various plugin settings (see screenshots).
|
24 |
* **Multiple Instances** - You can include multiple instances of Ajax Load More on a single page, post or template.
|
25 |
+
* **Multisite Compatibility** - As of Ajax Load More 2.7.2 you can now manage repeater templates across all sites in your network.
|
26 |
|
27 |
Check out the **[demo site](http://connekthq.com/plugins/ajax-load-more/)** for more information!
|
28 |
|
111 |
The following Add-ons are available to increase the functionality of Ajax Load More.
|
112 |
|
113 |
> #### Custom Repeaters
|
114 |
+
> The **[Custom Repeaters](http://connekthq.com/plugins/ajax-load-more/custom-repeaters/)** add-on will allow for **unlimited repeater templates** and provide the ability to create unique templates for different content types throughout your theme.<br />
|
115 |
+
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/custom-repeaters/)
|
116 |
>
|
117 |
> #### Cache
|
118 |
+
> The **[Cache](http://connekthq.com/plugins/ajax-load-more/cache/)** creates static HTML files of Ajax Load More requests then serves those static pages to your visitors without querying the database.<br />
|
119 |
+
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/cache/)
|
120 |
>
|
121 |
> #### Paging
|
122 |
+
> The **[Paging](http://connekthq.com/plugins/ajax-load-more/paging/)** add-on will transform Ajax Load More’s lazy load/infinite scroll functionality into a robust ajax powered navigation system.<br />
|
123 |
+
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/paging/)
|
124 |
+
>
|
125 |
> #### Preloaded
|
126 |
+
> The **[Preloaded](http://connekthq.com/plugins/ajax-load-more/preloaded/)** add-on will allow you to quickly and easily preload an initial set of posts before completing any Ajax requests to the server.<br />
|
127 |
+
> [Get More Information](http://connekthq.com/plugins/ajax-load-more/preloaded/)
|
128 |
>
|
129 |
> #### Search Engine Optimization
|
130 |
> The **[SEO](http://connekthq.com/plugins/ajax-load-more/seo/)** add-on will optimize your ajax loaded content for search engines and site visitors by generating standard WordPress paging URLs with each Ajax Load More query.<br />
|
265 |
== Changelog ==
|
266 |
|
267 |
|
268 |
+
= 2.7.2 =
|
269 |
+
* NEW - Adding multisite support for Repeater Templates - if using a multisite, please deactivate then re-activate Ajax Load More.
|
270 |
+
* NEW - Completely rebuilt update script for repeater templates to be more efficient and integrate with multisite installations.
|
271 |
+
* UPDATE - Split up ALM setting fields into Global and Admin settings for increased usability.
|
272 |
+
* NEW - Added new setting field for Error Reporting - User can now choose to display error notices regarding repeater template updating in the browser console.
|
273 |
+
|
274 |
+
|
275 |
= 2.7.1 =
|
276 |
* FIX - Fixed issue for querying by meta_key - users are not required to enter a meta_value to query by meta_key.
|
277 |
|
admin/admin.php
CHANGED
@@ -40,67 +40,103 @@ function alm_admin_vars() { ?>
|
|
40 |
|
41 |
function alm_core_update() {
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
$o = fopen($f, 'w+'); //Open file
|
67 |
if ( !$o ) {
|
68 |
-
throw new Exception(__('[Ajax Load More]
|
69 |
}
|
70 |
$w = fwrite($o, $data); //Save the file
|
71 |
if ( !$w ) {
|
72 |
-
throw new Exception(__('[Ajax Load More]
|
73 |
}
|
74 |
fclose($o); //now close it
|
75 |
|
76 |
} catch ( Exception $e ) {
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
// **********************************************
|
85 |
-
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
|
86 |
-
$createRepeater = '<li><?php if ( has_post_thumbnail() ) { the_post_thumbnail(array(100,100));}?><h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3><p class="entry-meta"><?php the_time("F d, Y"); ?></p><?php the_excerpt(); ?></li>';
|
87 |
-
$sql = "CREATE TABLE $table_name (
|
88 |
-
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
89 |
-
name text NOT NULL,
|
90 |
-
repeaterDefault longtext NOT NULL,
|
91 |
-
pluginVersion text NOT NULL,
|
92 |
-
UNIQUE KEY id (id)
|
93 |
-
);";
|
94 |
-
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
95 |
-
dbDelta( $sql );
|
96 |
-
|
97 |
-
//Insert default data into created table
|
98 |
-
$wpdb->insert($table_name , array('name' => 'default', 'repeaterDefault' => $createRepeater, 'pluginVersion' => ALM_VERSION));
|
99 |
}
|
|
|
100 |
}
|
101 |
|
102 |
|
103 |
|
|
|
104 |
/**
|
105 |
* alm_admin_menu
|
106 |
* Create Admin Menu
|
@@ -394,6 +430,12 @@ function alm_delete_cache(){
|
|
394 |
*/
|
395 |
|
396 |
function alm_save_repeater(){
|
|
|
|
|
|
|
|
|
|
|
|
|
397 |
$nonce = $_POST["nonce"];
|
398 |
// Check our nonce, if they don't match then bounce!
|
399 |
if (! wp_verify_nonce( $nonce, 'alm_repeater_nonce' ))
|
@@ -405,37 +447,62 @@ function alm_save_repeater(){
|
|
405 |
$t = Trim(stripslashes($_POST["type"])); // Repeater name
|
406 |
$a = Trim(stripslashes($_POST["alias"])); // Repeater alias
|
407 |
|
408 |
-
// Write to repeater
|
|
|
|
|
409 |
if($t === 'default'){
|
410 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
411 |
}
|
412 |
-
|
413 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
}
|
|
|
415 |
else{
|
416 |
-
|
|
|
|
|
417 |
}
|
418 |
|
419 |
-
|
420 |
-
try {
|
421 |
$o = fopen($f, 'w+'); //Open file
|
422 |
if ( !$o ) {
|
423 |
-
throw new Exception(__('[Ajax Load More]
|
424 |
}
|
425 |
$w = fwrite($o, $c); //Save the file
|
426 |
if ( !$w ) {
|
427 |
-
throw new Exception(__('[Ajax Load More]Error saving repeater template - Please check your file path and ensure your server is configured to allow Ajax Load More to read and write files
|
428 |
}
|
429 |
fclose($o); //now close it
|
430 |
|
431 |
} catch ( Exception $e ) {
|
432 |
-
//
|
433 |
-
|
|
|
|
|
434 |
}
|
435 |
|
436 |
-
//Save to database
|
437 |
-
global $wpdb;
|
438 |
-
$table_name = $wpdb->prefix . "alm";
|
439 |
|
440 |
if($t === 'default') {
|
441 |
$data_update = array('repeaterDefault' => "$c", 'pluginVersion' => ALM_VERSION);
|
@@ -562,6 +629,12 @@ function alm_admin_init(){
|
|
562 |
'ajax-load-more'
|
563 |
);
|
564 |
|
|
|
|
|
|
|
|
|
|
|
|
|
565 |
|
566 |
add_settings_field( // Container type
|
567 |
'_alm_container_type',
|
@@ -579,18 +652,26 @@ function alm_admin_init(){
|
|
579 |
'alm_general_settings'
|
580 |
);
|
581 |
|
582 |
-
add_settings_field( //
|
583 |
-
'
|
584 |
-
__('
|
585 |
-
'
|
586 |
'ajax-load-more',
|
587 |
'alm_general_settings'
|
588 |
);
|
589 |
|
590 |
-
add_settings_field( //
|
591 |
-
'
|
592 |
-
__('
|
593 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
'ajax-load-more',
|
595 |
'alm_general_settings'
|
596 |
);
|
@@ -611,28 +692,28 @@ function alm_admin_init(){
|
|
611 |
'alm_general_settings'
|
612 |
);
|
613 |
|
614 |
-
add_settings_field( //
|
615 |
-
'
|
616 |
-
__('
|
617 |
-
'
|
618 |
'ajax-load-more',
|
619 |
-
'
|
620 |
-
);
|
621 |
|
622 |
-
add_settings_field( //
|
623 |
-
'
|
624 |
-
__('Button
|
625 |
-
'
|
626 |
'ajax-load-more',
|
627 |
-
'
|
628 |
-
);
|
629 |
|
630 |
-
add_settings_field( //
|
631 |
-
'
|
632 |
-
__('
|
633 |
-
'
|
634 |
'ajax-load-more',
|
635 |
-
'
|
636 |
);
|
637 |
|
638 |
|
@@ -676,7 +757,20 @@ function alm_admin_init(){
|
|
676 |
*/
|
677 |
|
678 |
function alm_general_settings_callback() {
|
679 |
-
echo '<p>' . __('Customize
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
}
|
681 |
|
682 |
|
@@ -734,6 +828,27 @@ function alm_hide_btn_callback(){
|
|
734 |
|
735 |
|
736 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
737 |
/*
|
738 |
* alm_disable_dynamic_callback
|
739 |
* Disable the dynamic population of categories, tags and authors
|
@@ -764,7 +879,7 @@ function alm_disable_dynamic_callback(){
|
|
764 |
function alm_class_callback(){
|
765 |
$options = get_option( 'alm_settings' );
|
766 |
|
767 |
-
$html = '<label for="alm_settings[_alm_classname]">'.__('Add classes to Ajax Load More container -
|
768 |
$html .= '<input type="text" id="alm_settings[_alm_classname]" name="alm_settings[_alm_classname]" value="'.$options['_alm_classname'].'" placeholder="posts listing etc..." /> ';
|
769 |
|
770 |
echo $html;
|
40 |
|
41 |
function alm_core_update() {
|
42 |
|
43 |
+
if(!get_option( 'alm_version')){ // Add 'alm_version' to WP options table if it does not exist
|
44 |
+
add_option( 'alm_version', ALM_VERSION );
|
45 |
+
}
|
46 |
+
|
47 |
+
$alm_installed_ver = get_option( "alm_version" ); // Get value from WP Option tbl
|
48 |
+
if ( $alm_installed_ver != ALM_VERSION ) {
|
49 |
+
alm_run_update();
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* alm_run_update
|
57 |
+
* Run the update on all 'blogs'
|
58 |
+
*
|
59 |
+
* @since 2.7.2
|
60 |
+
*/
|
61 |
+
|
62 |
+
function alm_run_update(){
|
63 |
+
global $wpdb;
|
64 |
|
65 |
+
if ( is_multisite()) {
|
66 |
+
$blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
|
67 |
+
|
68 |
+
// Loop all blogs and run update routine
|
69 |
+
foreach ( $blog_ids as $blog_id ) {
|
70 |
+
switch_to_blog( $blog_id );
|
71 |
+
alm_update_template_files();
|
72 |
+
restore_current_blog();
|
73 |
+
}
|
74 |
+
|
75 |
+
} else {
|
76 |
+
alm_update_template_files();
|
77 |
+
}
|
78 |
+
|
79 |
+
update_option( "alm_version", ALM_VERSION ); // Update the WP Option tbl with the new version num
|
80 |
+
}
|
81 |
+
|
82 |
+
|
83 |
+
|
84 |
+
/**
|
85 |
+
* alm_update_template_files
|
86 |
+
* Update routine for template files
|
87 |
+
*
|
88 |
+
* @since 2.7.2
|
89 |
+
*/
|
90 |
+
|
91 |
+
function alm_update_template_files(){
|
92 |
+
global $wpdb;
|
93 |
+
$table_name = $wpdb->prefix . "alm";
|
94 |
+
$blog_id = $wpdb->blogid;
|
95 |
+
|
96 |
+
// Get all templates ($rows) where name is 'default'
|
97 |
+
$rows = $wpdb->get_results("SELECT * FROM $table_name WHERE name = 'default'");
|
98 |
+
|
99 |
+
if($rows){
|
100 |
+
foreach( $rows as $row ) { // Loop $rows
|
101 |
+
|
102 |
+
$data = $wpdb->get_var("SELECT repeaterDefault FROM $table_name WHERE name = 'default'");
|
103 |
+
|
104 |
+
if($blog_id > 1){
|
105 |
+
$dir = ALM_PATH. 'core/repeater/'. $blog_id;
|
106 |
+
if( !is_dir($dir) ){
|
107 |
+
mkdir($dir);
|
108 |
+
}
|
109 |
+
$f = ALM_PATH. 'core/repeater/'. $blog_id .'/default.php';
|
110 |
+
}else{
|
111 |
+
$f = ALM_PATH. 'core/repeater/default.php';
|
112 |
+
}
|
113 |
+
|
114 |
+
try {
|
115 |
$o = fopen($f, 'w+'); //Open file
|
116 |
if ( !$o ) {
|
117 |
+
throw new Exception(__('[Ajax Load More] Error opening default repeater template - Please check your file path and ensure your server is configured to allow Ajax Load More to read and write files within the /ajax-load-more/core/repeater directory', ALM_NAME));
|
118 |
}
|
119 |
$w = fwrite($o, $data); //Save the file
|
120 |
if ( !$w ) {
|
121 |
+
throw new Exception(__('[Ajax Load More] Error updating default repeater template - Please check your file path and ensure your server is configured to allow Ajax Load More to read and write files within the /ajax-load-more/core/repeater directory.', ALM_NAME));
|
122 |
}
|
123 |
fclose($o); //now close it
|
124 |
|
125 |
} catch ( Exception $e ) {
|
126 |
+
// Display error message in console.
|
127 |
+
if(!isset($options['_alm_error_notices']) || $options['_alm_error_notices'] == '1'){
|
128 |
+
echo '<script>console.log("' .$e->getMessage(). '");</script>';
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
}
|
134 |
+
|
135 |
}
|
136 |
|
137 |
|
138 |
|
139 |
+
|
140 |
/**
|
141 |
* alm_admin_menu
|
142 |
* Create Admin Menu
|
430 |
*/
|
431 |
|
432 |
function alm_save_repeater(){
|
433 |
+
|
434 |
+
global $wpdb;
|
435 |
+
$table_name = $wpdb->prefix . "alm";
|
436 |
+
$blog_id = $wpdb->blogid;
|
437 |
+
$options = get_option( 'alm_settings' ); //Get plugin options
|
438 |
+
|
439 |
$nonce = $_POST["nonce"];
|
440 |
// Check our nonce, if they don't match then bounce!
|
441 |
if (! wp_verify_nonce( $nonce, 'alm_repeater_nonce' ))
|
447 |
$t = Trim(stripslashes($_POST["type"])); // Repeater name
|
448 |
$a = Trim(stripslashes($_POST["alias"])); // Repeater alias
|
449 |
|
450 |
+
// Write to repeater templates
|
451 |
+
|
452 |
+
// (Default)
|
453 |
if($t === 'default'){
|
454 |
+
|
455 |
+
if($blog_id > 1){
|
456 |
+
$dir = ALM_PATH. 'core/repeater/'. $blog_id;
|
457 |
+
if( !is_dir($dir) ){
|
458 |
+
mkdir($dir);
|
459 |
+
}
|
460 |
+
$f = ALM_PATH. 'core/repeater/'. $blog_id .'/default.php';
|
461 |
+
}else{
|
462 |
+
$f = ALM_PATH. 'core/repeater/default.php';
|
463 |
+
}
|
464 |
+
|
465 |
}
|
466 |
+
// (Unlimited)
|
467 |
+
elseif($t === 'unlimited'){
|
468 |
+
|
469 |
+
if($blog_id > 1){
|
470 |
+
$dir = ALM_UNLIMITED_PATH. 'repeaters/'. $blog_id;
|
471 |
+
if( !is_dir($dir) ){
|
472 |
+
mkdir($dir);
|
473 |
+
}
|
474 |
+
$f = ALM_UNLIMITED_PATH. 'repeaters/'. $blog_id .'/'.$n .'.php';
|
475 |
+
}else{
|
476 |
+
$f = ALM_UNLIMITED_PATH. 'repeaters/'.$n .'.php';
|
477 |
+
}
|
478 |
+
|
479 |
}
|
480 |
+
// (Unlimited v1)
|
481 |
else{
|
482 |
+
|
483 |
+
$f = ALM_REPEATER_PATH. 'repeaters/'.$n .'.php';
|
484 |
+
|
485 |
}
|
486 |
|
487 |
+
try {
|
|
|
488 |
$o = fopen($f, 'w+'); //Open file
|
489 |
if ( !$o ) {
|
490 |
+
throw new Exception(__('[Ajax Load More] Unable to open repeater template - '.$f.' - Please check your file path and ensure your server is configured to allow Ajax Load More to read and write files.', ALM_NAME));
|
491 |
}
|
492 |
$w = fwrite($o, $c); //Save the file
|
493 |
if ( !$w ) {
|
494 |
+
throw new Exception(__('[Ajax Load More] Error saving repeater template - '.$f.' - Please check your file path and ensure your server is configured to allow Ajax Load More to read and write files.', ALM_NAME));
|
495 |
}
|
496 |
fclose($o); //now close it
|
497 |
|
498 |
} catch ( Exception $e ) {
|
499 |
+
// Display error message in console.
|
500 |
+
if(!isset($options['_alm_error_notices']) || $options['_alm_error_notices'] == '1'){
|
501 |
+
echo '<script>console.log("' .$e->getMessage(). '");</script>';
|
502 |
+
}
|
503 |
}
|
504 |
|
505 |
+
//Save to database
|
|
|
|
|
506 |
|
507 |
if($t === 'default') {
|
508 |
$data_update = array('repeaterDefault' => "$c", 'pluginVersion' => ALM_VERSION);
|
629 |
'ajax-load-more'
|
630 |
);
|
631 |
|
632 |
+
add_settings_section(
|
633 |
+
'alm_admin_settings',
|
634 |
+
'Admin Settings',
|
635 |
+
'alm_admin_settings_callback',
|
636 |
+
'ajax-load-more'
|
637 |
+
);
|
638 |
|
639 |
add_settings_field( // Container type
|
640 |
'_alm_container_type',
|
652 |
'alm_general_settings'
|
653 |
);
|
654 |
|
655 |
+
add_settings_field( // Disbale CSS
|
656 |
+
'_alm_disable_css',
|
657 |
+
__('Disable CSS', ALM_NAME ),
|
658 |
+
'alm_disable_css_callback',
|
659 |
'ajax-load-more',
|
660 |
'alm_general_settings'
|
661 |
);
|
662 |
|
663 |
+
add_settings_field( // Btn color
|
664 |
+
'_alm_btn_color',
|
665 |
+
__('Button Color', ALM_NAME ),
|
666 |
+
'alm_btn_color_callback',
|
667 |
+
'ajax-load-more',
|
668 |
+
'alm_general_settings'
|
669 |
+
);
|
670 |
+
|
671 |
+
add_settings_field( // Button classes
|
672 |
+
'_alm_btn_classname',
|
673 |
+
__('Button Classes', ALM_NAME ),
|
674 |
+
'alm_btn_class_callback',
|
675 |
'ajax-load-more',
|
676 |
'alm_general_settings'
|
677 |
);
|
692 |
'alm_general_settings'
|
693 |
);
|
694 |
|
695 |
+
add_settings_field( // Load dynamic queries
|
696 |
+
'_alm_disable_dynamic',
|
697 |
+
__('Dynamic Content', ALM_NAME ),
|
698 |
+
'alm_disable_dynamic_callback',
|
699 |
'ajax-load-more',
|
700 |
+
'alm_admin_settings'
|
701 |
+
);
|
702 |
|
703 |
+
add_settings_field( // Hide btn
|
704 |
+
'_alm_hide_btn',
|
705 |
+
__('Editor Button', ALM_NAME ),
|
706 |
+
'alm_hide_btn_callback',
|
707 |
'ajax-load-more',
|
708 |
+
'alm_admin_settings'
|
709 |
+
);
|
710 |
|
711 |
+
add_settings_field( // Display error notices
|
712 |
+
'_alm_error_notices',
|
713 |
+
__('Error Notices', ALM_NAME ),
|
714 |
+
'_alm_error_notices_callback',
|
715 |
'ajax-load-more',
|
716 |
+
'alm_admin_settings'
|
717 |
);
|
718 |
|
719 |
|
757 |
*/
|
758 |
|
759 |
function alm_general_settings_callback() {
|
760 |
+
echo '<p>' . __('Customize the user experience of Ajax Load More by updating the fields below.', ALM_NAME) . '</p>';
|
761 |
+
}
|
762 |
+
|
763 |
+
|
764 |
+
|
765 |
+
/*
|
766 |
+
* alm_admin_settings_callback
|
767 |
+
* Some general admin settings text
|
768 |
+
*
|
769 |
+
* @since 2.0.0
|
770 |
+
*/
|
771 |
+
|
772 |
+
function alm_admin_settings_callback() {
|
773 |
+
echo '<p>' . __('The following settings affect the WordPress admin area only.', ALM_NAME) . '</p>';
|
774 |
}
|
775 |
|
776 |
|
828 |
|
829 |
|
830 |
|
831 |
+
/*
|
832 |
+
* _alm_error_notices_callback
|
833 |
+
* Display admin error notices in browser console.
|
834 |
+
*
|
835 |
+
* @since 2.7.2
|
836 |
+
*/
|
837 |
+
|
838 |
+
function _alm_error_notices_callback(){
|
839 |
+
$options = get_option( 'alm_settings' );
|
840 |
+
if(!isset($options['_alm_error_notices']))
|
841 |
+
$options['_alm_error_notices'] = '1';
|
842 |
+
|
843 |
+
$html = '<input type="hidden" name="alm_settings[_alm_error_notices]" value="0" />';
|
844 |
+
$html .= '<input type="checkbox" name="alm_settings[_alm_error_notices]" id="_alm_error_notices" value="1"'. (($options['_alm_error_notices']) ? ' checked="checked"' : '') .' />';
|
845 |
+
$html .= '<label for="_alm_error_notices">'.__('Display error messaging regarding repeater template updates in the browser console.', ALM_NAME).'</label>';
|
846 |
+
|
847 |
+
echo $html;
|
848 |
+
}
|
849 |
+
|
850 |
+
|
851 |
+
|
852 |
/*
|
853 |
* alm_disable_dynamic_callback
|
854 |
* Disable the dynamic population of categories, tags and authors
|
879 |
function alm_class_callback(){
|
880 |
$options = get_option( 'alm_settings' );
|
881 |
|
882 |
+
$html = '<label for="alm_settings[_alm_classname]">'.__('Add classes to Ajax Load More container - classes are applied globally and will appear with every instance of Ajax Load More.<span style="display:block">You can also add classes to the ALM container when building a shortcode.</span>', ALM_NAME).'</label><br/>';
|
883 |
$html .= '<input type="text" id="alm_settings[_alm_classname]" name="alm_settings[_alm_classname]" value="'.$options['_alm_classname'].'" placeholder="posts listing etc..." /> ';
|
884 |
|
885 |
echo $html;
|
admin/css/admin.css
CHANGED
@@ -951,6 +951,9 @@
|
|
951 |
margin: 0 0 20px;
|
952 |
border-bottom: 1px solid #efefef;
|
953 |
}
|
|
|
|
|
|
|
954 |
.ajax-load-more h3{
|
955 |
margin-bottom: 10px;
|
956 |
}
|
@@ -1394,6 +1397,13 @@ table.highlight{
|
|
1394 |
overflow: hidden;
|
1395 |
position: relative;
|
1396 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1397 |
.ajax-load-more .cnkt-sidebar .cta.padding-bottom{
|
1398 |
padding-bottom: 60px;
|
1399 |
}
|
@@ -2200,7 +2210,115 @@ p.cache-stats{
|
|
2200 |
color: #ec4745 !important;
|
2201 |
}
|
2202 |
|
2203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2204 |
/*
|
2205 |
* Admin screen media queries
|
2206 |
*
|
951 |
margin: 0 0 20px;
|
952 |
border-bottom: 1px solid #efefef;
|
953 |
}
|
954 |
+
.ajax-load-more .cnkt-sidebar h3{
|
955 |
+
font-size: 17px;
|
956 |
+
}
|
957 |
.ajax-load-more h3{
|
958 |
margin-bottom: 10px;
|
959 |
}
|
1397 |
overflow: hidden;
|
1398 |
position: relative;
|
1399 |
}
|
1400 |
+
.ajax-load-more .cnkt-sidebar .cta.mailing-list{
|
1401 |
+
padding: 0;
|
1402 |
+
}
|
1403 |
+
.ajax-load-more .cnkt-sidebar .cta.mailing-list .head-wrap{
|
1404 |
+
display: block;
|
1405 |
+
padding: 20px;
|
1406 |
+
}
|
1407 |
.ajax-load-more .cnkt-sidebar .cta.padding-bottom{
|
1408 |
padding-bottom: 60px;
|
1409 |
}
|
2210 |
color: #ec4745 !important;
|
2211 |
}
|
2212 |
|
2213 |
+
|
2214 |
+
|
2215 |
+
/*
|
2216 |
+
* Mailchimp Sign-up
|
2217 |
+
*
|
2218 |
+
* @since 2.7.2
|
2219 |
+
*/
|
2220 |
+
|
2221 |
+
#alm-mailing-list{}
|
2222 |
+
|
2223 |
+
#alm-mailing-list .form-wrap{
|
2224 |
+
background-color: #f7f7f7;
|
2225 |
+
padding: 18px;
|
2226 |
+
border-top: 1px solid #ccc;
|
2227 |
+
-webkit-box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.05);
|
2228 |
+
-moz-box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.05);
|
2229 |
+
box-shadow: 0 -1px 0 1px rgba(0, 0, 0, 0.05);
|
2230 |
+
position: relative;
|
2231 |
+
}
|
2232 |
+
#alm-mailing-list .form-wrap .inner-wrap{
|
2233 |
+
position: relative;
|
2234 |
+
display: block;
|
2235 |
+
}
|
2236 |
+
#alm-mailing-list .form-wrap input{
|
2237 |
+
width: 100%;
|
2238 |
+
display: block;
|
2239 |
+
margin: 0;
|
2240 |
+
background: #fff;
|
2241 |
+
font-size: 13px;
|
2242 |
+
border-color: #ccc;
|
2243 |
+
padding: 0 7px 0 40px;
|
2244 |
+
height: 34px;
|
2245 |
+
line-height: 34px;
|
2246 |
+
}
|
2247 |
+
#alm-mailing-list .form-wrap i.fa-envelope{
|
2248 |
+
color: #fff;
|
2249 |
+
background: #ff5a58;
|
2250 |
+
position: absolute;
|
2251 |
+
top: 0;
|
2252 |
+
left: 0;
|
2253 |
+
font-size: 18px;
|
2254 |
+
z-index: 1;
|
2255 |
+
height: 34px;
|
2256 |
+
width: 34px;
|
2257 |
+
text-align: center;
|
2258 |
+
line-height: 34px;
|
2259 |
+
-webkit-border-radius: 2px 0 0 2px;
|
2260 |
+
-moz-border-radius: 2px 0 0 2px;
|
2261 |
+
border-radius: 2px 0 0 2px;
|
2262 |
+
}
|
2263 |
+
#alm-mailing-list .form-wrap button{
|
2264 |
+
padding: 0;
|
2265 |
+
margin: 0;
|
2266 |
+
height: auto;
|
2267 |
+
line-height: 1.2;
|
2268 |
+
font-weight: 600;
|
2269 |
+
position: absolute;
|
2270 |
+
right: 0;
|
2271 |
+
top:0;
|
2272 |
+
z-index: 1;
|
2273 |
+
height: 100%;
|
2274 |
+
font-size: 13px;
|
2275 |
+
border-radius: 0;
|
2276 |
+
width: 34px;
|
2277 |
+
height: 34px;
|
2278 |
+
color: #ff5a58;
|
2279 |
+
background: none !important;
|
2280 |
+
cursor: pointer;
|
2281 |
+
}
|
2282 |
+
|
2283 |
+
#alm-mailing-list .form-wrap button i{
|
2284 |
+
color: #ccc;
|
2285 |
+
line-height: 34px;
|
2286 |
+
width: 20px;
|
2287 |
+
text-align: center;
|
2288 |
+
position: absolute;
|
2289 |
+
right: 5px;
|
2290 |
+
top:0;
|
2291 |
+
font-size: 20px;
|
2292 |
+
}
|
2293 |
+
#alm-mailing-list .form-wrap button:hover i{
|
2294 |
+
color: #999;
|
2295 |
+
}
|
2296 |
+
|
2297 |
+
#alm-mailing-list .form-wrap button span{
|
2298 |
+
position: absolute;
|
2299 |
+
left: -9999px;
|
2300 |
+
top: -9999px;
|
2301 |
+
}
|
2302 |
+
|
2303 |
+
#alm-mailing-list .form-wrap label{
|
2304 |
+
font-size: 11px;
|
2305 |
+
text-transform: uppercase;
|
2306 |
+
margin: 0 0;
|
2307 |
+
padding: 0;
|
2308 |
+
font-weight: 600;
|
2309 |
+
position: absolute;
|
2310 |
+
left: -9999px;
|
2311 |
+
top:-9999px;
|
2312 |
+
}
|
2313 |
+
#alm-mailing-list .form-wrap #response{
|
2314 |
+
padding-top: 10px;
|
2315 |
+
font-size: 13px;
|
2316 |
+
display: none;
|
2317 |
+
text-align: center;
|
2318 |
+
}
|
2319 |
+
#alm-mailing-list .form-wrap #response p{
|
2320 |
+
font-style: normal !important;
|
2321 |
+
}
|
2322 |
/*
|
2323 |
* Admin screen media queries
|
2324 |
*
|
admin/includes/cta/mailinglist.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="cta mailing-list" id="alm-mailing-list">
|
2 |
+
<div class="head-wrap">
|
3 |
+
<h3><?php _e('Subscribe to Newsletter', ALM_NAME); ?></h3>
|
4 |
+
<p><?php _e('Get product updates and release notifications delivered (infrequently) to your inbox.', ALM_NAME); ?></p>
|
5 |
+
</div>
|
6 |
+
<form action="" method="post" id="alm-mc-embedded" name="mc-embedded-subscribe-form" class="validate" data-path="<?php echo ALM_ADMIN_URL; ?>includes/mailchimp/mailchimp-info.php" novalidate>
|
7 |
+
<div class="form-wrap">
|
8 |
+
<div class="inner-wrap">
|
9 |
+
<i class="fa fa-envelope"></i>
|
10 |
+
<label for="mc_email" class="offscreen"><?php _e('Email Address', ALM_NAME); ?> <span class="asterisk">*</span> </label>
|
11 |
+
<input type="email" value="" name="email" placeholder="<?php _e('Enter email address', ALM_NAME); ?>" class="required email" id="mc_email">
|
12 |
+
<button type="submit" class="submit" id="mc_signup_submit" name="mc_signup_submit" title="Subscribe"><span class="offscreen"><?php _e('Subscribe', ALM_NAME); ?></span><i class="fa fa-arrow-circle-right"></i></button>
|
13 |
+
<div id="response"><div class="p-wrap"><p></p></div></div>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</form>
|
17 |
+
</div>
|
admin/includes/mailchimp/MailChimp.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Drewm;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Super-simple, minimum abstraction MailChimp API v2 wrapper
|
7 |
+
*
|
8 |
+
* Uses curl if available, falls back to file_get_contents and HTTP stream.
|
9 |
+
* This probably has more comments than code.
|
10 |
+
*
|
11 |
+
* Contributors:
|
12 |
+
* Michael Minor <me@pixelbacon.com>
|
13 |
+
* Lorna Jane Mitchell, github.com/lornajane
|
14 |
+
*
|
15 |
+
* @author Drew McLellan <drew.mclellan@gmail.com>
|
16 |
+
* @version 1.1.1
|
17 |
+
*/
|
18 |
+
class MailChimp
|
19 |
+
{
|
20 |
+
private $api_key;
|
21 |
+
private $api_endpoint = 'https://<dc>.api.mailchimp.com/2.0';
|
22 |
+
private $verify_ssl = false;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Create a new instance
|
26 |
+
* @param string $api_key Your MailChimp API key
|
27 |
+
*/
|
28 |
+
function __construct($api_key)
|
29 |
+
{
|
30 |
+
$this->api_key = $api_key;
|
31 |
+
list(, $datacentre) = explode('-', $this->api_key);
|
32 |
+
$this->api_endpoint = str_replace('<dc>', $datacentre, $this->api_endpoint);
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Call an API method. Every request needs the API key, so that is added automatically -- you don't need to pass it in.
|
37 |
+
* @param string $method The API method to call, e.g. 'lists/list'
|
38 |
+
* @param array $args An array of arguments to pass to the method. Will be json-encoded for you.
|
39 |
+
* @return array Associative array of json decoded API response.
|
40 |
+
*/
|
41 |
+
public function call($method, $args=array(), $timeout = 10)
|
42 |
+
{
|
43 |
+
return $this->makeRequest($method, $args, $timeout);
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Performs the underlying HTTP request. Not very exciting
|
48 |
+
* @param string $method The API method to be called
|
49 |
+
* @param array $args Assoc array of parameters to be passed
|
50 |
+
* @return array Assoc array of decoded result
|
51 |
+
*/
|
52 |
+
private function makeRequest($method, $args=array(), $timeout = 10)
|
53 |
+
{
|
54 |
+
$args['apikey'] = $this->api_key;
|
55 |
+
|
56 |
+
$url = $this->api_endpoint.'/'.$method.'.json';
|
57 |
+
$json_data = json_encode($args);
|
58 |
+
|
59 |
+
if (function_exists('curl_init') && function_exists('curl_setopt')){
|
60 |
+
$ch = curl_init();
|
61 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
62 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
|
63 |
+
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
|
64 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
65 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
66 |
+
curl_setopt($ch, CURLOPT_POST, true);
|
67 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->verify_ssl);
|
68 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
|
69 |
+
$result = curl_exec($ch);
|
70 |
+
curl_close($ch);
|
71 |
+
} else {
|
72 |
+
$result = file_get_contents($url, null, stream_context_create(array(
|
73 |
+
'http' => array(
|
74 |
+
'protocol_version' => 1.1,
|
75 |
+
'user_agent' => 'PHP-MCAPI/2.0',
|
76 |
+
'method' => 'POST',
|
77 |
+
'header' => "Content-type: application/json\r\n".
|
78 |
+
"Connection: close\r\n" .
|
79 |
+
"Content-length: " . strlen($json_data) . "\r\n",
|
80 |
+
'content' => $json_data,
|
81 |
+
),
|
82 |
+
)));
|
83 |
+
}
|
84 |
+
|
85 |
+
return $result ? json_decode($result, true) : false;
|
86 |
+
}
|
87 |
+
}
|
admin/includes/mailchimp/mailchimp-info.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
<?php
|
3 |
+
function mailchimpInfo(){
|
4 |
+
require_once('MailChimp.php'); // same directory as mailchimp-info.php
|
5 |
+
|
6 |
+
$email_field = trim($_GET['email']);
|
7 |
+
$merge_vars = Array(
|
8 |
+
'EMAIL' => $email_field,
|
9 |
+
);
|
10 |
+
|
11 |
+
|
12 |
+
$MailChimp = new \Drewm\MailChimp('ec3c9165886020b954bde777ad52b432-us2');
|
13 |
+
$result = $MailChimp->call('lists/subscribe', array(
|
14 |
+
'id' => '216cf21285',
|
15 |
+
'email' => array('email'=> $email_field),
|
16 |
+
'merge_vars' => $merge_vars,
|
17 |
+
'double_optin' => false,
|
18 |
+
'send_welcome' => true,
|
19 |
+
));
|
20 |
+
|
21 |
+
$status = $result['status'];
|
22 |
+
if($status != 'error'){
|
23 |
+
// It worked!
|
24 |
+
echo '<i class="fa fa-check-square"></i> You\'ve been subscribed to our list!';
|
25 |
+
}else{
|
26 |
+
echo '<i class="fa fa-exclamation-circle"></i> Error - ' . $result['error'];
|
27 |
+
}
|
28 |
+
}
|
29 |
+
// If being called via ajax, autorun the function
|
30 |
+
if($_GET['ajax']){
|
31 |
+
echo mailchimpInfo();
|
32 |
+
}
|
33 |
+
?>
|
admin/js/admin.js
CHANGED
@@ -3,6 +3,50 @@ var _alm = _alm || {};
|
|
3 |
jQuery(document).ready(function($) {
|
4 |
"use strict";
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
/*
|
7 |
* _alm.copyToClipboard
|
8 |
* Copy shortcode to clipboard
|
3 |
jQuery(document).ready(function($) {
|
4 |
"use strict";
|
5 |
|
6 |
+
/*
|
7 |
+
* Mailchimp Signup
|
8 |
+
* From the setting screen
|
9 |
+
*
|
10 |
+
* @since 2.7.2
|
11 |
+
*/
|
12 |
+
$('form#alm-mc-embedded').submit(function() {
|
13 |
+
var el = $('#alm-mailing-list'),
|
14 |
+
email = $('input#mc_email', el).val(),
|
15 |
+
data_path = $('form', el).data('path');
|
16 |
+
|
17 |
+
// update user interface
|
18 |
+
$('#response', el).fadeIn(250).addClass('loading');
|
19 |
+
$('#response p', el).html('Adding email address...');
|
20 |
+
|
21 |
+
// Verify email address
|
22 |
+
if(!IsEmail(email)){
|
23 |
+
$('#response p', el).html('<i class="fa fa-exclamation-circle"></i> Please enter a valid email address.');
|
24 |
+
$('#response', el).removeClass('loading');
|
25 |
+
$('#response', el).delay(2000).fadeOut(250);
|
26 |
+
return false;
|
27 |
+
}
|
28 |
+
// Prepare query string and send AJAX request
|
29 |
+
$.ajax({
|
30 |
+
url: data_path,
|
31 |
+
data: 'ajax=true&email=' + escape(email),
|
32 |
+
success: function(msg) {
|
33 |
+
$('#response', el).removeClass('loading');
|
34 |
+
$('#response p', el).html(msg);
|
35 |
+
},
|
36 |
+
error: function() {
|
37 |
+
$('#response', el).removeClass('loading').delay(2000).fadeOut(250);
|
38 |
+
$('#response p', el).html('There was an error submitting your email address.');
|
39 |
+
}
|
40 |
+
});
|
41 |
+
|
42 |
+
return false;
|
43 |
+
});
|
44 |
+
function IsEmail(email) {
|
45 |
+
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
|
46 |
+
return regex.test(email);
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
/*
|
51 |
* _alm.copyToClipboard
|
52 |
* Copy shortcode to clipboard
|
admin/views/add-ons.php
CHANGED
@@ -21,7 +21,7 @@
|
|
21 |
</div>
|
22 |
</div>
|
23 |
<?php
|
24 |
-
$cache_url = '
|
25 |
if (has_action('alm_cache_installed')){
|
26 |
echo '<a class="cnkt-button installed" href="'. $cache_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
27 |
}else{
|
@@ -47,7 +47,7 @@
|
|
47 |
</div>
|
48 |
</div>
|
49 |
<?php
|
50 |
-
$cr_url = '
|
51 |
if (has_action('alm_unlimited_installed')){
|
52 |
echo '<a class="cnkt-button installed" href="'. $cr_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
53 |
}else{
|
@@ -73,7 +73,7 @@
|
|
73 |
</div>
|
74 |
</div>
|
75 |
<?php
|
76 |
-
$paging_url = '
|
77 |
if (has_action('alm_paging_installed')){
|
78 |
echo '<a class="cnkt-button installed" href="'. $paging_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
79 |
}else{
|
@@ -99,11 +99,11 @@
|
|
99 |
</div>
|
100 |
</div>
|
101 |
<?php
|
102 |
-
$
|
103 |
if (has_action('alm_preload_installed')){
|
104 |
-
echo '<a class="cnkt-button installed" href="'. $
|
105 |
}else{
|
106 |
-
echo '<a class="cnkt-button" href="'. $
|
107 |
}
|
108 |
?>
|
109 |
</div>
|
@@ -125,7 +125,7 @@
|
|
125 |
</div>
|
126 |
</div>
|
127 |
<?php
|
128 |
-
$seo_url = '
|
129 |
if (has_action('alm_seo_installed')){
|
130 |
echo '<a class="cnkt-button installed" href="'. $seo_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
131 |
}else{
|
@@ -140,7 +140,7 @@
|
|
140 |
<div class="cnkt-sidebar">
|
141 |
<div class="cta">
|
142 |
<h3><?php _e('Add-on Updates', ALM_NAME); ?></h3>
|
143 |
-
<p><?php _e('All add-ons are installed as stand alone plugins and will receive plugin update notifications directly within the <a href="plugins.php">WordPress Plugin dashboard</a>.', ALM_NAME); ?></p>
|
144 |
</div>
|
145 |
<?php include_once( ALM_PATH . 'admin/includes/cta/writeable.php'); ?>
|
146 |
</div>
|
21 |
</div>
|
22 |
</div>
|
23 |
<?php
|
24 |
+
$cache_url = 'https://connekthq.com/plugins/ajax-load-more/add-ons/cache/?utm_source=WP%20Admin&utm_medium=ALM%20Add-ons&utm_campaign=Cache';
|
25 |
if (has_action('alm_cache_installed')){
|
26 |
echo '<a class="cnkt-button installed" href="'. $cache_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
27 |
}else{
|
47 |
</div>
|
48 |
</div>
|
49 |
<?php
|
50 |
+
$cr_url = 'https://connekthq.com/plugins/ajax-load-more/add-ons/custom-repeaters/?utm_source=WP%20Admin&utm_medium=ALM%20Add-ons&utm_campaign=Custom%20Repeaters';
|
51 |
if (has_action('alm_unlimited_installed')){
|
52 |
echo '<a class="cnkt-button installed" href="'. $cr_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
53 |
}else{
|
73 |
</div>
|
74 |
</div>
|
75 |
<?php
|
76 |
+
$paging_url = 'https://connekthq.com/plugins/ajax-load-more/add-ons/paging/?utm_source=WP%20Admin&utm_medium=ALM%20Add-ons&utm_campaign=Paging';
|
77 |
if (has_action('alm_paging_installed')){
|
78 |
echo '<a class="cnkt-button installed" href="'. $paging_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
79 |
}else{
|
99 |
</div>
|
100 |
</div>
|
101 |
<?php
|
102 |
+
$preload_url = 'https://connekthq.com/plugins/ajax-load-more/add-ons/preloaded/?utm_source=WP%20Admin&utm_medium=ALM%20Add-ons&utm_campaign=Preloaded';
|
103 |
if (has_action('alm_preload_installed')){
|
104 |
+
echo '<a class="cnkt-button installed" href="'. $preload_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
105 |
}else{
|
106 |
+
echo '<a class="cnkt-button" href="'. $preload_url .'" target="_blank"><i class="fa fa-download"></i> Purchase & Install</a>';
|
107 |
}
|
108 |
?>
|
109 |
</div>
|
125 |
</div>
|
126 |
</div>
|
127 |
<?php
|
128 |
+
$seo_url = 'https://connekthq.com/plugins/ajax-load-more/add-ons/seo/?utm_source=WP%20Admin&utm_medium=ALM%20Add-ons&utm_campaign=SEO';
|
129 |
if (has_action('alm_seo_installed')){
|
130 |
echo '<a class="cnkt-button installed" href="'. $seo_url .'" target="_blank"><i class="fa fa-check-square"></i> Installed</a> ';
|
131 |
}else{
|
140 |
<div class="cnkt-sidebar">
|
141 |
<div class="cta">
|
142 |
<h3><?php _e('Add-on Updates', ALM_NAME); ?></h3>
|
143 |
+
<p><?php _e('All add-ons are installed as stand alone plugins and with a valid license key will receive plugin update notifications directly within the <a href="plugins.php">WordPress Plugin dashboard</a>.', ALM_NAME); ?></p>
|
144 |
</div>
|
145 |
<?php include_once( ALM_PATH . 'admin/includes/cta/writeable.php'); ?>
|
146 |
</div>
|
admin/views/licenses.php
CHANGED
@@ -88,7 +88,7 @@
|
|
88 |
<div class="license-title">
|
89 |
<div class="status <?php if($alm_unlimited_status == 'valid'){echo 'valid';}else{echo 'invalid';} ?> "></div>
|
90 |
<h2><?php _e('Custom Repeaters v2', ALM_NAME); ?></h2>
|
91 |
-
<a class="cnkt-button installed" href="http://connekthq.com/plugins/ajax-load-more/
|
92 |
</div>
|
93 |
<div class="license-wrap">
|
94 |
<form method="post" action="options.php">
|
88 |
<div class="license-title">
|
89 |
<div class="status <?php if($alm_unlimited_status == 'valid'){echo 'valid';}else{echo 'invalid';} ?> "></div>
|
90 |
<h2><?php _e('Custom Repeaters v2', ALM_NAME); ?></h2>
|
91 |
+
<a class="cnkt-button installed" href="http://connekthq.com/plugins/ajax-load-more/custom-repeaters/" target="_blank"><i class="fa fa-check-square"></i> Installed</a>
|
92 |
</div>
|
93 |
<div class="license-wrap">
|
94 |
<form method="post" action="options.php">
|
admin/views/repeater-templates.php
CHANGED
@@ -15,8 +15,16 @@
|
|
15 |
|
16 |
<!-- Default -->
|
17 |
<div class="row template default-repeater">
|
18 |
-
<?php
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
$handle = fopen ($filename, "r");
|
21 |
$contents = '';
|
22 |
if(filesize ($filename) != 0){
|
15 |
|
16 |
<!-- Default -->
|
17 |
<div class="row template default-repeater">
|
18 |
+
<?php
|
19 |
+
global $wpdb;
|
20 |
+
$table_name = $wpdb->prefix . "alm";
|
21 |
+
$blog_id = $wpdb->blogid;
|
22 |
+
if($blog_id > 1){
|
23 |
+
$filename = ALM_PATH. 'core/repeater/'. $blog_id .'/default.php';
|
24 |
+
}else{
|
25 |
+
$filename = ALM_PATH. 'core/repeater/default.php';
|
26 |
+
}
|
27 |
+
|
28 |
$handle = fopen ($filename, "r");
|
29 |
$contents = '';
|
30 |
if(filesize ($filename) != 0){
|
admin/views/settings.php
CHANGED
@@ -43,6 +43,7 @@
|
|
43 |
</div>
|
44 |
</div>
|
45 |
<div class="cnkt-sidebar">
|
|
|
46 |
<?php include_once( ALM_PATH . 'admin/includes/cta/resources.php'); ?>
|
47 |
<?php include_once( ALM_PATH . 'admin/includes/cta/about.php'); ?>
|
48 |
</div>
|
43 |
</div>
|
44 |
</div>
|
45 |
<div class="cnkt-sidebar">
|
46 |
+
<?php include_once( ALM_PATH . 'admin/includes/cta/mailinglist.php'); ?>
|
47 |
<?php include_once( ALM_PATH . 'admin/includes/cta/resources.php'); ?>
|
48 |
<?php include_once( ALM_PATH . 'admin/includes/cta/about.php'); ?>
|
49 |
</div>
|
ajax-load-more.php
CHANGED
@@ -6,31 +6,77 @@ Description: A simple solution for lazy loading WordPress posts and pages with A
|
|
6 |
Author: Darren Cooney
|
7 |
Twitter: @KaptonKaos
|
8 |
Author URI: http://connekthq.com
|
9 |
-
Version: 2.7.
|
10 |
License: GPL
|
11 |
Copyright: Darren Cooney & Connekt Media
|
12 |
*/
|
13 |
|
14 |
-
define('ALM_VERSION', '2.7.
|
15 |
-
define('ALM_RELEASE', 'July
|
16 |
define( 'ALM_STORE_URL', 'https://connekthq.com' ); // EDD CONSTANT - Store URL
|
17 |
|
18 |
|
19 |
/*
|
20 |
* alm_install
|
|
|
|
|
21 |
* Create table for storing repeater
|
22 |
*
|
23 |
* @since 2.0.0
|
24 |
*/
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
register_activation_hook( __FILE__, 'alm_install' );
|
27 |
-
|
|
|
|
|
|
|
|
|
28 |
global $wpdb;
|
29 |
$table_name = $wpdb->prefix . "alm";
|
|
|
|
|
30 |
$defaultRepeater = '<li <?php if (!has_post_thumbnail()) { ?> class="no-img"<?php } ?>><?php if ( has_post_thumbnail() ) { the_post_thumbnail(array(100,100));}?><h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3><p class="entry-meta"><?php the_time("F d, Y"); ?></p><?php the_excerpt(); ?></li>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
//Create table, if it doesn't already exist.
|
33 |
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
|
|
|
34 |
$sql = "CREATE TABLE $table_name (
|
35 |
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
36 |
name text NOT NULL,
|
@@ -43,17 +89,14 @@ function alm_install() {
|
|
43 |
|
44 |
//Insert the default data in created table
|
45 |
$wpdb->insert($table_name , array('name' => 'default', 'repeaterDefault' => $defaultRepeater, 'pluginVersion' => ALM_VERSION));
|
|
|
46 |
}
|
47 |
|
48 |
-
if( !get_option( 'alm_version' ) )
|
49 |
-
add_option( 'alm_version', ALM_VERSION ); // Add 'alm_version' to WP options table
|
50 |
-
else
|
51 |
-
update_option( 'alm_version', ALM_VERSION ); // Update 'alm_version'
|
52 |
-
|
53 |
}
|
54 |
|
55 |
|
56 |
|
|
|
57 |
if( !class_exists('AjaxLoadMore') ):
|
58 |
class AjaxLoadMore {
|
59 |
|
6 |
Author: Darren Cooney
|
7 |
Twitter: @KaptonKaos
|
8 |
Author URI: http://connekthq.com
|
9 |
+
Version: 2.7.2
|
10 |
License: GPL
|
11 |
Copyright: Darren Cooney & Connekt Media
|
12 |
*/
|
13 |
|
14 |
+
define( 'ALM_VERSION', '2.7.2' );
|
15 |
+
define( 'ALM_RELEASE', 'July 28, 2015' );
|
16 |
define( 'ALM_STORE_URL', 'https://connekthq.com' ); // EDD CONSTANT - Store URL
|
17 |
|
18 |
|
19 |
/*
|
20 |
* alm_install
|
21 |
+
*
|
22 |
+
* Activation hook
|
23 |
* Create table for storing repeater
|
24 |
*
|
25 |
* @since 2.0.0
|
26 |
*/
|
27 |
|
28 |
+
function alm_install($network_wide) {
|
29 |
+
|
30 |
+
global $wpdb;
|
31 |
+
add_option( "alm_version", ALM_VERSION ); // Add to WP Option tbl
|
32 |
+
|
33 |
+
if ( is_multisite() && $network_wide ) {
|
34 |
+
|
35 |
+
// Get all blogs in the network and activate plugin on each one
|
36 |
+
$blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
|
37 |
+
foreach ( $blog_ids as $blog_id ) {
|
38 |
+
switch_to_blog( $blog_id );
|
39 |
+
alm_create_table();
|
40 |
+
restore_current_blog();
|
41 |
+
}
|
42 |
+
} else {
|
43 |
+
alm_create_table();
|
44 |
+
}
|
45 |
+
|
46 |
+
}
|
47 |
register_activation_hook( __FILE__, 'alm_install' );
|
48 |
+
add_action( 'wpmu_new_blog', 'alm_install' );
|
49 |
+
|
50 |
+
/* Create table function */
|
51 |
+
function alm_create_table(){
|
52 |
+
|
53 |
global $wpdb;
|
54 |
$table_name = $wpdb->prefix . "alm";
|
55 |
+
$blog_id = $wpdb->blogid;
|
56 |
+
|
57 |
$defaultRepeater = '<li <?php if (!has_post_thumbnail()) { ?> class="no-img"<?php } ?>><?php if ( has_post_thumbnail() ) { the_post_thumbnail(array(100,100));}?><h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3><p class="entry-meta"><?php the_time("F d, Y"); ?></p><?php the_excerpt(); ?></li>';
|
58 |
+
|
59 |
+
/* MULTISITE */
|
60 |
+
/* if this is a multisite blog and it's not id = 1, create default template */
|
61 |
+
if($blog_id > 1){
|
62 |
+
|
63 |
+
$dir = ALM_PATH. 'core/repeater/'. $blog_id;
|
64 |
+
if( !is_dir($dir) ){
|
65 |
+
mkdir($dir);
|
66 |
+
}
|
67 |
+
|
68 |
+
$file = ALM_PATH. 'core/repeater/'. $blog_id .'/default.php';
|
69 |
+
if( !file_exists($file) ){
|
70 |
+
$tmp = fopen($file, 'w');
|
71 |
+
$w = fwrite($tmp, $defaultRepeater);
|
72 |
+
fclose($tmp);
|
73 |
+
}
|
74 |
+
|
75 |
+
}
|
76 |
|
77 |
//Create table, if it doesn't already exist.
|
78 |
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
|
79 |
+
|
80 |
$sql = "CREATE TABLE $table_name (
|
81 |
id mediumint(9) NOT NULL AUTO_INCREMENT,
|
82 |
name text NOT NULL,
|
89 |
|
90 |
//Insert the default data in created table
|
91 |
$wpdb->insert($table_name , array('name' => 'default', 'repeaterDefault' => $defaultRepeater, 'pluginVersion' => ALM_VERSION));
|
92 |
+
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
96 |
|
97 |
|
98 |
|
99 |
+
|
100 |
if( !class_exists('AjaxLoadMore') ):
|
101 |
class AjaxLoadMore {
|
102 |
|
core/functions.php
CHANGED
@@ -18,27 +18,56 @@ function alm_get_current_repeater($repeater, $type) {
|
|
18 |
$include = ALM_REPEATER_PATH . 'repeaters/'. $template .'.php';
|
19 |
|
20 |
if(!file_exists($include)) //confirm file exists
|
21 |
-
|
22 |
|
23 |
}
|
24 |
// If is Unlimited Repeaters (Custom Repeaters v2)
|
25 |
elseif( $type == 'template_' && has_action('alm_unlimited_installed' ))
|
26 |
{
|
27 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
if(!file_exists($include)) //confirm file exists
|
30 |
-
|
31 |
|
32 |
}
|
33 |
// Default repeater
|
34 |
else
|
35 |
{
|
36 |
-
$include =
|
37 |
}
|
38 |
|
39 |
return $include;
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
|
44 |
/*
|
18 |
$include = ALM_REPEATER_PATH . 'repeaters/'. $template .'.php';
|
19 |
|
20 |
if(!file_exists($include)) //confirm file exists
|
21 |
+
alm_get_default_repeater();
|
22 |
|
23 |
}
|
24 |
// If is Unlimited Repeaters (Custom Repeaters v2)
|
25 |
elseif( $type == 'template_' && has_action('alm_unlimited_installed' ))
|
26 |
{
|
27 |
+
global $wpdb;
|
28 |
+
$blog_id = $wpdb->blogid;
|
29 |
+
|
30 |
+
if($blog_id > 1){
|
31 |
+
$include = ALM_UNLIMITED_PATH. 'repeaters/'. $blog_id .'/'.$template .'.php';
|
32 |
+
}else{
|
33 |
+
$include = ALM_UNLIMITED_PATH. 'repeaters/'.$repeater .'.php';
|
34 |
+
}
|
35 |
|
36 |
if(!file_exists($include)) //confirm file exists
|
37 |
+
alm_get_default_repeater();
|
38 |
|
39 |
}
|
40 |
// Default repeater
|
41 |
else
|
42 |
{
|
43 |
+
$include = alm_get_default_repeater();
|
44 |
}
|
45 |
|
46 |
return $include;
|
47 |
}
|
48 |
|
49 |
+
/*
|
50 |
+
* alm_get_default_repeater
|
51 |
+
* Get the default repeater template for current blog
|
52 |
+
*
|
53 |
+
* @return $include (file path)
|
54 |
+
* @since 2.5.0
|
55 |
+
*/
|
56 |
+
|
57 |
+
function alm_get_default_repeater() {
|
58 |
+
global $wpdb;
|
59 |
+
$blog_id = $wpdb->blogid;
|
60 |
+
|
61 |
+
if($blog_id > 1){
|
62 |
+
$file = ALM_PATH. 'core/repeater/'. $blog_id .'/default.php'; // File
|
63 |
+
}else{
|
64 |
+
$file = ALM_PATH. 'core/repeater/default.php';
|
65 |
+
}
|
66 |
+
|
67 |
+
return $file;
|
68 |
+
}
|
69 |
+
|
70 |
+
|
71 |
|
72 |
|
73 |
/*
|
lang/ajax-load-more.pot
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ajax Load More\n"
|
4 |
-
"POT-Creation-Date: 2015-07-
|
5 |
-
"PO-Revision-Date: 2015-07-
|
6 |
"Last-Translator: Darren Cooney <darren.cooney@gmail.com>\n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_CA\n"
|
@@ -15,127 +15,137 @@ msgstr ""
|
|
15 |
"X-Poedit-KeywordsList: __;_e\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
|
18 |
-
#: ../admin/admin.php:
|
19 |
msgid ""
|
20 |
-
"[Ajax Load More]
|
21 |
-
"
|
|
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: ../admin/admin.php:
|
25 |
msgid ""
|
26 |
-
"[Ajax Load More]
|
27 |
-
"
|
|
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: ../admin/admin.php:
|
31 |
-
msgid ""
|
32 |
-
"[Ajax Load More] Error opening repeater template - Please check your file "
|
33 |
-
"path and ensure your server is configured to allow Ajax Load More to read "
|
34 |
-
"and write files within the /ajax-load-more/core/repeater directory"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: ../admin/admin.php:
|
38 |
-
msgid ""
|
39 |
-
"[Ajax Load More]Error saving repeater template - Please check your file path "
|
40 |
-
"and ensure your server is configured to allow Ajax Load More to read and "
|
41 |
-
"write files within the /ajax-load-more/core/repeater directory."
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: ../admin/admin.php:
|
45 |
msgid "Error Writing File"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: ../admin/admin.php:
|
49 |
msgid "Container Type"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: ../admin/admin.php:
|
53 |
msgid "Container Classes"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: ../admin/admin.php:
|
57 |
-
msgid "
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: ../admin/admin.php:
|
61 |
-
msgid "
|
|
|
|
|
|
|
|
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: ../admin/admin.php:
|
65 |
msgid "Ajax Security"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: ../admin/admin.php:
|
69 |
msgid "Top of Page"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ../admin/admin.php:
|
73 |
-
msgid "
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: ../admin/admin.php:
|
77 |
-
msgid "Button
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: ../admin/admin.php:
|
81 |
-
msgid "
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: ../admin/admin.php:
|
85 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: ../admin/admin.php:
|
89 |
msgid "I want to use my own CSS styles."
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: ../admin/admin.php:
|
93 |
msgid "View Ajax Load More CSS"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: ../admin/admin.php:
|
97 |
msgid "Hide shortcode button in WYSIWYG editor."
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: ../admin/admin.php:
|
|
|
|
|
|
|
|
|
|
|
101 |
msgid ""
|
102 |
"Disable dynamic population of categories, tags and authors in the Shortcode "
|
103 |
"Builder.<span style=\"display:block\">Recommended if you have an "
|
104 |
"extraordinary number of categories, tags and/or authors."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: ../admin/admin.php:
|
108 |
msgid ""
|
109 |
-
"Add classes to Ajax Load More container -
|
110 |
-
"
|
111 |
-
"
|
112 |
-
"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: ../admin/admin.php:
|
116 |
msgid "Ajax Posts Here"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: ../admin/admin.php:
|
120 |
msgid "Choose your <strong>Load More</strong> button color"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: ../admin/admin.php:
|
124 |
msgid "Preview"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../admin/admin.php:
|
128 |
msgid "Add classes to your <strong>Load More</strong> button"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../admin/admin.php:
|
132 |
msgid ""
|
133 |
"On initial page load, move the user's browser window to the top of the "
|
134 |
"screen.<span style=\"display:block\">This <u>may</u> help prevent the "
|
135 |
"loading of unnecessary posts.</span>"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: ../admin/admin.php:
|
139 |
msgid ""
|
140 |
"Enable <a href=\"https://codex.wordpress.org/WordPress_Nonces\" target="
|
141 |
"\"_blank\">WP nonce</a> verification to help protect URLs against certain "
|
@@ -197,6 +207,28 @@ msgstr ""
|
|
197 |
msgid "More Info"
|
198 |
msgstr ""
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
#: ../admin/includes/cta/resources.php:2
|
201 |
msgid "Help/Resources"
|
202 |
msgstr ""
|
@@ -698,7 +730,7 @@ msgid "Customize the <em>Load More</em> button label."
|
|
698 |
msgstr ""
|
699 |
|
700 |
#: ../admin/shortcode-builder/shortcode-builder.php:808
|
701 |
-
#: ../ajax-load-more.php:
|
702 |
msgid "Older Posts"
|
703 |
msgstr ""
|
704 |
|
@@ -786,9 +818,9 @@ msgstr ""
|
|
786 |
|
787 |
#: ../admin/views/add-ons.php:143
|
788 |
msgid ""
|
789 |
-
"All add-ons are installed as stand alone plugins and
|
790 |
-
"update notifications directly within the <a href
|
791 |
-
"Plugin dashboard</a>."
|
792 |
msgstr ""
|
793 |
|
794 |
#: ../admin/views/examples.php:4
|
@@ -939,9 +971,7 @@ msgid "About Licenses"
|
|
939 |
msgstr ""
|
940 |
|
941 |
#: ../admin/views/licenses.php:317
|
942 |
-
msgid ""
|
943 |
-
"All licenses are valid for <strong>one year</strong> from the date of "
|
944 |
-
"purchase."
|
945 |
msgstr ""
|
946 |
|
947 |
#: ../admin/views/licenses.php:318
|
@@ -969,64 +999,64 @@ msgstr ""
|
|
969 |
msgid "The library of available templates to use within your theme"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: ../admin/views/repeater-templates.php:
|
973 |
msgid "Default Template"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: ../admin/views/repeater-templates.php:
|
977 |
msgid "Enter the HTML and PHP code for the default template"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: ../admin/views/repeater-templates.php:
|
981 |
msgid "Save Template"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: ../admin/views/repeater-templates.php:
|
985 |
msgid "Saving template..."
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: ../admin/views/repeater-templates.php:
|
989 |
msgid "Something went wrong and the data could not be saved."
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: ../admin/views/repeater-templates.php:
|
993 |
msgid "Updating template..."
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: ../admin/views/repeater-templates.php:
|
997 |
msgid "Template Updated"
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: ../admin/views/repeater-templates.php:
|
1001 |
msgid "Templating Help"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: ../admin/views/repeater-templates.php:
|
1005 |
msgid "What is a repeater template?"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: ../admin/views/repeater-templates.php:
|
1009 |
msgid ""
|
1010 |
"A repeater template is a snippet of code that will execute over and over "
|
1011 |
"within a <a href=\"http://codex.wordpress.org/The_Loop\" target=\"_blank"
|
1012 |
"\">WordPress loop</a>.</p>"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: ../admin/views/repeater-templates.php:
|
1016 |
msgid "Can I include PHP in the repeater template?"
|
1017 |
msgstr ""
|
1018 |
|
1019 |
-
#: ../admin/views/repeater-templates.php:
|
1020 |
msgid ""
|
1021 |
"Yes, PHP and core WordPress functions such as, <code>the_title()</code> and "
|
1022 |
"<code>the_permalink()</code> are required.</p>"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: ../admin/views/repeater-templates.php:
|
1026 |
msgid "Tips and Tricks"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: ../admin/views/repeater-templates.php:
|
1030 |
msgid ""
|
1031 |
"Always open and close your templates with an HTML element. In some rare "
|
1032 |
"cases data may not be displayed if not wrapped in HTML.<br/>e.g. <code><"
|
@@ -1069,11 +1099,11 @@ msgstr ""
|
|
1069 |
msgid "Clear all Shortcode Builder settings"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: ../ajax-load-more.php:
|
1073 |
msgid "Settings"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: ../ajax-load-more.php:
|
1077 |
msgid "Shortcode Builder"
|
1078 |
msgstr ""
|
1079 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Ajax Load More\n"
|
4 |
+
"POT-Creation-Date: 2015-07-28 22:58-0500\n"
|
5 |
+
"PO-Revision-Date: 2015-07-28 22:58-0500\n"
|
6 |
"Last-Translator: Darren Cooney <darren.cooney@gmail.com>\n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_CA\n"
|
15 |
"X-Poedit-KeywordsList: __;_e\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
|
18 |
+
#: ../admin/admin.php:117
|
19 |
msgid ""
|
20 |
+
"[Ajax Load More] Error opening default repeater template - Please check your "
|
21 |
+
"file path and ensure your server is configured to allow Ajax Load More to "
|
22 |
+
"read and write files within the /ajax-load-more/core/repeater directory"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: ../admin/admin.php:121
|
26 |
msgid ""
|
27 |
+
"[Ajax Load More] Error updating default repeater template - Please check "
|
28 |
+
"your file path and ensure your server is configured to allow Ajax Load More "
|
29 |
+
"to read and write files within the /ajax-load-more/core/repeater directory."
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: ../admin/admin.php:490
|
33 |
+
msgid "[Ajax Load More] Unable to open repeater template - "
|
|
|
|
|
|
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: ../admin/admin.php:494
|
37 |
+
msgid "[Ajax Load More] Error saving repeater template - "
|
|
|
|
|
|
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../admin/admin.php:527
|
41 |
msgid "Error Writing File"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: ../admin/admin.php:641
|
45 |
msgid "Container Type"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../admin/admin.php:649 ../admin/shortcode-builder/shortcode-builder.php:816
|
49 |
msgid "Container Classes"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../admin/admin.php:657
|
53 |
+
msgid "Disable CSS"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../admin/admin.php:665
|
57 |
+
msgid "Button Color"
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: ../admin/admin.php:673
|
61 |
+
msgid "Button Classes"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../admin/admin.php:681
|
65 |
msgid "Ajax Security"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../admin/admin.php:689
|
69 |
msgid "Top of Page"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../admin/admin.php:697
|
73 |
+
msgid "Dynamic Content"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../admin/admin.php:705
|
77 |
+
msgid "Editor Button"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: ../admin/admin.php:713
|
81 |
+
msgid "Error Notices"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: ../admin/admin.php:760
|
85 |
+
msgid ""
|
86 |
+
"Customize the user experience of Ajax Load More by updating the fields below."
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: ../admin/admin.php:773
|
90 |
+
msgid "The following settings affect the WordPress admin area only."
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: ../admin/admin.php:804
|
94 |
msgid "I want to use my own CSS styles."
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: ../admin/admin.php:804
|
98 |
msgid "View Ajax Load More CSS"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: ../admin/admin.php:824
|
102 |
msgid "Hide shortcode button in WYSIWYG editor."
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: ../admin/admin.php:845
|
106 |
+
msgid ""
|
107 |
+
"Display messaging regarding repeater template updates in the browser console."
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: ../admin/admin.php:866
|
111 |
msgid ""
|
112 |
"Disable dynamic population of categories, tags and authors in the Shortcode "
|
113 |
"Builder.<span style=\"display:block\">Recommended if you have an "
|
114 |
"extraordinary number of categories, tags and/or authors."
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: ../admin/admin.php:882
|
118 |
msgid ""
|
119 |
+
"Add classes to Ajax Load More container - classes are applied globally and "
|
120 |
+
"will appear with every instance of Ajax Load More.<span style=\"display:block"
|
121 |
+
"\">You can also add classes to the ALM container when building a shortcode.</"
|
122 |
+
"span>"
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: ../admin/admin.php:904 ../admin/admin.php:907
|
126 |
msgid "Ajax Posts Here"
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: ../admin/admin.php:951
|
130 |
msgid "Choose your <strong>Load More</strong> button color"
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: ../admin/admin.php:962
|
134 |
msgid "Preview"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: ../admin/admin.php:981
|
138 |
msgid "Add classes to your <strong>Load More</strong> button"
|
139 |
msgstr ""
|
140 |
|
141 |
+
#: ../admin/admin.php:1034
|
142 |
msgid ""
|
143 |
"On initial page load, move the user's browser window to the top of the "
|
144 |
"screen.<span style=\"display:block\">This <u>may</u> help prevent the "
|
145 |
"loading of unnecessary posts.</span>"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: ../admin/admin.php:1055
|
149 |
msgid ""
|
150 |
"Enable <a href=\"https://codex.wordpress.org/WordPress_Nonces\" target="
|
151 |
"\"_blank\">WP nonce</a> verification to help protect URLs against certain "
|
207 |
msgid "More Info"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: ../admin/includes/cta/mailinglist.php:3
|
211 |
+
msgid "Subscribe to Newsletter"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: ../admin/includes/cta/mailinglist.php:4
|
215 |
+
msgid ""
|
216 |
+
"Get product updates and release notifications delivered (infrequently) to "
|
217 |
+
"your inbox."
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
#: ../admin/includes/cta/mailinglist.php:10
|
221 |
+
msgid "Email Address"
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#: ../admin/includes/cta/mailinglist.php:11
|
225 |
+
msgid "Enter email address"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: ../admin/includes/cta/mailinglist.php:12
|
229 |
+
msgid "Subscribe"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
#: ../admin/includes/cta/resources.php:2
|
233 |
msgid "Help/Resources"
|
234 |
msgstr ""
|
730 |
msgstr ""
|
731 |
|
732 |
#: ../admin/shortcode-builder/shortcode-builder.php:808
|
733 |
+
#: ../ajax-load-more.php:262
|
734 |
msgid "Older Posts"
|
735 |
msgstr ""
|
736 |
|
818 |
|
819 |
#: ../admin/views/add-ons.php:143
|
820 |
msgid ""
|
821 |
+
"All add-ons are installed as stand alone plugins and with a valid license "
|
822 |
+
"key will receive plugin update notifications directly within the <a href="
|
823 |
+
"\"plugins.php\">WordPress Plugin dashboard</a>."
|
824 |
msgstr ""
|
825 |
|
826 |
#: ../admin/views/examples.php:4
|
971 |
msgstr ""
|
972 |
|
973 |
#: ../admin/views/licenses.php:317
|
974 |
+
msgid "Add-on licenses will enable updates directly in your WP dashboard."
|
|
|
|
|
975 |
msgstr ""
|
976 |
|
977 |
#: ../admin/views/licenses.php:318
|
999 |
msgid "The library of available templates to use within your theme"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: ../admin/views/repeater-templates.php:35
|
1003 |
msgid "Default Template"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: ../admin/views/repeater-templates.php:38
|
1007 |
msgid "Enter the HTML and PHP code for the default template"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: ../admin/views/repeater-templates.php:52
|
1011 |
msgid "Save Template"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: ../admin/views/repeater-templates.php:120
|
1015 |
msgid "Saving template..."
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: ../admin/views/repeater-templates.php:152
|
1019 |
msgid "Something went wrong and the data could not be saved."
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: ../admin/views/repeater-templates.php:192
|
1023 |
msgid "Updating template..."
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: ../admin/views/repeater-templates.php:213
|
1027 |
msgid "Template Updated"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: ../admin/views/repeater-templates.php:242
|
1031 |
msgid "Templating Help"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: ../admin/views/repeater-templates.php:244
|
1035 |
msgid "What is a repeater template?"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: ../admin/views/repeater-templates.php:245
|
1039 |
msgid ""
|
1040 |
"A repeater template is a snippet of code that will execute over and over "
|
1041 |
"within a <a href=\"http://codex.wordpress.org/The_Loop\" target=\"_blank"
|
1042 |
"\">WordPress loop</a>.</p>"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: ../admin/views/repeater-templates.php:248
|
1046 |
msgid "Can I include PHP in the repeater template?"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: ../admin/views/repeater-templates.php:249
|
1050 |
msgid ""
|
1051 |
"Yes, PHP and core WordPress functions such as, <code>the_title()</code> and "
|
1052 |
"<code>the_permalink()</code> are required.</p>"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: ../admin/views/repeater-templates.php:252
|
1056 |
msgid "Tips and Tricks"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: ../admin/views/repeater-templates.php:254
|
1060 |
msgid ""
|
1061 |
"Always open and close your templates with an HTML element. In some rare "
|
1062 |
"cases data may not be displayed if not wrapped in HTML.<br/>e.g. <code><"
|
1099 |
msgid "Clear all Shortcode Builder settings"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: ../ajax-load-more.php:160
|
1103 |
msgid "Settings"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: ../ajax-load-more.php:161
|
1107 |
msgid "Shortcode Builder"
|
1108 |
msgstr ""
|
1109 |
|