Version Description
- Feature: Wildcard replace segments of links based on query string parameters
- Feature: Show the link category name on the link picker search box
- Improvement: Auto remove Yoast SEO meta box on link edit screen
- Bug Fix: 307 global redirect option doesn't seem to be working properly
- Bug Fix: On brand new installs the permalinks sometimes need flushing again
- Bug Fix: Link categories dropdown on Quick Add form not working
- Bug Fix: Description of imported images from amazon is not positioned properly
Download this release
Release Info
Developer | jkohlbach |
Plugin | ThirstyAffiliates Affiliate Link Manager |
Version | 2.7.0 |
Comparing to | |
See all releases |
Version 2.7.0
- .htaccess +2 -0
- ThirstyAddonPage.php +147 -0
- ThirstyAdminPage.php +558 -0
- ThirstyShortcode.php +111 -0
- css/thirstystyle.css +276 -0
- images/deleteImg.png +0 -0
- images/detailsbg.jpg +0 -0
- images/icon-aff.png +0 -0
- images/icon-images-disabled.png +0 -0
- images/icon-images.png +0 -0
- images/icon-link.png +0 -0
- images/icon-shortcode.png +0 -0
- images/license +18 -0
- images/lightgreytransparent.png +0 -0
- images/lightgreytransparentalt.png +0 -0
- images/linkpickerlogo.png +0 -0
- images/media-button.png +0 -0
- images/search-load-more.png +0 -0
- images/thirsty-loader.gif +0 -0
- images/thirstylogo.png +0 -0
- images/white-grad.png +0 -0
- js/ThirstyLinkPicker.js +168 -0
- js/ThirstyQuickAddLinkPicker.js +263 -0
- js/lib/chosen/chosen-sprite.png +0 -0
- js/lib/chosen/chosen-sprite@2x.png +0 -0
- js/lib/chosen/chosen.jquery.min.js +2 -0
- js/lib/chosen/chosen.min.css +3 -0
- js/thirstyPickerHelper.js +43 -0
- js/thirstyhelper.js +390 -0
- languages/thirstyaffiliates-de_DE.mo +0 -0
- languages/thirstyaffiliates-de_DE.po +587 -0
- languages/thirstyaffiliates-es_ES.mo +0 -0
- languages/thirstyaffiliates-es_ES.po +581 -0
- languages/thirstyaffiliates-id_ID.mo +0 -0
- languages/thirstyaffiliates-id_ID.po +547 -0
- languages/thirstyaffiliates-it_IT.mo +0 -0
- languages/thirstyaffiliates-it_IT.po +584 -0
- languages/thirstyaffiliates-pt_BR.mo +0 -0
- languages/thirstyaffiliates-pt_BR.po +584 -0
- languages/thirstyaffiliates-ru_RU.mo +0 -0
- languages/thirstyaffiliates-ru_RU.po +581 -0
- readme.txt +301 -0
- thirstyaffiliates.php +2441 -0
- thirstymce/editor_plugin.js +1 -0
- thirstymce/editor_plugin_src.js +64 -0
- thirstymce/img/aff-new.gif +0 -0
- thirstymce/img/aff.gif +0 -0
.htaccess
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
Options -Indexes
|
2 |
+
|
ThirstyAddonPage.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*******************************************************************************
|
4 |
+
** thirstySetupAddonsMenu()
|
5 |
+
** Setup the plugin options menu
|
6 |
+
** @since 2.0
|
7 |
+
*******************************************************************************/
|
8 |
+
function thirstySetupAddonsMenu() {
|
9 |
+
if (is_admin()) {
|
10 |
+
add_submenu_page('edit.php?post_type=thirstylink', __('Add-ons', 'thirstyaffiliates'), __('Add-ons', 'thirstyaffiliates'), 'manage_options', 'thirsty-addons', 'thirstyAddonsPage');
|
11 |
+
}
|
12 |
+
}
|
13 |
+
|
14 |
+
/*******************************************************************************
|
15 |
+
** thirstyAddonsPage()
|
16 |
+
** Create the add-ons page
|
17 |
+
** @since 2.0
|
18 |
+
*******************************************************************************/
|
19 |
+
function thirstyAddonsPage() {
|
20 |
+
|
21 |
+
if (!current_user_can('manage_options')) {
|
22 |
+
wp_die( __('You do not have suffifient permissions to access this page.', 'thirstyaffiliates') );
|
23 |
+
}
|
24 |
+
|
25 |
+
echo '<div class="wrap">';
|
26 |
+
echo '<img id="thirstylogo" src="' . plugins_url('thirstyaffiliates/images/thirstylogo.png') . '" alt="ThirstyAffiliates" />';
|
27 |
+
|
28 |
+
echo '<h2>'.__('Turbo Charge ThirstyAffiliates With These Add-ons', 'thirstyaffiliates').'</h2>';
|
29 |
+
|
30 |
+
// get the products list from the RSS feed on thirstyaffiliates.com and
|
31 |
+
// print them into the page nicely
|
32 |
+
$products = thirstyAddonsPageGetProducts();
|
33 |
+
|
34 |
+
if (!empty($products)) {
|
35 |
+
echo '<ul id="thirstyaddonscontainer" class="columns-2">';
|
36 |
+
|
37 |
+
foreach ($products as $product) {
|
38 |
+
$productUrl = str_replace('utm_source=rss' , 'utm_source=plugin', $product['url']);
|
39 |
+
$productUrl = str_replace('utm_medium=rss' , 'utm_medium=addonpage', $productUrl);
|
40 |
+
$productTitle = str_replace('ThirstyAffiliates ', '', $product['title']);
|
41 |
+
$productTitle = str_replace(' Add-on', '', $productTitle);
|
42 |
+
|
43 |
+
echo '<li class="thirstyaddon">';
|
44 |
+
echo '<h3>' . $productTitle . '</h3>';
|
45 |
+
echo '<div class="thirstyaddondescription">' . $product['description'] . '</div>';
|
46 |
+
echo '<a class="button-primary" href="' . $productUrl . '" target="_blank">'.__('Visit Add-on Page →', 'thirstyaffiliates').'</a>';
|
47 |
+
echo '</li>';
|
48 |
+
}
|
49 |
+
|
50 |
+
echo '</ul>';
|
51 |
+
|
52 |
+
echo '<script type="text/javascript">
|
53 |
+
jQuery(document).ready(function() {
|
54 |
+
var addonBoxHeight = 0;
|
55 |
+
jQuery(".thirstyaddon").each(function() {
|
56 |
+
if (jQuery(this).height() > addonBoxHeight) {
|
57 |
+
addonBoxHeight = jQuery(this).height();
|
58 |
+
}
|
59 |
+
});
|
60 |
+
jQuery(".thirstyaddon").height(addonBoxHeight);
|
61 |
+
});
|
62 |
+
</script>';
|
63 |
+
}
|
64 |
+
|
65 |
+
echo '</div>';
|
66 |
+
}
|
67 |
+
|
68 |
+
/*******************************************************************************
|
69 |
+
** thirstyAddonsPageGetProducts()
|
70 |
+
** Get the add-ons feed
|
71 |
+
** @since 2.0
|
72 |
+
*******************************************************************************/
|
73 |
+
function thirstyAddonsPageGetProducts($forceNew = false) {
|
74 |
+
$thirstyAddonsRSS = get_option('thirstyAddonsRSS');
|
75 |
+
$expired = false;
|
76 |
+
|
77 |
+
/* If the timestamp hasn't been set or if it is expired or if we're forcing
|
78 |
+
** make sure we fetch a new feed */
|
79 |
+
if (isset($thirstyAddonsRSS) && !empty($thirstyAddonsRSS) && !$forceNew) {
|
80 |
+
|
81 |
+
$oneDayAgo = current_time('timestamp', 0) - (24 * 60 * 60); // current time minus 1 day
|
82 |
+
|
83 |
+
if (!isset($thirstyAddonsRSS['timestamp']) ||
|
84 |
+
empty($thirstyAddonsRSS['timestamp']) ||
|
85 |
+
$oneDayAgo > $thirstyAddonsRSS['timestamp']) {
|
86 |
+
|
87 |
+
$expired = true;
|
88 |
+
}
|
89 |
+
|
90 |
+
} else {
|
91 |
+
$expired = true;
|
92 |
+
}
|
93 |
+
|
94 |
+
// Check if we need to get a new RSS feed
|
95 |
+
if (!isset($thirstyAddonsRSS['products']) || empty($thirstyAddonsRSS['products']) || $expired) {
|
96 |
+
|
97 |
+
$rssXMLString = '';
|
98 |
+
$rssUrl = 'http://thirstyaffiliates.com/feed?post_type=product';
|
99 |
+
|
100 |
+
if (function_exists('curl_init')) { // cURL is installed on the server so use this preferably
|
101 |
+
$ch = curl_init();
|
102 |
+
curl_setopt($ch, CURLOPT_HEADER, false);
|
103 |
+
curl_setopt($ch, CURLOPT_URL, $rssUrl);
|
104 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); // provide a http header to please some curl setups
|
105 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
106 |
+
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
|
107 |
+
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
108 |
+
$rssXMLString = curl_exec($ch);
|
109 |
+
curl_close($ch);
|
110 |
+
} else { // try using file_get_contents, though this causes some issues on some servers
|
111 |
+
$rssXMLString = file_get_contents($rssUrl, true);
|
112 |
+
}
|
113 |
+
|
114 |
+
// DEFAULT BEHAVIOUR: if we can't get the country XML file return false
|
115 |
+
if (empty($rssXMLString))
|
116 |
+
return false;
|
117 |
+
|
118 |
+
// Create XML object for transversing
|
119 |
+
$rssXML = new SimpleXMLElement($rssXMLString);
|
120 |
+
|
121 |
+
// Check against each bot we have on record
|
122 |
+
if (!empty($rssXML)) {
|
123 |
+
|
124 |
+
$products = array();
|
125 |
+
foreach ($rssXML->channel->item as $product) {
|
126 |
+
$title = (string)$product->title;
|
127 |
+
$description = (string)$product->description;
|
128 |
+
$url = (string)$product->link;
|
129 |
+
|
130 |
+
$products[] = array(
|
131 |
+
'title' => $title,
|
132 |
+
'description' => $description,
|
133 |
+
'url' => $url
|
134 |
+
);
|
135 |
+
}
|
136 |
+
|
137 |
+
$timestamp = current_time('timestamp', 0);
|
138 |
+
update_option('thirstyAddonsRSS', array('products' => $products, 'timestamp' => $timestamp));
|
139 |
+
}
|
140 |
+
|
141 |
+
}
|
142 |
+
|
143 |
+
// Return products array
|
144 |
+
return $thirstyAddonsRSS['products'];
|
145 |
+
}
|
146 |
+
|
147 |
+
add_action('admin_menu', 'thirstySetupAddonsMenu', 90);
|
ThirstyAdminPage.php
ADDED
@@ -0,0 +1,558 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*******************************************************************************
|
4 |
+
** thirstySetupMenu()
|
5 |
+
** Setup the plugin options menu
|
6 |
+
** @since 1.0
|
7 |
+
*******************************************************************************/
|
8 |
+
function thirstySetupMenu() {
|
9 |
+
if (is_admin()) {
|
10 |
+
register_setting('thirstyOptions', 'thirstyOptions');
|
11 |
+
add_submenu_page('edit.php?post_type=thirstylink', __('Settings', 'thirstyaffiliates'), __('Settings', 'thirstyaffiliates'), 'manage_options', 'thirsty-settings', 'thirstyAdminOptions');
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
/*******************************************************************************
|
16 |
+
** thirstyAdminOptions
|
17 |
+
** Present the options page
|
18 |
+
** @since 1.0
|
19 |
+
*******************************************************************************/
|
20 |
+
function thirstyAdminOptions() {
|
21 |
+
if (!current_user_can('manage_options')) {
|
22 |
+
wp_die( __('You do not have suffifient permissions to access this page.', 'thirstyaffiliates') );
|
23 |
+
}
|
24 |
+
|
25 |
+
$thirstyOptions = get_option('thirstyOptions');
|
26 |
+
|
27 |
+
$linksRebuilt = false;
|
28 |
+
if (isset($thirstyOptions['rebuildlinks']) && $thirstyOptions['rebuildlinks'] == 'true') {
|
29 |
+
$thirstyOptions['rebuildlinks'] = 'false';
|
30 |
+
update_option('thirstyOptions', $thirstyOptions);
|
31 |
+
$thirstyOptions = get_option('thirstyOptions');
|
32 |
+
thirstyResaveAllLinks();
|
33 |
+
flush_rewrite_rules();
|
34 |
+
$linksRebuilt = true;
|
35 |
+
}
|
36 |
+
|
37 |
+
// Sanity check on link prefix
|
38 |
+
if (empty($thirstyOptions['linkprefix'])) {
|
39 |
+
$thirstyOptions['linkprefix'] = 'recommends';
|
40 |
+
update_option('thirstyOptions', $thirstyOptions);
|
41 |
+
}
|
42 |
+
|
43 |
+
$redirectTypes = thirstyGetRedirectTypes();
|
44 |
+
|
45 |
+
// Sanity check on link redirect type
|
46 |
+
if (empty($thirstyOptions['linkredirecttype'])) {
|
47 |
+
$thirstyOptions['linkredirecttype'] = '301';
|
48 |
+
update_option('thirstyOptions', $thirstyOptions);
|
49 |
+
}
|
50 |
+
|
51 |
+
$thirstyOptions['nofollow'] = isset($thirstyOptions['nofollow']) ? 'checked="checked"' : '';
|
52 |
+
$thirstyOptions['newwindow'] = isset($thirstyOptions['newwindow']) ? 'checked="checked"' : '';
|
53 |
+
$thirstyOptions['showcatinslug'] = isset($thirstyOptions['showcatinslug']) ? 'checked="checked"' : '';
|
54 |
+
$thirstyOptions['disablecatautoselect'] = isset($thirstyOptions['disablecatautoselect']) ? 'checked="checked"' : '';
|
55 |
+
$thirstyOptions['legacyuploader'] = isset($thirstyOptions['legacyuploader']) ? 'checked="checked"' : '';
|
56 |
+
$thirstyOptions['disabletitleattribute'] = isset($thirstyOptions['disabletitleattribute']) ? 'checked="checked"' : '';
|
57 |
+
$thirstyOptions['disablethirstylinkclass'] = isset($thirstyOptions['disablethirstylinkclass']) ? 'checked="checked"' : '';
|
58 |
+
$thirstyOptions['disableslugshortening'] = isset($thirstyOptions['disableslugshortening']) ? 'checked="checked"' : '';
|
59 |
+
$thirstyOptions['disablevisualeditorbuttons'] = isset($thirstyOptions['disablevisualeditorbuttons']) ? 'checked="checked"' : '';
|
60 |
+
$thirstyOptions['disabletexteditorbuttons'] = isset($thirstyOptions['disabletexteditorbuttons']) ? 'checked="checked"' : '';
|
61 |
+
|
62 |
+
echo '<script type="text/javascript">var thirstyPluginDir = "' .
|
63 |
+
plugins_url('thirstyaffiliates/') . '";
|
64 |
+
var thirstyJSEnable = true;
|
65 |
+
</script>';
|
66 |
+
|
67 |
+
echo '<div class="wrap">';
|
68 |
+
|
69 |
+
echo '<img id="thirstylogo" src="' . plugins_url('thirstyaffiliates/images/thirstylogo.png') . '" alt="ThirstyAffiliates" />';
|
70 |
+
|
71 |
+
echo '<form id="thirstySettingsForm" method="post" action="options.php">';
|
72 |
+
|
73 |
+
wp_nonce_field('update-options');
|
74 |
+
settings_fields('thirstyOptions');
|
75 |
+
|
76 |
+
if (!empty($_GET['settings-updated'])) {
|
77 |
+
echo '<div id="message" class="updated below-h2"><p>'.__('Settings updated.', 'thirstyaffiliates').'</p>' .
|
78 |
+
($linksRebuilt ? '<p>'.__('Links rebuilt.', 'thirstyaffiliates').'</p>' : '') . '</div>';
|
79 |
+
}
|
80 |
+
|
81 |
+
echo '
|
82 |
+
<table class="thirstyTable form-table" cellspacing="0" cellpadding="0">
|
83 |
+
|
84 |
+
<tr><td><h3 style="margin-top: 0;">'.__('General Settings', 'thirstyaffiliates').'</h3></td></tr>
|
85 |
+
|
86 |
+
<tr>
|
87 |
+
<th>
|
88 |
+
<label for="thirstyOptions[linkprefix]">'.__('Link Prefix:', 'thirstyaffiliates').'</label>
|
89 |
+
</th>
|
90 |
+
<td>
|
91 |
+
<select id="thirstyOptionsLinkPrefix" name="thirstyOptions[linkprefix]">
|
92 |
+
<option value="custom"' . (!empty($thirstyOptions['linkprefix']) && $thirstyOptions['linkprefix'] == 'custom' ? ' selected' : '') . '>-- ' . __('Custom', 'thirstyaffiliates') . ' --</option>';
|
93 |
+
|
94 |
+
thirstyGenerateSelectOptions(array("recommends", "link", "go", "review",
|
95 |
+
"product", "suggests", "follow", "endorses", "proceed", "fly", "goto",
|
96 |
+
"get", "find", "act", "click", "move", "offer", "run"), true);
|
97 |
+
|
98 |
+
echo '</select><br />
|
99 |
+
<input type="text" id="thirstyCustomLinkPrefix" value="' . (isset($thirstyOptions['linkprefixcustom']) ? $thirstyOptions['linkprefixcustom'] : '') . '" name="thirstyOptions[linkprefixcustom]" />';
|
100 |
+
|
101 |
+
if (isset($thirstyOptions['linkprefix']) && $thirstyOptions['linkprefix'] == 'custom') {
|
102 |
+
echo '<script type="text/javascript">
|
103 |
+
jQuery("#thirstyCustomLinkPrefix").css("display", "block");
|
104 |
+
jQuery("#thirstyCustomLinkPrefix").show();
|
105 |
+
</script>';
|
106 |
+
}
|
107 |
+
|
108 |
+
echo '</td>
|
109 |
+
<td>
|
110 |
+
<span class="description">'.__('The prefix that comes before your cloaked link\'s slug.<br />eg. ', 'thirstyaffiliates') .
|
111 |
+
trailingslashit(get_bloginfo('url')) . '<span style="font-weight: bold;">' . thirstyGetCurrentSlug() . '</span>/your-affiliate-link-name</span>
|
112 |
+
<br /><span class="description"><b>'.__('Warning:', 'thirstyaffiliates').'</b> '.__('Changing this setting after you\'ve used links in a post could break those links. Be careful!', 'thirstyaffiliates').'</span>
|
113 |
+
</td>
|
114 |
+
</tr>
|
115 |
+
|
116 |
+
<tr>
|
117 |
+
<th>
|
118 |
+
<label for="thirstyOptions[showcatinslug]">'.__('Show Link Category in URL?', 'thirstyaffiliates').'</label>
|
119 |
+
<td>
|
120 |
+
<input type="checkbox" name="thirstyOptions[showcatinslug]" id="thirstyOptionsShowCatInSlug" ' .
|
121 |
+
$thirstyOptions['showcatinslug'] . ' />
|
122 |
+
</td>
|
123 |
+
<td>
|
124 |
+
<span class="description">'.__('Show the selected category in the url. eg. ', 'thirstyaffiliates') .
|
125 |
+
trailingslashit(get_bloginfo('url')) . '' . thirstyGetCurrentSlug() . '/<span style="font-weight: bold;">link-category</span>/your-affiliate-link-name</span></span>
|
126 |
+
<br /><span class="description"><b>'.__('Warning:', 'thirstyaffiliates').'</b> '.__('Changing this setting after you\'ve used links in a post could break those links. Be careful!', 'thirstyaffiliates').'</span>
|
127 |
+
</td>
|
128 |
+
</tr>
|
129 |
+
|
130 |
+
<tr>
|
131 |
+
<th>
|
132 |
+
<label for="thirstyOptions[disablecatautoselect]">'.__('Disable "uncategorized" category on save?', 'thirstyaffiliates').'</label>
|
133 |
+
<td>
|
134 |
+
<input type="checkbox" name="thirstyOptions[disablecatautoselect]" id="thirstyOptionsDisableCatAutoSelect" ' .
|
135 |
+
$thirstyOptions['disablecatautoselect'] . ' />
|
136 |
+
</td>
|
137 |
+
<td>
|
138 |
+
<span class="description">'.__('If the "Show the selected category in the url" option above is selected, by default ThirstyAffiliates will add an "uncategorized" category to apply to non-categorised links during save. If you disable this, it allows you to have some links with categories in the URL and some without.', 'thirstyaffiliates').'</span>
|
139 |
+
</td>
|
140 |
+
</tr>
|
141 |
+
|
142 |
+
<tr>
|
143 |
+
<th>
|
144 |
+
<label for="thirstyOptions[linkredirecttype]">'.__('Link Redirect Type:', 'thirstyaffiliates').'</label>
|
145 |
+
<td>';
|
146 |
+
|
147 |
+
foreach ($redirectTypes as $redirectTypeCode => $redirectTypeDesc) {
|
148 |
+
|
149 |
+
$linkTypeSelected = false;
|
150 |
+
if (strcasecmp($thirstyOptions['linkredirecttype'], $redirectTypeCode) == 0)
|
151 |
+
$linkTypeSelected = true;
|
152 |
+
|
153 |
+
echo '<input type="radio" name="thirstyOptions[linkredirecttype]" id="thirstyOptionsLinkRedirectType' . $redirectTypeCode .'" ' .
|
154 |
+
($linkTypeSelected ? 'checked="checked" ' : '') . 'value="' . $redirectTypeCode . '" /> <label for="thirstyOptionsLinkRedirectType' . $redirectTypeCode .'">' . $redirectTypeDesc . '</label><br />';
|
155 |
+
|
156 |
+
}
|
157 |
+
|
158 |
+
$additionalreltags = isset($thirstyOptions['additionalreltags']) ? $thirstyOptions['additionalreltags'] : "";
|
159 |
+
|
160 |
+
echo '
|
161 |
+
</td>
|
162 |
+
<td>
|
163 |
+
<span class="description">'.__('This is the type of redirect ThirstyAffiliates will use to redirect the user to your affiliate link.', 'thirstyaffiliates').'</span>
|
164 |
+
</td>
|
165 |
+
</tr>
|
166 |
+
|
167 |
+
<tr>
|
168 |
+
<th>
|
169 |
+
<label for="thirstyOptions[nofollow]">'.__('Use no follow on links?', 'thirstyaffiliates').'</label>
|
170 |
+
<td>
|
171 |
+
<input type="checkbox" name="thirstyOptions[nofollow]" id="thirstyOptionsNofollow" ' .
|
172 |
+
$thirstyOptions['nofollow'] . ' />
|
173 |
+
</td>
|
174 |
+
<td>
|
175 |
+
<span class="description">'.__('Add the nofollow attribute to links so search engines don\'t index them', 'thirstyaffiliates').'</span>
|
176 |
+
</td>
|
177 |
+
</tr>
|
178 |
+
|
179 |
+
<tr>
|
180 |
+
<th>
|
181 |
+
<label for="thirstyOptions[newwindow]">'.__('Open links in new window?', 'thirstyaffiliates').'</label>
|
182 |
+
<td>
|
183 |
+
<input type="checkbox" name="thirstyOptions[newwindow]" id="thirstyOptionsNewwindow" ' .
|
184 |
+
$thirstyOptions['newwindow'] . ' />
|
185 |
+
</td>
|
186 |
+
<td>
|
187 |
+
<span class="description">'.__('Force the user to open links in a new window or tab', 'thirstyaffiliates').'</span>
|
188 |
+
</td>
|
189 |
+
</tr>
|
190 |
+
|
191 |
+
<tr>
|
192 |
+
<th>
|
193 |
+
<label for="thirstyOptions[legacyuploader]">'.__('Revert to legacy image uploader?', 'thirstyaffiliates').'</label>
|
194 |
+
<td>
|
195 |
+
<input type="checkbox" name="thirstyOptions[legacyuploader]" id="thirstyOptionsLegacyUploader" ' .
|
196 |
+
$thirstyOptions['legacyuploader'] . ' />
|
197 |
+
</td>
|
198 |
+
<td>
|
199 |
+
<span class="description">'.__('Disable the new media uploader in favour of the old style uploader', 'thirstyaffiliates').'</span>
|
200 |
+
</td>
|
201 |
+
</tr>
|
202 |
+
|
203 |
+
<tr>
|
204 |
+
<th>
|
205 |
+
<label for="thirstyOptions[disabletitleattribute]">'.__('Disable title attribute output on link insertion?', 'thirstyaffiliates').'</label>
|
206 |
+
<td>
|
207 |
+
<input type="checkbox" name="thirstyOptions[disabletitleattribute]" id="thirstyOptionsDisableTitleAttribute" ' .
|
208 |
+
$thirstyOptions['disabletitleattribute'] . ' />
|
209 |
+
</td>
|
210 |
+
<td>
|
211 |
+
<span class="description">'.__('Links are automatically output with a title html attribute (by default this shows the text
|
212 |
+
that you have linked), this option lets you disable the output of the title attribute on your links.', 'thirstyaffiliates').'</span>
|
213 |
+
</td>
|
214 |
+
</tr>
|
215 |
+
|
216 |
+
<tr>
|
217 |
+
<th>
|
218 |
+
<label for="thirstyOptions[disablethirstylinkclass]">'.__('Disable automatic output of ThirstyAffiliates CSS classes?', 'thirstyaffiliates').'</label>
|
219 |
+
<td>
|
220 |
+
<input type="checkbox" name="thirstyOptions[disablethirstylinkclass]" id="thirstyOptionsDisableThirstylinkClass" ' .
|
221 |
+
$thirstyOptions['disablethirstylinkclass'] . ' />
|
222 |
+
</td>
|
223 |
+
<td>
|
224 |
+
<span class="description">'.__('To help with styling your affiliate links a CSS class called "thirstylink" is added
|
225 |
+
to the link and a CSS class called "thirstylinkimg" is added to images (when inserting image affiliate links),
|
226 |
+
this option disables the addition of both of these CSS classes.', 'thirstyaffiliates').'</span>
|
227 |
+
</td>
|
228 |
+
</tr>
|
229 |
+
|
230 |
+
<tr>
|
231 |
+
<th>
|
232 |
+
<label for="thirstyOptions[disableslugshortening]">'.__('Disable slug shortening?', 'thirstyaffiliates').'</label>
|
233 |
+
<td>
|
234 |
+
<input type="checkbox" name="thirstyOptions[disableslugshortening]" id="thirstyOptionsDisableSlugShortening" ' .
|
235 |
+
$thirstyOptions['disableslugshortening'] . ' />
|
236 |
+
</td>
|
237 |
+
<td>
|
238 |
+
<span class="description">'.__('By default, ThirstyAffiliates removes superfluous words from your cloaked link URLs, this option turns that feature off.', 'thirstyaffiliates').'</span>
|
239 |
+
</td>
|
240 |
+
</tr>
|
241 |
+
|
242 |
+
<tr>
|
243 |
+
<th>
|
244 |
+
<label for="thirstyOptions[disablevisualeditorbuttons]">'.__('Disable buttons on the Visual editor?', 'thirstyaffiliates').'</label>
|
245 |
+
<td>
|
246 |
+
<input type="checkbox" name="thirstyOptions[disablevisualeditorbuttons]" id="thirstyOptionsDisableVisualEditorButtons" ' .
|
247 |
+
$thirstyOptions['disablevisualeditorbuttons'] . ' />
|
248 |
+
</td>
|
249 |
+
<td>
|
250 |
+
<span class="description">'.__('Hide the ThirstyAffiliates buttons on the Visual editor.', 'thirstyaffiliates').'</span>
|
251 |
+
</td>
|
252 |
+
</tr>
|
253 |
+
|
254 |
+
<tr>
|
255 |
+
<th>
|
256 |
+
<label for="thirstyOptions[disabletexteditorbuttons]">'.__('Disable buttons on the Text/Quicktags editor?', 'thirstyaffiliates').'</label>
|
257 |
+
<td>
|
258 |
+
<input type="checkbox" name="thirstyOptions[disabletexteditorbuttons]" id="thirstyOptionsDisableTextEditorButtons" ' .
|
259 |
+
$thirstyOptions['disabletexteditorbuttons'] . ' />
|
260 |
+
</td>
|
261 |
+
<td>
|
262 |
+
<span class="description">'.__('Hide the ThirstyAffiliates buttons on the Text editor.', 'thirstyaffiliates').'</span>
|
263 |
+
</td>
|
264 |
+
</tr>
|
265 |
+
|
266 |
+
<tr>
|
267 |
+
<th>
|
268 |
+
<label for="thirstyOptions[additionalreltags]">'.__('Additional rel attribute tags to add during link insertion: ', 'thirstyaffiliates').'</label>
|
269 |
+
<td>
|
270 |
+
<input type="text" name="thirstyOptions[additionalreltags]" id="thirstyOptionsAdditionalRelTags" value="' .
|
271 |
+
$additionalreltags . '" />
|
272 |
+
</td>
|
273 |
+
<td>
|
274 |
+
<span class="description">'.__('Allows you to add extra tags into the rel= attribute when links are inserted.', 'thirstyaffiliates').'</span>
|
275 |
+
</td>
|
276 |
+
</tr>';
|
277 |
+
|
278 |
+
do_action('thirstyAffiliatesAfterMainSettings');
|
279 |
+
|
280 |
+
echo '
|
281 |
+
</table>
|
282 |
+
|
283 |
+
<input type="hidden" name="thirstyOptions[rebuildlinks]" id="thirstyHiddenRebuildFlag" value="false" />
|
284 |
+
|
285 |
+
<input type="hidden" name="page_options" value="thirstyOptions" />
|
286 |
+
|
287 |
+
<p class="submit">
|
288 |
+
<input type="submit" class="button-primary" value="'.__('Save All Changes', 'thirstyaffiliates').'" />
|
289 |
+
<input type="submit" id="thirstyForceLinkRebuild" class="button-secondary" value="'.__('Save & Force Link Rebuild').'" />
|
290 |
+
</p>
|
291 |
+
|
292 |
+
</form>
|
293 |
+
|
294 |
+
<div class="thirstyWhiteBox">
|
295 |
+
|
296 |
+
<h3>'.__('Plugin Information', 'thirstyaffiliates').'</h3>'.
|
297 |
+
|
298 |
+
'ThirstyAffiliates Version: '. THIRSTY_VERSION .'<br />';
|
299 |
+
|
300 |
+
do_action('thirstyAffiliatesPluginInformation');
|
301 |
+
|
302 |
+
echo '</div><!-- /.thirstyWhiteBox -->';
|
303 |
+
|
304 |
+
do_action('thirstyAffiliatesAfterPluginInformation');
|
305 |
+
|
306 |
+
echo '
|
307 |
+
<div class="thirstyWhiteBox">
|
308 |
+
<h3>Join The Community</h3>
|
309 |
+
<ul id="thirstyCommunityLinks"><li><a href="http://thirstyaffiliates.com">'.__('Visit Our Website', 'thirstyaffiliates').'</a></li>
|
310 |
+
<li><a href="' . admin_url('edit.php?post_type=thirstylink&page=thirsty-addons') . '">'.__('Browse ThirstyAffiliates Add-ons', 'thirstyaffiliates').'</a></li>
|
311 |
+
<li><a href="http://thirstyaffiliates.com/affiliates">'.__('Join Our Affiliate Program', 'thirstyaffiliates').'</a> '.__('(up to 50% commissions)' ,'thirstyaffiliates').'</li>
|
312 |
+
<li><a href="http://facebook.com/thirstyaffiliates" style="margin-right: 10px;">'.__('Like us on Facebook', 'thirstyaffiliates').'</a><iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fthirstyaffiliates&send=false&layout=button_count&width=450&show_faces=false&font=arial&colorscheme=light&action=like&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px; vertical-align: bottom;" allowTransparency="true"></iframe></li>
|
313 |
+
<li><a href="http://twitter.com/thirstyaff" style="margin-right: 10px;">'.__('Follow us on Twitter', 'thirstyaffiliates').'</a> <a href="https://twitter.com/thirstyaff" class="twitter-follow-button" data-show-count="true" style="vertical-align: bottom;">Follow @thirstyaff</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document, "script", "twitter-wjs");</script></li>
|
314 |
+
</ul>
|
315 |
+
</div><!-- /.thirstyWhiteBox -->
|
316 |
+
|
317 |
+
</div><!-- /.wrap -->';
|
318 |
+
|
319 |
+
// Provide debug output for diagnostics and support use
|
320 |
+
if(isset($_GET['debug'])){
|
321 |
+
if ($_GET['debug'] == 'true') {
|
322 |
+
$thirstyOptions = get_option('thirstyOptions'); // re-retrieve options in case any of the filters/actions messed with it
|
323 |
+
echo '<pre>'.__('DEBUG: ','thirstyaffiliates') . print_r($thirstyOptions, true) . '</pre>';
|
324 |
+
}
|
325 |
+
}
|
326 |
+
}
|
327 |
+
|
328 |
+
/*******************************************************************************
|
329 |
+
** thirstyResaveAllLinks
|
330 |
+
** Resave all ThirstyAffiliates links in the system. Allows us to regenerate the
|
331 |
+
** slug and permalink after big settings changes.
|
332 |
+
** @since 2.1
|
333 |
+
*******************************************************************************/
|
334 |
+
function thirstyResaveAllLinks() {
|
335 |
+
|
336 |
+
$thirstyLinkQuery = new WP_Query(array(
|
337 |
+
'post_type' => 'thirstylink',
|
338 |
+
'post_status' => 'publish',
|
339 |
+
'posts_per_page' => -1,
|
340 |
+
'ignore_sticky_posts'=> 1
|
341 |
+
));
|
342 |
+
|
343 |
+
if($thirstyLinkQuery->have_posts()) {
|
344 |
+
while ($thirstyLinkQuery->have_posts()) {
|
345 |
+
$thirstyLinkQuery->the_post();
|
346 |
+
|
347 |
+
$thirstyLink['ID'] = get_the_ID();
|
348 |
+
wp_update_post($thirstyLink);
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}
|
352 |
+
|
353 |
+
/*******************************************************************************
|
354 |
+
** thirstyGenerateSelectOptions
|
355 |
+
** Helper function to generate selection boxes for admin page
|
356 |
+
** @since 1.0
|
357 |
+
*******************************************************************************/
|
358 |
+
function thirstyGenerateSelectOptions($selectNames, $echo = false) {
|
359 |
+
$thirstyOptions = get_option('thirstyOptions');
|
360 |
+
$html = '';
|
361 |
+
|
362 |
+
foreach ($selectNames as $selectName) {
|
363 |
+
$html .= '<option value="' . $selectName . '"' . ($thirstyOptions['linkprefix'] == $selectName ? ' selected' : '') . '>' . $selectName . '</option>';
|
364 |
+
}
|
365 |
+
|
366 |
+
if ($echo)
|
367 |
+
echo $html;
|
368 |
+
else
|
369 |
+
return $html;
|
370 |
+
}
|
371 |
+
|
372 |
+
add_action('admin_menu', 'thirstySetupMenu', 99);
|
373 |
+
|
374 |
+
/*******************************************************************************
|
375 |
+
** thirstyGlobalAdminNotices
|
376 |
+
** This should only be added to for really critical configuration problems that
|
377 |
+
** the admin should know about. In most cases this shows a notice to the admin
|
378 |
+
** explaining about the config problem and what they have to do to fix it.
|
379 |
+
** @since 2.4.6
|
380 |
+
*******************************************************************************/
|
381 |
+
function thirstyGlobalAdminNotices() {
|
382 |
+
// Check for pretty permalinks
|
383 |
+
global $wp_rewrite;
|
384 |
+
if (empty($wp_rewrite->permalink_structure)) {
|
385 |
+
echo '<div class="error">
|
386 |
+
<p>'.__('ThirstyAffiliates requires pretty permalinks, please change
|
387 |
+
your', 'thirstyaffiliates').' <a href="' . admin_url('options-permalink.php') . '">'.__('Permalink settings', 'thirstyaffiliates').'</a> '.__('to something other than default.', 'thirstyaffiliates').'<a href="#" style="float: right;" id="thirstyDismissPermalinksMessage">'.__('Dismiss', 'thirstyaffiliates').'</a></p>
|
388 |
+
</div>';
|
389 |
+
}
|
390 |
+
}
|
391 |
+
|
392 |
+
add_action('admin_notices', 'thirstyGlobalAdminNotices');
|
393 |
+
|
394 |
+
/**
|
395 |
+
* Render export/import controls.
|
396 |
+
*
|
397 |
+
* @contributor J++
|
398 |
+
* @since 2.5
|
399 |
+
*/
|
400 |
+
function renderExportImportControls(){
|
401 |
+
?>
|
402 |
+
<style>
|
403 |
+
.export_import_settings_instruction {
|
404 |
+
margin-bottom: 30px;
|
405 |
+
}
|
406 |
+
.export_import_settings_instruction dt {
|
407 |
+
font-weight: bold;
|
408 |
+
margin-bottom: 10px;
|
409 |
+
}
|
410 |
+
.export_import_settings_instruction dd {
|
411 |
+
margin-bottom: 20px;
|
412 |
+
}
|
413 |
+
.export_import_settings_instruction dd ul {
|
414 |
+
list-style-type: disc;
|
415 |
+
}
|
416 |
+
</style>
|
417 |
+
<div id="export_import_controls_container" class="thirstyWhiteBox">
|
418 |
+
<h3><?php _e('Export/Import Global Settings', 'thirstyaffiliates'); ?></h3>
|
419 |
+
|
420 |
+
<dl class="export_import_settings_instruction">
|
421 |
+
<dt><?php _e('Exporting Settings', 'thirstyaffiliates'); ?></dt>
|
422 |
+
<dd>
|
423 |
+
<ul>
|
424 |
+
<li><?php _e('Click export settings button', 'thirstyaffiliates'); ?></li>
|
425 |
+
<li><?php _e('Copy the settings text code', 'thirstyaffiliates'); ?></li>
|
426 |
+
<li><?php _e('Paste in the settings code to the destination site', 'thirstyaffiliates'); ?></li>
|
427 |
+
</ul>
|
428 |
+
</dd>
|
429 |
+
|
430 |
+
<dt><?php _e('Importing Settings', 'thirstyaffiliates'); ?></dt>
|
431 |
+
<dd>
|
432 |
+
<ul>
|
433 |
+
<li><?php _e('Click import settings button', 'thirstyaffiliates'); ?></li>
|
434 |
+
<li><?php _e('Paste the settings text code ( From other site )', 'thirstyaffiliates'); ?></li>
|
435 |
+
<li><?php _e('Click import global settings button', 'thirstyaffiliates'); ?></li>
|
436 |
+
</ul>
|
437 |
+
</dd>
|
438 |
+
</dl>
|
439 |
+
|
440 |
+
<input type="button" class="button button-primary" id="export_global_settings" value="<?php _e('Export Settings', 'thirstyaffiliates'); ?>" />
|
441 |
+
<input type="button" class="button button-primary" id="import_global_settings" value="<?php _e('Import Settings', 'thirstyaffiliates'); ?>" />
|
442 |
+
|
443 |
+
<div id="textarea_container">
|
444 |
+
<textarea id="global_settings_string" cols="40" rows="10"></textarea>
|
445 |
+
</div>
|
446 |
+
<input type="button" class="button button-primary" id="import_global_settings_action" value="<?php _e('Import Global Settings', 'thirstyaffiliates'); ?>"/>
|
447 |
+
</div>
|
448 |
+
<?php
|
449 |
+
}
|
450 |
+
|
451 |
+
add_action( 'thirstyAffiliatesAfterPluginInformation' , 'renderExportImportControls' );
|
452 |
+
|
453 |
+
/**
|
454 |
+
* Export global settings.
|
455 |
+
*
|
456 |
+
* @param null $dummyArg
|
457 |
+
* @param bool $ajaxCall
|
458 |
+
*
|
459 |
+
* @contributor J++
|
460 |
+
* @return bool
|
461 |
+
* @since 2.5
|
462 |
+
*/
|
463 |
+
function thirstyExportGlobalSettings( $dummyArg = null , $ajaxCall = true ){
|
464 |
+
if (!current_user_can(apply_filters('thirstyAjaxOptionsCapability', 'manage_options')))
|
465 |
+
die('Cheatin\', Huh?');
|
466 |
+
|
467 |
+
$thirstyOption = base64_encode( serialize( get_option('thirstyOptions') ) );
|
468 |
+
|
469 |
+
if($ajaxCall === true){
|
470 |
+
|
471 |
+
header('Content-Type: application/json'); // specify we return json
|
472 |
+
echo json_encode(array(
|
473 |
+
'status' => 'success',
|
474 |
+
'thirstyOption' => $thirstyOption
|
475 |
+
));
|
476 |
+
die();
|
477 |
+
|
478 |
+
}else{
|
479 |
+
|
480 |
+
return true;
|
481 |
+
|
482 |
+
}
|
483 |
+
|
484 |
+
}
|
485 |
+
|
486 |
+
add_action( "wp_ajax_thirstyExportGlobalSettings" , 'thirstyExportGlobalSettings' );
|
487 |
+
|
488 |
+
/**
|
489 |
+
* Import global settings.
|
490 |
+
*
|
491 |
+
* @param null $thirstyOptions
|
492 |
+
* @param bool $ajaxCall
|
493 |
+
*
|
494 |
+
* @contributor J++
|
495 |
+
* @return bool
|
496 |
+
* @since 2.5
|
497 |
+
*/
|
498 |
+
function thirstyImportGlobalSettings( $thirstyOptions = null , $ajaxCall = true ){
|
499 |
+
if (!current_user_can(apply_filters('thirstyAjaxOptionsCapability', 'manage_options')))
|
500 |
+
die('Cheatin\', Huh?');
|
501 |
+
|
502 |
+
// We do this coz unserialize issues E_NOTICE on failure.
|
503 |
+
error_reporting( E_ERROR | E_PARSE );
|
504 |
+
|
505 |
+
if ( $ajaxCall === true )
|
506 |
+
$thirstyOptions = $_POST[ 'thirstyOptions' ];
|
507 |
+
|
508 |
+
$err = null;
|
509 |
+
$thirstyOptions = base64_decode( $thirstyOptions );
|
510 |
+
|
511 |
+
if ( !$thirstyOptions )
|
512 |
+
$err = __("Failed to decode settings string", "thirstyaffiliates");
|
513 |
+
|
514 |
+
if ( is_null( $err ) ) {
|
515 |
+
|
516 |
+
$thirstyOptions = maybe_unserialize( $thirstyOptions );
|
517 |
+
|
518 |
+
if ( !$thirstyOptions )
|
519 |
+
$err = __("Failed to unserialize settings string", "thirstyaffiliates");
|
520 |
+
|
521 |
+
}
|
522 |
+
|
523 |
+
if ( is_null( $err ) )
|
524 |
+
update_option( 'thirstyOptions' , $thirstyOptions );
|
525 |
+
|
526 |
+
if($ajaxCall === true){
|
527 |
+
|
528 |
+
if ( is_null( $err ) ) {
|
529 |
+
|
530 |
+
header('Content-Type: application/json'); // specify we return json
|
531 |
+
echo json_encode(array(
|
532 |
+
'status' => 'success'
|
533 |
+
));
|
534 |
+
die();
|
535 |
+
|
536 |
+
} else {
|
537 |
+
|
538 |
+
header('Content-Type: application/json'); // specify we return json
|
539 |
+
echo json_encode(array(
|
540 |
+
'status' => 'fail',
|
541 |
+
'error_message' => $err
|
542 |
+
));
|
543 |
+
die();
|
544 |
+
|
545 |
+
}
|
546 |
+
|
547 |
+
}else{
|
548 |
+
|
549 |
+
if ( is_null( $err ) )
|
550 |
+
return true;
|
551 |
+
else
|
552 |
+
return false;
|
553 |
+
|
554 |
+
}
|
555 |
+
|
556 |
+
}
|
557 |
+
|
558 |
+
add_action( "wp_ajax_thirstyImportGlobalSettings" , 'thirstyImportGlobalSettings' );
|
ThirstyShortcode.php
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*******************************************************************************
|
3 |
+
** thirstyLinkByShortcode
|
4 |
+
** Allows user to specify a shortcode in the page/post to include a thirstylink
|
5 |
+
*******************************************************************************/
|
6 |
+
function thirstyLinkByShortcode($atts) {
|
7 |
+
extract($atts);
|
8 |
+
|
9 |
+
$output = '';
|
10 |
+
|
11 |
+
// Sanity check, if the linkid attribute is empty we can't retrieve the link
|
12 |
+
if (!empty($linkid)) {
|
13 |
+
// Remove linkid, linktext and linkclass to get final link attributes
|
14 |
+
$linkAttributes = array_diff_assoc(
|
15 |
+
$atts,
|
16 |
+
array(
|
17 |
+
'linkid' => (isset($linkid) ? $linkid : ''),
|
18 |
+
'linktext' => (isset($linktext) ? $linktext : ''),
|
19 |
+
'linkclass' => (isset($linkclass) ? $linkclass : '')
|
20 |
+
)
|
21 |
+
);
|
22 |
+
|
23 |
+
// Backwards compatibility for linkclass shortcode attribute, should add this to the "class" link attribute
|
24 |
+
if (isset($linkclass))
|
25 |
+
$linkAttributes['class'] = $linkAttributes['class'] . ' ' . (isset($linkclass) ? $linkclass : '');
|
26 |
+
|
27 |
+
// Retrieving via the link ID
|
28 |
+
if (is_numeric($linkid)) {
|
29 |
+
|
30 |
+
// Get the link and global options
|
31 |
+
$thirstyOptions = get_option('thirstyOptions');
|
32 |
+
$link = get_post($linkid);
|
33 |
+
// Check if the link is set
|
34 |
+
if (!isset($link))
|
35 |
+
return;
|
36 |
+
|
37 |
+
$linkData = unserialize(get_post_meta($link->ID, 'thirstyData', true));
|
38 |
+
|
39 |
+
// Check if the link data is set
|
40 |
+
if (!isset($linkData))
|
41 |
+
return;
|
42 |
+
|
43 |
+
// Get the link URL
|
44 |
+
$linkAttributes['href'] = get_post_permalink($linkid);
|
45 |
+
|
46 |
+
// If the link text is empty, use the link name instead
|
47 |
+
if (empty($linktext)) {
|
48 |
+
$linktext = $link->post_title;
|
49 |
+
}
|
50 |
+
|
51 |
+
// Check for no follow defaults if not specified in the shortcode attributes
|
52 |
+
if (empty($linkAttributes['rel'])) {
|
53 |
+
$linkAttributes['rel'] = (!empty($thirstyOptions['nofollow']) ? 'nofollow' : '');
|
54 |
+
|
55 |
+
// Set the link's nofollow if global setting is not set
|
56 |
+
if (empty($linkAttributes['rel']))
|
57 |
+
$linkAttributes['rel'] = (isset($linkData['nofollow']) && $linkData['nofollow'] == 'on' ? 'nofollow' : '');
|
58 |
+
}
|
59 |
+
|
60 |
+
// Check for no follow defaults if not specified in the shortcode attributes
|
61 |
+
if (empty($linkAttributes['target'])) {
|
62 |
+
$linkAttributes['target'] = (!empty($thirstyOptions['newwindow']) ? '_blank' : '');
|
63 |
+
|
64 |
+
// Set the link's target value if global setting is not set
|
65 |
+
if (empty($linkAttributes['target']))
|
66 |
+
$linkAttributes['target'] = (isset($linkData['newwindow']) && $linkData['newwindow'] == 'on' ? '_blank' : '');
|
67 |
+
}
|
68 |
+
|
69 |
+
// Provide a default value for link class when attribute is not given in shortcode
|
70 |
+
if (empty($linkAttributes['class'])) {
|
71 |
+
$linkAttributes['class'] = 'thirstylink';
|
72 |
+
}
|
73 |
+
|
74 |
+
// Disable class output if global option set
|
75 |
+
if (!empty($thirstyOptions['disablethirstylinkclass']))
|
76 |
+
unset($linkAttributes['class']);
|
77 |
+
|
78 |
+
// Provide a default value for the title attribute when attribute is not given in shortcode
|
79 |
+
if (empty($linkAttributes['title'])) {
|
80 |
+
$linkAttributes['title'] = $link->post_title;
|
81 |
+
}
|
82 |
+
|
83 |
+
// Disable title attribute if global option set
|
84 |
+
if (!empty($thirstyOptions['disabletitleattribute']))
|
85 |
+
unset($linkAttributes['title']);
|
86 |
+
|
87 |
+
// Build the link ready for output
|
88 |
+
$output .= '<a';
|
89 |
+
|
90 |
+
foreach ($linkAttributes as $name => $value) {
|
91 |
+
// Handle square bracket escaping (used for some addons, eg. Google Analytics click tracking)
|
92 |
+
$value = html_entity_decode($value);
|
93 |
+
$value = preg_replace('/[/', '[', $value);
|
94 |
+
$value = preg_replace('/]/', ']', $value);
|
95 |
+
$output .= (!empty($value) ? ' ' . $name . '="' . $value . '"' : '');
|
96 |
+
}
|
97 |
+
|
98 |
+
$output .= '>' . $linktext . '</a>';
|
99 |
+
|
100 |
+
} else {
|
101 |
+
$output .= '<span style="color: #0000ff;">'.__('SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please check your short code!').'</span>';
|
102 |
+
}
|
103 |
+
|
104 |
+
}
|
105 |
+
|
106 |
+
return $output;
|
107 |
+
}
|
108 |
+
|
109 |
+
// Add a shortcode for thirsty affiliate links
|
110 |
+
add_shortcode('thirstylink', 'thirstyLinkByShortcode', 1);
|
111 |
+
?>
|
css/thirstystyle.css
ADDED
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*******************************************************************************
|
2 |
+
** File: thirstystyle.css
|
3 |
+
** Description: Admin styles for ThirstyAffiliates plugin
|
4 |
+
*******************************************************************************/
|
5 |
+
|
6 |
+
.infolabel {
|
7 |
+
padding-bottom: 5px;
|
8 |
+
}
|
9 |
+
|
10 |
+
#thirsty_linkname, #thirsty_linkurl, #thirsty_linkslug, .infotext, #thirsty_cloakedurl {
|
11 |
+
height: 31px;
|
12 |
+
font-size: 14px;
|
13 |
+
border: 1px solid #DFDFDF;
|
14 |
+
width: 100%;
|
15 |
+
margin: 0;
|
16 |
+
padding: 5px;
|
17 |
+
}
|
18 |
+
|
19 |
+
.infotext {
|
20 |
+
height: 16px;
|
21 |
+
}
|
22 |
+
|
23 |
+
#thirsty_linkslug, #thirstySaveSlug {
|
24 |
+
display: none;
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
#thirstyEditSlug, #thirstyVisitLink {
|
29 |
+
display: inline-block;
|
30 |
+
margin-top: 5px;
|
31 |
+
}
|
32 |
+
|
33 |
+
#thirstySaveSlug {
|
34 |
+
margin-top: 5px;
|
35 |
+
}
|
36 |
+
|
37 |
+
#thirstyEditSlug:hover, #thirstyVisitLink:hover {
|
38 |
+
border: 1px solid #666666;
|
39 |
+
}
|
40 |
+
|
41 |
+
.thirstySaveMe {
|
42 |
+
display: none;
|
43 |
+
color: #0000ff;
|
44 |
+
}
|
45 |
+
|
46 |
+
#thirstylink-main-meta div.inside {
|
47 |
+
background: #ffffff;
|
48 |
+
margin: 0;
|
49 |
+
padding: 0 0 30px 0;
|
50 |
+
}
|
51 |
+
|
52 |
+
#thirsty_upload_insert_img {
|
53 |
+
font-size: 12px;
|
54 |
+
font-family: Arial, sans serif;
|
55 |
+
}
|
56 |
+
|
57 |
+
.thirsty_description {
|
58 |
+
color: #909090;
|
59 |
+
padding-left: 2px;
|
60 |
+
font-style: italic;
|
61 |
+
font-size: 10px !important;
|
62 |
+
}
|
63 |
+
|
64 |
+
#thirsty_logo {
|
65 |
+
margin: 25px 0 15px 30px;
|
66 |
+
float: left;
|
67 |
+
width: 100%;
|
68 |
+
}
|
69 |
+
|
70 |
+
#thirsty_add_images {
|
71 |
+
cursor: pointer;
|
72 |
+
vertical-align: middle;
|
73 |
+
}
|
74 |
+
|
75 |
+
#thirsty_upload_insert_img {
|
76 |
+
margin-top: 15px;
|
77 |
+
}
|
78 |
+
|
79 |
+
#thirsty_image_holder {
|
80 |
+
background: white;
|
81 |
+
overflow: hidden;
|
82 |
+
padding: 0px 0px 20px 0px;
|
83 |
+
margin: 0;
|
84 |
+
border: 1px solid #DFDFDF;
|
85 |
+
text-align: center;
|
86 |
+
}
|
87 |
+
|
88 |
+
.thirstyImg img {
|
89 |
+
}
|
90 |
+
|
91 |
+
#thirsty_cloakedurl {
|
92 |
+
display: inline;
|
93 |
+
}
|
94 |
+
|
95 |
+
#publish {
|
96 |
+
margin-top: 8px;
|
97 |
+
margin-bottom: 5px;
|
98 |
+
}
|
99 |
+
|
100 |
+
.submitdelete {
|
101 |
+
color: #ff0000;
|
102 |
+
font-weight: normal;
|
103 |
+
text-decoration: underline;
|
104 |
+
}
|
105 |
+
|
106 |
+
.thirstyImgHolder {
|
107 |
+
border: 1px solid #eee;
|
108 |
+
border-radius: 5px;
|
109 |
+
-webkit-border-radius: 5px;
|
110 |
+
-moz-border-radius: 5px;
|
111 |
+
padding: 5px;
|
112 |
+
margin-left: 20px;
|
113 |
+
margin-top: 20px;
|
114 |
+
float: left;
|
115 |
+
}
|
116 |
+
|
117 |
+
.thirstyRemoveImg {
|
118 |
+
float: right;
|
119 |
+
background: transparent url('../images/deleteImg.png') no-repeat left top;
|
120 |
+
height: 17px;
|
121 |
+
width: 17px;
|
122 |
+
margin-top: -14px;
|
123 |
+
margin-right: -24px;
|
124 |
+
padding: 5px;
|
125 |
+
cursor: pointer;
|
126 |
+
}
|
127 |
+
|
128 |
+
#thirstyaddonscontainer {
|
129 |
+
margin-top: 20px;
|
130 |
+
}
|
131 |
+
|
132 |
+
.thirstyaddon {
|
133 |
+
display: inline-block;
|
134 |
+
margin: 0 1% 1% 0;
|
135 |
+
position: relative;
|
136 |
+
width: 28.5%;
|
137 |
+
padding: 0 20px 20px 20px;
|
138 |
+
vertical-align: top;
|
139 |
+
border: 1px solid #CCC;
|
140 |
+
border-radius: 5px;
|
141 |
+
-webkit-border-radius: 5px;
|
142 |
+
-moz-border-radius: 5px;
|
143 |
+
background: #ffffff;
|
144 |
+
}
|
145 |
+
|
146 |
+
.thirstyaddonlinkpage {
|
147 |
+
margin: 0 1% 1% 0;
|
148 |
+
position: relative;
|
149 |
+
width: auto;
|
150 |
+
padding: 0 10px 10px 10px;
|
151 |
+
vertical-align: top;
|
152 |
+
border: 1px solid #CCC;
|
153 |
+
border-radius: 5px;
|
154 |
+
-webkit-border-radius: 5px;
|
155 |
+
-moz-border-radius: 5px;
|
156 |
+
background: #ffffff;
|
157 |
+
}
|
158 |
+
|
159 |
+
.thirstyaddon:nth-child(3n) {
|
160 |
+
margin-right: 0;
|
161 |
+
}
|
162 |
+
|
163 |
+
.thirstyaddon h3, .thirstyaddonlinkpage h3 {
|
164 |
+
font-size: 12pt;
|
165 |
+
margin-top: 0px;
|
166 |
+
margin-left: -20px;
|
167 |
+
margin-right: -20px;
|
168 |
+
background: #EEE;
|
169 |
+
padding: 1em;
|
170 |
+
border-bottom: 1px solid #CCC;
|
171 |
+
border-top-left-radius: 5px;
|
172 |
+
border-top-right-radius: 5px;
|
173 |
+
}
|
174 |
+
|
175 |
+
.thirstyaddonlinkpage h3 {
|
176 |
+
margin-top: 0px !important;
|
177 |
+
margin-left: -10px !important;
|
178 |
+
margin-right: -10px !important;
|
179 |
+
margin-bottom: 10px !important;
|
180 |
+
}
|
181 |
+
|
182 |
+
.thirstyaddondescription {
|
183 |
+
margin-bottom: 15px;
|
184 |
+
}
|
185 |
+
|
186 |
+
#thirstyCustomLinkPrefix {
|
187 |
+
display: none;
|
188 |
+
width: 130px;
|
189 |
+
}
|
190 |
+
|
191 |
+
#thirstySettingsForm {
|
192 |
+
padding: 2%;
|
193 |
+
background: #ffffff;
|
194 |
+
margin-top: 1em;
|
195 |
+
margin-bottom: 1em;
|
196 |
+
}
|
197 |
+
|
198 |
+
#thirstySettingsForm .description {
|
199 |
+
color: #808080;
|
200 |
+
}
|
201 |
+
|
202 |
+
#thirstySettingsForm td {
|
203 |
+
vertical-align: top;
|
204 |
+
}
|
205 |
+
|
206 |
+
#thirstyCustomLinkPrefix, #thirstyOptionsLinkPrefix {
|
207 |
+
width: 120px;
|
208 |
+
}
|
209 |
+
|
210 |
+
#thirstyCommunityLinks li {
|
211 |
+
height: 28px;
|
212 |
+
}
|
213 |
+
|
214 |
+
.thirstyWhiteBox {
|
215 |
+
padding: 2%;
|
216 |
+
background: #ffffff;
|
217 |
+
margin-bottom: 1em;
|
218 |
+
}
|
219 |
+
|
220 |
+
@media handheld, only screen and (max-width: 959px) {
|
221 |
+
.thirstyaddon {
|
222 |
+
width: 45.5%;
|
223 |
+
}
|
224 |
+
|
225 |
+
.thirstyaddon:nth-child(3n) {
|
226 |
+
margin-right: 1%;
|
227 |
+
}
|
228 |
+
|
229 |
+
.thirstyaddon:nth-child(2n) {
|
230 |
+
margin-right: 0;
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
@media handheld, only screen and (max-width: 599px) {
|
235 |
+
.thirstyaddon {
|
236 |
+
width: 97%;
|
237 |
+
}
|
238 |
+
|
239 |
+
.thirstyaddon:nth-child(3n) {
|
240 |
+
margin-right: 1%;
|
241 |
+
}
|
242 |
+
|
243 |
+
.thirstyaddon:nth-child(2n) {
|
244 |
+
margin-right: 1%;
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
|
249 |
+
/*
|
250 |
+
Export/Import Settings Styling
|
251 |
+
*/
|
252 |
+
#export_import_controls_container textarea {
|
253 |
+
margin-top: 20px;
|
254 |
+
display: none;
|
255 |
+
}
|
256 |
+
|
257 |
+
#import_global_settings_action {
|
258 |
+
display: none;
|
259 |
+
margin-top: 20px;
|
260 |
+
}
|
261 |
+
|
262 |
+
/*
|
263 |
+
*/
|
264 |
+
}
|
265 |
+
float: none;
|
266 |
+
padding: 10px 15px;
|
267 |
+
word-break: break-word;
|
268 |
+
}
|
269 |
+
body.post-type-thirstylink #TB_secondLine {
|
270 |
+
display: block;
|
271 |
+
margin-top: 10px;
|
272 |
+
font-size: 12px;
|
273 |
+
}
|
274 |
+
body.post-type-thirstylink #TB_window img#TB_Image {
|
275 |
+
margin: 15px auto 0;
|
276 |
+
}
|
images/deleteImg.png
ADDED
Binary file
|
images/detailsbg.jpg
ADDED
Binary file
|
images/icon-aff.png
ADDED
Binary file
|
images/icon-images-disabled.png
ADDED
Binary file
|
images/icon-images.png
ADDED
Binary file
|
images/icon-link.png
ADDED
Binary file
|
images/icon-shortcode.png
ADDED
Binary file
|
images/license
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
icon-images.png, icon-shortcode.png and icon-link.png are all licensed under GPL,
|
2 |
+
they are free software: you can redistribute it and/or modify
|
3 |
+
it under the terms of the GNU General Public License as published by
|
4 |
+
the Free Software Foundation, either version 3 of the License, or
|
5 |
+
(at your option) any later version.
|
6 |
+
|
7 |
+
These images are distributed in the hope that it will be useful,
|
8 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10 |
+
GNU General Public License for more details.
|
11 |
+
|
12 |
+
You should have received a copy of the GNU General Public License
|
13 |
+
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
14 |
+
|
15 |
+
Images were obtained from the oxygen icon set and WooCons #1 icon set, both
|
16 |
+
licensed under GPL, see below links for more info:
|
17 |
+
http://www.oxygen-icons.org/
|
18 |
+
http://www.woothemes.com/2010/08/woocons1/
|
images/lightgreytransparent.png
ADDED
Binary file
|
images/lightgreytransparentalt.png
ADDED
Binary file
|
images/linkpickerlogo.png
ADDED
Binary file
|
images/media-button.png
ADDED
Binary file
|
images/search-load-more.png
ADDED
Binary file
|
images/thirsty-loader.gif
ADDED
Binary file
|
images/thirstylogo.png
ADDED
Binary file
|
images/white-grad.png
ADDED
Binary file
|
js/ThirstyLinkPicker.js
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var search_offset = 0;
|
2 |
+
|
3 |
+
function thirstyPerformSearch(searchQueryText) {
|
4 |
+
var catsQueryIDs = '';
|
5 |
+
|
6 |
+
if (searchQueryText && searchQueryText.length > 0) {
|
7 |
+
jQuery('#show_more').fadeOut(200);
|
8 |
+
} else {
|
9 |
+
jQuery('#show_more').delay(500).fadeIn(400);
|
10 |
+
search_offset = 0;
|
11 |
+
}
|
12 |
+
|
13 |
+
jQuery.post(
|
14 |
+
thirstyAjaxLink,
|
15 |
+
{
|
16 |
+
action: 'thirstyLinkPickerSearch',
|
17 |
+
search_query: searchQueryText
|
18 |
+
},
|
19 |
+
replaceSearchResults
|
20 |
+
);
|
21 |
+
}
|
22 |
+
|
23 |
+
function showImages() {
|
24 |
+
jQuery(this).next('.img_choices').slideDown();
|
25 |
+
jQuery(this).unbind();
|
26 |
+
jQuery(this).click(hideImages);
|
27 |
+
jQuery(this).html('Insert Image «');
|
28 |
+
}
|
29 |
+
|
30 |
+
function hideImages() {
|
31 |
+
jQuery(this).next('.img_choices').slideUp();
|
32 |
+
jQuery(this).unbind();
|
33 |
+
jQuery(this).click(showImages);
|
34 |
+
jQuery(this).html('Insert Image »');
|
35 |
+
}
|
36 |
+
|
37 |
+
thirstyPerformSearch();
|
38 |
+
|
39 |
+
jQuery('input#search_input').keyup(function() {
|
40 |
+
thirstyPerformSearch(jQuery(this).val());
|
41 |
+
});
|
42 |
+
|
43 |
+
jQuery(document).ready(function() {
|
44 |
+
jQuery('input#search_input').focus();
|
45 |
+
|
46 |
+
jQuery('#show_more').click(function() {
|
47 |
+
search_offset = search_offset + 10;
|
48 |
+
jQuery('#show_more_loader').show();
|
49 |
+
jQuery.post(
|
50 |
+
thirstyAjaxLink,
|
51 |
+
{
|
52 |
+
action: 'thirstyLinkPickerSearch',
|
53 |
+
search_offset: search_offset
|
54 |
+
},
|
55 |
+
appendSearchResults
|
56 |
+
);
|
57 |
+
});
|
58 |
+
});
|
59 |
+
|
60 |
+
function appendSearchResults(html) { jQuery('#show_more_loader').hide(); printSearchResults(html, false); }
|
61 |
+
function replaceSearchResults(html) { printSearchResults(html, true); }
|
62 |
+
|
63 |
+
function printSearchResults(html, replace) {
|
64 |
+
if (replace == true)
|
65 |
+
jQuery('#picker_content').html(html);
|
66 |
+
else
|
67 |
+
jQuery('#picker_content').append(html);
|
68 |
+
|
69 |
+
jQuery('.insert_shortcode_link').unbind();
|
70 |
+
jQuery('.insert_link').unbind();
|
71 |
+
|
72 |
+
jQuery('.insert_link').click(function() {
|
73 |
+
|
74 |
+
var linkID = jQuery(this).attr('linkID');
|
75 |
+
var copiedText = thirstyGetCopiedText();
|
76 |
+
|
77 |
+
// Check if there are anything selected on the editor
|
78 |
+
// If none, use the linkname
|
79 |
+
if((copiedText == "") || (jQuery.trim(copiedText) == "")){
|
80 |
+
|
81 |
+
// Select the image control with appropriate linkid
|
82 |
+
// Go up to the closest table row
|
83 |
+
// Go down to that particular row's span with a class of linkname
|
84 |
+
// Get the text
|
85 |
+
var linkname = jQuery("img[linkid='"+linkID+"']").closest("tr").find(".linkname").text();
|
86 |
+
copiedText = linkname;
|
87 |
+
}
|
88 |
+
|
89 |
+
// Make ajax call to get the link code
|
90 |
+
jQuery.post(
|
91 |
+
thirstyAjaxLink,
|
92 |
+
{
|
93 |
+
action: 'thirstyGetLinkCode',
|
94 |
+
linkType: 'link',
|
95 |
+
linkID: linkID,
|
96 |
+
copiedText: copiedText
|
97 |
+
},
|
98 |
+
function(linkCode) {
|
99 |
+
parent.thirstyInsertLink(linkCode);
|
100 |
+
parent.thirstyDismissLinkPicker();
|
101 |
+
}
|
102 |
+
);
|
103 |
+
|
104 |
+
});
|
105 |
+
|
106 |
+
jQuery('.insert_shortcode_link').click(function() {
|
107 |
+
var linkID = jQuery(this).attr('linkID');
|
108 |
+
var copiedText = thirstyGetCopiedText();
|
109 |
+
|
110 |
+
// Make ajax call to get the link code
|
111 |
+
jQuery.post(
|
112 |
+
thirstyAjaxLink,
|
113 |
+
{
|
114 |
+
action: 'thirstyGetLinkCode',
|
115 |
+
linkType: 'shortcode',
|
116 |
+
linkID: linkID,
|
117 |
+
copiedText: copiedText
|
118 |
+
},
|
119 |
+
function(linkCode) {
|
120 |
+
parent.thirstyInsertLink(linkCode);
|
121 |
+
parent.thirstyDismissLinkPicker();
|
122 |
+
}
|
123 |
+
);
|
124 |
+
});
|
125 |
+
|
126 |
+
jQuery('.thirstyImg').click(function() {
|
127 |
+
var linkID = jQuery(this).attr('linkID');
|
128 |
+
var imageID = jQuery(this).attr('imageID');
|
129 |
+
var copiedText = thirstyGetCopiedText();
|
130 |
+
|
131 |
+
// Make ajax call to get the link code
|
132 |
+
jQuery.post(
|
133 |
+
thirstyAjaxLink,
|
134 |
+
{
|
135 |
+
action: 'thirstyGetLinkCode',
|
136 |
+
linkType: 'image',
|
137 |
+
linkID: linkID,
|
138 |
+
copiedText: copiedText,
|
139 |
+
imageID: imageID
|
140 |
+
},
|
141 |
+
function(linkCode) {
|
142 |
+
parent.thirstyInsertLink(linkCode);
|
143 |
+
parent.thirstyDismissLinkPicker();
|
144 |
+
}
|
145 |
+
);
|
146 |
+
|
147 |
+
});
|
148 |
+
|
149 |
+
jQuery('.insert_img_link').click(showImages);
|
150 |
+
}
|
151 |
+
|
152 |
+
function thirstyGetCopiedText() {
|
153 |
+
var copiedText = '';
|
154 |
+
|
155 |
+
var richEditorActive = false;
|
156 |
+
if (parent.thirstyMCE != null && !parent.thirstyMCE.isHidden()) {
|
157 |
+
richEditorActive = true;
|
158 |
+
}
|
159 |
+
|
160 |
+
if (!richEditorActive) {
|
161 |
+
var selectedText = parent.thirstyGetHTMLEditorSelection();
|
162 |
+
copiedText = selectedText.text;
|
163 |
+
} else {
|
164 |
+
copiedText = parent.thirstyMCE.selection.getContent();
|
165 |
+
}
|
166 |
+
|
167 |
+
return copiedText;
|
168 |
+
}
|
js/ThirstyQuickAddLinkPicker.js
ADDED
@@ -0,0 +1,263 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function($) {
|
2 |
+
|
3 |
+
/*========================================
|
4 |
+
= Global Variables =
|
5 |
+
========================================*/
|
6 |
+
var quick_add_link_container = $("#quick-add-link-container"),
|
7 |
+
allClear = true,
|
8 |
+
errList = {};
|
9 |
+
|
10 |
+
|
11 |
+
/*=========================================
|
12 |
+
= Utility Functions =
|
13 |
+
=========================================*/
|
14 |
+
|
15 |
+
// Initialize form
|
16 |
+
function initializeForm(){
|
17 |
+
|
18 |
+
// Clear all error related stuff
|
19 |
+
quick_add_link_container
|
20 |
+
.find("input[type='text']")
|
21 |
+
.removeClass('err')
|
22 |
+
.siblings('.errmsg')
|
23 |
+
.css("display","none")
|
24 |
+
.text('')
|
25 |
+
.closest("#quick-add-link-container")
|
26 |
+
.find("#error-bulletin")
|
27 |
+
.css("display","none")
|
28 |
+
.text('');
|
29 |
+
|
30 |
+
// Re initialize checkpoint flag
|
31 |
+
allClear = true;
|
32 |
+
|
33 |
+
// Re initialize error list object
|
34 |
+
errList = {};
|
35 |
+
}
|
36 |
+
|
37 |
+
// Validate Link Name
|
38 |
+
function validateLinkName(linkname) {
|
39 |
+
if(linkname == ""){
|
40 |
+
allClear = false;
|
41 |
+
errList["#qal_link_name"] = "Required Field, Can't be empty";
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
// Validate Destination URL
|
46 |
+
function validateDestinationURL(linkurl){
|
47 |
+
if(linkurl == ""){
|
48 |
+
allClear = false;
|
49 |
+
errList["#qal_destination_url"] = "Required Field, Can't be empty";
|
50 |
+
}else{
|
51 |
+
var urlRegex = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
|
52 |
+
if(!urlRegex.test(linkurl)){
|
53 |
+
allClear = false;
|
54 |
+
errList["#qal_destination_url"] = "Invalid URL Supplied";
|
55 |
+
}
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
// Prompt Error Message
|
60 |
+
function promptErrorMessage(){
|
61 |
+
$.each(errList, function( id, errmsg ) {
|
62 |
+
quick_add_link_container
|
63 |
+
.find(id)
|
64 |
+
.addClass('err')
|
65 |
+
.siblings('.errmsg')
|
66 |
+
.css("display","block")
|
67 |
+
.text(errmsg);
|
68 |
+
});
|
69 |
+
}
|
70 |
+
|
71 |
+
|
72 |
+
/*=======================================================================
|
73 |
+
= Add New Affiliate Link and Insert to Post Editor =
|
74 |
+
=======================================================================*/
|
75 |
+
$('#quick-add-link').click(function() {
|
76 |
+
|
77 |
+
/*========== Init ==========*/
|
78 |
+
initializeForm();
|
79 |
+
|
80 |
+
/*========== Data Sanitation ==========*/
|
81 |
+
// Note: JS Validation should not be relied on
|
82 |
+
// Just for user convenience purposes
|
83 |
+
var linkname = $.trim(quick_add_link_container.find("#qal_link_name").val()),
|
84 |
+
nonce = quick_add_link_container.find("#quick_add_aff_link_nonce").val(),
|
85 |
+
linkurl = $.trim(quick_add_link_container.find("#qal_destination_url").val()),
|
86 |
+
nofollow = $.trim(quick_add_link_container.find("#qal_no_follow_link:checked").val()),
|
87 |
+
newwindow = $.trim(quick_add_link_container.find("#qal_new_window:checked").val()),
|
88 |
+
linkredirecttype = $.trim(quick_add_link_container.find("input[name='qal_redirect_type']:checked").val()),
|
89 |
+
linkCategory = $.trim(quick_add_link_container.find("#qal_link_categories").val());
|
90 |
+
|
91 |
+
// Link Name
|
92 |
+
validateLinkName(linkname);
|
93 |
+
|
94 |
+
// Link URL
|
95 |
+
validateDestinationURL(linkurl);
|
96 |
+
|
97 |
+
// Checkpoint
|
98 |
+
if(allClear){
|
99 |
+
|
100 |
+
/*========== Ajax Call ==========*/
|
101 |
+
// TODO: Refactor this ajax call to another function
|
102 |
+
$.post(
|
103 |
+
thirstyAjaxLink,
|
104 |
+
{
|
105 |
+
action : 'quickCreateAffiliateLink',
|
106 |
+
nonce : nonce,
|
107 |
+
linkname : linkname,
|
108 |
+
linkurl : linkurl,
|
109 |
+
nofollow : nofollow,
|
110 |
+
newwindow : newwindow,
|
111 |
+
linkredirecttype : linkredirecttype,
|
112 |
+
linkCategory : linkCategory
|
113 |
+
},
|
114 |
+
function(data){
|
115 |
+
|
116 |
+
if(!isNaN(data)){
|
117 |
+
|
118 |
+
// Success
|
119 |
+
var linkID = data;
|
120 |
+
var copiedText = thirstyGetCopiedText();
|
121 |
+
|
122 |
+
// Check if there are anything selected on the editor
|
123 |
+
// If none, use the linkname
|
124 |
+
if((copiedText == "") || ($.trim(copiedText) == "")){
|
125 |
+
copiedText = linkname;
|
126 |
+
}
|
127 |
+
|
128 |
+
// Make ajax call to get the link code
|
129 |
+
jQuery.post(
|
130 |
+
thirstyAjaxLink,
|
131 |
+
{
|
132 |
+
action: 'thirstyGetLinkCode',
|
133 |
+
linkType: 'link',
|
134 |
+
linkID: linkID,
|
135 |
+
copiedText: copiedText
|
136 |
+
},
|
137 |
+
function(linkCode) {
|
138 |
+
parent.thirstyInsertLink(linkCode);
|
139 |
+
parent.thirstyDismissLinkPicker();
|
140 |
+
}
|
141 |
+
);
|
142 |
+
|
143 |
+
}else{
|
144 |
+
|
145 |
+
// Failure
|
146 |
+
quick_add_link_container
|
147 |
+
.find("#error-bulletin")
|
148 |
+
.text(data)
|
149 |
+
.css("display","block");
|
150 |
+
|
151 |
+
}
|
152 |
+
|
153 |
+
}
|
154 |
+
);
|
155 |
+
|
156 |
+
}else{
|
157 |
+
|
158 |
+
// Prompt Message
|
159 |
+
promptErrorMessage();
|
160 |
+
|
161 |
+
}
|
162 |
+
|
163 |
+
// Prevent evernt bubbling
|
164 |
+
return false;
|
165 |
+
|
166 |
+
});//$('#quick-add-link').click
|
167 |
+
|
168 |
+
|
169 |
+
/*==============================================
|
170 |
+
= Add New Affiliate Link =
|
171 |
+
==============================================*/
|
172 |
+
$("#add-link").click(function(){
|
173 |
+
|
174 |
+
/*========== Init ==========*/
|
175 |
+
initializeForm();
|
176 |
+
|
177 |
+
/*========== Data Sanitation ==========*/
|
178 |
+
// Note: JS Validation should not be relied on
|
179 |
+
// Just for user convenience purposes
|
180 |
+
var linkname = $.trim(quick_add_link_container.find("#qal_link_name").val()),
|
181 |
+
nonce = quick_add_link_container.find("#quick_add_aff_link_nonce").val(),
|
182 |
+
linkurl = $.trim(quick_add_link_container.find("#qal_destination_url").val()),
|
183 |
+
nofollow = $.trim(quick_add_link_container.find("#qal_no_follow_link:checked").val()),
|
184 |
+
newwindow = $.trim(quick_add_link_container.find("#qal_new_window:checked").val()),
|
185 |
+
linkredirecttype = $.trim(quick_add_link_container.find("input[name='qal_redirect_type']:checked").val()),
|
186 |
+
linkCategory = $.trim(quick_add_link_container.find("#qal_link_categories").val());
|
187 |
+
|
188 |
+
// Link Name
|
189 |
+
validateLinkName(linkname);
|
190 |
+
|
191 |
+
// Link URL
|
192 |
+
validateDestinationURL(linkurl);
|
193 |
+
|
194 |
+
// Checkpoint
|
195 |
+
if(allClear){
|
196 |
+
|
197 |
+
/*========== Ajax Call ==========*/
|
198 |
+
// TODO: Refactor this ajax call to another function
|
199 |
+
$.post(
|
200 |
+
thirstyAjaxLink,
|
201 |
+
{
|
202 |
+
action : 'quickCreateAffiliateLink',
|
203 |
+
nonce : nonce,
|
204 |
+
linkname : linkname,
|
205 |
+
linkurl : linkurl,
|
206 |
+
nofollow : nofollow,
|
207 |
+
newwindow : newwindow,
|
208 |
+
linkredirecttype : linkredirecttype,
|
209 |
+
linkCategory : linkCategory
|
210 |
+
},
|
211 |
+
function(data){
|
212 |
+
|
213 |
+
if(!isNaN(data)){
|
214 |
+
|
215 |
+
// Success
|
216 |
+
parent.thirstyDismissLinkPicker();
|
217 |
+
|
218 |
+
}else{
|
219 |
+
|
220 |
+
// Failure
|
221 |
+
quick_add_link_container
|
222 |
+
.find("#error-bulletin")
|
223 |
+
.text(data)
|
224 |
+
.css("display","block");
|
225 |
+
|
226 |
+
}
|
227 |
+
|
228 |
+
}
|
229 |
+
);
|
230 |
+
|
231 |
+
}else{
|
232 |
+
|
233 |
+
// Prompt Message
|
234 |
+
promptErrorMessage();
|
235 |
+
|
236 |
+
}
|
237 |
+
|
238 |
+
// Prevent evernt bubbling
|
239 |
+
return false;
|
240 |
+
|
241 |
+
});//$('#quick-add-link').click
|
242 |
+
|
243 |
+
});//document ready
|
244 |
+
|
245 |
+
|
246 |
+
|
247 |
+
// TODO: Suggest to move this function from ThirstyLinkPicker.js To thistyPickerHelper.js
|
248 |
+
function thirstyGetCopiedText() {
|
249 |
+
var copiedText = '';
|
250 |
+
|
251 |
+
var richEditorActive = false;
|
252 |
+
if (parent.thirstyMCE != null && !parent.thirstyMCE.isHidden()) {
|
253 |
+
richEditorActive = true;
|
254 |
+
}
|
255 |
+
if (!richEditorActive) {
|
256 |
+
var selectedText = parent.thirstyGetHTMLEditorSelection();
|
257 |
+
copiedText = selectedText.text;
|
258 |
+
} else {
|
259 |
+
copiedText = parent.thirstyMCE.selection.getContent();
|
260 |
+
}
|
261 |
+
|
262 |
+
return copiedText;
|
263 |
+
}
|
js/lib/chosen/chosen-sprite.png
ADDED
Binary file
|
js/lib/chosen/chosen-sprite@2x.png
ADDED
Binary file
|
js/lib/chosen/chosen.jquery.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/* Chosen v1.3.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
|
2 |
+
!function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"<",">":">",'"':""","'":"'","`":"`"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0},AbstractChosen.prototype.set_default_text=function(){return this.default_text=this.form_field.getAttribute("data-placeholder")?this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(){var a=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return a.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(){var a=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return a.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f;for(b="",f=this.results_data,d=0,e=f.length;e>d;d++)c=f[d],b+=c.group?this.result_add_group(c):this.result_add_option(c),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(c.text));return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match?this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return a.search_match||a.group_match?a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),(!b.group||this.group_search)&&(b.search_text=b.group?b.label:b.text,b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(){var a=this;return setTimeout(function(){return a.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(){var c,d;c=a(this),d=c.data("chosen"),"destroy"===b&&d instanceof Chosen?d.destroy():d instanceof Chosen||c.data("chosen",new Chosen(this,b))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){a.container_mousedown(b)}),this.container.bind("touchend.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(){var a;return this.form_field.tabIndex?(a=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=a):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+b.html+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(c.text),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").text(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}.call(this);
|
js/lib/chosen/chosen.min.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
/* Chosen v1.3.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
|
2 |
+
|
3 |
+
.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;*display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(chosen-sprite.png) no-repeat 100% -20px;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(chosen-sprite.png) no-repeat -30px -20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
|
js/thirstyPickerHelper.js
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var thirstyMCE;
|
2 |
+
function thirstyOpenLinkPicker(ed) {
|
3 |
+
thirstyMCE = ed;
|
4 |
+
|
5 |
+
tb_show("Add an Affiliate Link", thirstyAjaxLink + '?action=thirstyGetThickboxContent&height=640&width=640&TB_iframe=true');
|
6 |
+
}
|
7 |
+
|
8 |
+
function thirstyOpenQuickAddLinkPicker(ed){
|
9 |
+
thirstyMCE = ed;
|
10 |
+
|
11 |
+
tb_show("Quick Add Affiliate Link", thirstyAjaxLink + '?action=thirstyGetQuickAddLinkThickboxContent&height=640&width=640&TB_iframe=true');
|
12 |
+
}
|
13 |
+
|
14 |
+
function thirstyInsertLink(linkcode) {
|
15 |
+
var richEditorActive = false;
|
16 |
+
if (typeof(parent.thirstyMCE) !== 'undefined' && parent.thirstyMCE != null && !parent.thirstyMCE.isHidden()) {
|
17 |
+
richEditorActive = true;
|
18 |
+
}
|
19 |
+
|
20 |
+
if (richEditorActive) { // Visual editor replacement
|
21 |
+
parent.thirstyMCE.focus();
|
22 |
+
parent.thirstyMCE.selection.setContent(linkcode);
|
23 |
+
parent.thirstyMCE.execCommand('mceRepaint');
|
24 |
+
} else { // HTML editor replacement
|
25 |
+
thirstyReplaceHTMLEditorSelectedText(linkcode);
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
function thirstyReplaceHTMLEditorSelectedText(text) {
|
30 |
+
var el;
|
31 |
+
el = parent.document.getElementById("replycontent");
|
32 |
+
if (typeof el == "undefined" || !jQuery(el).is(":visible")) // is not a comment reply
|
33 |
+
el = parent.document.getElementById("content");
|
34 |
+
|
35 |
+
var sel = parent.thirstyGetHTMLEditorSelection();
|
36 |
+
var val = el.value;
|
37 |
+
el.value = val.slice(0, sel.start) + text + val.slice(sel.end);
|
38 |
+
jQuery(el).trigger('change'); // some addons require notice that something has changed
|
39 |
+
}
|
40 |
+
|
41 |
+
function thirstyDismissLinkPicker() {
|
42 |
+
tb_remove();
|
43 |
+
}
|
js/thirstyhelper.js
ADDED
@@ -0,0 +1,390 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var frame;
|
2 |
+
|
3 |
+
jQuery(document).ready(function($) {
|
4 |
+
if (thirstyJSEnable == true) {
|
5 |
+
jQuery('#thirstyOptionsLinkPrefix').change(function() {
|
6 |
+
|
7 |
+
thirstySetRebuildFlag();
|
8 |
+
|
9 |
+
if (jQuery(this).val() == 'custom') {
|
10 |
+
jQuery('#thirstyCustomLinkPrefix').val("");
|
11 |
+
jQuery('#thirstyCustomLinkPrefix').fadeIn(400);
|
12 |
+
} else {
|
13 |
+
jQuery('#thirstyCustomLinkPrefix').val("");
|
14 |
+
jQuery('#thirstyCustomLinkPrefix').fadeOut(400);
|
15 |
+
}
|
16 |
+
});
|
17 |
+
|
18 |
+
jQuery('.submit input[type=submit]').click(function() {
|
19 |
+
if (jQuery('#thirstyOptionsLinkPrefix').val() == 'custom' &&
|
20 |
+
jQuery('#thirstyCustomLinkPrefix').val() == '') {
|
21 |
+
jQuery('#thirstyOptionsLinkPrefix').val('recommends');
|
22 |
+
jQuery('#thirstyCustomLinkPrefix').fadeOut(400);
|
23 |
+
}
|
24 |
+
});
|
25 |
+
jQuery('#post_name').remove();
|
26 |
+
jQuery('#post-body-content').remove();
|
27 |
+
|
28 |
+
jQuery('#thirstyEditSlug').click(thirstyEditSlug);
|
29 |
+
|
30 |
+
jQuery('#thirsty_upload_insert_img').click(thirstyAddImagesClicked);
|
31 |
+
jQuery('#thirsty_upload_media_manager').click(thirstyMediaManagerAddImagesClicked);
|
32 |
+
jQuery('.thirstyRemoveImg').click(thirstyRemoveImageClicked);
|
33 |
+
|
34 |
+
jQuery('#thirstyOptionsShowCatInSlug').click(thirstySetRebuildFlag);
|
35 |
+
jQuery('#thirstyForceLinkRebuild').click(thirstySetRebuildFlag);
|
36 |
+
|
37 |
+
|
38 |
+
$("#export_global_settings").click(function(){
|
39 |
+
|
40 |
+
var $this = $(this),
|
41 |
+
settings_textarea = $("#global_settings_string"),
|
42 |
+
import_settings = $("#import_global_settings_action");
|
43 |
+
|
44 |
+
$this.attr('disabled','disabled');
|
45 |
+
|
46 |
+
settings_textarea.val("");
|
47 |
+
|
48 |
+
if ( !settings_textarea.is(":visible") )
|
49 |
+
settings_textarea.slideDown("fast");
|
50 |
+
|
51 |
+
if ( import_settings.is(":visible") )
|
52 |
+
import_settings.slideUp("fast");
|
53 |
+
|
54 |
+
jQuery
|
55 |
+
.ajax({
|
56 |
+
url : ajaxurl,
|
57 |
+
type : "POST",
|
58 |
+
data : { action : "thirstyExportGlobalSettings" },
|
59 |
+
dataType : "json"
|
60 |
+
})
|
61 |
+
.done( function( data , textStatus , jqXHR ) {
|
62 |
+
|
63 |
+
if(data.status == 'success'){
|
64 |
+
|
65 |
+
settings_textarea.val(data.thirstyOption);
|
66 |
+
|
67 |
+
}
|
68 |
+
|
69 |
+
})
|
70 |
+
.fail( function( jqXHR , textStatus , errorThrown ) {
|
71 |
+
|
72 |
+
alert( 'Failed to get global settings string' );
|
73 |
+
|
74 |
+
console.log( 'Failed to create lead pages' );
|
75 |
+
console.log( jqXHR );
|
76 |
+
console.log( '----------' );
|
77 |
+
|
78 |
+
})
|
79 |
+
.always( function(){
|
80 |
+
|
81 |
+
$this.removeAttr('disabled');
|
82 |
+
|
83 |
+
});
|
84 |
+
|
85 |
+
});
|
86 |
+
|
87 |
+
$("#import_global_settings").click(function(){
|
88 |
+
|
89 |
+
var $this = $(this),
|
90 |
+
settings_textarea = $("#global_settings_string"),
|
91 |
+
import_settings = $("#import_global_settings_action");
|
92 |
+
|
93 |
+
settings_textarea.val("");
|
94 |
+
|
95 |
+
if ( !settings_textarea.is(":visible") )
|
96 |
+
settings_textarea.slideDown("fast");
|
97 |
+
|
98 |
+
if ( !import_settings.is(":visible") )
|
99 |
+
import_settings.slideDown("fast");
|
100 |
+
|
101 |
+
});
|
102 |
+
|
103 |
+
$("#import_global_settings_action").click(function(){
|
104 |
+
|
105 |
+
var $this = $(this),
|
106 |
+
settings_textarea = $("#global_settings_string"),
|
107 |
+
thirstyOptions = $.trim(settings_textarea.val());
|
108 |
+
|
109 |
+
$this.attr( 'disabled' , 'disabled' );
|
110 |
+
|
111 |
+
if (thirstyOptions == ""){
|
112 |
+
|
113 |
+
alert("Settings string empty");
|
114 |
+
return false;
|
115 |
+
|
116 |
+
}
|
117 |
+
|
118 |
+
jQuery
|
119 |
+
.ajax({
|
120 |
+
url : ajaxurl,
|
121 |
+
type : "POST",
|
122 |
+
data : { action : "thirstyImportGlobalSettings" , thirstyOptions : thirstyOptions },
|
123 |
+
dataType : "json"
|
124 |
+
})
|
125 |
+
.done( function( data , textStatus , jqXHR ) {
|
126 |
+
|
127 |
+
console.log(data);
|
128 |
+
|
129 |
+
if ( data.status == 'success' ) {
|
130 |
+
|
131 |
+
alert("Settings imported successfully");
|
132 |
+
location.reload();
|
133 |
+
|
134 |
+
} else if ( data.status == 'fail' ) {
|
135 |
+
|
136 |
+
alert("Failed to import settings\n"+data.error_message);
|
137 |
+
|
138 |
+
}
|
139 |
+
|
140 |
+
})
|
141 |
+
.fail( function( jqXHR , textStatus , errorThrown ) {
|
142 |
+
|
143 |
+
alert( 'Failed to import settings' );
|
144 |
+
|
145 |
+
console.log( 'Failed to import settings' );
|
146 |
+
console.log( jqXHR );
|
147 |
+
console.log( '----------' );
|
148 |
+
|
149 |
+
})
|
150 |
+
.always( function(){
|
151 |
+
|
152 |
+
$this.removeAttr('disabled');
|
153 |
+
|
154 |
+
});
|
155 |
+
|
156 |
+
});
|
157 |
+
|
158 |
+
$('#thirsty_enable_wildcard').on('change', function() {
|
159 |
+
if ( $(this).prop('checked') == true ) {
|
160 |
+
$('#thirstylink-link-wildcard-meta').show();
|
161 |
+
} else {
|
162 |
+
$('#thirstylink-link-wildcard-meta').hide();
|
163 |
+
}
|
164 |
+
}).trigger('change');
|
165 |
+
|
166 |
+
$('#ta_wildcard_form').on('click', '.delete_wildcard', function() {
|
167 |
+
|
168 |
+
var wildcardRow = $(this).closest('.wildcard_row');
|
169 |
+
var rowNum = parseInt( wildcardRow.prop('id').replace('wildcard_row_', '') );
|
170 |
+
|
171 |
+
if ( 0 == rowNum )
|
172 |
+
return;
|
173 |
+
|
174 |
+
wildcardRow.remove();
|
175 |
+
wildcardShiftInputKeys();
|
176 |
+
$('#ta_wilcard_add_row .add-wildcard-row').prop( 'disabled', false );
|
177 |
+
});
|
178 |
+
|
179 |
+
$('#ta_wilcard_add_row').on('click', '.add-wildcard-row', function() {
|
180 |
+
|
181 |
+
wildcardShiftInputKeys();
|
182 |
+
|
183 |
+
if ( 10 < $('#ta_wildcard_form .wildcard_row').length )
|
184 |
+
return;
|
185 |
+
|
186 |
+
var wildcardTable = $('#ta_wildcard_form'),
|
187 |
+
firstRow = wildcardTable.find('#wildcard_row_0');
|
188 |
+
rowNum = wildcardTable.find('.wildcard_row').length,
|
189 |
+
newRow = '<tr class="wildcard_row" id="wildcard_row_' + rowNum + '">' + firstRow.html() + '</tr>';
|
190 |
+
|
191 |
+
newRow = newRow.replace(/\[0\]/gi, '[' + rowNum + ']')
|
192 |
+
.replace( firstRow.find('.wildcard-variable').val() , '' )
|
193 |
+
.replace( firstRow.find('.wildcard-value').val() , '' );
|
194 |
+
|
195 |
+
wildcardTable.append( newRow );
|
196 |
+
|
197 |
+
if ( 10 <= $('#ta_wildcard_form .wildcard_row').length ) {
|
198 |
+
$(this).prop( 'disabled', true );
|
199 |
+
}
|
200 |
+
});
|
201 |
+
}
|
202 |
+
});
|
203 |
+
|
204 |
+
function thirstySetRebuildFlag() {
|
205 |
+
jQuery('#thirstyHiddenRebuildFlag').val('true');
|
206 |
+
}
|
207 |
+
|
208 |
+
function thirstyRemoveImageClicked(event) {
|
209 |
+
var attachId = jQuery(this).attr('id'); // get attachment id
|
210 |
+
jQuery.post(
|
211 |
+
thirstyAjaxLink,
|
212 |
+
{
|
213 |
+
action: 'thirstyUnattachImageFromLink',
|
214 |
+
imgId: attachId
|
215 |
+
},
|
216 |
+
function(result) {
|
217 |
+
jQuery('.thirstyImgHolder span#' + result).addClass('test').parent().fadeOut(300).delay(300).remove();
|
218 |
+
}
|
219 |
+
);
|
220 |
+
}
|
221 |
+
|
222 |
+
function thirstyMediaManagerAddImagesClicked(event) {
|
223 |
+
jQuery('.thirstySaveMe').fadeIn(200);
|
224 |
+
|
225 |
+
event.preventDefault();
|
226 |
+
|
227 |
+
// If the media frame already exists, reopen it.
|
228 |
+
if ( frame ) {
|
229 |
+
frame.open();
|
230 |
+
return;
|
231 |
+
}
|
232 |
+
|
233 |
+
// Create the media frame.
|
234 |
+
frame = wp.media.frames.thirstyLink = wp.media({
|
235 |
+
// Set the title of the modal.
|
236 |
+
title: jQuery(this).data('uploader-title'),
|
237 |
+
|
238 |
+
// Tell the modal to show only images.
|
239 |
+
library: {
|
240 |
+
type: 'image'
|
241 |
+
},
|
242 |
+
|
243 |
+
// Customize the submit button.
|
244 |
+
button: {
|
245 |
+
// Set the text of the button.
|
246 |
+
text: jQuery(this).data('uploader-button-text'),
|
247 |
+
// Tell the button not to close the modal, since we're
|
248 |
+
// going to refresh the page when the image is selected.
|
249 |
+
close: true
|
250 |
+
},
|
251 |
+
|
252 |
+
// 2.4.7: Allow selection of multiple images
|
253 |
+
multiple: true
|
254 |
+
});
|
255 |
+
|
256 |
+
// When an image is selected, run a callback.
|
257 |
+
frame.on( 'select', function() {
|
258 |
+
// Grab the selected attachment.
|
259 |
+
//var attachment = frame.state().get('selection').first();
|
260 |
+
var selection = frame.state().get('selection');
|
261 |
+
|
262 |
+
selection.map(function(attachment) {
|
263 |
+
// Attach this image to the affiliate link
|
264 |
+
attachment = attachment.toJSON();
|
265 |
+
|
266 |
+
var post_id = jQuery('input[name=post_ID]').val();
|
267 |
+
|
268 |
+
jQuery.post(
|
269 |
+
thirstyAjaxLink,
|
270 |
+
{
|
271 |
+
action: 'thirstyAttachImageToLink',
|
272 |
+
imgId: attachment.id,
|
273 |
+
imgName: attachment.name,
|
274 |
+
imgMime: attachment.mime,
|
275 |
+
postId: post_id
|
276 |
+
},
|
277 |
+
function(result) {
|
278 |
+
tb_remove();
|
279 |
+
jQuery('#publish').trigger('click');
|
280 |
+
}
|
281 |
+
);
|
282 |
+
});
|
283 |
+
|
284 |
+
});
|
285 |
+
|
286 |
+
frame.open();
|
287 |
+
}
|
288 |
+
|
289 |
+
function thirstyAddImagesClicked() {
|
290 |
+
// This is for the legacy thickbox uploader for installs pre-WP3.5
|
291 |
+
jQuery('.thirstySaveMe').fadeIn(200);
|
292 |
+
var post_id = jQuery('input[name=post_ID]').val();
|
293 |
+
|
294 |
+
window.send_to_editor = function(html) {
|
295 |
+
if (thirstyJSEnable == true) {
|
296 |
+
if (html.match(/^<img/)) {
|
297 |
+
// was uploaded from url, need to upload this file to our install
|
298 |
+
var imgUrl = jQuery(html).attr('src');
|
299 |
+
var post_id = jQuery('input[name=post_ID]').val();
|
300 |
+
|
301 |
+
jQuery.post(
|
302 |
+
thirstyAjaxLink,
|
303 |
+
{
|
304 |
+
action: 'thirstyUploadImageFromUrl',
|
305 |
+
imgUrl: imgUrl,
|
306 |
+
postId: post_id
|
307 |
+
},
|
308 |
+
function(result) {
|
309 |
+
alert(result);
|
310 |
+
tb_remove();
|
311 |
+
jQuery('#publish').trigger('click');
|
312 |
+
}
|
313 |
+
);
|
314 |
+
} else {
|
315 |
+
tb_remove();
|
316 |
+
jQuery('#publish').trigger('click');
|
317 |
+
}
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
tb_show(
|
322 |
+
'Select/Upload Images To Affiliate Link',
|
323 |
+
'media-upload.php?post_id=' + post_id + 'type=image&tab=library&TB_iframe=true'
|
324 |
+
);
|
325 |
+
|
326 |
+
return false;
|
327 |
+
}
|
328 |
+
|
329 |
+
function thirstyEditSlug() {
|
330 |
+
jQuery('#thirsty_cloakedurl').hide();
|
331 |
+
jQuery('#thirstyEditSlug').hide();
|
332 |
+
jQuery('#thirstyVisitLink').hide();
|
333 |
+
jQuery('#thirsty_linkslug').fadeIn(200);
|
334 |
+
jQuery('#thirstySaveSlug').fadeIn(200);
|
335 |
+
|
336 |
+
// Unbind everything
|
337 |
+
jQuery('#thirstyEditSlug').unbind()
|
338 |
+
jQuery('#thirstySaveSlug').unbind();
|
339 |
+
|
340 |
+
// Rebind save button
|
341 |
+
jQuery('#thirstySaveSlug').click(thirstyHideEditSlug);
|
342 |
+
jQuery('#thirsty_linkslug').keypress(function(e){
|
343 |
+
if (e.which == 13){
|
344 |
+
jQuery('#thirstySaveSlug').trigger('click');
|
345 |
+
return false;
|
346 |
+
}
|
347 |
+
});
|
348 |
+
}
|
349 |
+
|
350 |
+
function thirstyHideEditSlug() {
|
351 |
+
|
352 |
+
jQuery('#thirsty_linkslug').hide();
|
353 |
+
jQuery('#thirstySaveSlug').hide();
|
354 |
+
jQuery('#thirsty_cloakedurl').fadeIn(200);
|
355 |
+
jQuery('#thirstyEditSlug').fadeIn(200);
|
356 |
+
jQuery('#thirstyVisitLink').fadeIn(200);
|
357 |
+
|
358 |
+
var oldLink = jQuery('#thirsty_cloakedurl').val();
|
359 |
+
var linkBase = oldLink.replace(/[^\/]+\/?$/g,'');
|
360 |
+
var newLink = jQuery('#thirsty_linkslug').val();
|
361 |
+
newLink = (newLink == '' ? oldLink.match(/[^\/]+$/) : newLink);
|
362 |
+
jQuery('#thirsty_linkslug').val(newLink)
|
363 |
+
jQuery('#thirsty_cloakedurl').val(linkBase + newLink);
|
364 |
+
|
365 |
+
// Unbind everything
|
366 |
+
jQuery('#thirstyEditSlug').unbind();
|
367 |
+
jQuery('#thirstySaveSlug').unbind();
|
368 |
+
|
369 |
+
jQuery('#thirstyEditSlug').click(thirstyEditSlug);
|
370 |
+
}
|
371 |
+
|
372 |
+
function wildcardShiftInputKeys() {
|
373 |
+
|
374 |
+
var wildcardTable = jQuery('#ta_wildcard_form');
|
375 |
+
var i = 0;
|
376 |
+
|
377 |
+
wildcardTable.find('.wildcard_row').each(function() {
|
378 |
+
|
379 |
+
var row = jQuery(this),
|
380 |
+
id = 'wildcard_row_' + i,
|
381 |
+
variableName = 'thirsty[wildcards]['+ i +'][variable]',
|
382 |
+
valueName = 'thirsty[wildcards]['+ i +'][value]';
|
383 |
+
|
384 |
+
row.find('input.wildcard-variable').prop('name', variableName );
|
385 |
+
row.find('input.wildcard-value').prop('name', valueName );
|
386 |
+
row.prop( 'id', id );
|
387 |
+
|
388 |
+
i++;
|
389 |
+
});
|
390 |
+
}
|
languages/thirstyaffiliates-de_DE.mo
ADDED
Binary file
|
languages/thirstyaffiliates-de_DE.po
ADDED
@@ -0,0 +1,587 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"POT-Creation-Date: 2015-07-08 11:12+0800\n"
|
5 |
+
"PO-Revision-Date: 2015-07-19 04:09+0200\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Rymera Web Co <josh@rymera.com.au>\n"
|
8 |
+
"Language: de_DE\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.2\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: ThirstyAddonPage.php:10
|
20 |
+
msgid "Add-ons"
|
21 |
+
msgstr "Add-Ons"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
24 |
+
msgid "You do not have suffifient permissions to access this page."
|
25 |
+
msgstr ""
|
26 |
+
"Sie haben keine ausreichende Berechtigung, um auf diese Seite zuzugreifen."
|
27 |
+
|
28 |
+
#: ThirstyAddonPage.php:28
|
29 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
30 |
+
msgstr "Geben Sie ThirstyAffiliates den Extra-Boost mit diesen Add-Ons."
|
31 |
+
|
32 |
+
#: ThirstyAddonPage.php:46
|
33 |
+
msgid "Visit Add-on Page →"
|
34 |
+
msgstr "Besuchen Sie die Add-On Seite →"
|
35 |
+
|
36 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
37 |
+
msgid "Settings"
|
38 |
+
msgstr "Einstellungen"
|
39 |
+
|
40 |
+
#: ThirstyAdminPage.php:77
|
41 |
+
msgid "Settings updated."
|
42 |
+
msgstr "Einstellungen aktualisiert."
|
43 |
+
|
44 |
+
#: ThirstyAdminPage.php:78
|
45 |
+
msgid "Links rebuilt."
|
46 |
+
msgstr "Links wurden aktualisiert."
|
47 |
+
|
48 |
+
#: ThirstyAdminPage.php:84
|
49 |
+
msgid "General Settings"
|
50 |
+
msgstr "Grundeinstellungen"
|
51 |
+
|
52 |
+
#: ThirstyAdminPage.php:88
|
53 |
+
msgid "Link Prefix:"
|
54 |
+
msgstr "Link Präfix:"
|
55 |
+
|
56 |
+
#: ThirstyAdminPage.php:92
|
57 |
+
msgid "custom"
|
58 |
+
msgstr "benutzerdefiniert"
|
59 |
+
|
60 |
+
#: ThirstyAdminPage.php:92
|
61 |
+
msgid " selected"
|
62 |
+
msgstr "ausgewählt"
|
63 |
+
|
64 |
+
#: ThirstyAdminPage.php:92
|
65 |
+
msgid "Custom"
|
66 |
+
msgstr "Benutzerdefiniert"
|
67 |
+
|
68 |
+
#: ThirstyAdminPage.php:108
|
69 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
70 |
+
msgstr "Das Präfix, das vor dem Slug der getarnten Links steht. <br /> z.B. "
|
71 |
+
|
72 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
73 |
+
msgid "Warning:"
|
74 |
+
msgstr "Warnung:"
|
75 |
+
|
76 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
77 |
+
msgid ""
|
78 |
+
"Changing this setting after you've used links in a post could break those "
|
79 |
+
"links. Be careful!"
|
80 |
+
msgstr ""
|
81 |
+
"Änderungen an diesen Einstellungen nach Veröffentlichung der Beiträge können "
|
82 |
+
"dazu führen, dass die genutzten Links in den Beiträgen nicht mehr "
|
83 |
+
"funktionieren. Vorsicht!"
|
84 |
+
|
85 |
+
#: ThirstyAdminPage.php:116
|
86 |
+
msgid "Show Link Category in URL?"
|
87 |
+
msgstr "Link-Kategorie in der URL anzeigen?"
|
88 |
+
|
89 |
+
#: ThirstyAdminPage.php:122
|
90 |
+
msgid "Show the selected category in the url. eg. "
|
91 |
+
msgstr "Ausgewählte Kategorie in der URL anzeigen. Z.B. "
|
92 |
+
|
93 |
+
#: ThirstyAdminPage.php:130
|
94 |
+
msgid "Disable \"uncategorized\" category on save?"
|
95 |
+
msgstr "Deaktivieren der \"Nicht zugeordnet\"-Kategorie beim Speichern?"
|
96 |
+
|
97 |
+
#: ThirstyAdminPage.php:136
|
98 |
+
msgid ""
|
99 |
+
"If the \"Show the selected category in the url\" option above is selected, "
|
100 |
+
"by default ThirstyAffiliates will add an \"uncategorized\" category to apply "
|
101 |
+
"to non-categorised links during save. If you disable this, it allows you to "
|
102 |
+
"have some links with categories in the URL and some without."
|
103 |
+
msgstr ""
|
104 |
+
"Wenn Sie die Option \"Ausgewählte Kategorie Kategorie in der URL anzeigen\" "
|
105 |
+
"ausgewählt haben, weist ThirstyAffiliates Links, die nicht kategorisiert "
|
106 |
+
"wurden, standardmäßig der \"Nicht zugeordnet\"-Kategorie zu. Wenn Sie dies "
|
107 |
+
"deaktivieren, können Sie Links mit und ohne Kategorie nutzen."
|
108 |
+
|
109 |
+
#: ThirstyAdminPage.php:142
|
110 |
+
msgid "Link Redirect Type:"
|
111 |
+
msgstr "Link Redirect Typ:"
|
112 |
+
|
113 |
+
#: ThirstyAdminPage.php:159
|
114 |
+
msgid ""
|
115 |
+
"This is the type of redirect ThirstyAffiliates will use to redirect the user "
|
116 |
+
"to your affiliate link."
|
117 |
+
msgstr ""
|
118 |
+
"Dies ist der Typ von Umleitung, den ThirstyAffiliates nutzt, um User zu "
|
119 |
+
"ihrem Affiliate-Link zu leiten."
|
120 |
+
|
121 |
+
#: ThirstyAdminPage.php:165
|
122 |
+
msgid "Use no follow on links?"
|
123 |
+
msgstr "Nofollow bei Links nutzen?"
|
124 |
+
|
125 |
+
#: ThirstyAdminPage.php:171
|
126 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
127 |
+
msgstr ""
|
128 |
+
"Fügen Sie Links das nofollow-Attribut hinzu, damit Suchmaschinen sie nicht "
|
129 |
+
"indexieren."
|
130 |
+
|
131 |
+
#: ThirstyAdminPage.php:177
|
132 |
+
msgid "Open links in new window?"
|
133 |
+
msgstr "Link in neuem Fenster öffnen?"
|
134 |
+
|
135 |
+
#: ThirstyAdminPage.php:183
|
136 |
+
msgid "Force the user to open links in a new window or tab"
|
137 |
+
msgstr "Veranlasst den User, den Link in einem neuen Fenster zu öffnen."
|
138 |
+
|
139 |
+
#: ThirstyAdminPage.php:189
|
140 |
+
msgid "Revert to legacy image uploader?"
|
141 |
+
msgstr "Auf den \"Legacy-Image-Uploader\" zurückgreifen?"
|
142 |
+
|
143 |
+
#: ThirstyAdminPage.php:195
|
144 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
145 |
+
msgstr "Deaktivieren Sie den neuen Media-Uploader, um den alten zu nutzen."
|
146 |
+
|
147 |
+
#: ThirstyAdminPage.php:201
|
148 |
+
msgid "Disable title attribute output on link insertion?"
|
149 |
+
msgstr "Ausgabe des Title-Attributs beim Einfügen in den Link deaktivieren?"
|
150 |
+
|
151 |
+
#: ThirstyAdminPage.php:207
|
152 |
+
msgid ""
|
153 |
+
"Links are automatically output with a title html attribute (by default this "
|
154 |
+
"shows the text\n"
|
155 |
+
"\t\t\tthat you have linked), this option lets you disable the output of the "
|
156 |
+
"title attribute on your links."
|
157 |
+
msgstr ""
|
158 |
+
"Links werden automatisch mit einem Title-HTML-Attribut (standardmäßig der "
|
159 |
+
"Text, \n"
|
160 |
+
"\t\t\tden Sie verlinkt haben) versehen. Mit dieser Option können Sie die "
|
161 |
+
"Ausgabe des Title-Attributs bei Ihren Links deaktivieren."
|
162 |
+
|
163 |
+
#: ThirstyAdminPage.php:214
|
164 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
165 |
+
msgstr "Automatische ThirtyAffiliate CSS-Klassen deaktivieren?"
|
166 |
+
|
167 |
+
#: ThirstyAdminPage.php:220
|
168 |
+
msgid ""
|
169 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" "
|
170 |
+
"is added\n"
|
171 |
+
"\t\t\tto the link and a CSS class called \"thirstylinkimg\" is added to "
|
172 |
+
"images (when inserting image affiliate links),\n"
|
173 |
+
"\t\t\tthis option disables the addition of both of these CSS classes."
|
174 |
+
msgstr ""
|
175 |
+
"Um beim Styling Ihrer Affiliate-Links zu helfen, wird jedem Link die CSS "
|
176 |
+
"Klasse \"thirstylink\" zugeordnet,\n"
|
177 |
+
"\t\t\tBilder erhalten die CSS Klasse \"thirstylinkimg\" (soweit Bild-"
|
178 |
+
"Affiliate-Links verwendet wurden). \n"
|
179 |
+
"\t\t\tMit dieser Option können Sie das Hinzufügen beider Klassen "
|
180 |
+
"deaktivieren."
|
181 |
+
|
182 |
+
#: ThirstyAdminPage.php:228
|
183 |
+
msgid "Disable slug shortening?"
|
184 |
+
msgstr "Slug-Kürzung deaktivieren?"
|
185 |
+
|
186 |
+
#: ThirstyAdminPage.php:234
|
187 |
+
msgid ""
|
188 |
+
"By default, ThirstyAffiliates removes superfluous words from your cloaked "
|
189 |
+
"link URLs, this option turns that feature off."
|
190 |
+
msgstr ""
|
191 |
+
"ThirstyAffiliates entfernt überflüssige Wörter standardmäßig aus getarnten "
|
192 |
+
"URLs. Mit dieser Option wird die Funktion ausgeschaltet."
|
193 |
+
|
194 |
+
#: ThirstyAdminPage.php:240
|
195 |
+
msgid "Disable buttons on the Visual editor?"
|
196 |
+
msgstr "Buttons beim Visual Editor deaktivieren?"
|
197 |
+
|
198 |
+
#: ThirstyAdminPage.php:246
|
199 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
200 |
+
msgstr "Blenden Sie die ThirstyAffiliates-Buttons beim Visual-Editor aus."
|
201 |
+
|
202 |
+
#: ThirstyAdminPage.php:252
|
203 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
204 |
+
msgstr "Buttons beim Text/Quicktags-Editor deaktivieren?"
|
205 |
+
|
206 |
+
#: ThirstyAdminPage.php:258
|
207 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
208 |
+
msgstr "Blenden Sie die ThirstyAffiliates-Buttons beim Text-Editor aus."
|
209 |
+
|
210 |
+
#: ThirstyAdminPage.php:264
|
211 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
212 |
+
msgstr ""
|
213 |
+
"Zusätzliche rel-Attribut-Tags hinzufügen, wenn der Link eingefügt wird: "
|
214 |
+
|
215 |
+
#: ThirstyAdminPage.php:270
|
216 |
+
msgid ""
|
217 |
+
"Allows you to add extra tags into the rel= attribute when links are inserted."
|
218 |
+
msgstr ""
|
219 |
+
"Erlaubt Ihnen, zusätzliche Tags zum rel-Attribut hinzuzufügen, wenn Sie den "
|
220 |
+
"Link einfügen."
|
221 |
+
|
222 |
+
#: ThirstyAdminPage.php:284
|
223 |
+
msgid "Save All Changes"
|
224 |
+
msgstr "Alle Änderungen speichern."
|
225 |
+
|
226 |
+
#: ThirstyAdminPage.php:285
|
227 |
+
msgid "Save & Force Link Rebuild"
|
228 |
+
msgstr "Speichern und Link-Rebuild erzwingen."
|
229 |
+
|
230 |
+
#: ThirstyAdminPage.php:292
|
231 |
+
msgid "Plugin Information"
|
232 |
+
msgstr "Plugin Information"
|
233 |
+
|
234 |
+
#: ThirstyAdminPage.php:305
|
235 |
+
msgid "Visit Our Website"
|
236 |
+
msgstr "Besuchen Sie unsere Website."
|
237 |
+
|
238 |
+
#: ThirstyAdminPage.php:306
|
239 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
240 |
+
msgstr "ThirstyAffiliates Add-Ons anschauen."
|
241 |
+
|
242 |
+
#: ThirstyAdminPage.php:307
|
243 |
+
msgid "Join Our Affiliate Program"
|
244 |
+
msgstr "Werden Sie Teil unseres Affiliate-Programmes."
|
245 |
+
|
246 |
+
#: ThirstyAdminPage.php:307
|
247 |
+
#, php-format
|
248 |
+
msgid "(up to 50% commissions)"
|
249 |
+
msgstr "(Bis zu 50% Provision)"
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:308
|
252 |
+
msgid "Like us on Facebook"
|
253 |
+
msgstr "Liken Sie uns auf Facebook:"
|
254 |
+
|
255 |
+
#: ThirstyAdminPage.php:309
|
256 |
+
msgid "Follow us on Twitter"
|
257 |
+
msgstr "Folge uns auf Twitter"
|
258 |
+
|
259 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
260 |
+
msgid "DEBUG: "
|
261 |
+
msgstr "DEBUG:"
|
262 |
+
|
263 |
+
#: ThirstyAdminPage.php:382
|
264 |
+
msgid ""
|
265 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
266 |
+
"\t\t\tyour"
|
267 |
+
msgstr ""
|
268 |
+
"ThirstyAffiliates erfordert \"Pretty Permalinks\" (Permalinks=Beitragsname), "
|
269 |
+
"ändern Sie bitte \n"
|
270 |
+
"\t\t\tIhre"
|
271 |
+
|
272 |
+
#: ThirstyAdminPage.php:383
|
273 |
+
msgid "Permalink settings"
|
274 |
+
msgstr "Permalink-Einstellungen"
|
275 |
+
|
276 |
+
#: ThirstyAdminPage.php:383
|
277 |
+
msgid "to something other than default."
|
278 |
+
msgstr "auf etwas anderes als Standard."
|
279 |
+
|
280 |
+
#: ThirstyAdminPage.php:383
|
281 |
+
msgid "Dismiss"
|
282 |
+
msgstr "Verwerfen"
|
283 |
+
|
284 |
+
#: ThirstyAdminPage.php:414
|
285 |
+
msgid "Export/Import Global Settings"
|
286 |
+
msgstr "Export / Import der globalen Einstellungen"
|
287 |
+
|
288 |
+
#: ThirstyAdminPage.php:417
|
289 |
+
msgid "Exporting Settings"
|
290 |
+
msgstr "Einstellungen exportieren"
|
291 |
+
|
292 |
+
#: ThirstyAdminPage.php:420
|
293 |
+
msgid "Click export settings button"
|
294 |
+
msgstr "Klicken Sie den Button \"Einstellung exportieren\"."
|
295 |
+
|
296 |
+
#: ThirstyAdminPage.php:421
|
297 |
+
msgid "Copy the settings text code"
|
298 |
+
msgstr "Kopieren Sie den Code-Text für die Einstellungen."
|
299 |
+
|
300 |
+
#: ThirstyAdminPage.php:422
|
301 |
+
msgid "Paste in the settings code to the destination site"
|
302 |
+
msgstr ""
|
303 |
+
"Fügen Sie den Code-Text für die Einstellungen in die gewünschte Seite ein."
|
304 |
+
|
305 |
+
#: ThirstyAdminPage.php:426
|
306 |
+
msgid "Importing Settings"
|
307 |
+
msgstr "Einstellungen importieren"
|
308 |
+
|
309 |
+
#: ThirstyAdminPage.php:429
|
310 |
+
msgid "Click import settings button"
|
311 |
+
msgstr "Klicken Sie den Button \"Einstellungen importieren\"."
|
312 |
+
|
313 |
+
#: ThirstyAdminPage.php:430
|
314 |
+
msgid "Paste the settings text code ( From other site )"
|
315 |
+
msgstr "Fügen Sie den Code-Text (einer anderen Seite) hier ein."
|
316 |
+
|
317 |
+
#: ThirstyAdminPage.php:431
|
318 |
+
msgid "Click import global settings button"
|
319 |
+
msgstr "Klicken Sie den Button \"Globale Einstellungen importieren\"."
|
320 |
+
|
321 |
+
#: ThirstyAdminPage.php:436
|
322 |
+
msgid "Export Settings"
|
323 |
+
msgstr "Einstellungen exportieren"
|
324 |
+
|
325 |
+
#: ThirstyAdminPage.php:437
|
326 |
+
msgid "Import Settings"
|
327 |
+
msgstr "Einstellungen importieren"
|
328 |
+
|
329 |
+
#: ThirstyAdminPage.php:442
|
330 |
+
msgid "Import Global Settings"
|
331 |
+
msgstr "Globale Einstellungen importieren"
|
332 |
+
|
333 |
+
#: ThirstyAdminPage.php:504
|
334 |
+
msgid "Failed to decode settings string"
|
335 |
+
msgstr "Fehler beim Decodieren des Einstellungs-Strings."
|
336 |
+
|
337 |
+
#: ThirstyAdminPage.php:511
|
338 |
+
msgid "Failed to unserialize settings string"
|
339 |
+
msgstr "Fehler beim Deserialisieren des Einstellungs-Strings."
|
340 |
+
|
341 |
+
#: ThirstyShortcode.php:86
|
342 |
+
msgid ""
|
343 |
+
"SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please "
|
344 |
+
"check your short code!"
|
345 |
+
msgstr ""
|
346 |
+
"SHORTCODE FEHLER: ThirstyAffiliates konnte keine zulässige Link-ID erkennen. "
|
347 |
+
"Bitte überprüfen Sie den Shortcode!"
|
348 |
+
|
349 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235
|
350 |
+
#: thirstyaffiliates.php:1892
|
351 |
+
msgid "Link Categories"
|
352 |
+
msgstr "Link-Kategorien"
|
353 |
+
|
354 |
+
#: thirstyaffiliates.php:53
|
355 |
+
msgid "Link Category"
|
356 |
+
msgstr "Link-Kategorie"
|
357 |
+
|
358 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
359 |
+
msgid "Affiliate Links"
|
360 |
+
msgstr "Affiliate-Links"
|
361 |
+
|
362 |
+
#: thirstyaffiliates.php:69
|
363 |
+
msgid "Affiliate Link"
|
364 |
+
msgstr "Affiliate-Link"
|
365 |
+
|
366 |
+
#: thirstyaffiliates.php:70
|
367 |
+
msgid "Add New Affiliate Link"
|
368 |
+
msgstr "Neuen Affiliate-Link hinzufügen"
|
369 |
+
|
370 |
+
#: thirstyaffiliates.php:71
|
371 |
+
msgid "Edit Affiliate Link"
|
372 |
+
msgstr "Affiliate-Link bearbeiten"
|
373 |
+
|
374 |
+
#: thirstyaffiliates.php:72
|
375 |
+
msgid "View Affiliate Link"
|
376 |
+
msgstr "Affiliate-Link anzeigen"
|
377 |
+
|
378 |
+
#: thirstyaffiliates.php:73
|
379 |
+
msgid "Search Affiliate Links"
|
380 |
+
msgstr "Affiliate-Links durchsuchen"
|
381 |
+
|
382 |
+
#: thirstyaffiliates.php:74
|
383 |
+
msgid "No Affiliate Links found!"
|
384 |
+
msgstr "Keine Affiliate-Links gefunden!"
|
385 |
+
|
386 |
+
#: thirstyaffiliates.php:75
|
387 |
+
msgid "No Affiliate Links found in trash"
|
388 |
+
msgstr "Keine Affiliate-Links im Papierkorb!"
|
389 |
+
|
390 |
+
#: thirstyaffiliates.php:77
|
391 |
+
msgid "All Affiliate Links"
|
392 |
+
msgstr "Alle Affliate-Links"
|
393 |
+
|
394 |
+
#: thirstyaffiliates.php:79
|
395 |
+
msgid "ThirstyAffiliates affiliate links"
|
396 |
+
msgstr "ThirstyAffiliates Affiliate-Links"
|
397 |
+
|
398 |
+
#: thirstyaffiliates.php:504
|
399 |
+
msgid "Visit Add-on Page"
|
400 |
+
msgstr "Add-On-Seite anzeigen"
|
401 |
+
|
402 |
+
#: thirstyaffiliates.php:508
|
403 |
+
msgid "View all available add-ons →"
|
404 |
+
msgstr "Alle verfügbaren Add-Ons zeigen"
|
405 |
+
|
406 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
407 |
+
msgid "Override the default redirection type for this link:"
|
408 |
+
msgstr "Überschreiben Sie den Redirect-Standard für diesen Link:"
|
409 |
+
|
410 |
+
#: thirstyaffiliates.php:568
|
411 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
412 |
+
msgstr ""
|
413 |
+
"HINWEIS: Bitte speichern Sie den Link, nachdem Sie Bilder entfernt oder "
|
414 |
+
"hinzugefügt haben."
|
415 |
+
|
416 |
+
#: thirstyaffiliates.php:569
|
417 |
+
msgid "publish"
|
418 |
+
msgstr "veröffentlichen"
|
419 |
+
|
420 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
421 |
+
msgid "Save"
|
422 |
+
msgstr "Speichern"
|
423 |
+
|
424 |
+
#: thirstyaffiliates.php:571
|
425 |
+
msgid "Save Link"
|
426 |
+
msgstr "Link speichern"
|
427 |
+
|
428 |
+
#: thirstyaffiliates.php:575
|
429 |
+
msgid "Delete Permanently"
|
430 |
+
msgstr "Unwiderruflich löschen"
|
431 |
+
|
432 |
+
#: thirstyaffiliates.php:577
|
433 |
+
msgid "Move to Trash"
|
434 |
+
msgstr "In den Papierkorb verschieben"
|
435 |
+
|
436 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
437 |
+
msgid "Link Name:"
|
438 |
+
msgstr "Link Name:"
|
439 |
+
|
440 |
+
#: thirstyaffiliates.php:595
|
441 |
+
msgid "Link ID:"
|
442 |
+
msgstr "Link ID:"
|
443 |
+
|
444 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
445 |
+
msgid "Destination URL:"
|
446 |
+
msgstr "Ziel-URL:"
|
447 |
+
|
448 |
+
#: thirstyaffiliates.php:632
|
449 |
+
msgid "Cloaked URL:"
|
450 |
+
msgstr "Getarnte URL:"
|
451 |
+
|
452 |
+
#: thirstyaffiliates.php:633
|
453 |
+
msgid "Edit Slug"
|
454 |
+
msgstr "Slug bearbeiten"
|
455 |
+
|
456 |
+
#: thirstyaffiliates.php:633
|
457 |
+
msgid "Visit Link"
|
458 |
+
msgstr "Link aufrufen"
|
459 |
+
|
460 |
+
#: thirstyaffiliates.php:638
|
461 |
+
msgid "No follow this link?:"
|
462 |
+
msgstr "Nofollow bei diesem Link?"
|
463 |
+
|
464 |
+
#: thirstyaffiliates.php:640
|
465 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
466 |
+
msgstr ""
|
467 |
+
"Fügen Sie den rel=\"nofollow\"-Tag hinzu, damit Suchmaschinen den Link-Juice "
|
468 |
+
"nicht weitergeben."
|
469 |
+
|
470 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
471 |
+
msgid "Open this link in new window?"
|
472 |
+
msgstr "Link in neuem Fenster öffnen?"
|
473 |
+
|
474 |
+
#: thirstyaffiliates.php:647
|
475 |
+
msgid "Opens links in a new window when clicked on"
|
476 |
+
msgstr "Öffnet den Link nach dem Klick in einem neuen Fenster."
|
477 |
+
|
478 |
+
#: thirstyaffiliates.php:665
|
479 |
+
msgid "Add Image To Affiliate Link"
|
480 |
+
msgstr "Bild zum Affiliate-Link hinzufügen"
|
481 |
+
|
482 |
+
#: thirstyaffiliates.php:665
|
483 |
+
msgid "Add To Affiliate Link"
|
484 |
+
msgstr "Zum Affiliate-Link hinzufügen"
|
485 |
+
|
486 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
487 |
+
msgid "Upload/Insert"
|
488 |
+
msgstr "Hochladen/Einfügen"
|
489 |
+
|
490 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
491 |
+
msgid "Upload/Insert images"
|
492 |
+
msgstr "Bilder hochladen/einfügen"
|
493 |
+
|
494 |
+
#: thirstyaffiliates.php:701
|
495 |
+
msgid "Remove This Image"
|
496 |
+
msgstr "Dieses Bild entfernen"
|
497 |
+
|
498 |
+
#: thirstyaffiliates.php:1026
|
499 |
+
msgid "Open the ThirstyAffiliates link picker"
|
500 |
+
msgstr "ThirstyAffiliates Link-Picker öffnen"
|
501 |
+
|
502 |
+
#: thirstyaffiliates.php:1030
|
503 |
+
msgid "Open quick add affiliate link dialog"
|
504 |
+
msgstr "Affiliate-Link Quick-Adder öffnen"
|
505 |
+
|
506 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
507 |
+
msgid "Insert Image Link"
|
508 |
+
msgstr "Bildlink einfügen"
|
509 |
+
|
510 |
+
#: thirstyaffiliates.php:1261
|
511 |
+
msgid "Insert Plain Link"
|
512 |
+
msgstr "Link einfügen"
|
513 |
+
|
514 |
+
#: thirstyaffiliates.php:1262
|
515 |
+
msgid "Insert Shortcode"
|
516 |
+
msgstr "Shortcode einfügen"
|
517 |
+
|
518 |
+
#: thirstyaffiliates.php:1270
|
519 |
+
msgid "Sorry, no affiliate links found."
|
520 |
+
msgstr "Leider keine Affiliate-Links gefunden."
|
521 |
+
|
522 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
523 |
+
msgid "Affiliate Link Picker"
|
524 |
+
msgstr "Affiliate-Link Picker"
|
525 |
+
|
526 |
+
#: thirstyaffiliates.php:1601
|
527 |
+
msgid "Search ..."
|
528 |
+
msgstr "Suche..."
|
529 |
+
|
530 |
+
#: thirstyaffiliates.php:1810
|
531 |
+
msgid "http:// or https:// is required"
|
532 |
+
msgstr "http:// oder https:// ist erforderlich"
|
533 |
+
|
534 |
+
#: thirstyaffiliates.php:1819
|
535 |
+
msgid "No follow this link?"
|
536 |
+
msgstr "Nofollow bei diesem Link?"
|
537 |
+
|
538 |
+
#: thirstyaffiliates.php:1834
|
539 |
+
msgid "Redirect Type"
|
540 |
+
msgstr "Redirect Typ"
|
541 |
+
|
542 |
+
#: thirstyaffiliates.php:1843
|
543 |
+
msgid " (Default)"
|
544 |
+
msgstr "(Standard benutzen)"
|
545 |
+
|
546 |
+
#: thirstyaffiliates.php:1893
|
547 |
+
msgid ""
|
548 |
+
"You must select a link category as you set the general setting to include "
|
549 |
+
"category on the link"
|
550 |
+
msgstr ""
|
551 |
+
"Sie müssen eine Link-Kategorie auswählen, wenn Sie die Grundeinstellungen "
|
552 |
+
"festlegen, damit Sie den Link einer Kategorie zuweisen können."
|
553 |
+
|
554 |
+
#: thirstyaffiliates.php:1894
|
555 |
+
msgid "Select categories..."
|
556 |
+
msgstr "Kategorien auswählen..."
|
557 |
+
|
558 |
+
#: thirstyaffiliates.php:1910
|
559 |
+
msgid "Add Link"
|
560 |
+
msgstr "Link hinzufügen"
|
561 |
+
|
562 |
+
#: thirstyaffiliates.php:1911
|
563 |
+
msgid "Add Link & Insert Into Post"
|
564 |
+
msgstr "Link hinzufügen und in Beitrag einfügen."
|
565 |
+
|
566 |
+
#: thirstyaffiliates.php:1951
|
567 |
+
msgid "You don't have appropriate permission to perform this action"
|
568 |
+
msgstr "Sie haben keine ausreichende Rechte, um diese Aktion auszuführen."
|
569 |
+
|
570 |
+
#: thirstyaffiliates.php:1980
|
571 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
572 |
+
msgstr "Server-Fehler: Einige Felder weisen falsche Werte auf."
|
573 |
+
|
574 |
+
#: thirstyaffiliates.php:2006
|
575 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
576 |
+
msgstr "Server-Fehler: Neuer Beitrag konnte nicht eingefügt werden"
|
577 |
+
|
578 |
+
#: thirstyaffiliates.php:2035
|
579 |
+
msgid ""
|
580 |
+
"Server Error: Failed to update meta data of recently dynamically created post"
|
581 |
+
msgstr ""
|
582 |
+
"Server-Fehler: Fehler beim Aktualisieren der Meta-Daten beim kürzlich "
|
583 |
+
"erstellten Beitrag."
|
584 |
+
|
585 |
+
#: thirstyaffiliates.php:2111
|
586 |
+
msgid "Link ID"
|
587 |
+
msgstr "Link ID"
|
languages/thirstyaffiliates-es_ES.mo
ADDED
Binary file
|
languages/thirstyaffiliates-es_ES.po
ADDED
@@ -0,0 +1,581 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2015-07-15 12:23+0800\n"
|
6 |
+
"PO-Revision-Date: Wed Jul 15 2015 09:39:19 GMT+0200 (Hora de verano romance)\n"
|
7 |
+
"Last-Translator: \n"
|
8 |
+
"Language-Team: Rymera Web Co <josh@rymera.com.au>\n"
|
9 |
+
"Language: es_ES\n"
|
10 |
+
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
+
"X-Loco-Source-Locale: es_ES\n"
|
16 |
+
"X-Generator: Loco - https://localise.biz/\n"
|
17 |
+
"X-Poedit-Basepath: .\n"
|
18 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
19 |
+
"X-Poedit-SearchPath-0: .\n"
|
20 |
+
"X-Loco-Parser: loco_parse_po\n"
|
21 |
+
"X-Loco-Target-Locale: es_ES"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:10
|
24 |
+
msgid "Add-ons"
|
25 |
+
msgstr "Extras"
|
26 |
+
|
27 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
28 |
+
msgid "You do not have suffifient permissions to access this page."
|
29 |
+
msgstr "No tienes suficientes permisos para acceder a esta página."
|
30 |
+
|
31 |
+
#: ThirstyAddonPage.php:28
|
32 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
33 |
+
msgstr ""
|
34 |
+
"Potencia todavía más T\n"
|
35 |
+
"hirstyAffiliates con estos Extras"
|
36 |
+
|
37 |
+
#: ThirstyAddonPage.php:46
|
38 |
+
msgid "Visit Add-on Page →"
|
39 |
+
msgstr ""
|
40 |
+
"Visita la página de Extras \n"
|
41 |
+
"→"
|
42 |
+
|
43 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
44 |
+
msgid "Settings"
|
45 |
+
msgstr "Ajustes"
|
46 |
+
|
47 |
+
#: ThirstyAdminPage.php:77
|
48 |
+
msgid "Settings updated."
|
49 |
+
msgstr "Ajustes actualizados."
|
50 |
+
|
51 |
+
#: ThirstyAdminPage.php:78
|
52 |
+
msgid "Links rebuilt."
|
53 |
+
msgstr "Enlaces actualizados."
|
54 |
+
|
55 |
+
#: ThirstyAdminPage.php:84
|
56 |
+
msgid "General Settings"
|
57 |
+
msgstr "Ajustes Generales"
|
58 |
+
|
59 |
+
#: ThirstyAdminPage.php:88
|
60 |
+
msgid "Link Prefix:"
|
61 |
+
msgstr "Prefijo para enlaces:"
|
62 |
+
|
63 |
+
#: ThirstyAdminPage.php:92
|
64 |
+
msgid "custom"
|
65 |
+
msgstr "personalizado"
|
66 |
+
|
67 |
+
#: ThirstyAdminPage.php:92
|
68 |
+
msgid " selected"
|
69 |
+
msgstr "seleccionado"
|
70 |
+
|
71 |
+
#: ThirstyAdminPage.php:92
|
72 |
+
msgid "Custom"
|
73 |
+
msgstr "Personalizado"
|
74 |
+
|
75 |
+
#: ThirstyAdminPage.php:108
|
76 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
77 |
+
msgstr ""
|
78 |
+
"El prefijo que se insertará antes de tu enlace disfrazado.\n"
|
79 |
+
"<br />p.e. "
|
80 |
+
|
81 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
82 |
+
msgid "Warning:"
|
83 |
+
msgstr "Cuidado:"
|
84 |
+
|
85 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
86 |
+
msgid ""
|
87 |
+
"Changing this setting after you've used links in a post could break those "
|
88 |
+
"links. Be careful!"
|
89 |
+
msgstr ""
|
90 |
+
"Si cambias este ajuste puede romper los enlaces que ya has insertado en un "
|
91 |
+
"artículo ¡Ten cuidado!"
|
92 |
+
|
93 |
+
#: ThirstyAdminPage.php:116
|
94 |
+
msgid "Show Link Category in URL?"
|
95 |
+
msgstr "¿Mostrar la Categoría del enlace en la URL?"
|
96 |
+
|
97 |
+
#: ThirstyAdminPage.php:122
|
98 |
+
msgid "Show the selected category in the url. eg. "
|
99 |
+
msgstr "Muestra la categoría seleccionada en la url. p.e."
|
100 |
+
|
101 |
+
#: ThirstyAdminPage.php:130
|
102 |
+
msgid "Disable \"uncategorized\" category on save?"
|
103 |
+
msgstr ""
|
104 |
+
"¿Deshabilitar la categoría \"\n"
|
105 |
+
"uncategorized\n"
|
106 |
+
"\" al guardar?"
|
107 |
+
|
108 |
+
#: ThirstyAdminPage.php:136
|
109 |
+
msgid ""
|
110 |
+
"If the \"Show the selected category in the url\" option above is selected, by "
|
111 |
+
"default ThirstyAffiliates will add an \"uncategorized\" category to apply to "
|
112 |
+
"non-categorised links during save. If you disable this, it allows you to "
|
113 |
+
"have some links with categories in the URL and some without."
|
114 |
+
msgstr ""
|
115 |
+
"Si has seleccionado la opción \"Mostrar categoría seleccionada en la url\", "
|
116 |
+
"por defecto ThirstyAffiliates añadirá una categoría llamada \"uncategorized\" "
|
117 |
+
"que aplicará cuando no selecciones una categoría. Si deshabilitas esta "
|
118 |
+
"función tendrás algunos enlaces con categorías y otros no."
|
119 |
+
|
120 |
+
#: ThirstyAdminPage.php:142
|
121 |
+
msgid "Link Redirect Type:"
|
122 |
+
msgstr "Tipo de redirección:"
|
123 |
+
|
124 |
+
#: ThirstyAdminPage.php:159
|
125 |
+
msgid ""
|
126 |
+
"This is the type of redirect ThirstyAffiliates will use to redirect the user "
|
127 |
+
"to your affiliate link."
|
128 |
+
msgstr ""
|
129 |
+
"La clase de redirección que ThirstyAffiliates utilizará para llevar al "
|
130 |
+
"usuario a tu enlace de afiliado."
|
131 |
+
|
132 |
+
#: ThirstyAdminPage.php:165
|
133 |
+
msgid "Use no follow on links?"
|
134 |
+
msgstr "¿Usar nofollow?"
|
135 |
+
|
136 |
+
#: ThirstyAdminPage.php:171
|
137 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
138 |
+
msgstr "Añade el atributo nofollow a los enlaces"
|
139 |
+
|
140 |
+
#: ThirstyAdminPage.php:177
|
141 |
+
msgid "Open links in new window?"
|
142 |
+
msgstr "¿Abrir enlaces en una nueva ventana?"
|
143 |
+
|
144 |
+
#: ThirstyAdminPage.php:183
|
145 |
+
msgid "Force the user to open links in a new window or tab"
|
146 |
+
msgstr "Los enlaces se abrirán en una nueva ventana o pestaña del navegador"
|
147 |
+
|
148 |
+
#: ThirstyAdminPage.php:189
|
149 |
+
msgid "Revert to legacy image uploader?"
|
150 |
+
msgstr "¿Utilizar la subida de imágenes tradicional?"
|
151 |
+
|
152 |
+
#: ThirstyAdminPage.php:195
|
153 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
154 |
+
msgstr "Utiliza el gestor de medios antiguo en lugar del nuevo"
|
155 |
+
|
156 |
+
#: ThirstyAdminPage.php:201
|
157 |
+
msgid "Disable title attribute output on link insertion?"
|
158 |
+
msgstr "¿Deshabilitar el atributo título?"
|
159 |
+
|
160 |
+
#: ThirstyAdminPage.php:207
|
161 |
+
msgid ""
|
162 |
+
"Links are automatically output with a title html attribute (by default this "
|
163 |
+
"shows the text\n"
|
164 |
+
" that you have linked), this option lets you disable the output of the "
|
165 |
+
"title attribute on your links."
|
166 |
+
msgstr ""
|
167 |
+
"Los enlaces se muestran automáticamente con el atributo título en el html "
|
168 |
+
"(por defecto el texto con el que enlazas), esta opción te permite "
|
169 |
+
"deshabilitar esta función."
|
170 |
+
|
171 |
+
#: ThirstyAdminPage.php:214
|
172 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
173 |
+
msgstr ""
|
174 |
+
"¿Deshabilitar la clases CSS de \n"
|
175 |
+
"ThirstyAffiliates?"
|
176 |
+
|
177 |
+
#: ThirstyAdminPage.php:220
|
178 |
+
msgid ""
|
179 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" "
|
180 |
+
"is added\n"
|
181 |
+
" to the link and a CSS class called \"thirstylinkimg\" is added to images "
|
182 |
+
"(when inserting image affiliate links),\n"
|
183 |
+
" this option disables the addition of both of these CSS classes."
|
184 |
+
msgstr ""
|
185 |
+
"Para ayudar con el estilo de tus enlaces añadimos una clase CSS llamada \"\n"
|
186 |
+
"thirstylink\" al enlace y una clase CSS llamada \"\n"
|
187 |
+
"thirstylinkimg\" a las imágenes (si insertar imágenes en los enlaces de "
|
188 |
+
"afiliado), esta opción te permite deshabilitar la inserción de estas dos "
|
189 |
+
"clases."
|
190 |
+
|
191 |
+
#: ThirstyAdminPage.php:228
|
192 |
+
msgid "Disable slug shortening?"
|
193 |
+
msgstr "¿Deshabilitar el acortado de dirección?"
|
194 |
+
|
195 |
+
#: ThirstyAdminPage.php:234
|
196 |
+
msgid ""
|
197 |
+
"By default, ThirstyAffiliates removes superfluous words from your cloaked "
|
198 |
+
"link URLs, this option turns that feature off."
|
199 |
+
msgstr ""
|
200 |
+
"Por defecto ThirstyAffiliates elimina las palabras vacías de tus enlaces "
|
201 |
+
"disfrazados, esta opción deshabilita esa función."
|
202 |
+
|
203 |
+
#: ThirstyAdminPage.php:240
|
204 |
+
msgid "Disable buttons on the Visual editor?"
|
205 |
+
msgstr "¿Deshabilitar botones en el editor visual?"
|
206 |
+
|
207 |
+
#: ThirstyAdminPage.php:246
|
208 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
209 |
+
msgstr "Oculta los botones de ThirstyAffiliates en el editor visual"
|
210 |
+
|
211 |
+
#: ThirstyAdminPage.php:252
|
212 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
213 |
+
msgstr "¿Deshabilitar botones en el editor de texto?"
|
214 |
+
|
215 |
+
#: ThirstyAdminPage.php:258
|
216 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
217 |
+
msgstr "Oculta los botones de ThirstyAffiliates en el editor de texto."
|
218 |
+
|
219 |
+
#: ThirstyAdminPage.php:264
|
220 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
221 |
+
msgstr "Añadir estos attributos rel adicionales:"
|
222 |
+
|
223 |
+
#: ThirstyAdminPage.php:270
|
224 |
+
msgid "Allows you to add extra tags into the rel= attribute when links are inserted."
|
225 |
+
msgstr "Te permite añadir tags extra en el atributo rel="
|
226 |
+
|
227 |
+
#: ThirstyAdminPage.php:284
|
228 |
+
msgid "Save All Changes"
|
229 |
+
msgstr "Guardar todos los cambios"
|
230 |
+
|
231 |
+
#: ThirstyAdminPage.php:285
|
232 |
+
msgid "Save & Force Link Rebuild"
|
233 |
+
msgstr "Guardar y forzar la reconstrucción de enlaces"
|
234 |
+
|
235 |
+
#: ThirstyAdminPage.php:292
|
236 |
+
msgid "Plugin Information"
|
237 |
+
msgstr "Información del plugin"
|
238 |
+
|
239 |
+
#: ThirstyAdminPage.php:305
|
240 |
+
msgid "Visit Our Website"
|
241 |
+
msgstr "Visita nuestra web"
|
242 |
+
|
243 |
+
#: ThirstyAdminPage.php:306
|
244 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
245 |
+
msgstr "Visita los Extras de ThirstyAffiliates "
|
246 |
+
|
247 |
+
#: ThirstyAdminPage.php:307
|
248 |
+
msgid "Join Our Affiliate Program"
|
249 |
+
msgstr "Únete a nuestro Programa de Afiliados"
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:307
|
252 |
+
#, php-format
|
253 |
+
msgid "(up to 50% commissions)"
|
254 |
+
msgstr "(hasta un 50% de comisión)"
|
255 |
+
|
256 |
+
#: ThirstyAdminPage.php:308
|
257 |
+
msgid "Like us on Facebook"
|
258 |
+
msgstr "Danos un Like en Facebook"
|
259 |
+
|
260 |
+
#: ThirstyAdminPage.php:309
|
261 |
+
msgid "Follow us on Twitter"
|
262 |
+
msgstr "Síguenos en Twitter"
|
263 |
+
|
264 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
265 |
+
msgid "DEBUG: "
|
266 |
+
msgstr "DEPURAR:"
|
267 |
+
|
268 |
+
#: ThirstyAdminPage.php:382
|
269 |
+
msgid ""
|
270 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
271 |
+
" your"
|
272 |
+
msgstr "ThirstyAffiliates necesita permalinks limpias, por favor cambia tus"
|
273 |
+
|
274 |
+
#: ThirstyAdminPage.php:383
|
275 |
+
msgid "Permalink settings"
|
276 |
+
msgstr "ajustes de Permalinks"
|
277 |
+
|
278 |
+
#: ThirstyAdminPage.php:383
|
279 |
+
msgid "to something other than default."
|
280 |
+
msgstr "a otro que no sea el que viene por defecto"
|
281 |
+
|
282 |
+
#: ThirstyAdminPage.php:383
|
283 |
+
msgid "Dismiss"
|
284 |
+
msgstr "Desestimar"
|
285 |
+
|
286 |
+
#: ThirstyAdminPage.php:414
|
287 |
+
msgid "Export/Import Global Settings"
|
288 |
+
msgstr "Ajustes Globales de Importación/Exportación"
|
289 |
+
|
290 |
+
#: ThirstyAdminPage.php:417
|
291 |
+
msgid "Exporting Settings"
|
292 |
+
msgstr "Ajustes de Exportación"
|
293 |
+
|
294 |
+
#: ThirstyAdminPage.php:420
|
295 |
+
msgid "Click export settings button"
|
296 |
+
msgstr "Pincha en el botón de ajustes de exportación"
|
297 |
+
|
298 |
+
#: ThirstyAdminPage.php:421
|
299 |
+
msgid "Copy the settings text code"
|
300 |
+
msgstr "Copia el código de los ajustes"
|
301 |
+
|
302 |
+
#: ThirstyAdminPage.php:422
|
303 |
+
msgid "Paste in the settings code to the destination site"
|
304 |
+
msgstr "Pega el código de ajustes en el sito de destino"
|
305 |
+
|
306 |
+
#: ThirstyAdminPage.php:426
|
307 |
+
msgid "Importing Settings"
|
308 |
+
msgstr "Ajustes de importación"
|
309 |
+
|
310 |
+
#: ThirstyAdminPage.php:429
|
311 |
+
msgid "Click import settings button"
|
312 |
+
msgstr "Pincha en el botón de ajustes "
|
313 |
+
|
314 |
+
#: ThirstyAdminPage.php:430
|
315 |
+
msgid "Paste the settings text code ( From other site )"
|
316 |
+
msgstr "Pega el texto de los ajustes (copiados del otro sitio)"
|
317 |
+
|
318 |
+
#: ThirstyAdminPage.php:431
|
319 |
+
msgid "Click import global settings button"
|
320 |
+
msgstr "Pincha en el botón importar ajustes globales"
|
321 |
+
|
322 |
+
#: ThirstyAdminPage.php:436
|
323 |
+
msgid "Export Settings"
|
324 |
+
msgstr "Ajustes de exportación"
|
325 |
+
|
326 |
+
#: ThirstyAdminPage.php:437
|
327 |
+
msgid "Import Settings"
|
328 |
+
msgstr "Ajustes de importación"
|
329 |
+
|
330 |
+
#: ThirstyAdminPage.php:442
|
331 |
+
msgid "Import Global Settings"
|
332 |
+
msgstr "Ajustes Globales de importación"
|
333 |
+
|
334 |
+
#: ThirstyAdminPage.php:504
|
335 |
+
msgid "Failed to decode settings string"
|
336 |
+
msgstr "Hubo un error al decodificar los ajustes"
|
337 |
+
|
338 |
+
#: ThirstyAdminPage.php:511
|
339 |
+
msgid "Failed to unserialize settings string"
|
340 |
+
msgstr "Hubo un error al decodificar los ajustes"
|
341 |
+
|
342 |
+
#: ThirstyShortcode.php:86
|
343 |
+
msgid ""
|
344 |
+
"SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please "
|
345 |
+
"check your short code!"
|
346 |
+
msgstr ""
|
347 |
+
"ERROR EN SHORTCODE: ThirstyAffiliates no ha detectado una url válida, por "
|
348 |
+
"favor revisa tu shortcode"
|
349 |
+
|
350 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235
|
351 |
+
#: thirstyaffiliates.php:1892
|
352 |
+
msgid "Link Categories"
|
353 |
+
msgstr "Categorías de enlaces"
|
354 |
+
|
355 |
+
#: thirstyaffiliates.php:53
|
356 |
+
msgid "Link Category"
|
357 |
+
msgstr "Categoría de enlace"
|
358 |
+
|
359 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
360 |
+
msgid "Affiliate Links"
|
361 |
+
msgstr "Enlaces de afiliado"
|
362 |
+
|
363 |
+
#: thirstyaffiliates.php:69
|
364 |
+
msgid "Affiliate Link"
|
365 |
+
msgstr "Enlace de afiliado"
|
366 |
+
|
367 |
+
#: thirstyaffiliates.php:70
|
368 |
+
msgid "Add New Affiliate Link"
|
369 |
+
msgstr "Añadir nuevo enlace de afiliado"
|
370 |
+
|
371 |
+
#: thirstyaffiliates.php:71
|
372 |
+
msgid "Edit Affiliate Link"
|
373 |
+
msgstr "Editar enlace de afiliado"
|
374 |
+
|
375 |
+
#: thirstyaffiliates.php:72
|
376 |
+
msgid "View Affiliate Link"
|
377 |
+
msgstr "Ver enlace de afiliado"
|
378 |
+
|
379 |
+
#: thirstyaffiliates.php:73
|
380 |
+
msgid "Search Affiliate Links"
|
381 |
+
msgstr "Buscar enlace de afiliado"
|
382 |
+
|
383 |
+
#: thirstyaffiliates.php:74
|
384 |
+
msgid "No Affiliate Links found!"
|
385 |
+
msgstr "¡No se encontraron enlaces!"
|
386 |
+
|
387 |
+
#: thirstyaffiliates.php:75
|
388 |
+
msgid "No Affiliate Links found in trash"
|
389 |
+
msgstr "No hay enlaces de afiliado en la papelera"
|
390 |
+
|
391 |
+
#: thirstyaffiliates.php:77
|
392 |
+
msgid "All Affiliate Links"
|
393 |
+
msgstr "Todos los enlaces de afiliado"
|
394 |
+
|
395 |
+
#: thirstyaffiliates.php:79
|
396 |
+
msgid "ThirstyAffiliates affiliate links"
|
397 |
+
msgstr "Enlaces de ThirstyAffiliates "
|
398 |
+
|
399 |
+
#: thirstyaffiliates.php:504
|
400 |
+
msgid "Visit Add-on Page"
|
401 |
+
msgstr "Visita la página de Extras"
|
402 |
+
|
403 |
+
#: thirstyaffiliates.php:508
|
404 |
+
msgid "View all available add-ons →"
|
405 |
+
msgstr "Ver todos los Extras disponibles →"
|
406 |
+
|
407 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
408 |
+
msgid "Override the default redirection type for this link:"
|
409 |
+
msgstr "Ignorar la redirección por defecto para este enlace:"
|
410 |
+
|
411 |
+
#: thirstyaffiliates.php:568
|
412 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
413 |
+
msgstr "NOTA: por favor guarda tu enlace después de añadir o quitar imágenes"
|
414 |
+
|
415 |
+
#: thirstyaffiliates.php:569
|
416 |
+
msgid "publish"
|
417 |
+
msgstr "publicar"
|
418 |
+
|
419 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
420 |
+
msgid "Save"
|
421 |
+
msgstr "Guardar"
|
422 |
+
|
423 |
+
#: thirstyaffiliates.php:571
|
424 |
+
msgid "Save Link"
|
425 |
+
msgstr "Guardar enlace"
|
426 |
+
|
427 |
+
#: thirstyaffiliates.php:575
|
428 |
+
msgid "Delete Permanently"
|
429 |
+
msgstr "Borrar permanentemente"
|
430 |
+
|
431 |
+
#: thirstyaffiliates.php:577
|
432 |
+
msgid "Move to Trash"
|
433 |
+
msgstr "Mover a la papelera"
|
434 |
+
|
435 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
436 |
+
msgid "Link Name:"
|
437 |
+
msgstr "Nombre del enlace:"
|
438 |
+
|
439 |
+
#: thirstyaffiliates.php:595
|
440 |
+
msgid "Link ID:"
|
441 |
+
msgstr "ID del enlace:"
|
442 |
+
|
443 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
444 |
+
msgid "Destination URL:"
|
445 |
+
msgstr "URL de destino:"
|
446 |
+
|
447 |
+
#: thirstyaffiliates.php:632
|
448 |
+
msgid "Cloaked URL:"
|
449 |
+
msgstr "URL disfrazada:"
|
450 |
+
|
451 |
+
#: thirstyaffiliates.php:633
|
452 |
+
msgid "Edit Slug"
|
453 |
+
msgstr "Editar Slug"
|
454 |
+
|
455 |
+
#: thirstyaffiliates.php:633
|
456 |
+
msgid "Visit Link"
|
457 |
+
msgstr "Visitar enlace"
|
458 |
+
|
459 |
+
#: thirstyaffiliates.php:638
|
460 |
+
msgid "No follow this link?:"
|
461 |
+
msgstr "¿Usar nofollow?"
|
462 |
+
|
463 |
+
#: thirstyaffiliates.php:640
|
464 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
465 |
+
msgstr "Añade el tag rel=\"nofollow\" para no pasar PR"
|
466 |
+
|
467 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
468 |
+
msgid "Open this link in new window?"
|
469 |
+
msgstr "¿Abrir en una nueva ventana/pestaña?"
|
470 |
+
|
471 |
+
#: thirstyaffiliates.php:647
|
472 |
+
msgid "Opens links in a new window when clicked on"
|
473 |
+
msgstr "Fuerza que se abran los enlaces en una nueva ventana o pestaña"
|
474 |
+
|
475 |
+
#: thirstyaffiliates.php:665
|
476 |
+
msgid "Add Image To Affiliate Link"
|
477 |
+
msgstr "Añadir imagen"
|
478 |
+
|
479 |
+
#: thirstyaffiliates.php:665
|
480 |
+
msgid "Add To Affiliate Link"
|
481 |
+
msgstr "Añadir al enlace de afiliado"
|
482 |
+
|
483 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
484 |
+
msgid "Upload/Insert"
|
485 |
+
msgstr "Subir/Insertar"
|
486 |
+
|
487 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
488 |
+
msgid "Upload/Insert images"
|
489 |
+
msgstr "Sube/Inserta imágenes"
|
490 |
+
|
491 |
+
#: thirstyaffiliates.php:701
|
492 |
+
msgid "Remove This Image"
|
493 |
+
msgstr "Eliminar esta imagen"
|
494 |
+
|
495 |
+
#: thirstyaffiliates.php:1026
|
496 |
+
msgid "Open the ThirstyAffiliates link picker"
|
497 |
+
msgstr "Abre el selector de enlaces de ThirstyAffiliates "
|
498 |
+
|
499 |
+
#: thirstyaffiliates.php:1030
|
500 |
+
msgid "Open quick add affiliate link dialog"
|
501 |
+
msgstr "Abre el diálogo para insertar enlaces rápidamente"
|
502 |
+
|
503 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
504 |
+
msgid "Insert Image Link"
|
505 |
+
msgstr "Insertar enlace de imagen"
|
506 |
+
|
507 |
+
#: thirstyaffiliates.php:1261
|
508 |
+
msgid "Insert Plain Link"
|
509 |
+
msgstr "Insertar enlace de texto"
|
510 |
+
|
511 |
+
#: thirstyaffiliates.php:1262
|
512 |
+
msgid "Insert Shortcode"
|
513 |
+
msgstr "Insertar Shortcode"
|
514 |
+
|
515 |
+
#: thirstyaffiliates.php:1270
|
516 |
+
msgid "Sorry, no affiliate links found."
|
517 |
+
msgstr "Lo siento, no encontré enlaces de afiliado."
|
518 |
+
|
519 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
520 |
+
msgid "Affiliate Link Picker"
|
521 |
+
msgstr "Selector de enlaces de afiliado"
|
522 |
+
|
523 |
+
#: thirstyaffiliates.php:1601
|
524 |
+
msgid "Search ..."
|
525 |
+
msgstr "Buscar ..."
|
526 |
+
|
527 |
+
#: thirstyaffiliates.php:1810
|
528 |
+
msgid "http:// or https:// is required"
|
529 |
+
msgstr "Se necesita http:// o https://"
|
530 |
+
|
531 |
+
#: thirstyaffiliates.php:1819
|
532 |
+
msgid "No follow this link?"
|
533 |
+
msgstr "¿Utilizar nofollow?"
|
534 |
+
|
535 |
+
#: thirstyaffiliates.php:1834
|
536 |
+
msgid "Redirect Type"
|
537 |
+
msgstr "Tipo de redirección"
|
538 |
+
|
539 |
+
#: thirstyaffiliates.php:1843
|
540 |
+
msgid " (Default)"
|
541 |
+
msgstr " (por defecto)"
|
542 |
+
|
543 |
+
#: thirstyaffiliates.php:1893
|
544 |
+
msgid ""
|
545 |
+
"You must select a link category as you set the general setting to include "
|
546 |
+
"category on the link"
|
547 |
+
msgstr ""
|
548 |
+
"Debes seleccionar una categoría porque en tus ajustes generales has definido "
|
549 |
+
"que los enlaces tengan categorías"
|
550 |
+
|
551 |
+
#: thirstyaffiliates.php:1894
|
552 |
+
msgid "Select categories..."
|
553 |
+
msgstr "Selecciona categorías..."
|
554 |
+
|
555 |
+
#: thirstyaffiliates.php:1910
|
556 |
+
msgid "Add Link"
|
557 |
+
msgstr "Añadir enlace"
|
558 |
+
|
559 |
+
#: thirstyaffiliates.php:1911
|
560 |
+
msgid "Add Link & Insert Into Post"
|
561 |
+
msgstr "Añadir Enlace & insertar en el Post"
|
562 |
+
|
563 |
+
#: thirstyaffiliates.php:1951
|
564 |
+
msgid "You don't have appropriate permission to perform this action"
|
565 |
+
msgstr "No tienes los permisos necesarios para completar esta acción"
|
566 |
+
|
567 |
+
#: thirstyaffiliates.php:1980
|
568 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
569 |
+
msgstr "Error del servidor: algunos campos no tienen los valores correctos"
|
570 |
+
|
571 |
+
#: thirstyaffiliates.php:2006
|
572 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
573 |
+
msgstr "Error del servidor: falló al insertar un nuevo post"
|
574 |
+
|
575 |
+
#: thirstyaffiliates.php:2035
|
576 |
+
msgid "Server Error: Failed to update meta data of recently dynamically created post"
|
577 |
+
msgstr "Error del servidor: fallo al actualizar el meta data del post"
|
578 |
+
|
579 |
+
#: thirstyaffiliates.php:2111
|
580 |
+
msgid "Link ID"
|
581 |
+
msgstr "ID de Enlace"
|
languages/thirstyaffiliates-id_ID.mo
ADDED
Binary file
|
languages/thirstyaffiliates-id_ID.po
ADDED
@@ -0,0 +1,547 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"POT-Creation-Date: 2015-07-08 10:57+0800\n"
|
5 |
+
"PO-Revision-Date: 2015-07-22 13:00+0800\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Rymera Web Co <josh@rymera.com.au>\n"
|
8 |
+
"Language: id_ID\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.2\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: ThirstyAddonPage.php:10
|
20 |
+
msgid "Add-ons"
|
21 |
+
msgstr "Add-on"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
24 |
+
msgid "You do not have suffifient permissions to access this page."
|
25 |
+
msgstr "Anda tidak memiliki cukup izin untuk mengakses halaman ini."
|
26 |
+
|
27 |
+
#: ThirstyAddonPage.php:28
|
28 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
29 |
+
msgstr "Tingkatkan Kemampuan ThirstyAffiliates dengan Add-on Ini"
|
30 |
+
|
31 |
+
#: ThirstyAddonPage.php:46
|
32 |
+
msgid "Visit Add-on Page →"
|
33 |
+
msgstr "Kunjungi Halaman Add-on →"
|
34 |
+
|
35 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
36 |
+
msgid "Settings"
|
37 |
+
msgstr "Pengaturan"
|
38 |
+
|
39 |
+
#: ThirstyAdminPage.php:77
|
40 |
+
msgid "Settings updated."
|
41 |
+
msgstr "Pengaturan diperbarui."
|
42 |
+
|
43 |
+
#: ThirstyAdminPage.php:78
|
44 |
+
msgid "Links rebuilt."
|
45 |
+
msgstr "Link dibuat kembali."
|
46 |
+
|
47 |
+
#: ThirstyAdminPage.php:84
|
48 |
+
msgid "General Settings"
|
49 |
+
msgstr "Pengaturan Umum"
|
50 |
+
|
51 |
+
#: ThirstyAdminPage.php:88
|
52 |
+
msgid "Link Prefix:"
|
53 |
+
msgstr "Prefiks Link:"
|
54 |
+
|
55 |
+
#: ThirstyAdminPage.php:92
|
56 |
+
msgid "custom"
|
57 |
+
msgstr "sesuaikan"
|
58 |
+
|
59 |
+
#: ThirstyAdminPage.php:92
|
60 |
+
msgid " selected"
|
61 |
+
msgstr " pilihan"
|
62 |
+
|
63 |
+
#: ThirstyAdminPage.php:92
|
64 |
+
msgid "Custom"
|
65 |
+
msgstr "Sesuaikan"
|
66 |
+
|
67 |
+
#: ThirstyAdminPage.php:108
|
68 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
69 |
+
msgstr "Prefiks yang dituliskan sebelum slug link Anda yang disembunyikan.<br />misalnya, "
|
70 |
+
|
71 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
72 |
+
msgid "Warning:"
|
73 |
+
msgstr "Peringatan:"
|
74 |
+
|
75 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
76 |
+
msgid "Changing this setting after you've used links in a post could break those links. Be careful!"
|
77 |
+
msgstr ""
|
78 |
+
"ThirstyAdminPage.php:110 ThirstyAdminPage.php:124\n"
|
79 |
+
"Mengubah pengaturan ini setelah Anda menggunakan link pada artikel dapat merusak link tersebut. Hati-hati!"
|
80 |
+
|
81 |
+
#: ThirstyAdminPage.php:116
|
82 |
+
msgid "Show Link Category in URL?"
|
83 |
+
msgstr "Tampilkan Kategori Link di URL?"
|
84 |
+
|
85 |
+
#: ThirstyAdminPage.php:122
|
86 |
+
msgid "Show the selected category in the url. eg. "
|
87 |
+
msgstr "Tampilkan kategori pilihan di url. misalnya, "
|
88 |
+
|
89 |
+
#: ThirstyAdminPage.php:130
|
90 |
+
msgid "Disable \"uncategorized\" category on save?"
|
91 |
+
msgstr "Nonaktifkan kategori \"tanpa kategori\" saat menyimpan?"
|
92 |
+
|
93 |
+
#: ThirstyAdminPage.php:136
|
94 |
+
msgid "If the \"Show the selected category in the url\" option above is selected, by default ThirstyAffiliates will add an \"uncategorized\" category to apply to non-categorised links during save. If you disable this, it allows you to have some links with categories in the URL and some without."
|
95 |
+
msgstr ""
|
96 |
+
"ThirstyAdminPage.php:136\n"
|
97 |
+
"Jika pilihan \"Tampilkan kategori pilihan di url\" di atas dipilih, secara default ThirstyAffiliates akan menambahkan kategori \"tanpa kategori\" yang akan diterapkan pada link tanpa kategori saat menyimpan. Jika Anda menonaktifkan ini, hal ini memampukan Anda untuk memiliki sebagian link dengan kategori di URL dan sebagian tanpa kategori."
|
98 |
+
|
99 |
+
#: ThirstyAdminPage.php:142
|
100 |
+
msgid "Link Redirect Type:"
|
101 |
+
msgstr "Jenis Pengalihan Link:"
|
102 |
+
|
103 |
+
#: ThirstyAdminPage.php:159
|
104 |
+
msgid "This is the type of redirect ThirstyAffiliates will use to redirect the user to your affiliate link."
|
105 |
+
msgstr ""
|
106 |
+
"ThirstyAdminPage.php:159\n"
|
107 |
+
"Ini adalah jenis pengalihan yang akan digunakan ThirstyAffiliates untuk mengalihkan pengguna ke link afiliasi Anda."
|
108 |
+
|
109 |
+
#: ThirstyAdminPage.php:165
|
110 |
+
msgid "Use no follow on links?"
|
111 |
+
msgstr "Gunakan no follow pada link?"
|
112 |
+
|
113 |
+
#: ThirstyAdminPage.php:171
|
114 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
115 |
+
msgstr "Tambahkan atribut nofollow ke link sehingga mesin pencari tidak mengindeksnya"
|
116 |
+
|
117 |
+
#: ThirstyAdminPage.php:177
|
118 |
+
msgid "Open links in new window?"
|
119 |
+
msgstr "Buka link di jendela baru?"
|
120 |
+
|
121 |
+
#: ThirstyAdminPage.php:183
|
122 |
+
msgid "Force the user to open links in a new window or tab"
|
123 |
+
msgstr "Paksa pengguna untuk membuka link di jendela atau tab baru"
|
124 |
+
|
125 |
+
#: ThirstyAdminPage.php:189
|
126 |
+
msgid "Revert to legacy image uploader?"
|
127 |
+
msgstr "Kembali ke peng-upload gambar lama?"
|
128 |
+
|
129 |
+
#: ThirstyAdminPage.php:195
|
130 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
131 |
+
msgstr "Nonaktifkan peng-upload media baru dan gunakan peng-upload lama"
|
132 |
+
|
133 |
+
#: ThirstyAdminPage.php:201
|
134 |
+
msgid "Disable title attribute output on link insertion?"
|
135 |
+
msgstr "Nonaktifkan keluaran atribut judul saat menyisipkan link?"
|
136 |
+
|
137 |
+
#: ThirstyAdminPage.php:207
|
138 |
+
msgid ""
|
139 |
+
"Links are automatically output with a title html attribute (by default this shows the text\n"
|
140 |
+
"\t\t\tthat you have linked), this option lets you disable the output of the title attribute on your links."
|
141 |
+
msgstr ""
|
142 |
+
"ThirstyAdminPage.php:207\n"
|
143 |
+
"Link secara otomatis ditampilkan dengan atribut html judul (secara default, hal ini menampilkan teks yang telah Anda sambungkan). Pilihan ini memampukan Anda untuk menonaktifkan keluaran atribut judul pada link Anda."
|
144 |
+
|
145 |
+
#: ThirstyAdminPage.php:214
|
146 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
147 |
+
msgstr "Nonaktifkan keluaran otomatis kelas CSS ThirstyAffiliates?"
|
148 |
+
|
149 |
+
#: ThirstyAdminPage.php:220
|
150 |
+
msgid ""
|
151 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" is added\n"
|
152 |
+
"\t\t\tto the link and a CSS class called \"thirstylinkimg\" is added to images (when inserting image affiliate links),\n"
|
153 |
+
"\t\t\tthis option disables the addition of both of these CSS classes."
|
154 |
+
msgstr ""
|
155 |
+
"ThirstyAdminPage.php:220\n"
|
156 |
+
"Untuk membantu pemformatan link afiliasi Anda, kelas CSS bernama \"thirstylink\" ditambahkan ke link dan kelas CSS bernama \"thirstylinkimg\" ditambahkan ke gambar (saat menyisipkan link afiliasi gambar), pilihan ini menonaktifkan penambahan kedua kelas CSS ini."
|
157 |
+
|
158 |
+
#: ThirstyAdminPage.php:228
|
159 |
+
msgid "Disable slug shortening?"
|
160 |
+
msgstr "Nonaktifkan penyingkatan slug?"
|
161 |
+
|
162 |
+
#: ThirstyAdminPage.php:234
|
163 |
+
msgid "By default, ThirstyAffiliates removes superfluous words from your cloaked link URLs, this option turns that feature off."
|
164 |
+
msgstr ""
|
165 |
+
"ThirstyAdminPage.php:234\n"
|
166 |
+
"Secara default, ThirstyAffiliates menghapus kata-kata yang berlebihan dari URL link Anda yang disembunyikan. Pilihan ini menonaktifkan fitur tersebut."
|
167 |
+
|
168 |
+
#: ThirstyAdminPage.php:240
|
169 |
+
msgid "Disable buttons on the Visual editor?"
|
170 |
+
msgstr "Nonaktifkan tombol pada editor Visual?"
|
171 |
+
|
172 |
+
#: ThirstyAdminPage.php:246
|
173 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
174 |
+
msgstr "Sembunyikan tombol ThirstyAffiliates pada editor Visual."
|
175 |
+
|
176 |
+
#: ThirstyAdminPage.php:252
|
177 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
178 |
+
msgstr "Nonaktifkan tombol pada editor Teks/Quicktags?"
|
179 |
+
|
180 |
+
#: ThirstyAdminPage.php:258
|
181 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
182 |
+
msgstr "Sembunyikan tombol ThirstyAffiliates pada editor Teks."
|
183 |
+
|
184 |
+
#: ThirstyAdminPage.php:264
|
185 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
186 |
+
msgstr "Tag atribut rel tambahan untuk ditambahkan saat menyisipkan link: "
|
187 |
+
|
188 |
+
#: ThirstyAdminPage.php:270
|
189 |
+
msgid "Allows you to add extra tags into the rel= attribute when links are inserted."
|
190 |
+
msgstr ""
|
191 |
+
"ThirstyAdminPage.php:270\n"
|
192 |
+
"Memampukan Anda untuk menambahkan tag tambahan ke rel= attribute saat link disisipkan."
|
193 |
+
|
194 |
+
#: ThirstyAdminPage.php:284
|
195 |
+
msgid "Save All Changes"
|
196 |
+
msgstr "Simpan Semua Perubahan"
|
197 |
+
|
198 |
+
#: ThirstyAdminPage.php:285
|
199 |
+
msgid "Save & Force Link Rebuild"
|
200 |
+
msgstr "Simpan & Paksa Pembuatan Link Kembali"
|
201 |
+
|
202 |
+
#: ThirstyAdminPage.php:292
|
203 |
+
msgid "Plugin Information"
|
204 |
+
msgstr "Informasi Plugin"
|
205 |
+
|
206 |
+
#: ThirstyAdminPage.php:305
|
207 |
+
msgid "Visit Our Website"
|
208 |
+
msgstr "Kunjungi Situs Web Kami"
|
209 |
+
|
210 |
+
#: ThirstyAdminPage.php:306
|
211 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
212 |
+
msgstr "Telusuri Add-on ThirstyAffiliates"
|
213 |
+
|
214 |
+
#: ThirstyAdminPage.php:307
|
215 |
+
msgid "Join Our Affiliate Program"
|
216 |
+
msgstr "Gabung dengan Program Afiliasi Kami"
|
217 |
+
|
218 |
+
#: ThirstyAdminPage.php:307
|
219 |
+
#, php-format
|
220 |
+
msgid "(up to 50% commissions)"
|
221 |
+
msgstr "(komisi sampai 50%)"
|
222 |
+
|
223 |
+
#: ThirstyAdminPage.php:308
|
224 |
+
msgid "Like us on Facebook"
|
225 |
+
msgstr "Sukai kami di Facebook"
|
226 |
+
|
227 |
+
#: ThirstyAdminPage.php:309
|
228 |
+
msgid "Follow us on Twitter"
|
229 |
+
msgstr "Ikuti kami di Twitter"
|
230 |
+
|
231 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
232 |
+
msgid "DEBUG: "
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: ThirstyAdminPage.php:382
|
236 |
+
msgid ""
|
237 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
238 |
+
"\t\t\tyour"
|
239 |
+
msgstr ""
|
240 |
+
"ThirstyAdminPage.php:382\n"
|
241 |
+
"ThirstyAffiliates memerlukan pretty permalink, silakan ubah"
|
242 |
+
|
243 |
+
#: ThirstyAdminPage.php:383
|
244 |
+
msgid "Permalink settings"
|
245 |
+
msgstr "pengaturan Permalink Anda"
|
246 |
+
|
247 |
+
#: ThirstyAdminPage.php:383
|
248 |
+
msgid "to something other than default."
|
249 |
+
msgstr "ke pengaturan selain default."
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:383
|
252 |
+
msgid "Dismiss"
|
253 |
+
msgstr "Abaikan"
|
254 |
+
|
255 |
+
#: ThirstyAdminPage.php:414
|
256 |
+
msgid "Export/Import Global Settings"
|
257 |
+
msgstr "Pengaturan Global Ekspor/Impor"
|
258 |
+
|
259 |
+
#: ThirstyAdminPage.php:417
|
260 |
+
msgid "Exporting Settings"
|
261 |
+
msgstr "Pengaturan Pengeksporan"
|
262 |
+
|
263 |
+
#: ThirstyAdminPage.php:420
|
264 |
+
msgid "Click export settings button"
|
265 |
+
msgstr "Klik tombol pengaturan ekspor"
|
266 |
+
|
267 |
+
#: ThirstyAdminPage.php:421
|
268 |
+
msgid "Copy the settings text code"
|
269 |
+
msgstr "Salin kode teks pengaturan"
|
270 |
+
|
271 |
+
#: ThirstyAdminPage.php:422
|
272 |
+
msgid "Paste in the settings code to the destination site"
|
273 |
+
msgstr "Tempelkan kode pengaturan ke situs tujuan"
|
274 |
+
|
275 |
+
#: ThirstyAdminPage.php:426
|
276 |
+
msgid "Importing Settings"
|
277 |
+
msgstr "Pengaturan Pengimporan"
|
278 |
+
|
279 |
+
#: ThirstyAdminPage.php:429
|
280 |
+
msgid "Click import settings button"
|
281 |
+
msgstr "Klik tombol pengaturan impor"
|
282 |
+
|
283 |
+
#: ThirstyAdminPage.php:430
|
284 |
+
msgid "Paste the settings text code ( From other site )"
|
285 |
+
msgstr "Tempelkan kode teks pengaturan (Dari situs lain)"
|
286 |
+
|
287 |
+
#: ThirstyAdminPage.php:431
|
288 |
+
msgid "Click import global settings button"
|
289 |
+
msgstr "Klik tombol pengaturan global impor"
|
290 |
+
|
291 |
+
#: ThirstyAdminPage.php:436
|
292 |
+
msgid "Export Settings"
|
293 |
+
msgstr "Pengaturan Ekspor"
|
294 |
+
|
295 |
+
#: ThirstyAdminPage.php:437
|
296 |
+
msgid "Import Settings"
|
297 |
+
msgstr "Pengaturan Impor"
|
298 |
+
|
299 |
+
#: ThirstyAdminPage.php:442
|
300 |
+
msgid "Import Global Settings"
|
301 |
+
msgstr "Pengaturan Global Impor"
|
302 |
+
|
303 |
+
#: ThirstyAdminPage.php:504
|
304 |
+
msgid "Failed to decode settings string"
|
305 |
+
msgstr "Gagal mendekode string pengaturan"
|
306 |
+
|
307 |
+
#: ThirstyAdminPage.php:511
|
308 |
+
msgid "Failed to unserialize settings string"
|
309 |
+
msgstr "Gagal mengacak string pengaturan"
|
310 |
+
|
311 |
+
#: ThirstyShortcode.php:86
|
312 |
+
msgid "SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please check your short code!"
|
313 |
+
msgstr ""
|
314 |
+
"ThirstyShortcode.php:86\n"
|
315 |
+
"EROR SHORTCODE: ThirstyAffiliates tidak mendeteksi id link yang valid. Harap periksa short code Anda!"
|
316 |
+
|
317 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235 thirstyaffiliates.php:1892
|
318 |
+
msgid "Link Categories"
|
319 |
+
msgstr "Kategori Link"
|
320 |
+
|
321 |
+
#: thirstyaffiliates.php:53
|
322 |
+
msgid "Link Category"
|
323 |
+
msgstr "Kategori Link"
|
324 |
+
|
325 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
326 |
+
msgid "Affiliate Links"
|
327 |
+
msgstr "Link Afiliasi"
|
328 |
+
|
329 |
+
#: thirstyaffiliates.php:69
|
330 |
+
msgid "Affiliate Link"
|
331 |
+
msgstr "Link Afiliasi"
|
332 |
+
|
333 |
+
#: thirstyaffiliates.php:70
|
334 |
+
msgid "Add New Affiliate Link"
|
335 |
+
msgstr "Tambahkan Link Afiliasi Baru"
|
336 |
+
|
337 |
+
#: thirstyaffiliates.php:71
|
338 |
+
msgid "Edit Affiliate Link"
|
339 |
+
msgstr "Edit Link Afiliasi"
|
340 |
+
|
341 |
+
#: thirstyaffiliates.php:72
|
342 |
+
msgid "View Affiliate Link"
|
343 |
+
msgstr "Lihat Link Afiliasi"
|
344 |
+
|
345 |
+
#: thirstyaffiliates.php:73
|
346 |
+
msgid "Search Affiliate Links"
|
347 |
+
msgstr "Cari Link Afiliasi"
|
348 |
+
|
349 |
+
#: thirstyaffiliates.php:74
|
350 |
+
msgid "No Affiliate Links found!"
|
351 |
+
msgstr "Tidak ada Link Afiliasi yang ditemukan!"
|
352 |
+
|
353 |
+
#: thirstyaffiliates.php:75
|
354 |
+
msgid "No Affiliate Links found in trash"
|
355 |
+
msgstr "Tidak ada Link Afiliasi yang ditemukan di tempat sampah"
|
356 |
+
|
357 |
+
#: thirstyaffiliates.php:77
|
358 |
+
msgid "All Affiliate Links"
|
359 |
+
msgstr "Semua Link Afiliasi"
|
360 |
+
|
361 |
+
#: thirstyaffiliates.php:79
|
362 |
+
msgid "ThirstyAffiliates affiliate links"
|
363 |
+
msgstr "Link afiliasi ThirstyAffiliates "
|
364 |
+
|
365 |
+
#: thirstyaffiliates.php:504
|
366 |
+
msgid "Visit Add-on Page"
|
367 |
+
msgstr "Kunjungi Halaman Add-on"
|
368 |
+
|
369 |
+
#: thirstyaffiliates.php:508
|
370 |
+
msgid "View all available add-ons →"
|
371 |
+
msgstr "Lihat semua add-on yang tersedia →"
|
372 |
+
|
373 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
374 |
+
msgid "Override the default redirection type for this link:"
|
375 |
+
msgstr "Batalkan jenis pengalihan default untuk link ini:"
|
376 |
+
|
377 |
+
#: thirstyaffiliates.php:568
|
378 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
379 |
+
msgstr "CATATAN: Harap simpan link Anda setelah menambahkan atau menghapus gambar"
|
380 |
+
|
381 |
+
#: thirstyaffiliates.php:569
|
382 |
+
msgid "publish"
|
383 |
+
msgstr "terbitkan"
|
384 |
+
|
385 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
386 |
+
msgid "Save"
|
387 |
+
msgstr "Simpan "
|
388 |
+
|
389 |
+
#: thirstyaffiliates.php:571
|
390 |
+
msgid "Save Link"
|
391 |
+
msgstr "Simpan Link"
|
392 |
+
|
393 |
+
#: thirstyaffiliates.php:575
|
394 |
+
msgid "Delete Permanently"
|
395 |
+
msgstr "Hapus Permanen"
|
396 |
+
|
397 |
+
#: thirstyaffiliates.php:577
|
398 |
+
msgid "Move to Trash"
|
399 |
+
msgstr "Pindahkan ke Tempat Sampah"
|
400 |
+
|
401 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
402 |
+
msgid "Link Name:"
|
403 |
+
msgstr "Nama Link:"
|
404 |
+
|
405 |
+
#: thirstyaffiliates.php:595
|
406 |
+
msgid "Link ID:"
|
407 |
+
msgstr "ID Link:"
|
408 |
+
|
409 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
410 |
+
msgid "Destination URL:"
|
411 |
+
msgstr "URL Tujuan:"
|
412 |
+
|
413 |
+
#: thirstyaffiliates.php:632
|
414 |
+
msgid "Cloaked URL:"
|
415 |
+
msgstr "URL yang Disembunyikan:"
|
416 |
+
|
417 |
+
#: thirstyaffiliates.php:633
|
418 |
+
msgid "Edit Slug"
|
419 |
+
msgstr ""
|
420 |
+
|
421 |
+
#: thirstyaffiliates.php:633
|
422 |
+
msgid "Visit Link"
|
423 |
+
msgstr "Kunjungi Link"
|
424 |
+
|
425 |
+
#: thirstyaffiliates.php:638
|
426 |
+
msgid "No follow this link?:"
|
427 |
+
msgstr "No follow link ini?"
|
428 |
+
|
429 |
+
#: thirstyaffiliates.php:640
|
430 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
431 |
+
msgstr "Tambahkan rel=\"nofollow\" sehingga mesin pencari tidak menyalurkan link juice"
|
432 |
+
|
433 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
434 |
+
msgid "Open this link in new window?"
|
435 |
+
msgstr "Buka link ini di jendela baru?"
|
436 |
+
|
437 |
+
#: thirstyaffiliates.php:647
|
438 |
+
msgid "Opens links in a new window when clicked on"
|
439 |
+
msgstr "Membuka link di jendela baru saat diklik"
|
440 |
+
|
441 |
+
#: thirstyaffiliates.php:665
|
442 |
+
msgid "Add Image To Affiliate Link"
|
443 |
+
msgstr "Tambahkan Gambar ke Link Afiliasi"
|
444 |
+
|
445 |
+
#: thirstyaffiliates.php:665
|
446 |
+
msgid "Add To Affiliate Link"
|
447 |
+
msgstr "Tambahkan ke Link Afiliasi"
|
448 |
+
|
449 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
450 |
+
msgid "Upload/Insert"
|
451 |
+
msgstr "Upload/Sisipkan"
|
452 |
+
|
453 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
454 |
+
msgid "Upload/Insert images"
|
455 |
+
msgstr "Upload/Sisipkan gambar"
|
456 |
+
|
457 |
+
#: thirstyaffiliates.php:701
|
458 |
+
msgid "Remove This Image"
|
459 |
+
msgstr "Hapus Gambar Ini"
|
460 |
+
|
461 |
+
#: thirstyaffiliates.php:1026
|
462 |
+
msgid "Open the ThirstyAffiliates link picker"
|
463 |
+
msgstr "Buka pemilih link ThirstyAffiliates"
|
464 |
+
|
465 |
+
#: thirstyaffiliates.php:1030
|
466 |
+
msgid "Open quick add affiliate link dialog"
|
467 |
+
msgstr "Buka dialog tambahkan cepat link afiliasi"
|
468 |
+
|
469 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
470 |
+
msgid "Insert Image Link"
|
471 |
+
msgstr "Sisipkan Link Gambar "
|
472 |
+
|
473 |
+
#: thirstyaffiliates.php:1261
|
474 |
+
msgid "Insert Plain Link"
|
475 |
+
msgstr "Sisipkan Link Teks"
|
476 |
+
|
477 |
+
#: thirstyaffiliates.php:1262
|
478 |
+
msgid "Insert Shortcode"
|
479 |
+
msgstr "Sisipkan Shortcode"
|
480 |
+
|
481 |
+
#: thirstyaffiliates.php:1270
|
482 |
+
msgid "Sorry, no affiliate links found."
|
483 |
+
msgstr "Maaf, tidak ada link afiliasi yang ditemukan."
|
484 |
+
|
485 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
486 |
+
msgid "Affiliate Link Picker"
|
487 |
+
msgstr "Pemilih Link Afiliasi"
|
488 |
+
|
489 |
+
#: thirstyaffiliates.php:1601
|
490 |
+
msgid "Search ..."
|
491 |
+
msgstr "Cari..."
|
492 |
+
|
493 |
+
#: thirstyaffiliates.php:1810
|
494 |
+
msgid "http:// or https:// is required"
|
495 |
+
msgstr "http:// atau https:// diperlukan"
|
496 |
+
|
497 |
+
#: thirstyaffiliates.php:1819
|
498 |
+
msgid "No follow this link?"
|
499 |
+
msgstr "No follow link ini?"
|
500 |
+
|
501 |
+
#: thirstyaffiliates.php:1834
|
502 |
+
msgid "Redirect Type"
|
503 |
+
msgstr "Jenis Pengalihan"
|
504 |
+
|
505 |
+
#: thirstyaffiliates.php:1843
|
506 |
+
msgid " (Default)"
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: thirstyaffiliates.php:1893
|
510 |
+
msgid "You must select a link category as you set the general setting to include category on the link"
|
511 |
+
msgstr ""
|
512 |
+
"thirstyaffiliates.php:1893\n"
|
513 |
+
"Anda harus memilih kategori link saat Anda menetapkan pengaturan umum untuk menyertakan kategori pada link"
|
514 |
+
|
515 |
+
#: thirstyaffiliates.php:1894
|
516 |
+
msgid "Select categories..."
|
517 |
+
msgstr "Pilih kategori..."
|
518 |
+
|
519 |
+
#: thirstyaffiliates.php:1910
|
520 |
+
msgid "Add Link"
|
521 |
+
msgstr "Tambahkan Link"
|
522 |
+
|
523 |
+
#: thirstyaffiliates.php:1911
|
524 |
+
msgid "Add Link & Insert Into Post"
|
525 |
+
msgstr "Tambahkan Link & Sisipkan ke Artikel"
|
526 |
+
|
527 |
+
#: thirstyaffiliates.php:1951
|
528 |
+
msgid "You don't have appropriate permission to perform this action"
|
529 |
+
msgstr "Anda tidak memiliki izin untuk melakukan tindakan ini."
|
530 |
+
|
531 |
+
#: thirstyaffiliates.php:1980
|
532 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
533 |
+
msgstr "Eror Server: Sebagian bidang tidak memiliki nilai yang tepat"
|
534 |
+
|
535 |
+
#: thirstyaffiliates.php:2006
|
536 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
537 |
+
msgstr "Eror Server: Gagal menyisipkan artikel baru secara dinamis"
|
538 |
+
|
539 |
+
#: thirstyaffiliates.php:2035
|
540 |
+
msgid "Server Error: Failed to update meta data of recently dynamically created post"
|
541 |
+
msgstr ""
|
542 |
+
"thirstyaffiliates.php:2035\n"
|
543 |
+
"Eror Server: Gagal meng-update meta data dari artikel yang baru dibuat secara dinamis"
|
544 |
+
|
545 |
+
#: thirstyaffiliates.php:2111
|
546 |
+
msgid "Link ID"
|
547 |
+
msgstr "ID Link"
|
languages/thirstyaffiliates-it_IT.mo
ADDED
Binary file
|
languages/thirstyaffiliates-it_IT.po
ADDED
@@ -0,0 +1,584 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"POT-Creation-Date: 2015-07-09 00:27+0800\n"
|
5 |
+
"PO-Revision-Date: 2015-07-15 16:16+0200\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Rymera Web Co <josh@rymera.com.au>\n"
|
8 |
+
"Language: it_IT\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.2\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: ThirstyAddonPage.php:10
|
20 |
+
msgid "Add-ons"
|
21 |
+
msgstr "Add-on"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
24 |
+
msgid "You do not have suffifient permissions to access this page."
|
25 |
+
msgstr "Non hai privilegi sufficienti per accedere a questa pagina."
|
26 |
+
|
27 |
+
#: ThirstyAddonPage.php:28
|
28 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
29 |
+
msgstr "Potenzia subito ThirstyAffiliates con questi Add-on"
|
30 |
+
|
31 |
+
#: ThirstyAddonPage.php:46
|
32 |
+
msgid "Visit Add-on Page →"
|
33 |
+
msgstr "Visita la pagina degli Add-on →"
|
34 |
+
|
35 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
36 |
+
msgid "Settings"
|
37 |
+
msgstr "Impostazioni"
|
38 |
+
|
39 |
+
#: ThirstyAdminPage.php:77
|
40 |
+
msgid "Settings updated."
|
41 |
+
msgstr "Impostazioni aggiornate."
|
42 |
+
|
43 |
+
#: ThirstyAdminPage.php:78
|
44 |
+
msgid "Links rebuilt."
|
45 |
+
msgstr "Link ricostruiti."
|
46 |
+
|
47 |
+
#: ThirstyAdminPage.php:84
|
48 |
+
msgid "General Settings"
|
49 |
+
msgstr "Impostazioni Generali"
|
50 |
+
|
51 |
+
#: ThirstyAdminPage.php:88
|
52 |
+
msgid "Link Prefix:"
|
53 |
+
msgstr "Prefisso Link:"
|
54 |
+
|
55 |
+
#: ThirstyAdminPage.php:92
|
56 |
+
msgid "custom"
|
57 |
+
msgstr "personalizzato"
|
58 |
+
|
59 |
+
#: ThirstyAdminPage.php:92
|
60 |
+
msgid " selected"
|
61 |
+
msgstr " selezionato"
|
62 |
+
|
63 |
+
#: ThirstyAdminPage.php:92
|
64 |
+
msgid "Custom"
|
65 |
+
msgstr "Personalizza"
|
66 |
+
|
67 |
+
#: ThirstyAdminPage.php:108
|
68 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
69 |
+
msgstr "Il prefisso che viene prima del tuo link modificato.<br />Es. "
|
70 |
+
|
71 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
72 |
+
msgid "Warning:"
|
73 |
+
msgstr "Attenzione:"
|
74 |
+
|
75 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
76 |
+
msgid ""
|
77 |
+
"Changing this setting after you've used links in a post could break those "
|
78 |
+
"links. Be careful!"
|
79 |
+
msgstr ""
|
80 |
+
"Modificare questa impostazione dopo aver utilizzato i link in un post "
|
81 |
+
"potrebbe renderli non funzionanti. Fai attenzione!"
|
82 |
+
|
83 |
+
#: ThirstyAdminPage.php:116
|
84 |
+
msgid "Show Link Category in URL?"
|
85 |
+
msgstr "Mostrare la Categoria dei Link nella URL?"
|
86 |
+
|
87 |
+
#: ThirstyAdminPage.php:122
|
88 |
+
msgid "Show the selected category in the url. eg. "
|
89 |
+
msgstr "Mostra la categoria selezionata nell’URL. Es. "
|
90 |
+
|
91 |
+
#: ThirstyAdminPage.php:130
|
92 |
+
msgid "Disable \"uncategorized\" category on save?"
|
93 |
+
msgstr "Disabilita la categoria “Senza Categoria” al salvataggio?"
|
94 |
+
|
95 |
+
#: ThirstyAdminPage.php:136
|
96 |
+
msgid ""
|
97 |
+
"If the \"Show the selected category in the url\" option above is selected, "
|
98 |
+
"by default ThirstyAffiliates will add an \"uncategorized\" category to apply "
|
99 |
+
"to non-categorised links during save. If you disable this, it allows you to "
|
100 |
+
"have some links with categories in the URL and some without."
|
101 |
+
msgstr ""
|
102 |
+
"Se l’opzione “Mostra la categoria selezionata nell’URL” qui sopra è "
|
103 |
+
"selezionata, di default ThirstyAffiliates aggiungerà una categoria “Senza "
|
104 |
+
"Categoria” che attribuirà a quelli che non ne hanno una, durante il "
|
105 |
+
"salvataggio. Se lo disabiliti, ti permetterà di avere alcuni link con "
|
106 |
+
"categoria nella URL, e altri senza."
|
107 |
+
|
108 |
+
#: ThirstyAdminPage.php:142
|
109 |
+
msgid "Link Redirect Type:"
|
110 |
+
msgstr "Tipo di Link Redirect:"
|
111 |
+
|
112 |
+
#: ThirstyAdminPage.php:159
|
113 |
+
msgid ""
|
114 |
+
"This is the type of redirect ThirstyAffiliates will use to redirect the user "
|
115 |
+
"to your affiliate link."
|
116 |
+
msgstr ""
|
117 |
+
"Questo è il tipo di redirect the ThirstyAffiliates utilizzerà per ridirigere "
|
118 |
+
"l’utente al tuo link affiliazione."
|
119 |
+
|
120 |
+
#: ThirstyAdminPage.php:165
|
121 |
+
msgid "Use no follow on links?"
|
122 |
+
msgstr "Utilizzare link No-Follow?"
|
123 |
+
|
124 |
+
#: ThirstyAdminPage.php:171
|
125 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
126 |
+
msgstr ""
|
127 |
+
"Aggiunge l’attributo No-Follow ai link così che i motori di ricerca non li "
|
128 |
+
"indicizzeranno"
|
129 |
+
|
130 |
+
#: ThirstyAdminPage.php:177
|
131 |
+
msgid "Open links in new window?"
|
132 |
+
msgstr "Aprire i link in una nuova finestra?"
|
133 |
+
|
134 |
+
#: ThirstyAdminPage.php:183
|
135 |
+
msgid "Force the user to open links in a new window or tab"
|
136 |
+
msgstr "Forza l’utente ad aprire link in una nuova finestra o nuovo tab"
|
137 |
+
|
138 |
+
#: ThirstyAdminPage.php:189
|
139 |
+
msgid "Revert to legacy image uploader?"
|
140 |
+
msgstr "Tornare al vecchio Image Uploader?"
|
141 |
+
|
142 |
+
#: ThirstyAdminPage.php:195
|
143 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
144 |
+
msgstr "Disabilita il nuovo Image Uploader preferendo l’Uploader vecchio stile"
|
145 |
+
|
146 |
+
#: ThirstyAdminPage.php:201
|
147 |
+
msgid "Disable title attribute output on link insertion?"
|
148 |
+
msgstr "Disabilitare l’output per l’attributo title all’inserimento dei link?"
|
149 |
+
|
150 |
+
#: ThirstyAdminPage.php:207
|
151 |
+
msgid ""
|
152 |
+
"Links are automatically output with a title html attribute (by default this "
|
153 |
+
"shows the text\n"
|
154 |
+
"\t\t\tthat you have linked), this option lets you disable the output of the "
|
155 |
+
"title attribute on your links."
|
156 |
+
msgstr ""
|
157 |
+
"I link vengono automaticamente mandati in output con l’attributo HTML title "
|
158 |
+
"(di default questo mostra il testo\n"
|
159 |
+
"\t\t\tche hai linciato), questa opzione ti consente di disabilitare l’output "
|
160 |
+
"dell’attributo title per i tuoi link."
|
161 |
+
|
162 |
+
#: ThirstyAdminPage.php:214
|
163 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
164 |
+
msgstr ""
|
165 |
+
"Disabilitare l’output automatico delle classi CSS di ThirstyAffiliates?"
|
166 |
+
|
167 |
+
#: ThirstyAdminPage.php:220
|
168 |
+
msgid ""
|
169 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" "
|
170 |
+
"is added\n"
|
171 |
+
"\t\t\tto the link and a CSS class called \"thirstylinkimg\" is added to "
|
172 |
+
"images (when inserting image affiliate links),\n"
|
173 |
+
"\t\t\tthis option disables the addition of both of these CSS classes."
|
174 |
+
msgstr ""
|
175 |
+
"Abbiamo aggiunto una classe CSS chiamata “thirstylink\" per aiutarti nello "
|
176 |
+
"styling dei tuoi link affiliazione\n"
|
177 |
+
"\t\t\tai link, e una chiamata \"thirstylinkimg\" alle immagini (quando "
|
178 |
+
"inserisci un Link Affiliazione Immagine),\n"
|
179 |
+
"\t\t\tQuesta opzione disabilita l’aggiunta di entrambe queste classi CSS."
|
180 |
+
|
181 |
+
#: ThirstyAdminPage.php:228
|
182 |
+
msgid "Disable slug shortening?"
|
183 |
+
msgstr "Disabilita Abbreviazione Slug?"
|
184 |
+
|
185 |
+
#: ThirstyAdminPage.php:234
|
186 |
+
msgid ""
|
187 |
+
"By default, ThirstyAffiliates removes superfluous words from your cloaked "
|
188 |
+
"link URLs, this option turns that feature off."
|
189 |
+
msgstr ""
|
190 |
+
"Di default, ThirstyAffiliates rimuove parole superflue dall’URL modificata, "
|
191 |
+
"questa opzione disattiva questa funzione."
|
192 |
+
|
193 |
+
#: ThirstyAdminPage.php:240
|
194 |
+
msgid "Disable buttons on the Visual editor?"
|
195 |
+
msgstr "Disabilitare i bottoni nel Visual editor?"
|
196 |
+
|
197 |
+
#: ThirstyAdminPage.php:246
|
198 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
199 |
+
msgstr "Nasconde i bottoni di ThirstyAffiliates nell’editor di testo Visuale."
|
200 |
+
|
201 |
+
#: ThirstyAdminPage.php:252
|
202 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
203 |
+
msgstr "Disabilitare i bottoni negli editor Testo/Quicktags?"
|
204 |
+
|
205 |
+
#: ThirstyAdminPage.php:258
|
206 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
207 |
+
msgstr "Nasconde i bottoni di ThirstyAffiliates nell’editor di tipo Testo."
|
208 |
+
|
209 |
+
#: ThirstyAdminPage.php:264
|
210 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
211 |
+
msgstr ""
|
212 |
+
"Tag addizionali da inserire nell’attributo rel durante l’inserimento di "
|
213 |
+
"link: "
|
214 |
+
|
215 |
+
#: ThirstyAdminPage.php:270
|
216 |
+
msgid ""
|
217 |
+
"Allows you to add extra tags into the rel= attribute when links are inserted."
|
218 |
+
msgstr ""
|
219 |
+
"Consente di aggiungere extra tag nell’attributo rel= quando vengono inseriti "
|
220 |
+
"link."
|
221 |
+
|
222 |
+
#: ThirstyAdminPage.php:284
|
223 |
+
msgid "Save All Changes"
|
224 |
+
msgstr "Salva tutti i cambiamenti"
|
225 |
+
|
226 |
+
#: ThirstyAdminPage.php:285
|
227 |
+
msgid "Save & Force Link Rebuild"
|
228 |
+
msgstr "Salva e Forza la Ricostruzione Link"
|
229 |
+
|
230 |
+
#: ThirstyAdminPage.php:292
|
231 |
+
msgid "Plugin Information"
|
232 |
+
msgstr "Informazioni sul Plugin"
|
233 |
+
|
234 |
+
#: ThirstyAdminPage.php:305
|
235 |
+
msgid "Visit Our Website"
|
236 |
+
msgstr "Visita il nostro sito"
|
237 |
+
|
238 |
+
#: ThirstyAdminPage.php:306
|
239 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
240 |
+
msgstr "Sfoglia gli Add-on per ThirstyAffiliates"
|
241 |
+
|
242 |
+
#: ThirstyAdminPage.php:307
|
243 |
+
msgid "Join Our Affiliate Program"
|
244 |
+
msgstr "Iscriviti al nostro Programma Affiliazione"
|
245 |
+
|
246 |
+
#: ThirstyAdminPage.php:307
|
247 |
+
#, php-format
|
248 |
+
msgid "(up to 50% commissions)"
|
249 |
+
msgstr "(fino al 50% di commissioni)"
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:308
|
252 |
+
msgid "Like us on Facebook"
|
253 |
+
msgstr "Mi Piace su Facebook"
|
254 |
+
|
255 |
+
#: ThirstyAdminPage.php:309
|
256 |
+
msgid "Follow us on Twitter"
|
257 |
+
msgstr "Seguici su Twitter"
|
258 |
+
|
259 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
260 |
+
msgid "DEBUG: "
|
261 |
+
msgstr "DEBUG: "
|
262 |
+
|
263 |
+
#: ThirstyAdminPage.php:382
|
264 |
+
msgid ""
|
265 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
266 |
+
"\t\t\tyour"
|
267 |
+
msgstr ""
|
268 |
+
"ThirstyAffiliates necessita di permalinks ben fatti, per piacere cambia\n"
|
269 |
+
"\t\t\t il tuo"
|
270 |
+
|
271 |
+
#: ThirstyAdminPage.php:383
|
272 |
+
msgid "Permalink settings"
|
273 |
+
msgstr "Impostazioni Permalink"
|
274 |
+
|
275 |
+
#: ThirstyAdminPage.php:383
|
276 |
+
msgid "to something other than default."
|
277 |
+
msgstr "in qualcosa di diverso rispetto al default."
|
278 |
+
|
279 |
+
#: ThirstyAdminPage.php:383
|
280 |
+
msgid "Dismiss"
|
281 |
+
msgstr "Annulla"
|
282 |
+
|
283 |
+
#: ThirstyAdminPage.php:414
|
284 |
+
msgid "Export/Import Global Settings"
|
285 |
+
msgstr "Esporta/Importa le impostazioni globali"
|
286 |
+
|
287 |
+
#: ThirstyAdminPage.php:417
|
288 |
+
msgid "Exporting Settings"
|
289 |
+
msgstr "Esportando le impostazioni"
|
290 |
+
|
291 |
+
#: ThirstyAdminPage.php:420
|
292 |
+
msgid "Click export settings button"
|
293 |
+
msgstr "Clicca il pulsante per esportare le impostazioni"
|
294 |
+
|
295 |
+
#: ThirstyAdminPage.php:421
|
296 |
+
msgid "Copy the settings text code"
|
297 |
+
msgstr "Copia il codice di testo delle impostazioni"
|
298 |
+
|
299 |
+
#: ThirstyAdminPage.php:422
|
300 |
+
msgid "Paste in the settings code to the destination site"
|
301 |
+
msgstr "Incolla il codice delle impostazioni nel sito di destinazione"
|
302 |
+
|
303 |
+
#: ThirstyAdminPage.php:426
|
304 |
+
msgid "Importing Settings"
|
305 |
+
msgstr "Importando le impostazioni"
|
306 |
+
|
307 |
+
#: ThirstyAdminPage.php:429
|
308 |
+
msgid "Click import settings button"
|
309 |
+
msgstr "Clicca il bottone di importazione delle impostazioni"
|
310 |
+
|
311 |
+
#: ThirstyAdminPage.php:430
|
312 |
+
msgid "Paste the settings text code ( From other site )"
|
313 |
+
msgstr "Incolla il codice delle impostazioni ( Da altro sito )"
|
314 |
+
|
315 |
+
#: ThirstyAdminPage.php:431
|
316 |
+
msgid "Click import global settings button"
|
317 |
+
msgstr "Clicca il bottone di importazione globale delle impostazioni"
|
318 |
+
|
319 |
+
#: ThirstyAdminPage.php:436
|
320 |
+
msgid "Export Settings"
|
321 |
+
msgstr "Esporta Impostazioni"
|
322 |
+
|
323 |
+
#: ThirstyAdminPage.php:437
|
324 |
+
msgid "Import Settings"
|
325 |
+
msgstr "Importa Impostazioni"
|
326 |
+
|
327 |
+
#: ThirstyAdminPage.php:442
|
328 |
+
msgid "Import Global Settings"
|
329 |
+
msgstr "Importa Impostazioni Globali"
|
330 |
+
|
331 |
+
#: ThirstyAdminPage.php:504
|
332 |
+
msgid "Failed to decode settings string"
|
333 |
+
msgstr "Impossibile decodificare la stringa di impostazioni"
|
334 |
+
|
335 |
+
#: ThirstyAdminPage.php:511
|
336 |
+
msgid "Failed to unserialize settings string"
|
337 |
+
msgstr "Impossibile deserializzare la stringa di impostazioni"
|
338 |
+
|
339 |
+
#: ThirstyShortcode.php:86
|
340 |
+
msgid ""
|
341 |
+
"SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please "
|
342 |
+
"check your short code!"
|
343 |
+
msgstr ""
|
344 |
+
"ERRORE DI SHORTCODE: ThirstyAffiliates non individua un ID Link valido, per "
|
345 |
+
"cortesia controlla il tuo shortcode!"
|
346 |
+
|
347 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235
|
348 |
+
#: thirstyaffiliates.php:1892
|
349 |
+
msgid "Link Categories"
|
350 |
+
msgstr "Link di Categorie"
|
351 |
+
|
352 |
+
#: thirstyaffiliates.php:53
|
353 |
+
msgid "Link Category"
|
354 |
+
msgstr "Link di Categoria"
|
355 |
+
|
356 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
357 |
+
msgid "Affiliate Links"
|
358 |
+
msgstr "Link Affiliazione"
|
359 |
+
|
360 |
+
#: thirstyaffiliates.php:69
|
361 |
+
msgid "Affiliate Link"
|
362 |
+
msgstr "Link Affiliazione"
|
363 |
+
|
364 |
+
#: thirstyaffiliates.php:70
|
365 |
+
msgid "Add New Affiliate Link"
|
366 |
+
msgstr "Aggiungi nuovo Link Affiliazione"
|
367 |
+
|
368 |
+
#: thirstyaffiliates.php:71
|
369 |
+
msgid "Edit Affiliate Link"
|
370 |
+
msgstr "Modifica Link Affiliazione"
|
371 |
+
|
372 |
+
#: thirstyaffiliates.php:72
|
373 |
+
msgid "View Affiliate Link"
|
374 |
+
msgstr "Vedi Link Affiliazione"
|
375 |
+
|
376 |
+
#: thirstyaffiliates.php:73
|
377 |
+
msgid "Search Affiliate Links"
|
378 |
+
msgstr "Cerca Link Affiliazione"
|
379 |
+
|
380 |
+
#: thirstyaffiliates.php:74
|
381 |
+
msgid "No Affiliate Links found!"
|
382 |
+
msgstr "Nessun Link Affiliazione trovato!"
|
383 |
+
|
384 |
+
#: thirstyaffiliates.php:75
|
385 |
+
msgid "No Affiliate Links found in trash"
|
386 |
+
msgstr "Nessun Link Affiliazione trovato nel cestino"
|
387 |
+
|
388 |
+
#: thirstyaffiliates.php:77
|
389 |
+
msgid "All Affiliate Links"
|
390 |
+
msgstr "Tutti i Link Affiliazione"
|
391 |
+
|
392 |
+
#: thirstyaffiliates.php:79
|
393 |
+
msgid "ThirstyAffiliates affiliate links"
|
394 |
+
msgstr "Link Affiliazione ThirstyAffiliates"
|
395 |
+
|
396 |
+
#: thirstyaffiliates.php:504
|
397 |
+
msgid "Visit Add-on Page"
|
398 |
+
msgstr "Visita la Pagina Add-on"
|
399 |
+
|
400 |
+
#: thirstyaffiliates.php:508
|
401 |
+
msgid "View all available add-ons →"
|
402 |
+
msgstr "Guarda tutti gli Add-on disponibili →"
|
403 |
+
|
404 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
405 |
+
msgid "Override the default redirection type for this link:"
|
406 |
+
msgstr "Sovrascrivi il tipo di redirect di default per questo link:"
|
407 |
+
|
408 |
+
#: thirstyaffiliates.php:568
|
409 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
410 |
+
msgstr ""
|
411 |
+
"NOTA: Per piacere salva il tuo link dopo aver aggiunto o rimosso le immagini"
|
412 |
+
|
413 |
+
#: thirstyaffiliates.php:569
|
414 |
+
msgid "publish"
|
415 |
+
msgstr "pubblica"
|
416 |
+
|
417 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
418 |
+
msgid "Save"
|
419 |
+
msgstr "Salva"
|
420 |
+
|
421 |
+
#: thirstyaffiliates.php:571
|
422 |
+
msgid "Save Link"
|
423 |
+
msgstr "Salva Link"
|
424 |
+
|
425 |
+
#: thirstyaffiliates.php:575
|
426 |
+
msgid "Delete Permanently"
|
427 |
+
msgstr "Elimina Permanentemente"
|
428 |
+
|
429 |
+
#: thirstyaffiliates.php:577
|
430 |
+
msgid "Move to Trash"
|
431 |
+
msgstr "Sposta nel Cestino"
|
432 |
+
|
433 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
434 |
+
msgid "Link Name:"
|
435 |
+
msgstr "Nome del Link:"
|
436 |
+
|
437 |
+
#: thirstyaffiliates.php:595
|
438 |
+
msgid "Link ID:"
|
439 |
+
msgstr "ID del Link:"
|
440 |
+
|
441 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
442 |
+
msgid "Destination URL:"
|
443 |
+
msgstr "URL di Destinazione:"
|
444 |
+
|
445 |
+
#: thirstyaffiliates.php:632
|
446 |
+
msgid "Cloaked URL:"
|
447 |
+
msgstr "URL Modificata:"
|
448 |
+
|
449 |
+
#: thirstyaffiliates.php:633
|
450 |
+
msgid "Edit Slug"
|
451 |
+
msgstr "Modifica lo Slug"
|
452 |
+
|
453 |
+
#: thirstyaffiliates.php:633
|
454 |
+
msgid "Visit Link"
|
455 |
+
msgstr "Visita Link"
|
456 |
+
|
457 |
+
#: thirstyaffiliates.php:638
|
458 |
+
msgid "No follow this link?:"
|
459 |
+
msgstr "Rendere questo link No-Follow?:"
|
460 |
+
|
461 |
+
#: thirstyaffiliates.php:640
|
462 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
463 |
+
msgstr ""
|
464 |
+
"Aggiunge il tag rel=\"nofollow\" così che i motori di ricerca non passino un "
|
465 |
+
"po’ della tua authority"
|
466 |
+
|
467 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
468 |
+
msgid "Open this link in new window?"
|
469 |
+
msgstr "Apri questo link in una nuova finestra?"
|
470 |
+
|
471 |
+
#: thirstyaffiliates.php:647
|
472 |
+
msgid "Opens links in a new window when clicked on"
|
473 |
+
msgstr "Apre link in una nuova finestra quando cliccat"
|
474 |
+
|
475 |
+
#: thirstyaffiliates.php:665
|
476 |
+
msgid "Add Image To Affiliate Link"
|
477 |
+
msgstr "Aggiungi Immagine al Link Affiliazione"
|
478 |
+
|
479 |
+
#: thirstyaffiliates.php:665
|
480 |
+
msgid "Add To Affiliate Link"
|
481 |
+
msgstr "Aggiungi al Link Affiliazione"
|
482 |
+
|
483 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
484 |
+
msgid "Upload/Insert"
|
485 |
+
msgstr "Upload/Inserisci"
|
486 |
+
|
487 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
488 |
+
msgid "Upload/Insert images"
|
489 |
+
msgstr "Upload/Inserisci immagini"
|
490 |
+
|
491 |
+
#: thirstyaffiliates.php:701
|
492 |
+
msgid "Remove This Image"
|
493 |
+
msgstr "Rimuovi questa Immagine"
|
494 |
+
|
495 |
+
#: thirstyaffiliates.php:1026
|
496 |
+
msgid "Open the ThirstyAffiliates link picker"
|
497 |
+
msgstr "Apri il Link Picker di ThirstyAffiliates"
|
498 |
+
|
499 |
+
#: thirstyaffiliates.php:1030
|
500 |
+
msgid "Open quick add affiliate link dialog"
|
501 |
+
msgstr "Apre la finestra Aggiungi Subito Link Affiliazione"
|
502 |
+
|
503 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
504 |
+
msgid "Insert Image Link"
|
505 |
+
msgstr "Inserisci Link Immagine"
|
506 |
+
|
507 |
+
#: thirstyaffiliates.php:1261
|
508 |
+
msgid "Insert Plain Link"
|
509 |
+
msgstr "Inserisci Link testo"
|
510 |
+
|
511 |
+
#: thirstyaffiliates.php:1262
|
512 |
+
msgid "Insert Shortcode"
|
513 |
+
msgstr "Inserisci Shortcode"
|
514 |
+
|
515 |
+
#: thirstyaffiliates.php:1270
|
516 |
+
msgid "Sorry, no affiliate links found."
|
517 |
+
msgstr "Spiacente, nessun link affiliazione trovato."
|
518 |
+
|
519 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
520 |
+
msgid "Affiliate Link Picker"
|
521 |
+
msgstr "Picker Link Affiliazione"
|
522 |
+
|
523 |
+
#: thirstyaffiliates.php:1601
|
524 |
+
msgid "Search ..."
|
525 |
+
msgstr "Cerca …"
|
526 |
+
|
527 |
+
#: thirstyaffiliates.php:1810
|
528 |
+
msgid "http:// or https:// is required"
|
529 |
+
msgstr "http:// o https:// is richiesto"
|
530 |
+
|
531 |
+
#: thirstyaffiliates.php:1819
|
532 |
+
msgid "No follow this link?"
|
533 |
+
msgstr "Rendere questo link No-Follow?"
|
534 |
+
|
535 |
+
#: thirstyaffiliates.php:1834
|
536 |
+
msgid "Redirect Type"
|
537 |
+
msgstr "Tipo di Redirect"
|
538 |
+
|
539 |
+
#: thirstyaffiliates.php:1843
|
540 |
+
msgid " (Default)"
|
541 |
+
msgstr " (Default)"
|
542 |
+
|
543 |
+
#: thirstyaffiliates.php:1893
|
544 |
+
msgid ""
|
545 |
+
"You must select a link category as you set the general setting to include "
|
546 |
+
"category on the link"
|
547 |
+
msgstr ""
|
548 |
+
"Devi selezionare una Categoria di Link dal momento in cui questo è impostato "
|
549 |
+
"nelle Impostazioni Generali"
|
550 |
+
|
551 |
+
#: thirstyaffiliates.php:1894
|
552 |
+
msgid "Select categories..."
|
553 |
+
msgstr "Scegli categorie..."
|
554 |
+
|
555 |
+
#: thirstyaffiliates.php:1910
|
556 |
+
msgid "Add Link"
|
557 |
+
msgstr "Aggiungi Link"
|
558 |
+
|
559 |
+
#: thirstyaffiliates.php:1911
|
560 |
+
msgid "Add Link & Insert Into Post"
|
561 |
+
msgstr "Aggiungi Link & Inserisci nel Post"
|
562 |
+
|
563 |
+
#: thirstyaffiliates.php:1951
|
564 |
+
msgid "You don't have appropriate permission to perform this action"
|
565 |
+
msgstr "Non hai sufficienti privilegi per fare questo"
|
566 |
+
|
567 |
+
#: thirstyaffiliates.php:1980
|
568 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
569 |
+
msgstr "Errore del Server: Alcuni campi non contengono valori validi"
|
570 |
+
|
571 |
+
#: thirstyaffiliates.php:2006
|
572 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
573 |
+
msgstr "Errore del Server: Impossibile inserire dinamicamente un nuovo post"
|
574 |
+
|
575 |
+
#: thirstyaffiliates.php:2035
|
576 |
+
msgid ""
|
577 |
+
"Server Error: Failed to update meta data of recently dynamically created post"
|
578 |
+
msgstr ""
|
579 |
+
"Errore del Server: Impossibile caricare i meta dati di post creati "
|
580 |
+
"dinamicamente di recente"
|
581 |
+
|
582 |
+
#: thirstyaffiliates.php:2111
|
583 |
+
msgid "Link ID"
|
584 |
+
msgstr "ID Link"
|
languages/thirstyaffiliates-pt_BR.mo
ADDED
Binary file
|
languages/thirstyaffiliates-pt_BR.po
ADDED
@@ -0,0 +1,584 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"POT-Creation-Date: 2015-07-15 12:20+0800\n"
|
5 |
+
"PO-Revision-Date: 2015-07-15 05:09-0300\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Rymera Web Co <josh@rymera.com.au>\n"
|
8 |
+
"Language: pt_BR\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.2\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: ThirstyAddonPage.php:10
|
20 |
+
msgid "Add-ons"
|
21 |
+
msgstr "Adicionar Extensões"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
24 |
+
msgid "You do not have suffifient permissions to access this page."
|
25 |
+
msgstr "Você não possui permissão suficiente para acessar esta página."
|
26 |
+
|
27 |
+
#: ThirstyAddonPage.php:28
|
28 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
29 |
+
msgstr "Turbinar ThirstyAffiliates Com Essas Extensões"
|
30 |
+
|
31 |
+
#: ThirstyAddonPage.php:46
|
32 |
+
msgid "Visit Add-on Page →"
|
33 |
+
msgstr "Vizualizar Página das Extensões"
|
34 |
+
|
35 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
36 |
+
msgid "Settings"
|
37 |
+
msgstr "Configurações"
|
38 |
+
|
39 |
+
#: ThirstyAdminPage.php:77
|
40 |
+
msgid "Settings updated."
|
41 |
+
msgstr "Configurações atualizadas."
|
42 |
+
|
43 |
+
#: ThirstyAdminPage.php:78
|
44 |
+
msgid "Links rebuilt."
|
45 |
+
msgstr "Links reconstruído."
|
46 |
+
|
47 |
+
#: ThirstyAdminPage.php:84
|
48 |
+
msgid "General Settings"
|
49 |
+
msgstr "Configurações Gerais"
|
50 |
+
|
51 |
+
#: ThirstyAdminPage.php:88
|
52 |
+
msgid "Link Prefix:"
|
53 |
+
msgstr "Prefixo do Link"
|
54 |
+
|
55 |
+
#: ThirstyAdminPage.php:92
|
56 |
+
msgid "custom"
|
57 |
+
msgstr "personalizado"
|
58 |
+
|
59 |
+
#: ThirstyAdminPage.php:92
|
60 |
+
msgid " selected"
|
61 |
+
msgstr "selecionado"
|
62 |
+
|
63 |
+
#: ThirstyAdminPage.php:92
|
64 |
+
msgid "Custom"
|
65 |
+
msgstr "Personalizado"
|
66 |
+
|
67 |
+
#: ThirstyAdminPage.php:108
|
68 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
69 |
+
msgstr "O prefixo que vem antes do slug de seus links camuflados.<br />ex:"
|
70 |
+
|
71 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
72 |
+
msgid "Warning:"
|
73 |
+
msgstr "Aviso:"
|
74 |
+
|
75 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
76 |
+
msgid ""
|
77 |
+
"Changing this setting after you've used links in a post could break those "
|
78 |
+
"links. Be careful!"
|
79 |
+
msgstr ""
|
80 |
+
"Mudar essas configurações depois de ter inserido links em seus posts pode "
|
81 |
+
"danificar esses links. Seja cuidadoso!"
|
82 |
+
|
83 |
+
#: ThirstyAdminPage.php:116
|
84 |
+
msgid "Show Link Category in URL?"
|
85 |
+
msgstr "Exibir o Link da Categoria na URL?"
|
86 |
+
|
87 |
+
#: ThirstyAdminPage.php:122
|
88 |
+
msgid "Show the selected category in the url. eg. "
|
89 |
+
msgstr "Exibir a categoria selecionada na URL. ex: "
|
90 |
+
|
91 |
+
#: ThirstyAdminPage.php:130
|
92 |
+
msgid "Disable \"uncategorized\" category on save?"
|
93 |
+
msgstr "Desabilitar a categoria \"sem categoria\" quando salvar?"
|
94 |
+
|
95 |
+
#: ThirstyAdminPage.php:136
|
96 |
+
msgid ""
|
97 |
+
"If the \"Show the selected category in the url\" option above is selected, "
|
98 |
+
"by default ThirstyAffiliates will add an \"uncategorized\" category to apply "
|
99 |
+
"to non-categorised links during save. If you disable this, it allows you to "
|
100 |
+
"have some links with categories in the URL and some without."
|
101 |
+
msgstr ""
|
102 |
+
"Se \"Exibir a categoria selecianada na URL.\" acima estiver selecionado, por "
|
103 |
+
"padrão ThirstyAffiliates vai adicionar uma categoria \"sem-categoria\" para "
|
104 |
+
"aplicar nos links que não foram categorizados durante o salvamento. Se você "
|
105 |
+
"desabilitar isso, vai permitir que você tenha alguns links com categorias na "
|
106 |
+
"URL e outros sem."
|
107 |
+
|
108 |
+
#: ThirstyAdminPage.php:142
|
109 |
+
msgid "Link Redirect Type:"
|
110 |
+
msgstr "Tipo de Redirecionamento de Link:"
|
111 |
+
|
112 |
+
#: ThirstyAdminPage.php:159
|
113 |
+
msgid ""
|
114 |
+
"This is the type of redirect ThirstyAffiliates will use to redirect the user "
|
115 |
+
"to your affiliate link."
|
116 |
+
msgstr ""
|
117 |
+
"Este é o tipo de redirecionamento que ThirstyAffiliates irá usar para "
|
118 |
+
"redirecionar o usuário para o seu link de afiliado."
|
119 |
+
|
120 |
+
#: ThirstyAdminPage.php:165
|
121 |
+
msgid "Use no follow on links?"
|
122 |
+
msgstr "Utilizar no follow nos links?"
|
123 |
+
|
124 |
+
#: ThirstyAdminPage.php:171
|
125 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
126 |
+
msgstr ""
|
127 |
+
"Adicione o atributo nofollow em seus links para que os motores de buscas não "
|
128 |
+
"indexem seus links."
|
129 |
+
|
130 |
+
#: ThirstyAdminPage.php:177
|
131 |
+
msgid "Open links in new window?"
|
132 |
+
msgstr "Abrir links em uma nova janela?"
|
133 |
+
|
134 |
+
#: ThirstyAdminPage.php:183
|
135 |
+
msgid "Force the user to open links in a new window or tab"
|
136 |
+
msgstr "Forçar o usuário a abrir o link em uma nova janela ou tab."
|
137 |
+
|
138 |
+
#: ThirstyAdminPage.php:189
|
139 |
+
msgid "Revert to legacy image uploader?"
|
140 |
+
msgstr "Reverter para a ferramenta de upload antiga?"
|
141 |
+
|
142 |
+
#: ThirstyAdminPage.php:195
|
143 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
144 |
+
msgstr ""
|
145 |
+
"Desativar o novo uploader de mídia em favor do upload de estilo antigo."
|
146 |
+
|
147 |
+
#: ThirstyAdminPage.php:201
|
148 |
+
msgid "Disable title attribute output on link insertion?"
|
149 |
+
msgstr "Desativar a atribuição de títulos externos na inserção de links?"
|
150 |
+
|
151 |
+
#: ThirstyAdminPage.php:207
|
152 |
+
msgid ""
|
153 |
+
"Links are automatically output with a title html attribute (by default this "
|
154 |
+
"shows the text\n"
|
155 |
+
"\t\t\tthat you have linked), this option lets you disable the output of the "
|
156 |
+
"title attribute on your links."
|
157 |
+
msgstr ""
|
158 |
+
"Links são exibidos automaticamente com o atributo titulo (por padrão isso "
|
159 |
+
"exibe o texto\n"
|
160 |
+
"\t\t\tque você linkou), essa opção permite que você desative a inserção do "
|
161 |
+
"atributo titulo em seus links."
|
162 |
+
|
163 |
+
#: ThirstyAdminPage.php:214
|
164 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
165 |
+
msgstr "Desativar a inserção automatica da classe CSS do ThirstyAffiliates?"
|
166 |
+
|
167 |
+
#: ThirstyAdminPage.php:220
|
168 |
+
msgid ""
|
169 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" "
|
170 |
+
"is added\n"
|
171 |
+
"\t\t\tto the link and a CSS class called \"thirstylinkimg\" is added to "
|
172 |
+
"images (when inserting image affiliate links),\n"
|
173 |
+
"\t\t\tthis option disables the addition of both of these CSS classes."
|
174 |
+
msgstr ""
|
175 |
+
"Para facilitar com o estilo dos seus links afiliados uma classe CSS chamada "
|
176 |
+
"\"thirstylink\" é adicionada\n"
|
177 |
+
"\t\t\tao link e a uma classe chamada \"thistylinkimg\" é adicionada as "
|
178 |
+
"imagens (quando utilizado links de afiliados com imagem),\n"
|
179 |
+
"\t\t\tessa opção desativa a implementação dessas classes CSS."
|
180 |
+
|
181 |
+
#: ThirstyAdminPage.php:228
|
182 |
+
msgid "Disable slug shortening?"
|
183 |
+
msgstr "Desativar o encurtamento da slug?"
|
184 |
+
|
185 |
+
#: ThirstyAdminPage.php:234
|
186 |
+
msgid ""
|
187 |
+
"By default, ThirstyAffiliates removes superfluous words from your cloaked "
|
188 |
+
"link URLs, this option turns that feature off."
|
189 |
+
msgstr ""
|
190 |
+
"Por padrão, ThisrtyAffiliates remove palavras supérflua das URLs de seus "
|
191 |
+
"links camuflados, essa opção desativa essa característica."
|
192 |
+
|
193 |
+
#: ThirstyAdminPage.php:240
|
194 |
+
msgid "Disable buttons on the Visual editor?"
|
195 |
+
msgstr "Desativar botões no Editor Visual?"
|
196 |
+
|
197 |
+
#: ThirstyAdminPage.php:246
|
198 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
199 |
+
msgstr "Esconder os botões da ThirstyAffiliates do Editor Visual."
|
200 |
+
|
201 |
+
#: ThirstyAdminPage.php:252
|
202 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
203 |
+
msgstr "Desativar botões no editor de texto/quicktags?"
|
204 |
+
|
205 |
+
#: ThirstyAdminPage.php:258
|
206 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
207 |
+
msgstr "Esconder o botão da ThirstyAffiliates no Editor Visual."
|
208 |
+
|
209 |
+
#: ThirstyAdminPage.php:264
|
210 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
211 |
+
msgstr ""
|
212 |
+
"Atributos rel adicionais para serem adicionados aos links durante a inserção "
|
213 |
+
"dos links: "
|
214 |
+
|
215 |
+
#: ThirstyAdminPage.php:270
|
216 |
+
msgid ""
|
217 |
+
"Allows you to add extra tags into the rel= attribute when links are inserted."
|
218 |
+
msgstr ""
|
219 |
+
"Permite que você adicione tags extras no atributo rel= quando os links são "
|
220 |
+
"inseridos."
|
221 |
+
|
222 |
+
#: ThirstyAdminPage.php:284
|
223 |
+
msgid "Save All Changes"
|
224 |
+
msgstr "Salvar Todos as Alterações"
|
225 |
+
|
226 |
+
#: ThirstyAdminPage.php:285
|
227 |
+
msgid "Save & Force Link Rebuild"
|
228 |
+
msgstr "Salvar & Forçar Reconstrução de Links"
|
229 |
+
|
230 |
+
#: ThirstyAdminPage.php:292
|
231 |
+
msgid "Plugin Information"
|
232 |
+
msgstr "Informações do Plugin"
|
233 |
+
|
234 |
+
#: ThirstyAdminPage.php:305
|
235 |
+
msgid "Visit Our Website"
|
236 |
+
msgstr "Visite Nosso Site"
|
237 |
+
|
238 |
+
#: ThirstyAdminPage.php:306
|
239 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
240 |
+
msgstr "Navegue pelas Extensões da ThirstyAffiliates"
|
241 |
+
|
242 |
+
#: ThirstyAdminPage.php:307
|
243 |
+
msgid "Join Our Affiliate Program"
|
244 |
+
msgstr "Junte-se ao Nosso Programa de Afiliados"
|
245 |
+
|
246 |
+
#: ThirstyAdminPage.php:307
|
247 |
+
#, php-format
|
248 |
+
msgid "(up to 50% commissions)"
|
249 |
+
msgstr "(ate 50% comissão)"
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:308
|
252 |
+
msgid "Like us on Facebook"
|
253 |
+
msgstr "Curta-nos no Facebook"
|
254 |
+
|
255 |
+
#: ThirstyAdminPage.php:309
|
256 |
+
msgid "Follow us on Twitter"
|
257 |
+
msgstr "Siga-nos no Twitter"
|
258 |
+
|
259 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
260 |
+
msgid "DEBUG: "
|
261 |
+
msgstr "DEBUG:"
|
262 |
+
|
263 |
+
#: ThirstyAdminPage.php:382
|
264 |
+
msgid ""
|
265 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
266 |
+
"\t\t\tyour"
|
267 |
+
msgstr ""
|
268 |
+
"ThirstAffiliates requer links permanentes bonitos, por favor\n"
|
269 |
+
"\t\t\taltere o seu"
|
270 |
+
|
271 |
+
#: ThirstyAdminPage.php:383
|
272 |
+
msgid "Permalink settings"
|
273 |
+
msgstr "Configuração dos Links Permanentes"
|
274 |
+
|
275 |
+
#: ThirstyAdminPage.php:383
|
276 |
+
msgid "to something other than default."
|
277 |
+
msgstr "para outra coisa além do padrão."
|
278 |
+
|
279 |
+
#: ThirstyAdminPage.php:383
|
280 |
+
msgid "Dismiss"
|
281 |
+
msgstr "Descartar"
|
282 |
+
|
283 |
+
#: ThirstyAdminPage.php:414
|
284 |
+
msgid "Export/Import Global Settings"
|
285 |
+
msgstr "Configuração Global Exportar/Importar"
|
286 |
+
|
287 |
+
#: ThirstyAdminPage.php:417
|
288 |
+
msgid "Exporting Settings"
|
289 |
+
msgstr "Configuração de Exportação"
|
290 |
+
|
291 |
+
#: ThirstyAdminPage.php:420
|
292 |
+
msgid "Click export settings button"
|
293 |
+
msgstr "Clique no botão Configuração de Exportação"
|
294 |
+
|
295 |
+
#: ThirstyAdminPage.php:421
|
296 |
+
msgid "Copy the settings text code"
|
297 |
+
msgstr "Copie o códito de texto da configuração"
|
298 |
+
|
299 |
+
#: ThirstyAdminPage.php:422
|
300 |
+
msgid "Paste in the settings code to the destination site"
|
301 |
+
msgstr "Cole o texto do código de configuração no site de destino"
|
302 |
+
|
303 |
+
#: ThirstyAdminPage.php:426
|
304 |
+
msgid "Importing Settings"
|
305 |
+
msgstr "Configuração de Importação"
|
306 |
+
|
307 |
+
#: ThirstyAdminPage.php:429
|
308 |
+
msgid "Click import settings button"
|
309 |
+
msgstr "Clique no botão Configuração de Importação"
|
310 |
+
|
311 |
+
#: ThirstyAdminPage.php:430
|
312 |
+
msgid "Paste the settings text code ( From other site )"
|
313 |
+
msgstr "Cole o texto do código de configuração (De outro site)"
|
314 |
+
|
315 |
+
#: ThirstyAdminPage.php:431
|
316 |
+
msgid "Click import global settings button"
|
317 |
+
msgstr "Clique no botão de configuração global"
|
318 |
+
|
319 |
+
#: ThirstyAdminPage.php:436
|
320 |
+
msgid "Export Settings"
|
321 |
+
msgstr "Configurações de Exportação"
|
322 |
+
|
323 |
+
#: ThirstyAdminPage.php:437
|
324 |
+
msgid "Import Settings"
|
325 |
+
msgstr "Configurações de Importação"
|
326 |
+
|
327 |
+
#: ThirstyAdminPage.php:442
|
328 |
+
msgid "Import Global Settings"
|
329 |
+
msgstr "Importar Configurações Globais"
|
330 |
+
|
331 |
+
#: ThirstyAdminPage.php:504
|
332 |
+
msgid "Failed to decode settings string"
|
333 |
+
msgstr "Falha ao decodificar o string de configuração"
|
334 |
+
|
335 |
+
#: ThirstyAdminPage.php:511
|
336 |
+
msgid "Failed to unserialize settings string"
|
337 |
+
msgstr "Falha ao desserializar a string de configuração"
|
338 |
+
|
339 |
+
#: ThirstyShortcode.php:86
|
340 |
+
msgid ""
|
341 |
+
"SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please "
|
342 |
+
"check your short code!"
|
343 |
+
msgstr ""
|
344 |
+
"ERRO DE SHORTCODE: ThirstyAffiliates não conseguiu detectar um id válido "
|
345 |
+
"para o link, por favor verifique seu shortcode!"
|
346 |
+
|
347 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235
|
348 |
+
#: thirstyaffiliates.php:1892
|
349 |
+
msgid "Link Categories"
|
350 |
+
msgstr "Categorias do Link"
|
351 |
+
|
352 |
+
#: thirstyaffiliates.php:53
|
353 |
+
msgid "Link Category"
|
354 |
+
msgstr "Categoria do Link"
|
355 |
+
|
356 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
357 |
+
msgid "Affiliate Links"
|
358 |
+
msgstr "Link de Afiliados"
|
359 |
+
|
360 |
+
#: thirstyaffiliates.php:69
|
361 |
+
msgid "Affiliate Link"
|
362 |
+
msgstr "Link de Afiliado"
|
363 |
+
|
364 |
+
#: thirstyaffiliates.php:70
|
365 |
+
msgid "Add New Affiliate Link"
|
366 |
+
msgstr "Adicionar Novo Link de Afiliado"
|
367 |
+
|
368 |
+
#: thirstyaffiliates.php:71
|
369 |
+
msgid "Edit Affiliate Link"
|
370 |
+
msgstr "Editar Link de Afiliado"
|
371 |
+
|
372 |
+
#: thirstyaffiliates.php:72
|
373 |
+
msgid "View Affiliate Link"
|
374 |
+
msgstr "Ver Link de Afiliado"
|
375 |
+
|
376 |
+
#: thirstyaffiliates.php:73
|
377 |
+
msgid "Search Affiliate Links"
|
378 |
+
msgstr "Buscar Link de Afiliado"
|
379 |
+
|
380 |
+
#: thirstyaffiliates.php:74
|
381 |
+
msgid "No Affiliate Links found!"
|
382 |
+
msgstr "Não encontramos nenhum link de afiliado!"
|
383 |
+
|
384 |
+
#: thirstyaffiliates.php:75
|
385 |
+
msgid "No Affiliate Links found in trash"
|
386 |
+
msgstr "Nenhum link de afiliado encontrado no lixo"
|
387 |
+
|
388 |
+
#: thirstyaffiliates.php:77
|
389 |
+
msgid "All Affiliate Links"
|
390 |
+
msgstr "Todos Links de Afiliados"
|
391 |
+
|
392 |
+
#: thirstyaffiliates.php:79
|
393 |
+
msgid "ThirstyAffiliates affiliate links"
|
394 |
+
msgstr "Links de Afiliados ThirstyAffiliates"
|
395 |
+
|
396 |
+
#: thirstyaffiliates.php:504
|
397 |
+
msgid "Visit Add-on Page"
|
398 |
+
msgstr "Visitar Página das Extensões"
|
399 |
+
|
400 |
+
#: thirstyaffiliates.php:508
|
401 |
+
msgid "View all available add-ons →"
|
402 |
+
msgstr "Ver todas as extensões disponíveis →"
|
403 |
+
|
404 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
405 |
+
msgid "Override the default redirection type for this link:"
|
406 |
+
msgstr "Substituir o tipo de redirecionamento padrão para esse link:"
|
407 |
+
|
408 |
+
#: thirstyaffiliates.php:568
|
409 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
410 |
+
msgstr ""
|
411 |
+
"ATENÇÂO: Porfavor salve seu link depois de adicionar ou remover imagens."
|
412 |
+
|
413 |
+
#: thirstyaffiliates.php:569
|
414 |
+
msgid "publish"
|
415 |
+
msgstr "publicar"
|
416 |
+
|
417 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
418 |
+
msgid "Save"
|
419 |
+
msgstr "Salvar"
|
420 |
+
|
421 |
+
#: thirstyaffiliates.php:571
|
422 |
+
msgid "Save Link"
|
423 |
+
msgstr "Salvar Link"
|
424 |
+
|
425 |
+
#: thirstyaffiliates.php:575
|
426 |
+
msgid "Delete Permanently"
|
427 |
+
msgstr "Deletar Permanentemente"
|
428 |
+
|
429 |
+
#: thirstyaffiliates.php:577
|
430 |
+
msgid "Move to Trash"
|
431 |
+
msgstr "Mover para o Lixo"
|
432 |
+
|
433 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
434 |
+
msgid "Link Name:"
|
435 |
+
msgstr "Nome do Link:"
|
436 |
+
|
437 |
+
#: thirstyaffiliates.php:595
|
438 |
+
msgid "Link ID:"
|
439 |
+
msgstr "ID do Link:"
|
440 |
+
|
441 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
442 |
+
msgid "Destination URL:"
|
443 |
+
msgstr "URL de Destino:"
|
444 |
+
|
445 |
+
#: thirstyaffiliates.php:632
|
446 |
+
msgid "Cloaked URL:"
|
447 |
+
msgstr "URL Camuflada:"
|
448 |
+
|
449 |
+
#: thirstyaffiliates.php:633
|
450 |
+
msgid "Edit Slug"
|
451 |
+
msgstr "Editar Slug"
|
452 |
+
|
453 |
+
#: thirstyaffiliates.php:633
|
454 |
+
msgid "Visit Link"
|
455 |
+
msgstr "Visitar Link"
|
456 |
+
|
457 |
+
#: thirstyaffiliates.php:638
|
458 |
+
msgid "No follow this link?:"
|
459 |
+
msgstr "No follow neste link?:"
|
460 |
+
|
461 |
+
#: thirstyaffiliates.php:640
|
462 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
463 |
+
msgstr ""
|
464 |
+
"Adicionar a tag rel=\"nofollow\" para que os motores de buscas não passem "
|
465 |
+
"links sujos"
|
466 |
+
|
467 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
468 |
+
msgid "Open this link in new window?"
|
469 |
+
msgstr "Abrir este link em uma nova janela?"
|
470 |
+
|
471 |
+
#: thirstyaffiliates.php:647
|
472 |
+
msgid "Opens links in a new window when clicked on"
|
473 |
+
msgstr "Abre o link em uma nova janela quando clicado"
|
474 |
+
|
475 |
+
#: thirstyaffiliates.php:665
|
476 |
+
msgid "Add Image To Affiliate Link"
|
477 |
+
msgstr "Adicionar Imagem no Link de Afiliado"
|
478 |
+
|
479 |
+
#: thirstyaffiliates.php:665
|
480 |
+
msgid "Add To Affiliate Link"
|
481 |
+
msgstr "Adicionar para Link de Afiliado"
|
482 |
+
|
483 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
484 |
+
msgid "Upload/Insert"
|
485 |
+
msgstr "Upload/Inserir"
|
486 |
+
|
487 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
488 |
+
msgid "Upload/Insert images"
|
489 |
+
msgstr "Upload/Inserir Imagens"
|
490 |
+
|
491 |
+
#: thirstyaffiliates.php:701
|
492 |
+
msgid "Remove This Image"
|
493 |
+
msgstr "Remover Esta Imagem"
|
494 |
+
|
495 |
+
#: thirstyaffiliates.php:1026
|
496 |
+
msgid "Open the ThirstyAffiliates link picker"
|
497 |
+
msgstr "Abrir o ThirstyAffiliates seletor de Link"
|
498 |
+
|
499 |
+
#: thirstyaffiliates.php:1030
|
500 |
+
msgid "Open quick add affiliate link dialog"
|
501 |
+
msgstr "Abrir o dialogo da adição rápida para link de afiliados"
|
502 |
+
|
503 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
504 |
+
msgid "Insert Image Link"
|
505 |
+
msgstr "Inserir Link na Imagem"
|
506 |
+
|
507 |
+
#: thirstyaffiliates.php:1261
|
508 |
+
msgid "Insert Plain Link"
|
509 |
+
msgstr "Inseir Link Plano"
|
510 |
+
|
511 |
+
#: thirstyaffiliates.php:1262
|
512 |
+
msgid "Insert Shortcode"
|
513 |
+
msgstr "Inserir Shortcode"
|
514 |
+
|
515 |
+
#: thirstyaffiliates.php:1270
|
516 |
+
msgid "Sorry, no affiliate links found."
|
517 |
+
msgstr "Desculpe, nenhum link de afiliado encontrado."
|
518 |
+
|
519 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
520 |
+
msgid "Affiliate Link Picker"
|
521 |
+
msgstr "Seletor de Links de Afiliado"
|
522 |
+
|
523 |
+
#: thirstyaffiliates.php:1601
|
524 |
+
msgid "Search ..."
|
525 |
+
msgstr "Buscar ..."
|
526 |
+
|
527 |
+
#: thirstyaffiliates.php:1810
|
528 |
+
msgid "http:// or https:// is required"
|
529 |
+
msgstr "http:// ou https:// é obrigatório"
|
530 |
+
|
531 |
+
#: thirstyaffiliates.php:1819
|
532 |
+
msgid "No follow this link?"
|
533 |
+
msgstr "No follow neste link?"
|
534 |
+
|
535 |
+
#: thirstyaffiliates.php:1834
|
536 |
+
msgid "Redirect Type"
|
537 |
+
msgstr "Tipo de Redirecionamento"
|
538 |
+
|
539 |
+
#: thirstyaffiliates.php:1843
|
540 |
+
msgid " (Default)"
|
541 |
+
msgstr "(Padrão)"
|
542 |
+
|
543 |
+
#: thirstyaffiliates.php:1893
|
544 |
+
msgid ""
|
545 |
+
"You must select a link category as you set the general setting to include "
|
546 |
+
"category on the link"
|
547 |
+
msgstr ""
|
548 |
+
"Você deve selecionar uma categoria já que você definiu nas configurações "
|
549 |
+
"gerais a inclusão de categorias nos links."
|
550 |
+
|
551 |
+
#: thirstyaffiliates.php:1894
|
552 |
+
msgid "Select categories..."
|
553 |
+
msgstr "Selecionar categorias..."
|
554 |
+
|
555 |
+
#: thirstyaffiliates.php:1910
|
556 |
+
msgid "Add Link"
|
557 |
+
msgstr "Adicionar Link"
|
558 |
+
|
559 |
+
#: thirstyaffiliates.php:1911
|
560 |
+
msgid "Add Link & Insert Into Post"
|
561 |
+
msgstr "Adicionar Link & Inserir no Post"
|
562 |
+
|
563 |
+
#: thirstyaffiliates.php:1951
|
564 |
+
msgid "You don't have appropriate permission to perform this action"
|
565 |
+
msgstr "Você não tem permissão suficiente para realizar essa ação"
|
566 |
+
|
567 |
+
#: thirstyaffiliates.php:1980
|
568 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
569 |
+
msgstr "Erro do Servidor: Alguns campos não tem valores apropriados"
|
570 |
+
|
571 |
+
#: thirstyaffiliates.php:2006
|
572 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
573 |
+
msgstr "Erro do Servidor: Falha ao inserir dinamicamente um novo post"
|
574 |
+
|
575 |
+
#: thirstyaffiliates.php:2035
|
576 |
+
msgid ""
|
577 |
+
"Server Error: Failed to update meta data of recently dynamically created post"
|
578 |
+
msgstr ""
|
579 |
+
"Erro do Servidor: Falha ao atualizar os dados para o post criado "
|
580 |
+
"dinamicamente recentemente."
|
581 |
+
|
582 |
+
#: thirstyaffiliates.php:2111
|
583 |
+
msgid "Link ID"
|
584 |
+
msgstr "ID do Link"
|
languages/thirstyaffiliates-ru_RU.mo
ADDED
Binary file
|
languages/thirstyaffiliates-ru_RU.po
ADDED
@@ -0,0 +1,581 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: thirstyaffiliates\n"
|
4 |
+
"POT-Creation-Date: 2015-07-09 00:27+0800\n"
|
5 |
+
"PO-Revision-Date: 2015-07-28 17:05+0300\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Extrim25 <extrim16@gmail.com>\n"
|
8 |
+
"Language: ru_RU\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.3\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: ThirstyAddonPage.php:10
|
20 |
+
msgid "Add-ons"
|
21 |
+
msgstr "Аддоны"
|
22 |
+
|
23 |
+
#: ThirstyAddonPage.php:22 ThirstyAdminPage.php:22
|
24 |
+
msgid "You do not have suffifient permissions to access this page."
|
25 |
+
msgstr "У вас нет достаточных прав для доступа к этой странице."
|
26 |
+
|
27 |
+
#: ThirstyAddonPage.php:28
|
28 |
+
msgid "Turbo Charge ThirstyAffiliates With These Add-ons"
|
29 |
+
msgstr "Супер усиление ThirstyAffiliates при помощи этих аддонов"
|
30 |
+
|
31 |
+
#: ThirstyAddonPage.php:46
|
32 |
+
msgid "Visit Add-on Page →"
|
33 |
+
msgstr "Посетите страницу аддона →"
|
34 |
+
|
35 |
+
#: ThirstyAdminPage.php:11 thirstyaffiliates.php:970
|
36 |
+
msgid "Settings"
|
37 |
+
msgstr "Настройки"
|
38 |
+
|
39 |
+
#: ThirstyAdminPage.php:77
|
40 |
+
msgid "Settings updated."
|
41 |
+
msgstr "Настройки обновлены."
|
42 |
+
|
43 |
+
#: ThirstyAdminPage.php:78
|
44 |
+
msgid "Links rebuilt."
|
45 |
+
msgstr "Обновить ссылки."
|
46 |
+
|
47 |
+
#: ThirstyAdminPage.php:84
|
48 |
+
msgid "General Settings"
|
49 |
+
msgstr "Общие настройки"
|
50 |
+
|
51 |
+
#: ThirstyAdminPage.php:88
|
52 |
+
msgid "Link Prefix:"
|
53 |
+
msgstr "Префикс ссылки:"
|
54 |
+
|
55 |
+
#: ThirstyAdminPage.php:92
|
56 |
+
msgid "custom"
|
57 |
+
msgstr "произвольно"
|
58 |
+
|
59 |
+
#: ThirstyAdminPage.php:92
|
60 |
+
msgid " selected"
|
61 |
+
msgstr " выбранная"
|
62 |
+
|
63 |
+
#: ThirstyAdminPage.php:92
|
64 |
+
msgid "Custom"
|
65 |
+
msgstr "Произвольная"
|
66 |
+
|
67 |
+
#: ThirstyAdminPage.php:108
|
68 |
+
msgid "The prefix that comes before your cloaked link's slug.<br />eg. "
|
69 |
+
msgstr "Префикс, который идет перед спрятанной ссылкой.<br />Например: "
|
70 |
+
|
71 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
72 |
+
msgid "Warning:"
|
73 |
+
msgstr "Внимание:"
|
74 |
+
|
75 |
+
#: ThirstyAdminPage.php:110 ThirstyAdminPage.php:124
|
76 |
+
msgid ""
|
77 |
+
"Changing this setting after you've used links in a post could break those "
|
78 |
+
"links. Be careful!"
|
79 |
+
msgstr ""
|
80 |
+
"После изменения этой настройки существующие ссылки могут перестать работать. "
|
81 |
+
"Будьте осторожны!"
|
82 |
+
|
83 |
+
#: ThirstyAdminPage.php:116
|
84 |
+
msgid "Show Link Category in URL?"
|
85 |
+
msgstr "Отображать Категорию Ссылки в URL?"
|
86 |
+
|
87 |
+
#: ThirstyAdminPage.php:122
|
88 |
+
msgid "Show the selected category in the url. eg. "
|
89 |
+
msgstr "Отображать выбранную категорию ссылки в url. Например: "
|
90 |
+
|
91 |
+
#: ThirstyAdminPage.php:130
|
92 |
+
msgid "Disable \"uncategorized\" category on save?"
|
93 |
+
msgstr "Убрать категорию \"Без рубрики\" при сохранении?"
|
94 |
+
|
95 |
+
#: ThirstyAdminPage.php:136
|
96 |
+
msgid ""
|
97 |
+
"If the \"Show the selected category in the url\" option above is selected, "
|
98 |
+
"by default ThirstyAffiliates will add an \"uncategorized\" category to apply "
|
99 |
+
"to non-categorised links during save. If you disable this, it allows you to "
|
100 |
+
"have some links with categories in the URL and some without."
|
101 |
+
msgstr ""
|
102 |
+
"Если выбрана опция “Отображать Категорию Ссылки в URL” по умолчанию "
|
103 |
+
"ThirstyAffiliates добавляет префикс \"без категории (uncategorized)\" к "
|
104 |
+
"каждой ссылке для которой категория не выбрана во время ее редактирования. "
|
105 |
+
"Если вы не будете выбирать этот пункт, то некоторые ссылки будут иметь "
|
106 |
+
"категорию в URL, а некоторые нет."
|
107 |
+
|
108 |
+
#: ThirstyAdminPage.php:142
|
109 |
+
msgid "Link Redirect Type:"
|
110 |
+
msgstr "Тип ссылочного редиректа:"
|
111 |
+
|
112 |
+
#: ThirstyAdminPage.php:159
|
113 |
+
msgid ""
|
114 |
+
"This is the type of redirect ThirstyAffiliates will use to redirect the user "
|
115 |
+
"to your affiliate link."
|
116 |
+
msgstr ""
|
117 |
+
"Это тип редиректа, который ThirstyAffiliates будет использовать для "
|
118 |
+
"перенаправления на вашу аффилиативную ссылку."
|
119 |
+
|
120 |
+
#: ThirstyAdminPage.php:165
|
121 |
+
msgid "Use no follow on links?"
|
122 |
+
msgstr "Использовать nofollow для ссылок?"
|
123 |
+
|
124 |
+
#: ThirstyAdminPage.php:171
|
125 |
+
msgid "Add the nofollow attribute to links so search engines don't index them"
|
126 |
+
msgstr ""
|
127 |
+
"Добавить атрибут nofollow к ссылкам, для запрета индексации их поисковыми "
|
128 |
+
"системами"
|
129 |
+
|
130 |
+
#: ThirstyAdminPage.php:177
|
131 |
+
msgid "Open links in new window?"
|
132 |
+
msgstr "Открывать ссылки в новом окне?"
|
133 |
+
|
134 |
+
#: ThirstyAdminPage.php:183
|
135 |
+
msgid "Force the user to open links in a new window or tab"
|
136 |
+
msgstr "Принудительно открывать ссылки в новом окне"
|
137 |
+
|
138 |
+
#: ThirstyAdminPage.php:189
|
139 |
+
msgid "Revert to legacy image uploader?"
|
140 |
+
msgstr "Использовать старый загрузчик изображений?"
|
141 |
+
|
142 |
+
#: ThirstyAdminPage.php:195
|
143 |
+
msgid "Disable the new media uploader in favour of the old style uploader"
|
144 |
+
msgstr "Отключить новый загрузчик картинок и использовать вместо него старый"
|
145 |
+
|
146 |
+
#: ThirstyAdminPage.php:201
|
147 |
+
msgid "Disable title attribute output on link insertion?"
|
148 |
+
msgstr "Убирать атрибут title у ссылок?"
|
149 |
+
|
150 |
+
#: ThirstyAdminPage.php:207
|
151 |
+
msgid ""
|
152 |
+
"Links are automatically output with a title html attribute (by default this "
|
153 |
+
"shows the text\n"
|
154 |
+
"\t\t\tthat you have linked), this option lets you disable the output of the "
|
155 |
+
"title attribute on your links."
|
156 |
+
msgstr ""
|
157 |
+
"По умолчанию во все ссылки автоматически вставляется HTML атрибут title "
|
158 |
+
"(дефолтно отображает текст\n"
|
159 |
+
"\t\t\tссылки), эта опция позволит вам убрать его со своих ссылок."
|
160 |
+
|
161 |
+
#: ThirstyAdminPage.php:214
|
162 |
+
msgid "Disable automatic output of ThirstyAffiliates CSS classes?"
|
163 |
+
msgstr "Убрать CSS классы от ThirstyAffiliates?"
|
164 |
+
|
165 |
+
#: ThirstyAdminPage.php:220
|
166 |
+
msgid ""
|
167 |
+
"To help with styling your affiliate links a CSS class called \"thirstylink\" "
|
168 |
+
"is added\n"
|
169 |
+
"\t\t\tto the link and a CSS class called \"thirstylinkimg\" is added to "
|
170 |
+
"images (when inserting image affiliate links),\n"
|
171 |
+
"\t\t\tthis option disables the addition of both of these CSS classes."
|
172 |
+
msgstr ""
|
173 |
+
"Для улучшения вида к вашим аффилиативным ссылкасм добавляется CSS класс "
|
174 |
+
"“thirstylink\"\n"
|
175 |
+
"\t\t\tи класс \"thirstylinkimg\" для изображений (когда ссылка прикреплена к "
|
176 |
+
"изображению),\n"
|
177 |
+
"\t\t\tэта опция полностью убирает эти CSS классы."
|
178 |
+
|
179 |
+
#: ThirstyAdminPage.php:228
|
180 |
+
msgid "Disable slug shortening?"
|
181 |
+
msgstr "Отключить укорачивание ссылок?"
|
182 |
+
|
183 |
+
#: ThirstyAdminPage.php:234
|
184 |
+
msgid ""
|
185 |
+
"By default, ThirstyAffiliates removes superfluous words from your cloaked "
|
186 |
+
"link URLs, this option turns that feature off."
|
187 |
+
msgstr ""
|
188 |
+
"По умолчанию, ThirstyAffiliates убирает лишние слова из ваших скрытых URL, "
|
189 |
+
"эта опция отключает эту возможность."
|
190 |
+
|
191 |
+
#: ThirstyAdminPage.php:240
|
192 |
+
msgid "Disable buttons on the Visual editor?"
|
193 |
+
msgstr "Убрать кнопки добавления ссылки из Визуального редактора?"
|
194 |
+
|
195 |
+
#: ThirstyAdminPage.php:246
|
196 |
+
msgid "Hide the ThirstyAffiliates buttons on the Visual editor."
|
197 |
+
msgstr "Убирает кнопки от ThirstyAffiliates в Визуальном редакторе."
|
198 |
+
|
199 |
+
#: ThirstyAdminPage.php:252
|
200 |
+
msgid "Disable buttons on the Text/Quicktags editor?"
|
201 |
+
msgstr "Убрать кнопки из Текстового/Тегового редакторов?"
|
202 |
+
|
203 |
+
#: ThirstyAdminPage.php:258
|
204 |
+
msgid "Hide the ThirstyAffiliates buttons on the Text editor."
|
205 |
+
msgstr "Убрать кнопки от ThirstyAffiliates в Текстовом редакторе."
|
206 |
+
|
207 |
+
#: ThirstyAdminPage.php:264
|
208 |
+
msgid "Additional rel attribute tags to add during link insertion: "
|
209 |
+
msgstr "Дополнительные rel атрибут теги во время вставки ссылки: "
|
210 |
+
|
211 |
+
#: ThirstyAdminPage.php:270
|
212 |
+
msgid ""
|
213 |
+
"Allows you to add extra tags into the rel= attribute when links are inserted."
|
214 |
+
msgstr ""
|
215 |
+
"Позволяет добавлять дополнительные теги в rel= атрибут, во время вставки "
|
216 |
+
"ссылки."
|
217 |
+
|
218 |
+
#: ThirstyAdminPage.php:284
|
219 |
+
msgid "Save All Changes"
|
220 |
+
msgstr "Сохранить все изменения"
|
221 |
+
|
222 |
+
#: ThirstyAdminPage.php:285
|
223 |
+
msgid "Save & Force Link Rebuild"
|
224 |
+
msgstr "Сохранить и принудительно перестроить ссылки"
|
225 |
+
|
226 |
+
#: ThirstyAdminPage.php:292
|
227 |
+
msgid "Plugin Information"
|
228 |
+
msgstr "Информация о плагине"
|
229 |
+
|
230 |
+
#: ThirstyAdminPage.php:305
|
231 |
+
msgid "Visit Our Website"
|
232 |
+
msgstr "Посетите наш сайт"
|
233 |
+
|
234 |
+
#: ThirstyAdminPage.php:306
|
235 |
+
msgid "Browse ThirstyAffiliates Add-ons"
|
236 |
+
msgstr "Аддоны от ThirstyAffiliates"
|
237 |
+
|
238 |
+
#: ThirstyAdminPage.php:307
|
239 |
+
msgid "Join Our Affiliate Program"
|
240 |
+
msgstr "Вступайте в нашу Партнерскую Программу"
|
241 |
+
|
242 |
+
#: ThirstyAdminPage.php:307
|
243 |
+
#, php-format
|
244 |
+
msgid "(up to 50% commissions)"
|
245 |
+
msgstr "(комиссия вплоть до 50%)"
|
246 |
+
|
247 |
+
#: ThirstyAdminPage.php:308
|
248 |
+
msgid "Like us on Facebook"
|
249 |
+
msgstr "Лайкайте нас на Фейсбуке"
|
250 |
+
|
251 |
+
#: ThirstyAdminPage.php:309
|
252 |
+
msgid "Follow us on Twitter"
|
253 |
+
msgstr "Фоловьте нас в Twitter"
|
254 |
+
|
255 |
+
#: ThirstyAdminPage.php:319 thirstyaffiliates.php:600
|
256 |
+
msgid "DEBUG: "
|
257 |
+
msgstr "DEBUG: "
|
258 |
+
|
259 |
+
#: ThirstyAdminPage.php:382
|
260 |
+
msgid ""
|
261 |
+
"ThirstyAffiliates requires pretty permalinks, please change\n"
|
262 |
+
"\t\t\tyour"
|
263 |
+
msgstr ""
|
264 |
+
"ThirstyAffiliates нужны красивые постоянные ссылки, пожалуйста измените\n"
|
265 |
+
"\t\t\t свои"
|
266 |
+
|
267 |
+
#: ThirstyAdminPage.php:383
|
268 |
+
msgid "Permalink settings"
|
269 |
+
msgstr "Настройки постоянных ссылок"
|
270 |
+
|
271 |
+
#: ThirstyAdminPage.php:383
|
272 |
+
msgid "to something other than default."
|
273 |
+
msgstr "к чему-то другому чем по умолчанию."
|
274 |
+
|
275 |
+
#: ThirstyAdminPage.php:383
|
276 |
+
msgid "Dismiss"
|
277 |
+
msgstr "Отклонить"
|
278 |
+
|
279 |
+
#: ThirstyAdminPage.php:414
|
280 |
+
msgid "Export/Import Global Settings"
|
281 |
+
msgstr "Экспорт/Импорт глобальных настроек"
|
282 |
+
|
283 |
+
#: ThirstyAdminPage.php:417
|
284 |
+
msgid "Exporting Settings"
|
285 |
+
msgstr "Экспорт Настроек"
|
286 |
+
|
287 |
+
#: ThirstyAdminPage.php:420
|
288 |
+
msgid "Click export settings button"
|
289 |
+
msgstr "Нажмите на кнопку \"Экспорт настроек\""
|
290 |
+
|
291 |
+
#: ThirstyAdminPage.php:421
|
292 |
+
msgid "Copy the settings text code"
|
293 |
+
msgstr "Скопируйте текстовой код настроек"
|
294 |
+
|
295 |
+
#: ThirstyAdminPage.php:422
|
296 |
+
msgid "Paste in the settings code to the destination site"
|
297 |
+
msgstr "Вставьте код на другом сайте"
|
298 |
+
|
299 |
+
#: ThirstyAdminPage.php:426
|
300 |
+
msgid "Importing Settings"
|
301 |
+
msgstr "Импорт настроек"
|
302 |
+
|
303 |
+
#: ThirstyAdminPage.php:429
|
304 |
+
msgid "Click import settings button"
|
305 |
+
msgstr "Нажми на кнопку \"Импорт настроек\""
|
306 |
+
|
307 |
+
#: ThirstyAdminPage.php:430
|
308 |
+
msgid "Paste the settings text code ( From other site )"
|
309 |
+
msgstr "Вставьте текстовой код настроек (С Другого сайта)"
|
310 |
+
|
311 |
+
#: ThirstyAdminPage.php:431
|
312 |
+
msgid "Click import global settings button"
|
313 |
+
msgstr "Нажмите на \"Импорт глобальных настроек\""
|
314 |
+
|
315 |
+
#: ThirstyAdminPage.php:436
|
316 |
+
msgid "Export Settings"
|
317 |
+
msgstr "Экспорт настроек"
|
318 |
+
|
319 |
+
#: ThirstyAdminPage.php:437
|
320 |
+
msgid "Import Settings"
|
321 |
+
msgstr "Импорт настроек"
|
322 |
+
|
323 |
+
#: ThirstyAdminPage.php:442
|
324 |
+
msgid "Import Global Settings"
|
325 |
+
msgstr "Импорт глобальных настроек"
|
326 |
+
|
327 |
+
#: ThirstyAdminPage.php:504
|
328 |
+
msgid "Failed to decode settings string"
|
329 |
+
msgstr "Ошибка при декодировании настроек"
|
330 |
+
|
331 |
+
#: ThirstyAdminPage.php:511
|
332 |
+
msgid "Failed to unserialize settings string"
|
333 |
+
msgstr "Ошибка при десериализации настроек"
|
334 |
+
|
335 |
+
#: ThirstyShortcode.php:86
|
336 |
+
msgid ""
|
337 |
+
"SHORTCODE ERROR: ThirstyAffiliates did not detect a valid link id, please "
|
338 |
+
"check your short code!"
|
339 |
+
msgstr ""
|
340 |
+
"ОШИБКА ШОРТКОДА: ThirstyAffiliates не обнаружил валидной ID ссылки, "
|
341 |
+
"пожалуйста, проверьте ваш шорткод!"
|
342 |
+
|
343 |
+
#: thirstyaffiliates.php:52 thirstyaffiliates.php:235
|
344 |
+
#: thirstyaffiliates.php:1892
|
345 |
+
msgid "Link Categories"
|
346 |
+
msgstr "Категории ссылок"
|
347 |
+
|
348 |
+
#: thirstyaffiliates.php:53
|
349 |
+
msgid "Link Category"
|
350 |
+
msgstr "Категория ссылки"
|
351 |
+
|
352 |
+
#: thirstyaffiliates.php:68 thirstyaffiliates.php:76
|
353 |
+
msgid "Affiliate Links"
|
354 |
+
msgstr "Аффилиативные ссылки"
|
355 |
+
|
356 |
+
#: thirstyaffiliates.php:69
|
357 |
+
msgid "Affiliate Link"
|
358 |
+
msgstr "Аффилиативная ссылка"
|
359 |
+
|
360 |
+
#: thirstyaffiliates.php:70
|
361 |
+
msgid "Add New Affiliate Link"
|
362 |
+
msgstr "Добавить новую аффилиативную ссылку"
|
363 |
+
|
364 |
+
#: thirstyaffiliates.php:71
|
365 |
+
msgid "Edit Affiliate Link"
|
366 |
+
msgstr "Отредактировать Аффилиативную ссылку"
|
367 |
+
|
368 |
+
#: thirstyaffiliates.php:72
|
369 |
+
msgid "View Affiliate Link"
|
370 |
+
msgstr "Посмотреть Аффилиативную ссылку"
|
371 |
+
|
372 |
+
#: thirstyaffiliates.php:73
|
373 |
+
msgid "Search Affiliate Links"
|
374 |
+
msgstr "Поиск аффилиативных ссылок"
|
375 |
+
|
376 |
+
#: thirstyaffiliates.php:74
|
377 |
+
msgid "No Affiliate Links found!"
|
378 |
+
msgstr "Не найдено Аффилиативных ссылок!"
|
379 |
+
|
380 |
+
#: thirstyaffiliates.php:75
|
381 |
+
msgid "No Affiliate Links found in trash"
|
382 |
+
msgstr "Аффилиативных ссылок в корзине не обнаружено"
|
383 |
+
|
384 |
+
#: thirstyaffiliates.php:77
|
385 |
+
msgid "All Affiliate Links"
|
386 |
+
msgstr "Все Аффилиативные ссылки"
|
387 |
+
|
388 |
+
#: thirstyaffiliates.php:79
|
389 |
+
msgid "ThirstyAffiliates affiliate links"
|
390 |
+
msgstr "ThirstyAffiliates аффилиативные ссылки"
|
391 |
+
|
392 |
+
#: thirstyaffiliates.php:504
|
393 |
+
msgid "Visit Add-on Page"
|
394 |
+
msgstr "Посетить страницу аддона"
|
395 |
+
|
396 |
+
#: thirstyaffiliates.php:508
|
397 |
+
msgid "View all available add-ons →"
|
398 |
+
msgstr "Отобразить все доступные аддоны →"
|
399 |
+
|
400 |
+
#: thirstyaffiliates.php:526 thirstyaffiliates.php:1835
|
401 |
+
msgid "Override the default redirection type for this link:"
|
402 |
+
msgstr "Перезаписать тип редиректа по умолчанию для этой ссылки:"
|
403 |
+
|
404 |
+
#: thirstyaffiliates.php:568
|
405 |
+
msgid "NOTE: Please save your link after adding or removing images"
|
406 |
+
msgstr ""
|
407 |
+
"ВНИМАНИЕ: Пожалуйста, сохраните свою ссылку перед добавление или удалением "
|
408 |
+
"изображений"
|
409 |
+
|
410 |
+
#: thirstyaffiliates.php:569
|
411 |
+
msgid "publish"
|
412 |
+
msgstr "опубликовать"
|
413 |
+
|
414 |
+
#: thirstyaffiliates.php:570 thirstyaffiliates.php:633
|
415 |
+
msgid "Save"
|
416 |
+
msgstr "Сохранить"
|
417 |
+
|
418 |
+
#: thirstyaffiliates.php:571
|
419 |
+
msgid "Save Link"
|
420 |
+
msgstr "Сохранить ссылку"
|
421 |
+
|
422 |
+
#: thirstyaffiliates.php:575
|
423 |
+
msgid "Delete Permanently"
|
424 |
+
msgstr "Удалить"
|
425 |
+
|
426 |
+
#: thirstyaffiliates.php:577
|
427 |
+
msgid "Move to Trash"
|
428 |
+
msgstr "Отправить в корзину"
|
429 |
+
|
430 |
+
#: thirstyaffiliates.php:595 thirstyaffiliates.php:1803
|
431 |
+
msgid "Link Name:"
|
432 |
+
msgstr "Имя ссылки:"
|
433 |
+
|
434 |
+
#: thirstyaffiliates.php:595
|
435 |
+
msgid "Link ID:"
|
436 |
+
msgstr "ID ссылки:"
|
437 |
+
|
438 |
+
#: thirstyaffiliates.php:627 thirstyaffiliates.php:1809
|
439 |
+
msgid "Destination URL:"
|
440 |
+
msgstr "URL назначения:"
|
441 |
+
|
442 |
+
#: thirstyaffiliates.php:632
|
443 |
+
msgid "Cloaked URL:"
|
444 |
+
msgstr "Спрятанный URL:"
|
445 |
+
|
446 |
+
#: thirstyaffiliates.php:633
|
447 |
+
msgid "Edit Slug"
|
448 |
+
msgstr "Отредактировать ссылку"
|
449 |
+
|
450 |
+
#: thirstyaffiliates.php:633
|
451 |
+
msgid "Visit Link"
|
452 |
+
msgstr "Перейти по ссылке"
|
453 |
+
|
454 |
+
#: thirstyaffiliates.php:638
|
455 |
+
msgid "No follow this link?:"
|
456 |
+
msgstr "Добавить nofollow?:"
|
457 |
+
|
458 |
+
#: thirstyaffiliates.php:640
|
459 |
+
msgid "Adds the rel=\"nofollow\" tag so search engines don't pass link juice"
|
460 |
+
msgstr ""
|
461 |
+
"Добавляет тег rel=\"nofollow\", чтобы поисковые системы не сливали вес "
|
462 |
+
"страницы по этой ссылке"
|
463 |
+
|
464 |
+
#: thirstyaffiliates.php:645 thirstyaffiliates.php:1826
|
465 |
+
msgid "Open this link in new window?"
|
466 |
+
msgstr "Открыть ссылку в новом окне?"
|
467 |
+
|
468 |
+
#: thirstyaffiliates.php:647
|
469 |
+
msgid "Opens links in a new window when clicked on"
|
470 |
+
msgstr "При нажатии открывает ссылку в новом окне"
|
471 |
+
|
472 |
+
#: thirstyaffiliates.php:665
|
473 |
+
msgid "Add Image To Affiliate Link"
|
474 |
+
msgstr "Добавить изображение к Аффилиативной ссылке"
|
475 |
+
|
476 |
+
#: thirstyaffiliates.php:665
|
477 |
+
msgid "Add To Affiliate Link"
|
478 |
+
msgstr "Добавить к Аффилиативной ссылке"
|
479 |
+
|
480 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:667
|
481 |
+
msgid "Upload/Insert"
|
482 |
+
msgstr "Загрузить/Вставить"
|
483 |
+
|
484 |
+
#: thirstyaffiliates.php:665 thirstyaffiliates.php:668
|
485 |
+
msgid "Upload/Insert images"
|
486 |
+
msgstr "Загрузить/Вставить изображения"
|
487 |
+
|
488 |
+
#: thirstyaffiliates.php:701
|
489 |
+
msgid "Remove This Image"
|
490 |
+
msgstr "Убрать это изображение"
|
491 |
+
|
492 |
+
#: thirstyaffiliates.php:1026
|
493 |
+
msgid "Open the ThirstyAffiliates link picker"
|
494 |
+
msgstr "Открыть выборщик ссылок от ThirstyAffiliates"
|
495 |
+
|
496 |
+
#: thirstyaffiliates.php:1030
|
497 |
+
msgid "Open quick add affiliate link dialog"
|
498 |
+
msgstr "Открыть диалог для быстрого добавления ссылки"
|
499 |
+
|
500 |
+
#: thirstyaffiliates.php:1241 thirstyaffiliates.php:1242
|
501 |
+
msgid "Insert Image Link"
|
502 |
+
msgstr "Вставить Ссылку в картинке"
|
503 |
+
|
504 |
+
#: thirstyaffiliates.php:1261
|
505 |
+
msgid "Insert Plain Link"
|
506 |
+
msgstr "Вставить обычную ссылку"
|
507 |
+
|
508 |
+
#: thirstyaffiliates.php:1262
|
509 |
+
msgid "Insert Shortcode"
|
510 |
+
msgstr "Вставить Шорткод"
|
511 |
+
|
512 |
+
#: thirstyaffiliates.php:1270
|
513 |
+
msgid "Sorry, no affiliate links found."
|
514 |
+
msgstr "Извините, аффилиативных ссылок не найдено."
|
515 |
+
|
516 |
+
#: thirstyaffiliates.php:1598 thirstyaffiliates.php:1796
|
517 |
+
msgid "Affiliate Link Picker"
|
518 |
+
msgstr "Выборщик афилиативных ссылок"
|
519 |
+
|
520 |
+
#: thirstyaffiliates.php:1601
|
521 |
+
msgid "Search ..."
|
522 |
+
msgstr "Поиск …"
|
523 |
+
|
524 |
+
#: thirstyaffiliates.php:1810
|
525 |
+
msgid "http:// or https:// is required"
|
526 |
+
msgstr "Должны присутствовать http:// или https://"
|
527 |
+
|
528 |
+
#: thirstyaffiliates.php:1819
|
529 |
+
msgid "No follow this link?"
|
530 |
+
msgstr "Добавить nofollow?"
|
531 |
+
|
532 |
+
#: thirstyaffiliates.php:1834
|
533 |
+
msgid "Redirect Type"
|
534 |
+
msgstr "Тип редиректа"
|
535 |
+
|
536 |
+
#: thirstyaffiliates.php:1843
|
537 |
+
msgid " (Default)"
|
538 |
+
msgstr " (По умолчанию)"
|
539 |
+
|
540 |
+
#: thirstyaffiliates.php:1893
|
541 |
+
msgid ""
|
542 |
+
"You must select a link category as you set the general setting to include "
|
543 |
+
"category on the link"
|
544 |
+
msgstr ""
|
545 |
+
"Вы должны выбрать категорию для ссылки, так как отмечена соответствующая "
|
546 |
+
"настройка"
|
547 |
+
|
548 |
+
#: thirstyaffiliates.php:1894
|
549 |
+
msgid "Select categories..."
|
550 |
+
msgstr "Выбрать категории..."
|
551 |
+
|
552 |
+
#: thirstyaffiliates.php:1910
|
553 |
+
msgid "Add Link"
|
554 |
+
msgstr "Добавить ссылку"
|
555 |
+
|
556 |
+
#: thirstyaffiliates.php:1911
|
557 |
+
msgid "Add Link & Insert Into Post"
|
558 |
+
msgstr "Добавить ссылку & Вставить в статью"
|
559 |
+
|
560 |
+
#: thirstyaffiliates.php:1951
|
561 |
+
msgid "You don't have appropriate permission to perform this action"
|
562 |
+
msgstr "У вас недостаточно полномочий для выполнения этого действия"
|
563 |
+
|
564 |
+
#: thirstyaffiliates.php:1980
|
565 |
+
msgid "Server Error: Some fields dont have appropriate values"
|
566 |
+
msgstr "Ошибка сервера: Некоторые поля имеют недопустимые значения"
|
567 |
+
|
568 |
+
#: thirstyaffiliates.php:2006
|
569 |
+
msgid "Server Error: Failed to dynamically insert new post"
|
570 |
+
msgstr "Ошибка сервера: Невозможно динамически вставить в статью"
|
571 |
+
|
572 |
+
#: thirstyaffiliates.php:2035
|
573 |
+
msgid ""
|
574 |
+
"Server Error: Failed to update meta data of recently dynamically created post"
|
575 |
+
msgstr ""
|
576 |
+
"Ошибка сервера: Невозможно обновить МЕТА данные недавно динамически "
|
577 |
+
"созданной статьи"
|
578 |
+
|
579 |
+
#: thirstyaffiliates.php:2111
|
580 |
+
msgid "Link ID"
|
581 |
+
msgstr "ID ссылки"
|
readme.txt
ADDED
@@ -0,0 +1,301 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== ThirstyAffiliates ===
|
2 |
+
Contributors: jkohlbach, RymeraWebCo, rymera01
|
3 |
+
Donate link:
|
4 |
+
Tags: thirstyaffiliates, thirsty affiliates, affiliate marketing, affiliate link management, link cloaking, affiliate links, affiliate link, affiliate link manager, manage affiliate links, affiliate link redirect, link cloak, link cloaker, link redirect
|
5 |
+
Requires at least: 3.4
|
6 |
+
Tested up to: 4.7.0
|
7 |
+
Stable tag: trunk
|
8 |
+
License: GPLv2 or later
|
9 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
+
|
11 |
+
Earn more with affiliate marketing using ThirstyAffiliates – the professional affiliate link management & link cloaking tool for affiliates.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
|
15 |
+
Website: http://thirstyaffiliates.com
|
16 |
+
PRO Add-ons: http://thirstyaffiliates.com/add-ons
|
17 |
+
|
18 |
+
ThirstyAffiliates empowers website owners with the tools they need to monetize their WordPress website with affiliate marketing.
|
19 |
+
|
20 |
+
It lets you administer your affiliate links, assists you with inserting them into your posts, pages and comments and gives you a central location in WordPress to manage all of your affiliate links.
|
21 |
+
|
22 |
+
ThirstyAffiliates will create pretty links from ugly affiliate links (aka link redirection or link cloaking) all the while giving you the double benefit of protecting your commissions from theft.
|
23 |
+
|
24 |
+
= Features at a glance =
|
25 |
+
|
26 |
+
* Inbuilt affiliate link shortening/link cloaking (yourwebsite.com/recommends/your-affiliate-link)
|
27 |
+
* Commission protecting affiliate link 301 redirection
|
28 |
+
* Customizable link URL prefixes – loads to choose from or use your own custom prefix
|
29 |
+
* Hierarchical link categorization to easily segment links
|
30 |
+
* Handy affiliate link picker tool (with full instant search capabilities) makes it easy to insert affiliate links in posts, pages and comments!
|
31 |
+
* Handy quick add tool lets you easily create new affiliate links without even leaving the post edit screen
|
32 |
+
* Show category slugs in link URLs
|
33 |
+
* DoFollow/NoFollow options (global or per link)
|
34 |
+
* Open in new window options (global or per link)
|
35 |
+
* Full importing and exporting support via standard WordPress tools
|
36 |
+
* Full backup compatibility via standard WordPress backup solutions
|
37 |
+
* Uses WordPress approved storage techniques – doesn't bloat your database with extra tables!
|
38 |
+
* Using the link picker insert affiliate links as standard links, shortcodes (great for adding classes for link styling), or pre-linked images.
|
39 |
+
* Add your graphics, banners and other images to affiliate links for easy insertion
|
40 |
+
|
41 |
+
= Want more PRO features? =
|
42 |
+
|
43 |
+
Some of our popular add-ons include:
|
44 |
+
|
45 |
+
* Autolinker - get massive increase in your affiliate income by automatically linking affiliate links to keywords throughout your site
|
46 |
+
* Stats - the insight you need to find out what links are popular on your site
|
47 |
+
* Google Click Tracking - adds the special Google Analytics Click Event code on your affiliate links as you insert them
|
48 |
+
* CSV Importer - import your links from other packages in simple CSV format
|
49 |
+
* Geolocations - geo target your visitors and redirect them to geographically appropriate alternative affiliate URLs, a great way to level up your income
|
50 |
+
* Scheduled Links - create special schedules for your affiliate links to automatically change the destination URL, great for sales running during a specific time period
|
51 |
+
|
52 |
+
[Check out all the ThirstyAffiliates Add-ons](http://thirstyaffiliates.com/add-ons)
|
53 |
+
|
54 |
+
== Installation ==
|
55 |
+
|
56 |
+
1. Upload the `thirstyaffiliates/` folder to the `/wp-content/plugins/` directory
|
57 |
+
1. Activate the plugin through the 'Plugins' menu in WordPress
|
58 |
+
1. Visit the new 'ThirstyAffiliates' menu and click 'Add New' to add an affiliate link.
|
59 |
+
1. Visit [http://thirstyaffiliates.com/](http://thirstyaffiliates.com/) for more information, add-ons and support.
|
60 |
+
|
61 |
+
== Frequently asked questions ==
|
62 |
+
|
63 |
+
= Help, my links aren't redirecting! It just brings up a 404 error. =
|
64 |
+
|
65 |
+
This is a common issue usually caused by another plugin or theme not flushing redirect rules correctly after setting up another custom post type.
|
66 |
+
|
67 |
+
To resolve the problem follow these steps:
|
68 |
+
|
69 |
+
1. Deactivate ThirstyAffiliates, don't worry your links are safely stored in the database.
|
70 |
+
1. Reactivate ThirstyAffiliates
|
71 |
+
1. Visit the Settings->Permalinks page and click save.
|
72 |
+
1. Go back to ThirstyAffiliates->All Affiliate Links and view one of the links, it should be redirecting properly.
|
73 |
+
|
74 |
+
= Are there any known conflicts? =
|
75 |
+
WordPress supports a very vibrant ecosystem of themes and plugins so from time to time it's expected that there will be some minor conflicts with other products.
|
76 |
+
|
77 |
+
Here is a list of known conflicts and their workarounds (if one exists):
|
78 |
+
|
79 |
+
**Bulletproof Security plugin - conflict with ThirstyAffiliates link picker not showing.**
|
80 |
+
|
81 |
+
Fix: add this to your .htaccess file in your WP root directory
|
82 |
+
`# Thirstyaffiliates skip/bypass rule
|
83 |
+
RewriteCond %{REQUEST_URI} ^/wp-content/plugins/thirstyaffiliates/ [NC]
|
84 |
+
RewriteRule . - [S=13]`
|
85 |
+
|
86 |
+
**WooThemes – minor conflict with image uploader being taken over by the theme. Happens with Canvas and some other WooThemes themes.**
|
87 |
+
|
88 |
+
Fix: add this to your functions.php in your theme:
|
89 |
+
`add_action( 'admin_enqueue_scripts', 'ta_remove_wf_media_assets' );
|
90 |
+
|
91 |
+
function ta_remove_wf_media_assets ( $hook ) {
|
92 |
+
if ( 'post.php' == $hook && 'thirstylink' == get_post_type() ) {
|
93 |
+
remove_action( 'admin_print_styles', 'woothemes_mlu_css', 0 );
|
94 |
+
remove_action( 'admin_print_scripts', 'woothemes_mlu_js', 0 );
|
95 |
+
}
|
96 |
+
} // End ta_remove_wf_media_assets()`
|
97 |
+
|
98 |
+
Thanks to Matty of WooThemes for the workaround.
|
99 |
+
|
100 |
+
== Screenshots ==
|
101 |
+
|
102 |
+
1. Affiliate link listing
|
103 |
+
|
104 |
+
2. Edit screen for a single affiliate link
|
105 |
+
|
106 |
+
3. The affiliate link picker dialog, shows up when you press the green 'aff' icon on any editor box
|
107 |
+
|
108 |
+
4. Insertion options for affiliate link in the affiliate link picker
|
109 |
+
|
110 |
+
5. Settings page
|
111 |
+
|
112 |
+
== Changelog ==
|
113 |
+
|
114 |
+
= 2.7.0 =
|
115 |
+
* Feature: Wildcard replace segments of links based on query string parameters
|
116 |
+
* Feature: Show the link category name on the link picker search box
|
117 |
+
* Improvement: Auto remove Yoast SEO meta box on link edit screen
|
118 |
+
* Bug Fix: 307 global redirect option doesn't seem to be working properly
|
119 |
+
* Bug Fix: On brand new installs the permalinks sometimes need flushing again
|
120 |
+
* Bug Fix: Link categories dropdown on Quick Add form not working
|
121 |
+
* Bug Fix: Description of imported images from amazon is not positioned properly
|
122 |
+
|
123 |
+
= 2.6.4 =
|
124 |
+
* Bug Fix: Make constant names non-case insensitive to support HipHop in HHVM environment
|
125 |
+
* Bug Fix: Notices relating to newwindow and nofollow showing everywhere
|
126 |
+
* Bug Fix: Custom prefix setting doesn't display or save when using language other than english
|
127 |
+
|
128 |
+
= 2.6.3 =
|
129 |
+
* Bug Fix: Fix critical issue with ajax permission check on function also used by Autolinker.
|
130 |
+
|
131 |
+
= 2.6.2 =
|
132 |
+
* Bug Fix: Notices on settings page, add-on page and on shortcodes
|
133 |
+
* Bug Fix: Security problem where non-admin account holders can access AJAX functions (thanks [James Golovich](http://www.pritect.net/))
|
134 |
+
|
135 |
+
= 2.6.1 =
|
136 |
+
* Translation: Russian (thanks to [Roman Sobol](http://ultimum.ru))
|
137 |
+
* Bug Fix: Squiggly brackets are being html encoded and not html decoded for display and redirection
|
138 |
+
* Bug Fix: Notice on link edit screens
|
139 |
+
* Bug Fix: URLs entered into the destination URL box are not being HTML decoded on redirect
|
140 |
+
* Bug Fix: Notices on saving
|
141 |
+
* Bug Fix: In the settings area when you set custom link prefix, the input box showing the custom prefix isn't shown properly after saving
|
142 |
+
* Bug Fix: linkclass backwards compatibility on shortcodes causing notices on some installs
|
143 |
+
|
144 |
+
= 2.6.0 =
|
145 |
+
* Feature: Added internationalisation and ability to add translations
|
146 |
+
* Translation: Indonesian (thanks [Mulyadi Subali](https://mulyadi.suba.li/))
|
147 |
+
* Translation: Brazilian Portugeuse (thanks [Gabriel Galvão](http://www.canalwp.com/))
|
148 |
+
* Translation: Italian (thanks [Marco Famà of Time Lapse Network](http://timelapsenetwork.com/))
|
149 |
+
* Translation: Spanish (thanks [Javier Marcilla of NinjaSEO](http://ninjaseo.es/))
|
150 |
+
* Translation: German (thanks to [Andre Wilimzig-Scholz of Brand and Heist](http://www.brandheist.de/))
|
151 |
+
|
152 |
+
= 2.5.0 =
|
153 |
+
* Feature: Allow user to specify link categories during Quick Add if category in slug preference is enabled. Enhanced the UI with a multi-select box.
|
154 |
+
* Feature: Add Link ID to the list view columns as the first column for easy reference
|
155 |
+
* Feature: Added import/export ability of Global settings to make it easy to copy pre-set settings from one site to another
|
156 |
+
|
157 |
+
= 2.4.12 =
|
158 |
+
* Bugfix: Rollback of link data merging bugfix from 2.4.10, caused some issues in data persistence in add-ons, will revisit this later
|
159 |
+
* Feature: Introduced an optional debug flag on edit screens to assist in debugging link data on sites in the wild
|
160 |
+
|
161 |
+
= 2.4.11 =
|
162 |
+
* Bugfix: Fixed a nasty character escaping bug that was wiping data on save in some instances.
|
163 |
+
|
164 |
+
= 2.4.10 =
|
165 |
+
* Bugfix: Additional data on thirsty data not appearing in fields on the edit page was accidentally being blown away, needed to merge data with existing on save
|
166 |
+
* Bugfix: Use the absolute path during media metadata creation when cloning an image from the media library (thanks Olaf)
|
167 |
+
* Bugfix: Moved the rewrite rule flushing into the activation functions as best practices have changed since
|
168 |
+
|
169 |
+
= 2.4.9 =
|
170 |
+
* Bugfix: Fix compatibility issue with some page builders
|
171 |
+
* Bugfix: Corrected bug with legacy media uploader script loading in the background when it shouldn't be
|
172 |
+
* Feature: Add new global setting for appending additional rel attributes to links during link insertion
|
173 |
+
* Bugfix: Fixed image attaching problem where URL would be malformed when duplicating an existing attachment
|
174 |
+
|
175 |
+
= 2.4.8 =
|
176 |
+
* Bugfix: Removed add-on notices from sidebar of edit screens. Causing too many issues, we'll revisit this later.
|
177 |
+
|
178 |
+
= 2.4.7 =
|
179 |
+
* Feature: Add ability to upload multiple images in one hit to affiliate links (thanks Mozie)
|
180 |
+
* Bugfix: Added mechanism to only download RSS feed of add-ons at most once per day instead of during each page load
|
181 |
+
* Other: Improved the look of the add-ons page and added meta box to link edit screens for add-on notices
|
182 |
+
|
183 |
+
= 2.4.6 =
|
184 |
+
* Feature: Add option to turn of auto selection of category during save process
|
185 |
+
* Feature: Show message to user if they have default permalinks selected (we require pretty permalinks)
|
186 |
+
* Feature: Added an admin function for showing global notices when there is a critical configuration problem
|
187 |
+
* Bugfix: Links without categories selected should still resolve even if the "show categories in URLs" option is enabled (thanks Olaf)
|
188 |
+
|
189 |
+
= 2.4.5 =
|
190 |
+
* Feature: Add 307 temporary redirection type
|
191 |
+
* Bugfix: Adding additional info to before redirect action to support upcoming new features in Stats add-on
|
192 |
+
|
193 |
+
= 2.4.4 =
|
194 |
+
* Bugfix: Notify the plain text editor of change event after link is returned
|
195 |
+
* Bugfix: Hardening up checks for when editor is not properly defined
|
196 |
+
* Bugfix: Added check to see if debug index is present before using it to prevent outputting notices when wp_debug is set to true, on the settings page
|
197 |
+
* Feature: Add switches for turning off editor buttons on Visual or Text/Quicktags editors
|
198 |
+
|
199 |
+
= 2.4.3 =
|
200 |
+
* Bugfix: Add html character encoding on link name field on edit screen so link names with quotes are displayed properly
|
201 |
+
|
202 |
+
= 2.4.2 =
|
203 |
+
* Bugfix: Had to retire data filtering with mysql_ escape functions in favour of using esc_sql as provided by WordPress core. Some servers now don't support mysql_ functions at all (thanks Daniel)
|
204 |
+
* Bugfix: If the post isn't an affiliate link, skip slug shortening
|
205 |
+
* Feature: Added disable slug shortening option to turn off removing stop words from affiliate link urls
|
206 |
+
|
207 |
+
= 2.4.1 =
|
208 |
+
* IMPORTANT BUG FIX: Default post status is no longer set to 'publish' when left empty in 3.8.2 so we need to set in our custom post save box otherwise you can't save new links.
|
209 |
+
|
210 |
+
= 2.4 =
|
211 |
+
* New Feature: Quick Add button on TinyMCE editor lets you add new affiliate links on the fly without leaving the edit screen
|
212 |
+
* Fixed admin site debug warning on non-ThirstyAffiliates pages
|
213 |
+
|
214 |
+
= 2.3.1 =
|
215 |
+
* IMPORTANT BUG FIX: Fixed issue with special char filtering causing invalid redirects on some merchants, advise people who are on 2.3 to update to this version immediately.
|
216 |
+
|
217 |
+
= 2.3 =
|
218 |
+
* New Feature: Added the option to choose a global redirect type (301 or 302 at this stage) and also the option to override this per link
|
219 |
+
* Admin layout compatibility with WordPress 3.8 specifically responsiveness
|
220 |
+
* Changed menu name to Affiliate Links as 3.8 made ThirstyAffiliates word wrap to the next line
|
221 |
+
* Inserting images using the link picker stopped working due to imageID not being passed properly
|
222 |
+
* Moving some core styles for the settings page to the core stylesheet
|
223 |
+
* Improved data filtering function to selectively strip html on input data
|
224 |
+
* Filtered data wasn't being passed to array elements properly and hence was unfiltered
|
225 |
+
|
226 |
+
= 2.2.6 =
|
227 |
+
* Tweaked add-on page layout
|
228 |
+
|
229 |
+
= 2.2.5 =
|
230 |
+
* Bug fix title attribute not showing on shortcodes
|
231 |
+
* Make shortcodes obey the global flags properly
|
232 |
+
* Output shortcode defaults properly when no attributes specified (backwards compatibility)
|
233 |
+
|
234 |
+
= 2.2.4 =
|
235 |
+
* Fixing regression in shortcode functionality (thanks Roshan)
|
236 |
+
|
237 |
+
= 2.2.3 =
|
238 |
+
* Fixed link of categories a link belongs to in list view to show a list of links from that category
|
239 |
+
* Fixed warning on settings page and added sanity checks for link prefix option
|
240 |
+
* Added debug flag to settings page for support and testing
|
241 |
+
* Deprecated PHP function split() replaced with preg_split(), was throwing a warning on PHP 5.3.0+ servers.
|
242 |
+
|
243 |
+
= 2.2.2 =
|
244 |
+
* During link insertion check if copied text contains HTML and handle appropriately
|
245 |
+
* Add global switch to turn off title attribute on inserted links
|
246 |
+
* Add global switch to turn off thirstylink and thirstylinkimg link classes
|
247 |
+
* Strip slashes from apostrophes in copied text during link insertion
|
248 |
+
* Remove ajax url from front end (no longer used)
|
249 |
+
|
250 |
+
= 2.2.1 =
|
251 |
+
* Fixing add-ons page (thanks Hesham)
|
252 |
+
* Adding javascript layout tweak
|
253 |
+
|
254 |
+
= 2.2 =
|
255 |
+
* Adding API hooks for future development
|
256 |
+
* Cleaning up code structure
|
257 |
+
* Fixing ajax calls to be fully documentation compliant
|
258 |
+
* Fixes for the image adding including support for new media loader
|
259 |
+
* Added better object handling for image attachments
|
260 |
+
* Moved off some add-on specific settings to their own plugin code bases
|
261 |
+
* Lots of other small bug fixes and improvements
|
262 |
+
* Adding plugin to the WordPress.org directory!
|
263 |
+
|
264 |
+
= 2.1.3 =
|
265 |
+
* Removing unneccesary data from allagents.xml
|
266 |
+
* Adding no listing directive to plugin directory to prevent indexing
|
267 |
+
|
268 |
+
= 2.1.2 =
|
269 |
+
* Bug fix for link names with quotes in them
|
270 |
+
|
271 |
+
= 2.1.1 =
|
272 |
+
* Remove superfluous words from auto generated slugs on link creation
|
273 |
+
|
274 |
+
= 2.1 =
|
275 |
+
* Allow categories in link slugs
|
276 |
+
* Add option to force rebuild links (re-saves all existing links)
|
277 |
+
* Fix saving bug on nofollow/new window options when not using global setting
|
278 |
+
* Fix compatibility issue with Thesis theme
|
279 |
+
* Other various small bug fixes
|
280 |
+
|
281 |
+
= 2.0.3 =
|
282 |
+
* Fix for curly braces in links
|
283 |
+
|
284 |
+
= 2.0.2 =
|
285 |
+
* Fixing incompatibilities with some premium themes
|
286 |
+
|
287 |
+
= 2.0.1 =
|
288 |
+
* Fixed menu disappearing bug due to WP update
|
289 |
+
|
290 |
+
= 2.0 =
|
291 |
+
* Introduced automatic updating
|
292 |
+
* Improved user interface
|
293 |
+
* Added web crawler robot blocking
|
294 |
+
* Other various small bug fixes
|
295 |
+
|
296 |
+
= Prior to 2.0 =
|
297 |
+
* Initial version
|
298 |
+
|
299 |
+
== Upgrade notice ==
|
300 |
+
|
301 |
+
There is a new version of ThirstyAffiliates available.
|
thirstyaffiliates.php
ADDED
@@ -0,0 +1,2441 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Plugin Name: ThirstyAffiliates
|
4 |
+
*
|
5 |
+
* Description: ThirstyAffiliates is a revolution in affiliate link management. Collect, collate and store your affiliate links for use in your posts and pages.
|
6 |
+
*
|
7 |
+
* Author: ThirstyAffiliates
|
8 |
+
* Author URI: http://thirstyaffiliates.com
|
9 |
+
* Plugin URI: http://thirstyaffiliates.com
|
10 |
+
* Version: 2.7.0
|
11 |
+
* Text Domain: thirstyaffiliates
|
12 |
+
* Domain Path: /languages
|
13 |
+
*/
|
14 |
+
|
15 |
+
define('THIRSTY_VERSION', '2.7.0', false);
|
16 |
+
|
17 |
+
/*******************************************************************************
|
18 |
+
** thirstyAffiliatesLoadPluginTextdomain
|
19 |
+
** Load Text Domain on International Translations
|
20 |
+
** @since 1.0
|
21 |
+
*******************************************************************************/
|
22 |
+
function thirstyAffiliatesLoadPluginTextdomain() {
|
23 |
+
load_plugin_textdomain( 'thirstyaffiliates', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
|
24 |
+
}
|
25 |
+
|
26 |
+
/*******************************************************************************
|
27 |
+
** thirstyRegisterPostType
|
28 |
+
** Register the post types required by the plugin
|
29 |
+
** @since 1.0
|
30 |
+
*******************************************************************************/
|
31 |
+
function thirstyRegisterPostType() {
|
32 |
+
$thirstyOptions = get_option('thirstyOptions');
|
33 |
+
$slug = thirstyGetCurrentSlug();
|
34 |
+
|
35 |
+
/* Register the taxonomy for the affiliate links */
|
36 |
+
register_taxonomy(
|
37 |
+
'thirstylink-category',
|
38 |
+
'thirstylink',
|
39 |
+
array(
|
40 |
+
'labels' => array(
|
41 |
+
'name' => __('Link Categories', 'thirstyaffiliates'),
|
42 |
+
'singular_name' => __('Link Category', 'thirstyaffiliates')
|
43 |
+
),
|
44 |
+
'public' => true,
|
45 |
+
'show_ui' => true,
|
46 |
+
'hierarchical' => true,
|
47 |
+
'show_tagcloud' => false,
|
48 |
+
'rewrite' => false
|
49 |
+
)
|
50 |
+
);
|
51 |
+
|
52 |
+
/* Register the post type */
|
53 |
+
register_post_type(
|
54 |
+
'thirstylink',
|
55 |
+
array(
|
56 |
+
'labels' => array(
|
57 |
+
'name' => __('Affiliate Links', 'thirstyaffiliates'),
|
58 |
+
'singular_name' => __('Affiliate Link', 'thirstyaffiliates'),
|
59 |
+
'add_new_item' => __('Add New Affiliate Link', 'thirstyaffiliates'),
|
60 |
+
'edit_item' => __('Edit Affiliate Link', 'thirstyaffiliates'),
|
61 |
+
'view_item' => __('View Affiliate Link', 'thirstyaffiliates'),
|
62 |
+
'search_items' => __('Search Affiliate Links', 'thirstyaffiliates'),
|
63 |
+
'not_found' => __('No Affiliate Links found!', 'thirstyaffiliates'),
|
64 |
+
'not_found_in_trash' => __('No Affiliate Links found in trash', 'thirstyaffiliates'),
|
65 |
+
'menu_name' => __('Affiliate Links', 'thirstyaffiliates'),
|
66 |
+
'all_items' => __('All Affiliate Links', 'thirstyaffiliates')
|
67 |
+
),
|
68 |
+
'description' => __('ThirstyAffiliates affiliate links', 'thirstyaffiliates'),
|
69 |
+
'public' => true,
|
70 |
+
'menu_position' => 20,
|
71 |
+
'hierarchical' => true,
|
72 |
+
'supports' => array(
|
73 |
+
'title' => false,
|
74 |
+
'editor' => false,
|
75 |
+
'author' => false,
|
76 |
+
'thumbnail' => false,
|
77 |
+
'excerpt' => false,
|
78 |
+
'trackbacks' => false,
|
79 |
+
'comments' => false,
|
80 |
+
'revisions' => false,
|
81 |
+
'page-attributes' => false,
|
82 |
+
'post-formats' => false
|
83 |
+
),
|
84 |
+
'show_in_menu' => true,
|
85 |
+
'show_in_nav_menus' => true,
|
86 |
+
'can_export' => true,
|
87 |
+
'has_archive' => false,
|
88 |
+
'rewrite' => array(
|
89 |
+
'slug' => $slug,
|
90 |
+
'with_front' => false,
|
91 |
+
'pages' => false
|
92 |
+
),
|
93 |
+
'menu_icon' => plugins_url('thirstyaffiliates/images/icon-aff.png'),
|
94 |
+
'exclude_from_search' => true
|
95 |
+
)
|
96 |
+
);
|
97 |
+
|
98 |
+
if ( 'true' === get_transient( 'thirstylink_flush_rewrite_rules' ) ) {
|
99 |
+
flush_rewrite_rules( false );
|
100 |
+
delete_transient( 'thirstylink_flush_rewrite_rules' );
|
101 |
+
}
|
102 |
+
|
103 |
+
add_rewrite_tag('%' . $slug . '%', '([^&]+)');
|
104 |
+
|
105 |
+
$rewrite_regex = str_repeat('([^/]+)?/?', 10);
|
106 |
+
|
107 |
+
if (!empty($thirstyOptions['showcatinslug']) && $thirstyOptions['showcatinslug'] == 'on') {
|
108 |
+
$matches = thirstyWildcardsRewriteMatches(3);
|
109 |
+
add_rewrite_tag('%thirstylink-category%', '([^&]+)');
|
110 |
+
add_rewrite_rule("$slug/([^/]+)?/?$",'index.php?thirstylink=$matches[1]', 'top'); // 2.4.5: still match links that don't have category in the url
|
111 |
+
add_rewrite_rule("$slug/([^/]+)?/?([^/]+)?/?$rewrite_regex",'index.php?thirstylink=$matches[2]&thirstylink-category=$matches[1]' . $matches, 'top');
|
112 |
+
} else {
|
113 |
+
$matches = thirstyWildcardsRewriteMatches(2);
|
114 |
+
add_rewrite_rule("$slug/([^/]+)?/?$rewrite_regex",'index.php?thirstylink=$matches[1]' . $matches, 'top');
|
115 |
+
}
|
116 |
+
|
117 |
+
/* Set the list page columns */
|
118 |
+
add_filter('manage_thirstylink_posts_columns', 'thirstyAddDestinationColumnToList');
|
119 |
+
add_filter('manage_thirstylink_posts_columns', 'thirstyAddCategoryColumnToList');
|
120 |
+
add_action('manage_pages_custom_column', 'thirstyShowCategoryColumnInList');
|
121 |
+
add_action('manage_pages_custom_column', 'thirstyShowDestinationColumnInList');
|
122 |
+
|
123 |
+
/* Setup the filter drop down */
|
124 |
+
add_action('restrict_manage_posts', 'thirstyRestrictLinksByCategory');
|
125 |
+
add_filter('parse_query', 'thirstyConvertLinkCatIdToSlugInQuery');
|
126 |
+
}
|
127 |
+
|
128 |
+
/*******************************************************************************
|
129 |
+
** thirstyForceSend
|
130 |
+
** Force showing the "Insert into Post" button on the media handler for links
|
131 |
+
** @since 2.1
|
132 |
+
*******************************************************************************/
|
133 |
+
function thirstyForceSend($args){
|
134 |
+
if (!empty($_GET['post_id']))
|
135 |
+
$pid = $_GET['post_id'];
|
136 |
+
else
|
137 |
+
return $args;
|
138 |
+
|
139 |
+
if(get_post_type($pid) == 'thirstylink') {
|
140 |
+
$args['send'] = true;
|
141 |
+
}
|
142 |
+
return $args;
|
143 |
+
}
|
144 |
+
|
145 |
+
/*******************************************************************************
|
146 |
+
** thirstyGetCurrentSlug
|
147 |
+
** Get the current link prefix setting
|
148 |
+
** @since 2.1
|
149 |
+
*******************************************************************************/
|
150 |
+
function thirstyGetCurrentSlug() {
|
151 |
+
$thirstyOptions = get_option('thirstyOptions');
|
152 |
+
$slug = 'recommends';
|
153 |
+
|
154 |
+
if (isset($thirstyOptions['linkprefix'])) {
|
155 |
+
if ($thirstyOptions['linkprefix'] == 'custom' && isset($thirstyOptions['linkprefixcustom'])) {
|
156 |
+
$slug = $thirstyOptions['linkprefixcustom'];
|
157 |
+
} else {
|
158 |
+
$slug = $thirstyOptions['linkprefix'];
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
return $slug;
|
163 |
+
}
|
164 |
+
|
165 |
+
/*******************************************************************************
|
166 |
+
** thirstyCatLinks
|
167 |
+
** Handle how link slugs are created and optionally add in the categories
|
168 |
+
** @since 2.1
|
169 |
+
*******************************************************************************/
|
170 |
+
function thirstyCatLinks($post_link, $post) {
|
171 |
+
$thirstyOptions = get_option('thirstyOptions');
|
172 |
+
$slug = thirstyGetCurrentSlug();
|
173 |
+
|
174 |
+
if (is_wp_error($post) ||
|
175 |
+
empty($post) ||
|
176 |
+
(!empty($post) && $post->post_type != 'thirstylink') ||
|
177 |
+
empty($post->post_name))
|
178 |
+
return $post_link;
|
179 |
+
|
180 |
+
// Get the link category:
|
181 |
+
$terms = get_the_terms($post->ID, 'thirstylink-category');
|
182 |
+
|
183 |
+
if (empty($thirstyOptions['showcatinslug']) ||
|
184 |
+
$thirstyOptions['showcatinslug'] != 'on' ||
|
185 |
+
is_wp_error($terms) || !$terms) {
|
186 |
+
$linkCat = '';
|
187 |
+
} else {
|
188 |
+
$linkCatObj = array_pop($terms);
|
189 |
+
$linkCat = $linkCatObj->slug . '/';
|
190 |
+
|
191 |
+
}
|
192 |
+
|
193 |
+
return home_url(user_trailingslashit("$slug/$linkCat$post->post_name"));
|
194 |
+
|
195 |
+
}
|
196 |
+
|
197 |
+
/*******************************************************************************
|
198 |
+
** thirstyAddDestinationColumnToList
|
199 |
+
** Add the destination column to the list page
|
200 |
+
** @since 1.0
|
201 |
+
*******************************************************************************/
|
202 |
+
function thirstyAddDestinationColumnToList($posts_columns) {
|
203 |
+
if (!isset($posts_columns['date'])) {
|
204 |
+
$new_posts_columns = $posts_columns;
|
205 |
+
} else {
|
206 |
+
$new_posts_columns = array();
|
207 |
+
$index = 0;
|
208 |
+
foreach($posts_columns as $key => $posts_column) {
|
209 |
+
if ($key=='date')
|
210 |
+
$new_posts_columns['thirstylink-destination'] = null;
|
211 |
+
$new_posts_columns[$key] = $posts_column;
|
212 |
+
}
|
213 |
+
}
|
214 |
+
$new_posts_columns['thirstylink-destination'] = 'Link Destination';
|
215 |
+
return $new_posts_columns;
|
216 |
+
}
|
217 |
+
|
218 |
+
/*******************************************************************************
|
219 |
+
** thirstyAddCategoryColumnToList
|
220 |
+
** Add the category column to the list page
|
221 |
+
** @since 1.0
|
222 |
+
*******************************************************************************/
|
223 |
+
function thirstyAddCategoryColumnToList($posts_columns) {
|
224 |
+
if (!isset($posts_columns['date'])) {
|
225 |
+
$new_posts_columns = $posts_columns;
|
226 |
+
} else {
|
227 |
+
$new_posts_columns = array();
|
228 |
+
$index = 0;
|
229 |
+
foreach($posts_columns as $key => $posts_column) {
|
230 |
+
if ($key=='date')
|
231 |
+
$new_posts_columns['thirstylink-category'] = null;
|
232 |
+
$new_posts_columns[$key] = $posts_column;
|
233 |
+
}
|
234 |
+
}
|
235 |
+
$new_posts_columns['thirstylink-category'] = __('Link Categories', 'thirstyaffiliates');
|
236 |
+
return $new_posts_columns;
|
237 |
+
}
|
238 |
+
|
239 |
+
/*******************************************************************************
|
240 |
+
** thirstyShowDestinationColumnInList
|
241 |
+
** Get the destination details for the list page
|
242 |
+
** @since 1.0
|
243 |
+
*******************************************************************************/
|
244 |
+
function thirstyShowDestinationColumnInList($column) {
|
245 |
+
global $typenow;
|
246 |
+
global $post;
|
247 |
+
|
248 |
+
if ($typenow == 'thirstylink') {
|
249 |
+
|
250 |
+
switch ($column) {
|
251 |
+
case 'thirstylink-destination':
|
252 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
253 |
+
$linkData['linkurl'] = str_replace('%7B', '{', $linkData['linkurl']);
|
254 |
+
$linkData['linkurl'] = str_replace('%7D', '}', $linkData['linkurl']);
|
255 |
+
echo htmlspecialchars_decode($linkData['linkurl'], ENT_COMPAT);
|
256 |
+
break;
|
257 |
+
}
|
258 |
+
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
+
/*******************************************************************************
|
263 |
+
** thirstyShowCategoryColumnInList
|
264 |
+
** Get the category details for the list page
|
265 |
+
** @since 1.0
|
266 |
+
*******************************************************************************/
|
267 |
+
function thirstyShowCategoryColumnInList($column) {
|
268 |
+
global $typenow;
|
269 |
+
global $post;
|
270 |
+
|
271 |
+
if ($typenow == 'thirstylink') {
|
272 |
+
|
273 |
+
switch ($column) {
|
274 |
+
case 'thirstylink-category':
|
275 |
+
$taxonomy = 'thirstylink-category';
|
276 |
+
$thirstyCats = get_the_terms($post->ID, $taxonomy);
|
277 |
+
$thirstyCatsFormatted = array();
|
278 |
+
|
279 |
+
if (is_array($thirstyCats) && !empty($thirstyCats)) {
|
280 |
+
|
281 |
+
// pre-sort array by parent value
|
282 |
+
uasort($thirstyCats, 'thirstySortArrayByParent');
|
283 |
+
|
284 |
+
// setup sorted array
|
285 |
+
$sortedCats = array();
|
286 |
+
|
287 |
+
// loop through all cats
|
288 |
+
while (!empty($thirstyCats)) {
|
289 |
+
$term = current($thirstyCats);
|
290 |
+
$key = key($thirstyCats);
|
291 |
+
|
292 |
+
$sortedCats[] = $term;
|
293 |
+
unset($thirstyCats[$key]); // pop current parent term
|
294 |
+
$children = array();
|
295 |
+
$children = thirstyGetChildrenOfCat($term, $thirstyCats);
|
296 |
+
|
297 |
+
// add each child to the array
|
298 |
+
while ($childterm = current($children)) {
|
299 |
+
$sortedCats[] = $childterm;
|
300 |
+
unset($thirstyCats[key($children)]);
|
301 |
+
next($children);
|
302 |
+
}
|
303 |
+
}
|
304 |
+
|
305 |
+
foreach ($sortedCats as $key => $term) {
|
306 |
+
$editLink = admin_url('edit.php?thirstylink-category=' . $term->slug . '&post_type=thirstylink');
|
307 |
+
$is_parent = $term->parent == 0;
|
308 |
+
|
309 |
+
echo ($is_parent ? '<p><b>' : ' ') .
|
310 |
+
'<a href="' . $editLink . '">' . $term->name . '</a>' .
|
311 |
+
($is_parent ? '</b><br />' : '');
|
312 |
+
}
|
313 |
+
|
314 |
+
}
|
315 |
+
break;
|
316 |
+
}
|
317 |
+
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
/*******************************************************************************
|
322 |
+
** thirstySortArrayByParent
|
323 |
+
** Convenience function to sort an array by it's parent
|
324 |
+
** @since 1.0
|
325 |
+
*******************************************************************************/
|
326 |
+
function thirstySortArrayByParent($a, $b) {
|
327 |
+
if ($a->parent < $b->parent) {
|
328 |
+
return -1;
|
329 |
+
} else if ($a->parent > $b->parent) {
|
330 |
+
return 1;
|
331 |
+
} else {
|
332 |
+
return 0;
|
333 |
+
}
|
334 |
+
}
|
335 |
+
|
336 |
+
/*******************************************************************************
|
337 |
+
** thirstyGetChildrenOfCat
|
338 |
+
** Get the children of a thirsty affiliates category and return them
|
339 |
+
** @since 1.0
|
340 |
+
*******************************************************************************/
|
341 |
+
function thirstyGetChildrenOfCat($parent, $cats) {
|
342 |
+
$children = array();
|
343 |
+
|
344 |
+
if (!empty($cats)) {
|
345 |
+
foreach ($cats as $key => $term) {
|
346 |
+
if ($term->parent == $parent->term_id) {
|
347 |
+
// is a child of the parent
|
348 |
+
$children[$key] = $term;
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}
|
352 |
+
|
353 |
+
return $children;
|
354 |
+
}
|
355 |
+
|
356 |
+
/*******************************************************************************
|
357 |
+
** thirstyRestrictLinksByCategory
|
358 |
+
** Setup the filter box for the list page so people can filter their links via
|
359 |
+
** category
|
360 |
+
** @since 1.0
|
361 |
+
*******************************************************************************/
|
362 |
+
function thirstyRestrictLinksByCategory() {
|
363 |
+
global $typenow;
|
364 |
+
global $wp_query;
|
365 |
+
|
366 |
+
if ($typenow == 'thirstylink') {
|
367 |
+
|
368 |
+
$taxonomy = 'thirstylink-category';
|
369 |
+
$thirstyTax = get_taxonomy($taxonomy);
|
370 |
+
|
371 |
+
wp_dropdown_categories(array(
|
372 |
+
'show_option_all' => "Show {$thirstyTax->labels->all_items}",
|
373 |
+
'taxonomy' => $taxonomy,
|
374 |
+
'name' => $taxonomy,
|
375 |
+
'orderby' => 'name',
|
376 |
+
'selected' => (isset($wp_query->query[$taxonomy]) ? $wp_query->query[$taxonomy] : ''),
|
377 |
+
'hierarchical' => true,
|
378 |
+
'depth' => 4,
|
379 |
+
'show_count' => true,
|
380 |
+
'hide_empty' => true
|
381 |
+
));
|
382 |
+
}
|
383 |
+
}
|
384 |
+
|
385 |
+
/*******************************************************************************
|
386 |
+
** thirstyConvertLinkCatIdToSlugInQuery
|
387 |
+
** Setup the filter box for the list page so people can filter their links via
|
388 |
+
** category
|
389 |
+
** @since 1.0
|
390 |
+
*******************************************************************************/
|
391 |
+
function thirstyConvertLinkCatIdToSlugInQuery($query) {
|
392 |
+
global $pagenow;
|
393 |
+
$qv = &$query->query_vars;
|
394 |
+
|
395 |
+
if (isset($qv['thirstylink-category']) &&
|
396 |
+
is_numeric($qv['thirstylink-category'])) {
|
397 |
+
|
398 |
+
$term = get_term_by('id', $qv['thirstylink-category'], 'thirstylink-category');
|
399 |
+
$qv['thirstylink-category'] = $term->slug;
|
400 |
+
|
401 |
+
}
|
402 |
+
}
|
403 |
+
|
404 |
+
/*******************************************************************************
|
405 |
+
** thirstySetupPostBoxes
|
406 |
+
** Setup the input boxes for the link post type
|
407 |
+
** @since 1.0
|
408 |
+
*******************************************************************************/
|
409 |
+
function thirstySetupPostBoxes() {
|
410 |
+
add_meta_box(
|
411 |
+
'thirstylink-link-name-meta',
|
412 |
+
'Affiliate Link Name',
|
413 |
+
'thirstyLinkNameMeta',
|
414 |
+
'thirstylink',
|
415 |
+
'normal',
|
416 |
+
'high'
|
417 |
+
);
|
418 |
+
|
419 |
+
add_meta_box(
|
420 |
+
'thirstylink-link-url-meta',
|
421 |
+
'URLs',
|
422 |
+
'thirstyLinkUrlMeta',
|
423 |
+
'thirstylink',
|
424 |
+
'normal',
|
425 |
+
'high'
|
426 |
+
);
|
427 |
+
|
428 |
+
add_meta_box(
|
429 |
+
'thirstylink-link-wildcard-meta',
|
430 |
+
'Wildcards',
|
431 |
+
'thirstyLinkWildcardMeta',
|
432 |
+
'thirstylink',
|
433 |
+
'normal',
|
434 |
+
'high'
|
435 |
+
);
|
436 |
+
|
437 |
+
add_meta_box(
|
438 |
+
'thirstylink-link-images-meta',
|
439 |
+
'Attach Images',
|
440 |
+
'thirstyLinkImagesMeta',
|
441 |
+
'thirstylink',
|
442 |
+
'normal',
|
443 |
+
'high'
|
444 |
+
);
|
445 |
+
|
446 |
+
remove_meta_box( 'submitdiv', 'thirstylink', 'side' );
|
447 |
+
|
448 |
+
add_meta_box(
|
449 |
+
'thirstylink-save-link-side-meta',
|
450 |
+
'Save Affiliate Link',
|
451 |
+
'thirstySaveLinkMeta',
|
452 |
+
'thirstyLink',
|
453 |
+
'side',
|
454 |
+
'high'
|
455 |
+
);
|
456 |
+
|
457 |
+
add_meta_box(
|
458 |
+
'thirstylink-save-link-bottom-meta',
|
459 |
+
'Save Affiliate Link',
|
460 |
+
'thirstySaveLinkMeta',
|
461 |
+
'thirstyLink',
|
462 |
+
'normal',
|
463 |
+
'low'
|
464 |
+
);
|
465 |
+
|
466 |
+
add_meta_box(
|
467 |
+
'thirstylink-redirect-type-meta',
|
468 |
+
'Redirect Type',
|
469 |
+
'thirstyRedirectTypeMeta',
|
470 |
+
'thirstyLink',
|
471 |
+
'side',
|
472 |
+
'low'
|
473 |
+
);
|
474 |
+
|
475 |
+
/* 2.4.8: Temporarily remove these notices
|
476 |
+
add_meta_box(
|
477 |
+
'thirstylink-addon-notices',
|
478 |
+
'Add-ons Available',
|
479 |
+
'thirstyAddonsAvailable',
|
480 |
+
'thirstylink',
|
481 |
+
'side',
|
482 |
+
'low'
|
483 |
+
);*/
|
484 |
+
}
|
485 |
+
|
486 |
+
/*******************************************************************************
|
487 |
+
** thirstyAddonsAvailable
|
488 |
+
** Addons available meta box
|
489 |
+
** @since 2.4.7
|
490 |
+
*******************************************************************************/
|
491 |
+
function thirstyAddonsAvailable() {
|
492 |
+
|
493 |
+
// Get the available add-ons list
|
494 |
+
$products = thirstyAddonsPageGetProducts();
|
495 |
+
|
496 |
+
if (!empty($products)) {
|
497 |
+
// Figure out which product to display
|
498 |
+
list($usec, $sec) = explode(' ', microtime());
|
499 |
+
mt_srand((float)$sec + ((float)$usec * 100000));
|
500 |
+
|
501 |
+
$productCount = count($products);
|
502 |
+
$randNum = mt_rand(0, $productCount);
|
503 |
+
|
504 |
+
echo '<ul>';
|
505 |
+
|
506 |
+
$product = $products[$randNum];
|
507 |
+
$productUrl = str_replace('utm_source=rss' , 'utm_source=plugin', $product['url']);
|
508 |
+
$productUrl = str_replace('utm_medium=rss' , 'utm_medium=addonpage', $productUrl);
|
509 |
+
$productTitle = str_replace('ThirstyAffiliates ', '', $product['title']);
|
510 |
+
$productTitle = str_replace(' Add-on', '', $productTitle);
|
511 |
+
|
512 |
+
echo '<li class="thirstyaddonlinkpage">';
|
513 |
+
echo '<h3>' . $productTitle . '</h3>';
|
514 |
+
echo '<div class="thirstyaddondescription">' . $product['description'] . '</div>';
|
515 |
+
echo '<a class="button-primary" href="' . $productUrl . '" target="_blank">'.__('Visit Add-on Page', 'thirstyaffiliates').' →</a>';
|
516 |
+
echo '</li>';
|
517 |
+
|
518 |
+
echo '</ul>';
|
519 |
+
echo '<a href="' . admin_url('edit.php?post_type=thirstylink&page=thirsty-addons') . '">'.__('View all available add-ons →', 'thirstyaffiliates').'</a>';
|
520 |
+
}
|
521 |
+
}
|
522 |
+
|
523 |
+
/*******************************************************************************
|
524 |
+
** thirstyRedirectTypeMeta
|
525 |
+
** Redirect type override meta box
|
526 |
+
** @since 2.3
|
527 |
+
*******************************************************************************/
|
528 |
+
function thirstyRedirectTypeMeta() {
|
529 |
+
wp_nonce_field( plugin_basename(__FILE__), 'thirstyaffiliates_noncename' );
|
530 |
+
|
531 |
+
global $post;
|
532 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
533 |
+
$thirstyOptions = get_option('thirstyOptions');
|
534 |
+
|
535 |
+
$redirectTypes = thirstyGetRedirectTypes();
|
536 |
+
|
537 |
+
echo '<p>'.__('Override the default redirection type for this link:', 'thirstyaffiliates').'</p><p>';
|
538 |
+
|
539 |
+
foreach ($redirectTypes as $redirectTypeCode => $redirectTypeDesc) {
|
540 |
+
|
541 |
+
// set default values
|
542 |
+
$linkTypeDefault = false;
|
543 |
+
$linkTypeSelected = false;
|
544 |
+
|
545 |
+
// check if this is the default link redirect type as per global settings
|
546 |
+
if (strcasecmp($thirstyOptions['linkredirecttype'], $redirectTypeCode) == 0)
|
547 |
+
$linkTypeDefault = true;
|
548 |
+
|
549 |
+
// check if the link specific redirect type is empty and if this is the default link type
|
550 |
+
// mark it as selected
|
551 |
+
if (empty($linkData['linkredirecttype'])) {
|
552 |
+
if ($linkTypeDefault)
|
553 |
+
$linkTypeSelected = true;
|
554 |
+
} else {
|
555 |
+
if (strcasecmp($linkData['linkredirecttype'], $redirectTypeCode) == 0) {
|
556 |
+
$linkTypeSelected = true;
|
557 |
+
}
|
558 |
+
}
|
559 |
+
|
560 |
+
echo '<input type="radio" name="thirsty[linkredirecttype]" id="thirstyOptionsLinkRedirectType' . $redirectTypeCode .'" ' .
|
561 |
+
($linkTypeSelected ? 'checked="checked" ' : '') . 'value="' . $redirectTypeCode .
|
562 |
+
'" /> <label for="thirstyOptionsLinkRedirectType' . $redirectTypeCode .'">' .
|
563 |
+
$redirectTypeDesc . ($linkTypeDefault ? ' (default)' : '') . '</label><br />';
|
564 |
+
|
565 |
+
}
|
566 |
+
|
567 |
+
//echo '</p><p><span id="thirstyClearRedirectOverride" class="button-secondary">Clear Redirect Override</span></p>';
|
568 |
+
|
569 |
+
}
|
570 |
+
|
571 |
+
/*******************************************************************************
|
572 |
+
** thirstySaveLinkMeta
|
573 |
+
** Save link meta box
|
574 |
+
** @since 1.0
|
575 |
+
*******************************************************************************/
|
576 |
+
function thirstySaveLinkMeta() {
|
577 |
+
global $post;
|
578 |
+
|
579 |
+
echo '<p class="thirstySaveMe">'.__('NOTE: Please save your link after adding or removing images', 'thirstyaffiliates').'</p>';
|
580 |
+
echo '<input name="post_status" type="hidden" id="post_status" value="'.__('publish', 'thirstyaffiliates').'" />';
|
581 |
+
echo '<input name="original_publish" type="hidden" id="original_publish" value="'.__('Save', 'thirstyaffiliates').'" />';
|
582 |
+
echo '<input name="save" type="submit" class="button-primary" id="publish" tabindex="5" accesskey="p" value="'.__('Save Link', 'thirstyaffiliates').'">';
|
583 |
+
|
584 |
+
if (current_user_can("delete_post", $post->ID)) {
|
585 |
+
if (!EMPTY_TRASH_DAYS)
|
586 |
+
$delete_text = __('Delete Permanently', 'thirstyaffiliates');
|
587 |
+
else
|
588 |
+
$delete_text = __('Move to Trash', 'thirstyaffiliates');
|
589 |
+
|
590 |
+
echo ' <a class="submitdelete deletion" href="' . get_delete_post_link($post->ID) . '">' . $delete_text . '</a>';
|
591 |
+
}
|
592 |
+
}
|
593 |
+
|
594 |
+
/*******************************************************************************
|
595 |
+
** thirstyLinkNameMeta
|
596 |
+
** Link name meta box
|
597 |
+
** @since 1.0
|
598 |
+
*******************************************************************************/
|
599 |
+
function thirstyLinkNameMeta() {
|
600 |
+
wp_nonce_field( plugin_basename(__FILE__), 'thirstyaffiliates_noncename' );
|
601 |
+
|
602 |
+
global $post;
|
603 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
604 |
+
|
605 |
+
$thirstyOptions = get_option('thirstyOptions');
|
606 |
+
echo '<p><label class="infolabel" for="post_title">'.__('Link Name:', 'thirstyaffiliates').'</label><span id="link_id" style="float:right;">'.__('Link ID:', 'thirstyaffiliates').' <strong>' . $post->ID . '</strong></span></p>';
|
607 |
+
echo '<p style="clear:both;"><input id="thirsty_linkname" name="post_title" value="' . htmlspecialchars(!empty($linkData['linkname']) ? $linkData['linkname'] : '') .
|
608 |
+
'" size="50" type="text" /></p>';
|
609 |
+
|
610 |
+
if (isset($_GET['debug']) && $_GET['debug'] == true) {
|
611 |
+
echo '<pre>'.__('DEBUG: ') . print_r($linkData, true) . '</pre>';
|
612 |
+
}
|
613 |
+
|
614 |
+
}
|
615 |
+
|
616 |
+
/*******************************************************************************
|
617 |
+
** thirstyLinkUrlMeta
|
618 |
+
** Link slug meta box
|
619 |
+
** @since 1.0
|
620 |
+
*******************************************************************************/
|
621 |
+
function thirstyLinkUrlMeta() {
|
622 |
+
wp_nonce_field( plugin_basename(__FILE__), 'thirstyaffiliates_noncename' );
|
623 |
+
|
624 |
+
global $post;
|
625 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
626 |
+
|
627 |
+
$linkData['nofollow'] = isset($linkData['nofollow']) ? 'checked="checked"' : '';
|
628 |
+
$linkData['newwindow'] = isset($linkData['newwindow']) ? 'checked="checked"' : '';
|
629 |
+
$linkData['enablewildcard'] = isset($linkData['enablewildcard']) ? 'checked="checked"' : '';
|
630 |
+
|
631 |
+
$linkUrl = isset($linkData['linkurl']) ? $linkData['linkurl'] : "";
|
632 |
+
$linkUrl = str_replace('%7B', '{', $linkUrl);
|
633 |
+
$linkUrl = str_replace('%7D', '}', $linkUrl);
|
634 |
+
$linkUrl = html_entity_decode((!empty($linkUrl) ? $linkUrl : ''));
|
635 |
+
|
636 |
+
$thirstyOptions = get_option('thirstyOptions');
|
637 |
+
|
638 |
+
echo '<style>
|
639 |
+
label.infolabel {
|
640 |
+
margin-right: 10px;
|
641 |
+
}
|
642 |
+
</style>';
|
643 |
+
|
644 |
+
echo '<p><label class="infolabel" for="thirsty[linkurl]">'.__('Destination URL:', 'thirstyaffiliates').'</label></p>';
|
645 |
+
echo '<p><input id="thirsty_linkurl" name="thirsty[linkurl]" value="' . $linkUrl . '" size="50" type="text" /></p>';
|
646 |
+
|
647 |
+
/* Only show permalink if it's an existing post */
|
648 |
+
if (!empty($post->post_title)) {
|
649 |
+
echo '<p><label class="infolabel">'.__('Cloaked URL:', 'thirstyaffiliates').'</label></p>';
|
650 |
+
echo '<input type="text" readonly="readonly" id="thirsty_cloakedurl" value="' . get_post_permalink($post->ID) . '"> <span class="button-secondary" id="thirstyEditSlug">'.__('Edit Slug', 'thirstyaffiliates').'</span> <a href="' . get_post_permalink($post->ID) . '" target="_blank"><span class="button-secondary" id="thirstyVisitLink">'.__('Visit Link').'</span></a><input id="thirsty_linkslug" name="post_name" value="' . $post->post_name . '" size="50" type="text" /></span> <input id="thirstySaveSlug" type="button" value="'.__('Save').'" class="button-secondary" /></p>';
|
651 |
+
}
|
652 |
+
|
653 |
+
/* Only display link nofollow setting if the global nofollow setting is disabled */
|
654 |
+
if (!isset($thirstyOptions['nofollow'])) {
|
655 |
+
echo '<p><label class="infolabel" for="thirsty_nofollow">'.__('No follow this link?:', 'thirstyaffiliates').'</label>
|
656 |
+
<input id="thirsty_nofollow" name="thirsty[nofollow]" ' . $linkData['nofollow'] . ' type="checkbox" />
|
657 |
+
<span class="thirsty_description">'.__('Adds the rel="nofollow" tag so search engines don\'t pass link juice', 'thirstyaffiliates').'</span></p>';
|
658 |
+
}
|
659 |
+
|
660 |
+
/* Only display link new window setting if the global new window setting is disabled */
|
661 |
+
if (!isset($thirstyOptions['newwindow'])) {
|
662 |
+
echo '<p><label class="infolabel" for="thirsty_newwindow">'.__('Open this link in new window?', 'thirstyaffiliates').'</label>
|
663 |
+
<input id="thirsty_newwindow" name="thirsty[newwindow]" ' . $linkData['newwindow'] . ' type="checkbox" />
|
664 |
+
<span class="thirsty_description">'.__('Opens links in a new window when clicked on', 'thirstyaffiliates').'</span></p>';
|
665 |
+
}
|
666 |
+
|
667 |
+
echo '<p><label class="infoLabel" for="thirsty_enable_wildcard">'.__('Enable wildcard?', 'thirstyaffiliates').'</label>
|
668 |
+
<input id="thirsty_enable_wildcard" name="thirsty[enablewildcard]" ' . $linkData['enablewildcard'] . ' type="checkbox" />
|
669 |
+
<span class="thirsty_description">'.__('Enables wildcard settings for this affiliate link', 'thirstyaffiliates').'</span></p>';
|
670 |
+
|
671 |
+
|
672 |
+
}
|
673 |
+
|
674 |
+
/*******************************************************************************
|
675 |
+
** thirstyLinkWildcardMeta
|
676 |
+
** Link slug meta box
|
677 |
+
** @since 2.7.0
|
678 |
+
*******************************************************************************/
|
679 |
+
function thirstyLinkWildcardMeta() {
|
680 |
+
|
681 |
+
global $post;
|
682 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
683 |
+
|
684 |
+
// default values
|
685 |
+
$wildcards = array(
|
686 |
+
array(
|
687 |
+
'variable' => 'wildcard1',
|
688 |
+
'value' => 'affid1',
|
689 |
+
)
|
690 |
+
);
|
691 |
+
|
692 |
+
// replace defaults with user inputted values
|
693 |
+
if ( ! empty( $linkData['wildcards'] ) && is_array( $linkData['wildcards'] ) ) {
|
694 |
+
|
695 |
+
$wildcards = $linkData['wildcards'];
|
696 |
+
}
|
697 |
+
?>
|
698 |
+
|
699 |
+
<div class="ta_wildcards_desc">
|
700 |
+
<p><?php _e( 'Wildcards are special values that get replaced on the destination URL. You can use them to test different tracking IDs, product IDs or anything else you can imagine. Wildcards are replaced during visiting of the link. If you set multiple values for one wildcard ID it is randomized between the values.', 'thirstyaffiliates' ); ?></p>
|
701 |
+
<p>
|
702 |
+
<?php _e( 'To use a wildcard value in a destination URL try:', 'thirstyaffiliates' ); ?><br>
|
703 |
+
<code><?php echo 'http://example.com/%wilcard1%/'; ?></code>
|
704 |
+
</p>
|
705 |
+
<p>
|
706 |
+
<?php _e( 'You can also use multiple wildcards in one link:', 'thirstyaffiliates' ); ?><br>
|
707 |
+
<code><?php echo 'http://example.com/%wildcard1%/%wildcard2%/'; ?></code>
|
708 |
+
</p>
|
709 |
+
</div>
|
710 |
+
|
711 |
+
<table id="ta_wildcard_form">
|
712 |
+
<tr>
|
713 |
+
<th><?php _e( 'Wildcard', 'thirstyaffiliates' ); ?></th>
|
714 |
+
<th><?php _e( 'Value', 'thirstyaffiliates' ); ?></th>
|
715 |
+
<th></th>
|
716 |
+
</tr>
|
717 |
+
<?php foreach( $wildcards as $key => $wildcard ) : ?>
|
718 |
+
<tr class="wildcard_row" id="wildcard_row_<?php echo $key; ?>">
|
719 |
+
<td class="variable-column">
|
720 |
+
<input class="wildcard-variable" type="text" name="thirsty[wildcards][<?php echo $key; ?>][variable]" value="<?php echo $wildcard['variable'] ?>">
|
721 |
+
</td>
|
722 |
+
<td class="value-column">
|
723 |
+
<input class="wildcard-value" type="text" name="thirsty[wildcards][<?php echo $key; ?>][value]" value="<?php echo $wildcard['value'] ?>">
|
724 |
+
</td>
|
725 |
+
<td class="actions-column">
|
726 |
+
<button class="delete_wildcard" type="button"><?php echo __('delete', 'thirstyaffiliates'); ?></button>
|
727 |
+
</td>
|
728 |
+
</tr>
|
729 |
+
<?php endforeach; ?>
|
730 |
+
</table>
|
731 |
+
<div id="ta_wilcard_add_row">
|
732 |
+
<button class="add-wildcard-row button" type="button">Add row</button>
|
733 |
+
</div>
|
734 |
+
<?php
|
735 |
+
}
|
736 |
+
|
737 |
+
/*******************************************************************************
|
738 |
+
** thirstyLinkImagesMeta
|
739 |
+
** Link image control meta box
|
740 |
+
** @since 1.0
|
741 |
+
*******************************************************************************/
|
742 |
+
function thirstyLinkImagesMeta() {
|
743 |
+
wp_nonce_field( plugin_basename(__FILE__), 'thirstyaffiliates_noncename' );
|
744 |
+
|
745 |
+
global $post;
|
746 |
+
$thirstyOptions = get_option('thirstyOptions');
|
747 |
+
$legacyUploader = (isset($thirstyOptions['legacyuploader']) && $thirstyOptions['legacyuploader'] == 'on') ? true : false;
|
748 |
+
|
749 |
+
if (function_exists('wp_enqueue_media') && !$legacyUploader) {
|
750 |
+
// New media uploader
|
751 |
+
echo '<div id="thirsty_upload_media_manager" data-editor="content" data-uploader-title="'.__('Add Image To Affiliate Link', 'thirstyaffiliates').'" data-uploader-button-text="'.__('Add To Affiliate Link').'" class="button-secondary">'.__('Upload/Insert').' <img id="thirsty_add_images" src="' . plugins_url('thirstyaffiliates/') . 'images/media-button.png" alt="'.__('Upload/Insert images', 'thirstyaffiliates').'" /></div>';
|
752 |
+
} else {
|
753 |
+
echo '<div id="thirsty_upload_insert_img" class="button-secondary">'.__('Upload/Insert', 'thirstyaffiliates').' <a class="thickbox" href="' . trailingslashit(get_bloginfo('url')) .
|
754 |
+
'wp-admin/media-upload.php?post_id=' . $post->ID . '?type=image&TB_iframe=1"><img id="thirsty_add_images" src="' . plugins_url('thirstyaffiliates/') . 'images/media-button.png" alt="'.__('Upload/Insert images').'" /></a></div>';
|
755 |
+
}
|
756 |
+
|
757 |
+
|
758 |
+
echo '<div id="content"> </div>
|
759 |
+
<script type="text/javascript">';
|
760 |
+
|
761 |
+
global $wp_version;
|
762 |
+
if ($wp_version >= 3.3) {
|
763 |
+
// JMK: WP 3.3+ fix for insert post bug
|
764 |
+
echo 'var wpActiveEditor = \'content\';';
|
765 |
+
} else {
|
766 |
+
// JMK: Pre WP 3.3 fix for insert post bug
|
767 |
+
echo 'edCanvas = document.getElementById("content");';
|
768 |
+
}
|
769 |
+
|
770 |
+
echo '</script>';
|
771 |
+
|
772 |
+
$attachment_args = array(
|
773 |
+
'post_type' => 'attachment',
|
774 |
+
'posts_per_page' => -1,
|
775 |
+
'post_status' => null,
|
776 |
+
'post_parent' => $post->ID,
|
777 |
+
'orderby' => 'menu_order',
|
778 |
+
'order' => 'ASC'
|
779 |
+
);
|
780 |
+
|
781 |
+
$attachments = get_posts($attachment_args);
|
782 |
+
|
783 |
+
if ($attachments) {
|
784 |
+
echo '<div id="thirsty_image_holder">';
|
785 |
+
foreach ($attachments as $attachment) {
|
786 |
+
$img = wp_get_attachment_image_src($attachment->ID, 'full');
|
787 |
+
echo '<div class="thirstyImgHolder"><span class="thirstyRemoveImg" title="'.__('Remove This Image').'" id="' . $attachment->ID . '"></span><a class="thirstyImg thickbox" href="' . $img[0] . '" rel="gallery-linkimgs" title="' . $attachment->post_title . '">';
|
788 |
+
echo wp_get_attachment_image($attachment->ID, array(100, 100));
|
789 |
+
echo '</a></div>';
|
790 |
+
}
|
791 |
+
echo '</div>';
|
792 |
+
}
|
793 |
+
}
|
794 |
+
|
795 |
+
/*******************************************************************************
|
796 |
+
** thirstySavePost
|
797 |
+
** Save the link post data into the post's meta
|
798 |
+
** @since 1.0
|
799 |
+
*******************************************************************************/
|
800 |
+
function thirstySavePost($post_id) {
|
801 |
+
|
802 |
+
/* Make sure we only do this for thirstylinks on regular saves and we have permission */
|
803 |
+
if (empty($_POST['post_type']) || $_POST['post_type'] != 'thirstylink') {
|
804 |
+
return $post_id;
|
805 |
+
}
|
806 |
+
|
807 |
+
if (!wp_verify_nonce( $_POST['thirstyaffiliates_noncename'], plugin_basename(__FILE__) ) ||
|
808 |
+
(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) ||
|
809 |
+
!current_user_can( 'edit_page', $post_id ) ) {
|
810 |
+
return $post_id;
|
811 |
+
}
|
812 |
+
|
813 |
+
/* Get ThirstyAffiliates settings */
|
814 |
+
$thirstyOptions = get_option('thirstyOptions');
|
815 |
+
|
816 |
+
/* Get link data from post array */
|
817 |
+
$linkDataNew = array();
|
818 |
+
$linkDataNew = $_POST['thirsty'];
|
819 |
+
|
820 |
+
/* Set the link data to be the new link data */
|
821 |
+
$linkData = thirstyFilterData($linkDataNew);
|
822 |
+
/* Because we trick wordpress into setting the post title by using our field
|
823 |
+
** name as post_title we need to make sure our meta data is updated to reflect
|
824 |
+
** that correct name.
|
825 |
+
** New in 2.1.2: also need to stripslashes here so we can handle quotes below */
|
826 |
+
$linkData['linkname'] = stripslashes($_POST['post_title']);
|
827 |
+
|
828 |
+
/* Manually handle curly brackets { } and quotes */
|
829 |
+
$linkData['linkurl'] = str_replace('{', '%7B', $linkData['linkurl']);
|
830 |
+
$linkData['linkurl'] = str_replace('}', '%7D', $linkData['linkurl']);
|
831 |
+
$linkData['linkname'] = str_replace("'", '', $linkData['linkname']);
|
832 |
+
$linkData['linkname'] = str_replace('"', '', $linkData['linkname']);
|
833 |
+
|
834 |
+
/* If we are using categories in slugs force user to select a category */
|
835 |
+
if (!empty($thirstyOptions['showcatinslug']) && $thirstyOptions['showcatinslug'] == 'on') {
|
836 |
+
$selectedLinkCats = wp_get_post_terms($post_id, 'thirstylink-category');
|
837 |
+
|
838 |
+
if ((!isset($thirstyOptions['disablecatautoselect']) || $thirstyOptions['disablecatautoselect'] != 'on') &&
|
839 |
+
empty($selectedLinkCats)) {
|
840 |
+
|
841 |
+
$defaultCat = 'Uncategorized';
|
842 |
+
|
843 |
+
// create the default term if it doesn't exist
|
844 |
+
if (!term_exists($defaultCat, 'thirstylink-category')) {
|
845 |
+
wp_insert_term($defaultCat, 'thirstylink-category');
|
846 |
+
}
|
847 |
+
|
848 |
+
// get the default term and set this post to have it
|
849 |
+
$defaultTerm = get_term_by('name', $defaultCat, 'thirstylink-category');
|
850 |
+
wp_set_post_terms($post_id, $defaultTerm->term_id, 'thirstylink-category');
|
851 |
+
}
|
852 |
+
}
|
853 |
+
|
854 |
+
// dont save empty wildcards
|
855 |
+
if ( isset( $linkData['wildcards'] ) ) {
|
856 |
+
foreach ( $linkData['wildcards'] as $key => $wildcard ) {
|
857 |
+
|
858 |
+
if ( empty( $wildcard['variable'] ) && empty( $wildcard['value'] ) )
|
859 |
+
unset( $linkData['wildcards'][ $key ] );
|
860 |
+
}
|
861 |
+
$linkData['wildcards'] = array_values( $linkData['wildcards'] );
|
862 |
+
}
|
863 |
+
|
864 |
+
// 2.4.10: Add filter before saving the link
|
865 |
+
$linkData = apply_filters('thirstyBeforeDataSave', $linkData);
|
866 |
+
|
867 |
+
/* Update the link data */
|
868 |
+
update_post_meta($post_id, 'thirstyData', serialize($linkData));
|
869 |
+
|
870 |
+
if (isset($linkData['linkslug']) && !empty($linkData['linkslug'])) {
|
871 |
+
$_POST['post_name'] = $linkData['linkslug'];
|
872 |
+
}
|
873 |
+
|
874 |
+
$_POST['post_status'] = 'publish';
|
875 |
+
}
|
876 |
+
|
877 |
+
/*******************************************************************************
|
878 |
+
** thirstyFilterData
|
879 |
+
** Filter all the data for nasty surprises in the input forms
|
880 |
+
** @since 2.1.2
|
881 |
+
*******************************************************************************/
|
882 |
+
function thirstyFilterData($data) {
|
883 |
+
if (is_array($data)) {
|
884 |
+
foreach ($data as $key => $elem) {
|
885 |
+
// 2.3 (jkohlbach) - filtered data wasn't being passed on to array elements properly
|
886 |
+
$data[$key] = thirstyFilterData($elem);
|
887 |
+
}
|
888 |
+
} else {
|
889 |
+
// 2.3 (jkohlbach) - harden up the filtering so we can use wp_editor in some add-ons
|
890 |
+
if (empty($data))
|
891 |
+
return $data;
|
892 |
+
|
893 |
+
$data = nl2br(trim(htmlspecialchars(wp_kses_post($data), ENT_QUOTES, 'UTF-8')));
|
894 |
+
$breaks = array("\r\n", "\n", "\r");
|
895 |
+
$data = str_replace($breaks, "", $data);
|
896 |
+
|
897 |
+
//if (get_magic_quotes_gpc())
|
898 |
+
$data = stripslashes($data);// Strip slahes out, make sure to unescape it before passing to esc_sql
|
899 |
+
$data = esc_sql($data);
|
900 |
+
}
|
901 |
+
return $data;
|
902 |
+
}
|
903 |
+
|
904 |
+
/*******************************************************************************
|
905 |
+
** thirstyDraftToPublish
|
906 |
+
** Don't let user save drafts, make them go straight to published
|
907 |
+
** @since 1.0
|
908 |
+
*******************************************************************************/
|
909 |
+
function thirstyDraftToPublish($post_id) {
|
910 |
+
$update_status_post = array();
|
911 |
+
$update_status_post['ID'] = $post_id;
|
912 |
+
$update_status_post['post_status'] = 'publish';
|
913 |
+
|
914 |
+
// Update the post into the database
|
915 |
+
wp_update_post($update_status_post);
|
916 |
+
}
|
917 |
+
|
918 |
+
/*******************************************************************************
|
919 |
+
** thirstyEditorButtons
|
920 |
+
** Add the tinyMCE button
|
921 |
+
** @since 1.0
|
922 |
+
*******************************************************************************/
|
923 |
+
function thirstyEditorButtons() {
|
924 |
+
if (!current_user_can('edit_posts') && !current_user_can('edit_pages'))
|
925 |
+
return;
|
926 |
+
|
927 |
+
$thirstyOptions = get_option('thirstyOptions');
|
928 |
+
|
929 |
+
if (!isset($thirstyOptions['disablevisualeditorbuttons']) || $thirstyOptions['disablevisualeditorbuttons'] != 'on') {
|
930 |
+
if (get_user_option('rich_editing') == 'true') {
|
931 |
+
add_filter('mce_external_plugins', 'thirstyMCEButton');
|
932 |
+
add_filter('mce_buttons', 'thirstyRegisterMCEButton', 5);
|
933 |
+
}
|
934 |
+
}
|
935 |
+
}
|
936 |
+
|
937 |
+
/*******************************************************************************
|
938 |
+
** thirstyMCEButton
|
939 |
+
** Add the tinyMCE button
|
940 |
+
** @return array - array of plugins for tinyMCE with ThirstyAffiliates plugin
|
941 |
+
** @since 1.0
|
942 |
+
*******************************************************************************/
|
943 |
+
function thirstyMCEButton($plugin_array) {
|
944 |
+
//$plugin_array['thirstyaffiliates'] = plugins_url('thirstyaffiliates/thirstymce/editor_plugin.js');
|
945 |
+
$plugin_array['thirstyaffiliates'] = plugins_url('thirstyaffiliates/thirstymce/editor_plugin_src.js');
|
946 |
+
return $plugin_array;
|
947 |
+
}
|
948 |
+
|
949 |
+
/*******************************************************************************
|
950 |
+
** thirstyRegisterMCEButton
|
951 |
+
** Register the tinyMCE button
|
952 |
+
** @return array - buttons array with thirstyaffiliate button included
|
953 |
+
** @since 1.0
|
954 |
+
*******************************************************************************/
|
955 |
+
function thirstyRegisterMCEButton($buttons) {
|
956 |
+
array_push($buttons, 'separator', 'thirstyaffiliates_button');
|
957 |
+
array_push($buttons, 'separator', 'thirstyaffiliates_quickaddlink_button');
|
958 |
+
return $buttons;
|
959 |
+
}
|
960 |
+
|
961 |
+
/*******************************************************************************
|
962 |
+
** thirstyRedirectUrl
|
963 |
+
** Handle redirects to thirstylink link urls
|
964 |
+
** @since 1.0
|
965 |
+
*******************************************************************************/
|
966 |
+
function thirstyRedirectUrl() {
|
967 |
+
global $post;
|
968 |
+
|
969 |
+
if (get_post_type($post) == 'thirstylink') {
|
970 |
+
// Get link data and set the redirect url
|
971 |
+
$linkData = unserialize(get_post_meta($post->ID, 'thirstyData', true));
|
972 |
+
$thirstyOptions = get_option('thirstyOptions');
|
973 |
+
|
974 |
+
// Set redirect URL
|
975 |
+
$linkData['linkurl'] = html_entity_decode($linkData['linkurl']);
|
976 |
+
$redirectUrl = $linkData['linkurl'];
|
977 |
+
|
978 |
+
// Set redirect type
|
979 |
+
$redirectType = isset( $linkData['linkredirecttype'] ) ? $linkData['linkredirecttype'] : '';
|
980 |
+
if (empty($redirectType))
|
981 |
+
$redirectType = $thirstyOptions['linkredirecttype'];
|
982 |
+
|
983 |
+
// Apply any filters to the url before redirecting
|
984 |
+
$redirectUrl = apply_filters('thirstyFilterRedirectUrl', $redirectUrl, $linkData, $post);
|
985 |
+
$redirectType = apply_filters('thirstyFilterRedirectType', $redirectType );
|
986 |
+
|
987 |
+
// Perform any actions before redirecting
|
988 |
+
do_action('thirstyBeforeLinkRedirect', $post->ID, $redirectUrl, $redirectType);
|
989 |
+
|
990 |
+
if (empty($redirectType))
|
991 |
+
$redirectType = 301; // default to 301 redirect
|
992 |
+
|
993 |
+
// Redirect the page
|
994 |
+
if (!empty($redirectUrl))
|
995 |
+
wp_redirect($redirectUrl, intval($redirectType));
|
996 |
+
exit();
|
997 |
+
}
|
998 |
+
}
|
999 |
+
|
1000 |
+
/*******************************************************************************
|
1001 |
+
** thirstyAdminHeader
|
1002 |
+
** Add some javascript/css to the admin header that is required later
|
1003 |
+
** @since 1.0
|
1004 |
+
*******************************************************************************/
|
1005 |
+
function thirstyAdminHeader() {
|
1006 |
+
global $post;
|
1007 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1008 |
+
$legacyUploader = (isset($thirstyOptions['legacyuploader']) && $thirstyOptions['legacyuploader'] == 'on') ? true : false;
|
1009 |
+
|
1010 |
+
$thirstyJSEnable = 'false';
|
1011 |
+
|
1012 |
+
if (!empty($post->post_type) && $post->post_type == 'thirstylink') {
|
1013 |
+
$thirstyJSEnable = 'true';
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
echo "\n<!-- ThirstyAffiliates -->\n" .
|
1017 |
+
'<script type="text/javascript">' . "\n" .
|
1018 |
+
' var thirstyAjaxLink = "' . admin_url('admin-ajax.php') . '";' . "\n" .
|
1019 |
+
' var thirstyPluginDir = "' . plugins_url('thirstyaffiliates/') . '";' . "\n" .
|
1020 |
+
' var thirstyJSEnable = ' . $thirstyJSEnable . ';' . "\n" .
|
1021 |
+
"</script>\n\n";
|
1022 |
+
|
1023 |
+
|
1024 |
+
// always queue thickbox
|
1025 |
+
wp_enqueue_script('thickbox', true);
|
1026 |
+
wp_enqueue_style('thickbox');
|
1027 |
+
if (function_exists('wp_enqueue_media') && !$legacyUploader) {
|
1028 |
+
wp_enqueue_media();
|
1029 |
+
} else {
|
1030 |
+
if ($legacyUploader) // 2.4.9 only load if we're using the legacy uploader
|
1031 |
+
wp_enqueue_script('media');
|
1032 |
+
}
|
1033 |
+
|
1034 |
+
if (!empty($post->post_type) && $post->post_type == 'thirstylink' ||
|
1035 |
+
(isset($_GET['page']) && !empty($_GET['page']) && $_GET['page'] == 'thirsty-addons') ||
|
1036 |
+
(isset($_GET['page']) && !empty($_GET['page']) && $_GET['page'] == 'thirsty-settings')) {
|
1037 |
+
wp_enqueue_style( 'thirstyStylesheet', plugins_url('thirstyaffiliates/css/thirstystyle.css'));
|
1038 |
+
|
1039 |
+
wp_dequeue_script('jquery-ui-sortable');
|
1040 |
+
wp_dequeue_script('admin-scripts');
|
1041 |
+
wp_enqueue_script(
|
1042 |
+
'thirstyhelper',
|
1043 |
+
plugins_url('thirstyaffiliates/js/thirstyhelper.js'),
|
1044 |
+
array('jquery')
|
1045 |
+
);
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
thirstyQuicktags();
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
/*******************************************************************************
|
1052 |
+
** thirstyHeader
|
1053 |
+
** Add some javascript/css front end header that is required later
|
1054 |
+
** @since 2.2
|
1055 |
+
*******************************************************************************/
|
1056 |
+
function thirstyHeader() {
|
1057 |
+
// Reserved for future use
|
1058 |
+
}
|
1059 |
+
|
1060 |
+
/*******************************************************************************
|
1061 |
+
** thirstyAddSettingsLinkToPluginPage
|
1062 |
+
** Add a settings link to the plugin on the plugins page
|
1063 |
+
** @since 1.0
|
1064 |
+
*******************************************************************************/
|
1065 |
+
function thirstyAddSettingsLinkToPluginPage($links, $file) {
|
1066 |
+
if ($file == plugin_basename(__FILE__)){
|
1067 |
+
$settings_link = '<a href="edit.php?post_type=thirstylink&page=thirsty-settings">' . __('Settings', 'thirstyaffiliates') . '</a>';
|
1068 |
+
array_unshift($links, $settings_link);
|
1069 |
+
}
|
1070 |
+
return $links;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
/*******************************************************************************
|
1074 |
+
** thirstyTrimSlugs
|
1075 |
+
** Make sure links are nice and short. This functionality was adapted from SEO
|
1076 |
+
** slugs plugin by Andrei Mikrukov.
|
1077 |
+
** @since 2.1.1
|
1078 |
+
*******************************************************************************/
|
1079 |
+
function thirstyTrimSlugs($slug) {
|
1080 |
+
/* Don't change existing slugs */
|
1081 |
+
if ($slug)
|
1082 |
+
return $slug;
|
1083 |
+
|
1084 |
+
// 2.4.2: If the global disable option is checked we should not do anything
|
1085 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1086 |
+
|
1087 |
+
if (isset($thirstyOptions['disableslugshortening']) && $thirstyOptions['disableslugshortening'] == 'on')
|
1088 |
+
return $slug;
|
1089 |
+
|
1090 |
+
// 2.4.2: If the post isn't an affiliate link, skip slug shortening
|
1091 |
+
if (isset($_POST['post_ID']) && get_post_type($_POST['post_ID']) != 'thirstylink')
|
1092 |
+
return $slug;
|
1093 |
+
|
1094 |
+
// 2.6.1: check for post_title before using it
|
1095 |
+
if (!isset($_POST['post_title']))
|
1096 |
+
return $slug;
|
1097 |
+
|
1098 |
+
/* Get the slug from the title */
|
1099 |
+
$shortSlug = strtolower(stripslashes($_POST['post_title']));
|
1100 |
+
|
1101 |
+
/* Sanitize the slug string */
|
1102 |
+
$shortSlug = preg_replace('/&.+?;/', '', $shortSlug);
|
1103 |
+
$shortSlug = preg_replace ("/[^a-zA-Z0-9 \']/", "", $shortSlug);
|
1104 |
+
|
1105 |
+
/* Strip common words */
|
1106 |
+
$commonWords = array("a", "able", "about", "above", "abroad", "according", "accordingly", "across", "actually", "adj", "after", "afterwards", "again", "against", "ago", "ahead", "ain't", "all", "allow", "allows", "almost", "alone", "along", "alongside", "already", "also", "although", "always", "am", "amid", "amidst", "among", "amongst", "an", "and", "another", "any", "anybody", "anyhow", "anyone", "anything", "anyway", "anyways", "anywhere", "apart", "appear", "appreciate", "appropriate", "are", "aren't", "around", "as", "a's", "aside", "ask", "asking", "associated", "at", "available", "away", "awfully", "b", "back", "backward", "backwards", "be", "became", "because", "become", "becomes", "becoming", "been", "before", "beforehand", "begin", "behind", "being", "believe", "below", "beside", "besides", "best", "better", "between", "beyond", "both", "brief", "but", "by", "c", "came", "can", "cannot", "cant", "can't", "caption", "cause", "causes", "certain", "certainly", "changes", "clearly", "c'mon", "co", "co.", "com", "come", "comes", "concerning", "consequently", "consider", "considering", "contain", "containing", "contains", "corresponding", "could", "couldn't", "course", "c's", "currently", "d", "dare", "daren't", "definitely", "described", "despite", "did", "didn't", "different", "directly", "do", "does", "doesn't", "doing", "done", "don't", "down", "downwards", "during", "e", "each", "edu", "eg", "eight", "eighty", "either", "else", "elsewhere", "end", "ending", "enough", "entirely", "especially", "et", "etc", "even", "ever", "evermore", "every", "everybody", "everyone", "everything", "everywhere", "ex", "exactly", "example", "except", "f", "fairly", "far", "farther", "few", "fewer", "fifth", "first", "five", "followed", "following", "follows", "for", "forever", "former", "formerly", "forth", "forward", "found", "four", "from", "further", "furthermore", "g", "get", "gets", "getting", "given", "gives", "go", "goes", "going", "gone", "got", "gotten", "greetings", "h", "had", "hadn't", "half", "happens", "hardly", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "hello", "help", "hence", "her", "here", "hereafter", "hereby", "herein", "here's", "hereupon", "hers", "herself", "he's", "hi", "him", "himself", "his", "hither", "hopefully", "how", "howbeit", "however", "hundred", "i", "i'd", "ie", "if", "ignored", "i'll", "i'm", "immediate", "in", "inasmuch", "inc", "inc.", "indeed", "indicate", "indicated", "indicates", "inner", "inside", "insofar", "instead", "into", "inward", "is", "isn't", "it", "it'd", "it'll", "its", "it's", "itself", "i've", "j", "just", "k", "keep", "keeps", "kept", "know", "known", "knows", "l", "last", "lately", "later", "latter", "latterly", "least", "less", "lest", "let", "let's", "like", "liked", "likely", "likewise", "little", "look", "looking", "looks", "low", "lower", "ltd", "m", "made", "mainly", "make", "makes", "many", "may", "maybe", "mayn't", "me", "mean", "meantime", "meanwhile", "merely", "might", "mightn't", "mine", "minus", "miss", "more", "moreover", "most", "mostly", "mr", "mrs", "much", "must", "mustn't", "my", "myself", "n", "name", "namely", "nd", "near", "nearly", "necessary", "need", "needn't", "needs", "neither", "never", "neverf", "neverless", "nevertheless", "new", "next", "nine", "ninety", "no", "nobody", "non", "none", "nonetheless", "noone", "no-one", "nor", "normally", "not", "nothing", "notwithstanding", "novel", "now", "nowhere", "o", "obviously", "of", "off", "often", "oh", "ok", "okay", "old", "on", "once", "one", "ones", "one's", "only", "onto", "opposite", "or", "other", "others", "otherwise", "ought", "oughtn't", "our", "ours", "ourselves", "out", "outside", "over", "overall", "own", "p", "particular", "particularly", "past", "per", "perhaps", "placed", "please", "plus", "possible", "presumably", "probably", "provided", "provides", "q", "que", "quite", "qv", "r", "rather", "rd", "re", "really", "reasonably", "recent", "recently", "regarding", "regardless", "regards", "relatively", "respectively", "right", "round", "s", "said", "same", "saw", "say", "saying", "says", "second", "secondly", "see", "seeing", "seem", "seemed", "seeming", "seems", "seen", "self", "selves", "sensible", "sent", "serious", "seriously", "seven", "several", "shall", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "since", "six", "so", "some", "somebody", "someday", "somehow", "someone", "something", "sometime", "sometimes", "somewhat", "somewhere", "soon", "sorry", "specified", "specify", "specifying", "still", "sub", "such", "sup", "sure", "t", "take", "taken", "taking", "tell", "tends", "th", "than", "thank", "thanks", "thanx", "that", "that'll", "thats", "that's", "that've", "the", "their", "theirs", "them", "themselves", "then", "thence", "there", "thereafter", "thereby", "there'd", "therefore", "therein", "there'll", "there're", "theres", "there's", "thereupon", "there've", "these", "they", "they'd", "they'll", "they're", "they've", "thing", "things", "think", "third", "thirty", "this", "thorough", "thoroughly", "those", "though", "three", "through", "throughout", "thru", "thus", "till", "to", "together", "too", "took", "toward", "towards", "tried", "tries", "truly", "try", "trying", "t's", "twice", "two", "u", "un", "under", "underneath", "undoing", "unfortunately", "unless", "unlike", "unlikely", "until", "unto", "up", "upon", "upwards", "us", "use", "used", "useful", "uses", "using", "usually", "v", "value", "various", "versus", "very", "via", "viz", "vs", "w", "want", "wants", "was", "wasn't", "way", "we", "we'd", "welcome", "well", "we'll", "went", "were", "we're", "weren't", "we've", "what", "whatever", "what'll", "what's", "what've", "when", "whence", "whenever", "where", "whereafter", "whereas", "whereby", "wherein", "where's", "whereupon", "wherever", "whether", "which", "whichever", "while", "whilst", "whither", "who", "who'd", "whoever", "whole", "who'll", "whom", "whomever", "who's", "whose", "why", "will", "willing", "wish", "with", "within", "without", "wonder", "won't", "would", "wouldn't", "x", "y", "yes", "yet", "you", "you'd", "you'll", "your", "you're", "yours", "yourself", "yourselves", "you've", "z", "zero");
|
1107 |
+
$shortSlugArray = array_diff(preg_split("/ /", $shortSlug), $commonWords);
|
1108 |
+
|
1109 |
+
/* Turn it back into a string before returning */
|
1110 |
+
$shortSlug = join("-", $shortSlugArray);
|
1111 |
+
return $shortSlug;
|
1112 |
+
}
|
1113 |
+
|
1114 |
+
/*******************************************************************************
|
1115 |
+
** thirstyQuicktags
|
1116 |
+
** Setup quicktags for adding the affiliate link button to the HTML editor
|
1117 |
+
** @since 2.2
|
1118 |
+
*******************************************************************************/
|
1119 |
+
function thirstyQuicktags() {
|
1120 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1121 |
+
if (isset($thirstyOptions['disabletexteditorbuttons']) && $thirstyOptions['disabletexteditorbuttons'] == 'on') {
|
1122 |
+
return;
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
echo '<script type="text/javascript" charset="utf-8">
|
1126 |
+
jQuery(document).ready(function() {
|
1127 |
+
if (typeof QTags != "undefined")
|
1128 |
+
QTags.addButton("ThirstyAffiliates_Aff_Link", "affiliate link", thirstyQTagsButton, "", "", "'.__('Open the ThirstyAffiliates link picker', 'thirstyaffiliates').'", 30);
|
1129 |
+
|
1130 |
+
// Quick add quick tag
|
1131 |
+
if (typeof QTags != "undefined")
|
1132 |
+
QTags.addButton("ThirstyAffiliates_quick_add_Aff_Link", "quick add affiliate link", thirstyQTagsButtonQuickAdd, "", "", "'.__('Open quick add affiliate link dialog', 'thirstyaffiliates').'", 31);
|
1133 |
+
|
1134 |
+
});
|
1135 |
+
|
1136 |
+
function thirstyQTagsButton() {
|
1137 |
+
if (typeof tinymce != "undefined") {
|
1138 |
+
thirstyOpenLinkPicker(tinymce.activeEditor);
|
1139 |
+
} else {
|
1140 |
+
thirstyOpenLinkPicker();
|
1141 |
+
}
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
// Quick add affiliate link callback
|
1145 |
+
function thirstyQTagsButtonQuickAdd() {
|
1146 |
+
if (typeof tinymce != "undefined") {
|
1147 |
+
thirstyOpenQuickAddLinkPicker(tinymce.activeEditor);
|
1148 |
+
} else {
|
1149 |
+
thirstyOpenQuickAddLinkPicker();
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
function thirstyGetHTMLEditorSelection() {
|
1154 |
+
var textComponent;
|
1155 |
+
textComponent = parent.document.getElementById("replycontent");
|
1156 |
+
if (typeof textComponent == "undefined" || !jQuery(textComponent).is(":visible")) // is not a comment reply
|
1157 |
+
textComponent = parent.document.getElementById("content");
|
1158 |
+
|
1159 |
+
var selectedText = {};
|
1160 |
+
|
1161 |
+
// IE version
|
1162 |
+
if (parent.document.selection != undefined) {
|
1163 |
+
textComponent.focus();
|
1164 |
+
var sel = parent.document.selection.createRange();
|
1165 |
+
selectedText.text = sel.text;
|
1166 |
+
selectedText.start = sel.start;
|
1167 |
+
selectedText.end = sel.end;
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
// Mozilla version
|
1171 |
+
else if (textComponent.selectionStart != undefined) {
|
1172 |
+
var startPos = textComponent.selectionStart;
|
1173 |
+
var endPos = textComponent.selectionEnd;
|
1174 |
+
selectedText.text = textComponent.value.substring(startPos, endPos)
|
1175 |
+
selectedText.start = startPos;
|
1176 |
+
selectedText.end = endPos;
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
return selectedText;
|
1180 |
+
}
|
1181 |
+
|
1182 |
+
</script>
|
1183 |
+
|
1184 |
+
<style>
|
1185 |
+
.quicktags-toolbar input[value="affiliate link"],
|
1186 |
+
.quicktags-toolbar input[value="quick add affiliate link"] {
|
1187 |
+
text-decoration: underline;
|
1188 |
+
font-style: italic;
|
1189 |
+
}</style>';
|
1190 |
+
|
1191 |
+
}
|
1192 |
+
|
1193 |
+
/*******************************************************************************
|
1194 |
+
** thirstyUnattachImageFromLink
|
1195 |
+
** Remove an image from a link, but don't delete it because it could be attached
|
1196 |
+
** to something else
|
1197 |
+
** @since 2.2
|
1198 |
+
*******************************************************************************/
|
1199 |
+
function thirstyUnattachImageFromLink() {
|
1200 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1201 |
+
die('Cheatin\', Huh?');
|
1202 |
+
|
1203 |
+
$imgId = (!empty($_POST['imgId']) ? $_POST['imgId'] : '');
|
1204 |
+
|
1205 |
+
if (empty($imgId))
|
1206 |
+
die();
|
1207 |
+
|
1208 |
+
$img = array(
|
1209 |
+
'ID' => $imgId,
|
1210 |
+
'post_parent' => ''
|
1211 |
+
);
|
1212 |
+
|
1213 |
+
wp_update_post($img);
|
1214 |
+
|
1215 |
+
echo $imgId;
|
1216 |
+
die();
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
/*******************************************************************************
|
1220 |
+
** thirstyAttachImageToLink
|
1221 |
+
** Attach an image to a link, make a carbon copy of the attachment object to do
|
1222 |
+
** but link it to the existing image
|
1223 |
+
** @since 2.2
|
1224 |
+
*******************************************************************************/
|
1225 |
+
function thirstyAttachImageToLink() {
|
1226 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1227 |
+
die('Cheatin\', Huh?');
|
1228 |
+
|
1229 |
+
$imgId = (!empty($_POST['imgId']) ? $_POST['imgId'] : '');
|
1230 |
+
$imgName = (!empty($_POST['imgName']) ? $_POST['imgName'] : '');
|
1231 |
+
$imgMime = (!empty($_POST['imgMime']) ? $_POST['imgMime'] : '');
|
1232 |
+
$postId = (!empty($_POST['postId']) ? $_POST['postId'] : '');
|
1233 |
+
$wp_upload_dir = wp_upload_dir();
|
1234 |
+
|
1235 |
+
if (empty($imgId) || empty($postId))
|
1236 |
+
die();
|
1237 |
+
|
1238 |
+
$img = wp_get_attachment_metadata($imgId, true);
|
1239 |
+
$imgPost = get_post($imgId);
|
1240 |
+
|
1241 |
+
// If this image is attached to another post already we need to duplicate it
|
1242 |
+
// so we can attach it to our post
|
1243 |
+
if (!empty($imgPost->post_parent)) {
|
1244 |
+
$upload_dir = wp_upload_dir(); // 2.4.10: Need the abs path on metadata creation
|
1245 |
+
|
1246 |
+
$attachment = array(
|
1247 |
+
'guid' => $img['file'],
|
1248 |
+
'post_mime_type' => $imgMime,
|
1249 |
+
'post_title' => $imgName,
|
1250 |
+
'post_content' => '',
|
1251 |
+
'post_status' => 'inherit'
|
1252 |
+
);
|
1253 |
+
|
1254 |
+
$attach_id = wp_insert_attachment(
|
1255 |
+
$attachment,
|
1256 |
+
$img['file'],
|
1257 |
+
$postId
|
1258 |
+
);
|
1259 |
+
|
1260 |
+
require_once(ABSPATH . 'wp-admin/includes/image.php');
|
1261 |
+
$attach_data = wp_generate_attachment_metadata( $attach_id, trailingslashit($upload_dir['basedir']) . $img['file'] );
|
1262 |
+
wp_update_attachment_metadata( $attach_id, $attach_data );
|
1263 |
+
|
1264 |
+
$img = wp_get_attachment_metadata($attach_id, true);
|
1265 |
+
} else {
|
1266 |
+
$imgPost->post_parent = $postId;
|
1267 |
+
wp_update_post($imgPost);
|
1268 |
+
}
|
1269 |
+
die();
|
1270 |
+
}
|
1271 |
+
|
1272 |
+
/*******************************************************************************
|
1273 |
+
** thirstyUploadImageFromUrl
|
1274 |
+
** Upload an image from a URL into the system (used for legacy Insert from URL)
|
1275 |
+
** @since 2.2
|
1276 |
+
*******************************************************************************/
|
1277 |
+
function thirstyUploadImageFromUrl() {
|
1278 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1279 |
+
die('Cheatin\', Huh?');
|
1280 |
+
|
1281 |
+
$imgUrl = (!empty($_POST['imgUrl']) ? $_POST['imgUrl'] : '');
|
1282 |
+
$postId = (!empty($_POST['postId']) ? $_POST['postId'] : '');
|
1283 |
+
|
1284 |
+
if (empty($imgUrl) || empty($postId))
|
1285 |
+
return;
|
1286 |
+
|
1287 |
+
$image = media_sideload_image($imgUrl, $postId, '');
|
1288 |
+
echo $image;
|
1289 |
+
die();
|
1290 |
+
}
|
1291 |
+
|
1292 |
+
/*******************************************************************************
|
1293 |
+
** thirstyLinkPickerSearch
|
1294 |
+
** Worker function for searching for an affiliate link, this is called via ajax
|
1295 |
+
** @since 2.2
|
1296 |
+
*******************************************************************************/
|
1297 |
+
function thirstyLinkPickerSearch() {
|
1298 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1299 |
+
die('Cheatin\', Huh?');
|
1300 |
+
|
1301 |
+
$search_query = thirstyFilterData((!empty($_POST['search_query']) ? $_POST['search_query'] : ''));
|
1302 |
+
$search_offset = (!empty($_POST['search_offset']) ? $_POST['search_offset'] : '');
|
1303 |
+
$cats_query = (!empty($_POST['cats_query']) ? $_POST['cats_query'] : '');
|
1304 |
+
|
1305 |
+
global $wpdb;
|
1306 |
+
$querystr = "SELECT * FROM $wpdb->posts WHERE post_type = 'thirstylink' AND post_status = 'publish' ";
|
1307 |
+
|
1308 |
+
if (!empty($search_query))
|
1309 |
+
$querystr .= " AND LOWER(post_title) like '%" . strtolower($search_query) . "%' ";
|
1310 |
+
|
1311 |
+
$querystr .= " ORDER BY post_date DESC";
|
1312 |
+
|
1313 |
+
if (empty($search_query)) {
|
1314 |
+
$querystr .= " LIMIT 10";
|
1315 |
+
|
1316 |
+
if (!empty($search_offset)) {
|
1317 |
+
$querystr .= " OFFSET " . $search_offset;
|
1318 |
+
}
|
1319 |
+
}
|
1320 |
+
|
1321 |
+
$linkQuery = $wpdb->get_results($querystr, OBJECT);
|
1322 |
+
|
1323 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1324 |
+
$nofollow = (!empty($thirstyOptions['nofollow']) ? 'nofollow="true" ' : ' ');
|
1325 |
+
$target = (!empty($thirstyOptions['newwindow']) ? 'newwindow="true" ' : ' ');
|
1326 |
+
|
1327 |
+
if (!empty($linkQuery)) {
|
1328 |
+
$i = 0;
|
1329 |
+
foreach ($linkQuery as $link) {
|
1330 |
+
// if not a search, then only display 10 most recent
|
1331 |
+
if (empty($search_query) && $i >= 10) break;
|
1332 |
+
|
1333 |
+
$linkData = unserialize(get_post_meta($link->ID, 'thirstyData', true));
|
1334 |
+
// Set the link's override for nofollow if applicable
|
1335 |
+
if (!empty($linkData['nofollow'])) {
|
1336 |
+
$nofollow = ($linkData['nofollow'] == 'on' ? 'nofollow="true" ' : ' ');
|
1337 |
+
}
|
1338 |
+
|
1339 |
+
// Set the link's override for target if applicable
|
1340 |
+
if (!empty($linkData['newwindow'])) {
|
1341 |
+
$target = ($linkData['newwindow'] == 'on' ? 'newwindow="true" ' : ' ');
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
// get images
|
1345 |
+
$imageThumbsHTML = '';
|
1346 |
+
$attachment_args = array(
|
1347 |
+
'post_type' => 'attachment',
|
1348 |
+
'numberposts' => null,
|
1349 |
+
'post_status' => null,
|
1350 |
+
'post_parent' => $link->ID
|
1351 |
+
);
|
1352 |
+
|
1353 |
+
$attachments = get_posts($attachment_args);
|
1354 |
+
$imageThumbsHTML .= '<img class="insert_img_link' . (count($attachments) > 0 ? '' : ' img_link_disabled') . '" src="' . plugins_url('thirstyaffiliates/') . 'images/icon-images' . (count($attachments) > 0 ? '' : '-disabled') .
|
1355 |
+
'.png" alt="'.__('Insert Image Link', 'thirstyaffiliates').'" ' .
|
1356 |
+
'title="'.__('Insert Image Link', 'thirstyaffiliates').'" /><div class="img_choices">';
|
1357 |
+
|
1358 |
+
if (count($attachments) > 0) {
|
1359 |
+
|
1360 |
+
foreach ($attachments as $attachment) {
|
1361 |
+
$img = wp_get_attachment_image_src($attachment->ID, 'full');
|
1362 |
+
$imageThumbsHTML .= '<p><span class="thirstyImg" linkID="' . $link->ID . '" imageId="' . $attachment->ID . '">';
|
1363 |
+
$imageThumbsHTML .= wp_get_attachment_image($attachment->ID, array(75, 75));
|
1364 |
+
$imageThumbsHTML .= '</span></p>';
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
$imageThumbsHTML .= '</div>';
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
$categories = strip_tags( get_the_term_list( $link->ID, 'thirstylink-category', '', ', ' ) );
|
1371 |
+
|
1372 |
+
// Output the code
|
1373 |
+
echo '<tr' . ($i % 2 == 1 ? ' class="alternate"' : '') . '><td>' .
|
1374 |
+
'<span class="linkname">' . $link->post_title .
|
1375 |
+
'</span>' .
|
1376 |
+
'</td><td class="category">' . $categories .
|
1377 |
+
'</td><td class="right">
|
1378 |
+
<img class="insert_link" linkID="' . $link->ID . '" src="' . plugins_url('thirstyaffiliates/') . 'images/icon-link.png" alt="'.__('Insert Plain Link', 'thirstyaffiliates').'" title="'.__('Insert Plain Link', 'thirstyaffiliates').'" />
|
1379 |
+
<img class="insert_shortcode_link" linkID="' . $link->ID . '" src="' . plugins_url('thirstyaffiliates/') . 'images/icon-shortcode.png" alt="'.__('Insert Shortcode', 'thirstyaffiliates').'" title="'.__('Insert Shortcode', 'thirstyaffiliates').'" />
|
1380 |
+
' . $imageThumbsHTML . '
|
1381 |
+
</td></tr>';
|
1382 |
+
|
1383 |
+
$i++;
|
1384 |
+
}
|
1385 |
+
} else {
|
1386 |
+
if (!empty($search_query)) // make sure it's a search query and not just a request for more links
|
1387 |
+
echo '<tr><td>'.__('Sorry, no affiliate links found.', 'thirstyaffiliates').'</td></tr>';
|
1388 |
+
}
|
1389 |
+
|
1390 |
+
die();
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
/*******************************************************************************
|
1394 |
+
** thirstyGetLinkCode
|
1395 |
+
** Worker function for building the link code ready for insertion. This handles
|
1396 |
+
** creating the code to insert into posts, pages, comments, etc and covers three
|
1397 |
+
** link types: standard, shortcode and images.
|
1398 |
+
** @since 2.2
|
1399 |
+
*******************************************************************************/
|
1400 |
+
function thirstyGetLinkCode($linkType = '', $linkID = '', $copiedText = '', $imageID = '', $echo = true) {
|
1401 |
+
if (defined( 'DOING_AJAX' ) && DOING_AJAX && !current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1402 |
+
die('Cheatin\', Huh?');
|
1403 |
+
|
1404 |
+
if (empty($linkType))
|
1405 |
+
$linkType = (!empty($_POST['linkType']) ? $_POST['linkType'] : '');
|
1406 |
+
if (empty($linkID))
|
1407 |
+
$linkID = (!empty($_POST['linkID']) ? $_POST['linkID'] : '');
|
1408 |
+
if (empty($imageID))
|
1409 |
+
$imageID = (!empty($_POST['imageID']) ? $_POST['imageID'] : '');
|
1410 |
+
if (empty($copiedText))
|
1411 |
+
$copiedText = (!empty($_POST['copiedText']) ? $_POST['copiedText'] : '');
|
1412 |
+
|
1413 |
+
if (empty($linkID))
|
1414 |
+
return; // not a valid link, so don't bother doing any of this
|
1415 |
+
|
1416 |
+
if (empty($linkType))
|
1417 |
+
$linkType = 'link';
|
1418 |
+
|
1419 |
+
if ($linkType == 'image' && empty($imageID))
|
1420 |
+
return;
|
1421 |
+
|
1422 |
+
// Get the link and thirsty options
|
1423 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1424 |
+
$link = get_post($linkID);
|
1425 |
+
$linkData = unserialize(get_post_meta($link->ID, 'thirstyData', true));
|
1426 |
+
|
1427 |
+
if ($linkType == 'image') {
|
1428 |
+
if (empty($imageID))
|
1429 |
+
$imageID = (!empty($_POST['imageID']) ? $_POST['imageID'] : '');
|
1430 |
+
$image = get_post($imageID);
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
$nofollow = (!empty($thirstyOptions['nofollow']) ? 'nofollow' : '');
|
1434 |
+
$target = (!empty($thirstyOptions['newwindow']) ? '_blank' : '');
|
1435 |
+
$linkclass = (!empty($thirstyOptions['disablethirstylinkclass']) ? '' : 'thirstylink');
|
1436 |
+
$disabletitle = (!empty($thirstyOptions['disabletitleattribute']) ? true : false);
|
1437 |
+
|
1438 |
+
// Set the link's nofollow if global setting is not set
|
1439 |
+
if (empty($nofollow))
|
1440 |
+
$nofollow = ( isset( $linkData['nofollow'] ) && $linkData['nofollow'] == 'on' ? 'nofollow' : '' );
|
1441 |
+
|
1442 |
+
// Set the link's target value if global setting is not set
|
1443 |
+
if (empty($target))
|
1444 |
+
$target = ( isset( $linkData['newwindow'] ) && $linkData['newwindow'] == 'on' ? '_blank' : '' );
|
1445 |
+
|
1446 |
+
// 2.4.9: Add additional rel tags specified globally
|
1447 |
+
$additionalRelTags = '';
|
1448 |
+
if (isset($thirstyOptions['additionalreltags']) && !empty($thirstyOptions['additionalreltags']))
|
1449 |
+
$additionalRelTags = ' ' . $thirstyOptions['additionalreltags'];
|
1450 |
+
|
1451 |
+
// Check if copied text contains HTML
|
1452 |
+
$copiedTextContainsHTML = false;
|
1453 |
+
if($copiedText != strip_tags($copiedText)) {
|
1454 |
+
$copiedTextContainsHTML = true;
|
1455 |
+
$disabletitle = true;
|
1456 |
+
|
1457 |
+
// We don't support using shortcode links or image links on top of copied
|
1458 |
+
// text that has an image tag in it
|
1459 |
+
if (($linkType == 'shortcode' || $linkType == 'image') &&
|
1460 |
+
preg_match('/<img/', $copiedText)) {
|
1461 |
+
$output = stripslashes($copiedText);
|
1462 |
+
if ($echo)
|
1463 |
+
echo $output;
|
1464 |
+
else
|
1465 |
+
return $output;
|
1466 |
+
die();
|
1467 |
+
}
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
$linkAttributes = array(
|
1471 |
+
'href' => get_post_permalink($link->ID),
|
1472 |
+
'class' => $linkclass,
|
1473 |
+
'id' => '',
|
1474 |
+
'rel' => $nofollow . $additionalRelTags,
|
1475 |
+
'target' => $target,
|
1476 |
+
'title' => ((!empty($copiedText) && !$disabletitle) ? $copiedText : (!$disabletitle ? $linkData['linkname'] : ''))
|
1477 |
+
);
|
1478 |
+
|
1479 |
+
// filter link attributes
|
1480 |
+
$linkAttributes = apply_filters('thirstyFilterLinkAttributesBeforeInsert', $linkAttributes, $linkID);
|
1481 |
+
|
1482 |
+
if ($linkType == 'image') {
|
1483 |
+
$imageDetails = wp_get_attachment_image_src($image->ID, 'full');
|
1484 |
+
$imageAttributes = array(
|
1485 |
+
'src' => $imageDetails[0],
|
1486 |
+
'width' => $imageDetails[1],
|
1487 |
+
'height' => $imageDetails[2],
|
1488 |
+
'alt' => (!empty($copiedText) ? strip_tags($copiedText) : $linkData['linkname']),
|
1489 |
+
'title' => ((!empty($copiedText) && !$disabletitle) ? $copiedText : (!$disabletitle ? $linkData['linkname'] : '')),
|
1490 |
+
'class' => (!empty($linkclass) ? 'thirstylinkimg' : ''),
|
1491 |
+
'id' => ''
|
1492 |
+
);
|
1493 |
+
|
1494 |
+
// filter link image attributes
|
1495 |
+
$imageAttributes = apply_filters('thirstyFilterLinkImageAttributesBeforeInsert', $imageAttributes, $imageID, $linkID);
|
1496 |
+
}
|
1497 |
+
|
1498 |
+
$output = '';
|
1499 |
+
switch ($linkType) {
|
1500 |
+
case 'shortcode':
|
1501 |
+
$output .= '[thirstylink linkid="' . $link->ID . '" linktext="' . $copiedText . '"';
|
1502 |
+
|
1503 |
+
unset($linkAttributes['href']);
|
1504 |
+
unset($linkAttributes['rel']);
|
1505 |
+
unset($linkAttributes['target']);
|
1506 |
+
|
1507 |
+
foreach ($linkAttributes as $name => $value) {
|
1508 |
+
// Handle square bracket escaping (used for some addons, eg. Google Analytics click tracking)
|
1509 |
+
$value = str_replace("[", "[", $value);
|
1510 |
+
$value = str_replace("]", "]", $value);
|
1511 |
+
$value = htmlentities($value);
|
1512 |
+
$output .= (!empty($value) ? ' ' . $name . '="' . $value . '"' : '');
|
1513 |
+
}
|
1514 |
+
|
1515 |
+
$output .= ']';
|
1516 |
+
|
1517 |
+
break;
|
1518 |
+
case 'image':
|
1519 |
+
|
1520 |
+
$output .= '<a';
|
1521 |
+
|
1522 |
+
foreach ($linkAttributes as $name => $value) {
|
1523 |
+
$output .= (!empty($value) ? ' ' . $name . '="' . $value . '"' : '');
|
1524 |
+
}
|
1525 |
+
|
1526 |
+
$output .= '>';
|
1527 |
+
|
1528 |
+
$output .= '<img';
|
1529 |
+
|
1530 |
+
foreach ($imageAttributes as $name => $value) {
|
1531 |
+
$output .= (!empty($value) ? ' ' . $name . '="' . $value . '"' : '');
|
1532 |
+
}
|
1533 |
+
|
1534 |
+
$output .= ' /></a>';
|
1535 |
+
|
1536 |
+
break;
|
1537 |
+
case 'link':
|
1538 |
+
default:
|
1539 |
+
$output .= '<a';
|
1540 |
+
|
1541 |
+
foreach ($linkAttributes as $name => $value) {
|
1542 |
+
$output .= (!empty($value) ? ' ' . $name . '="' . $value . '"' : '');
|
1543 |
+
}
|
1544 |
+
|
1545 |
+
$output .= '>' . stripslashes($copiedText) . '</a>';
|
1546 |
+
|
1547 |
+
break;
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
if ($echo)
|
1551 |
+
echo $output;
|
1552 |
+
else
|
1553 |
+
return $output;
|
1554 |
+
|
1555 |
+
die();
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
/*******************************************************************************
|
1559 |
+
** thirstyGetThickboxContent
|
1560 |
+
** Get the link picker thickbox content
|
1561 |
+
** @since 2.2
|
1562 |
+
*******************************************************************************/
|
1563 |
+
function thirstyGetThickboxContent() {
|
1564 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1565 |
+
die('Cheatin\', Huh?');
|
1566 |
+
|
1567 |
+
?>
|
1568 |
+
|
1569 |
+
<html>
|
1570 |
+
<head>
|
1571 |
+
|
1572 |
+
<?php
|
1573 |
+
wp_enqueue_script('editor');
|
1574 |
+
wp_dequeue_script('jquery-ui-sortable');
|
1575 |
+
wp_dequeue_script('admin-scripts');
|
1576 |
+
do_action('admin_print_styles');
|
1577 |
+
do_action('admin_print_scripts');
|
1578 |
+
do_action('admin_head');
|
1579 |
+
?>
|
1580 |
+
<style>
|
1581 |
+
|
1582 |
+
body {
|
1583 |
+
font: 14px/16px sans-serif;
|
1584 |
+
background: #f5f5f5;
|
1585 |
+
}
|
1586 |
+
|
1587 |
+
#picker_container, #picker_content {
|
1588 |
+
padding: 10px;
|
1589 |
+
overflow: hidden;
|
1590 |
+
text-align: center;
|
1591 |
+
}
|
1592 |
+
|
1593 |
+
#picker_container h1 {
|
1594 |
+
font-size: 16px;
|
1595 |
+
font-weight: bold;
|
1596 |
+
}
|
1597 |
+
|
1598 |
+
#picker_container table {
|
1599 |
+
width: 100%;
|
1600 |
+
text-align: left;
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
#picker_container table tr, #picker_container table tr.alternate {
|
1604 |
+
background: #e5e5e5;
|
1605 |
+
height: 40px;
|
1606 |
+
vertical-align: top;
|
1607 |
+
}
|
1608 |
+
|
1609 |
+
#picker_container table tr.alternate {
|
1610 |
+
background: #eeeeee;
|
1611 |
+
}
|
1612 |
+
|
1613 |
+
#picker_container table tr td {
|
1614 |
+
padding: 15px 20px 15px 20px;
|
1615 |
+
font-size: 16px;
|
1616 |
+
text-align: left;
|
1617 |
+
}
|
1618 |
+
|
1619 |
+
#picker_container table tr td.right {
|
1620 |
+
text-align: center;
|
1621 |
+
vertical-align: middle;
|
1622 |
+
width: 75px;
|
1623 |
+
padding-right: 10px;
|
1624 |
+
}
|
1625 |
+
|
1626 |
+
#picker_container #heading_title {
|
1627 |
+
margin: 10px auto 0px auto;
|
1628 |
+
}
|
1629 |
+
|
1630 |
+
#picker_container #search_box {
|
1631 |
+
height: 30px;
|
1632 |
+
margin-top: 20px;
|
1633 |
+
}
|
1634 |
+
|
1635 |
+
#picker_container #search_box label {
|
1636 |
+
color: #202020;
|
1637 |
+
padding: 4px;
|
1638 |
+
margin-right: 5px;
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
#picker_container #search_input {
|
1642 |
+
width: 185px;
|
1643 |
+
}
|
1644 |
+
|
1645 |
+
#picker_container .linkname {
|
1646 |
+
font-weight: normal;
|
1647 |
+
font-size: 16px;
|
1648 |
+
color: #21759b;
|
1649 |
+
}
|
1650 |
+
|
1651 |
+
#picker_container div.linkcats {
|
1652 |
+
margin-top: 5px;
|
1653 |
+
}
|
1654 |
+
|
1655 |
+
#picker_container .linkcat {
|
1656 |
+
font-size: 10px;
|
1657 |
+
background: #e1e1e1;
|
1658 |
+
padding: 3px;
|
1659 |
+
margin-right: 3px;
|
1660 |
+
color: #808080;
|
1661 |
+
white-space: nowrap;
|
1662 |
+
}
|
1663 |
+
|
1664 |
+
#picker_container .insert_link,
|
1665 |
+
#picker_container .insert_img_link,
|
1666 |
+
#picker_container .insert_shortcode_link {
|
1667 |
+
white-space: nowrap;
|
1668 |
+
float: left;
|
1669 |
+
margin: 0;
|
1670 |
+
padding: 0;
|
1671 |
+
text-decoration: underline;
|
1672 |
+
cursor: pointer;
|
1673 |
+
vertical-align: middle;
|
1674 |
+
margin-right: 5px;
|
1675 |
+
}
|
1676 |
+
|
1677 |
+
#picker_container .img_link_disabled {
|
1678 |
+
cursor: default;
|
1679 |
+
}
|
1680 |
+
|
1681 |
+
#picker_container .show_url, #picker_container .hide_url {
|
1682 |
+
font-size: 10px;
|
1683 |
+
color: #808080;
|
1684 |
+
text-decoration: underline;
|
1685 |
+
cursor: pointer;
|
1686 |
+
margin-left: 10px;
|
1687 |
+
white-space: nowrap;
|
1688 |
+
}
|
1689 |
+
|
1690 |
+
#picker_container .img_choices {
|
1691 |
+
display: none;
|
1692 |
+
float: left;
|
1693 |
+
clear: both;
|
1694 |
+
}
|
1695 |
+
|
1696 |
+
#picker_container .thirstyImg {
|
1697 |
+
cursor: pointer;
|
1698 |
+
}
|
1699 |
+
|
1700 |
+
#picker_container #show_more {
|
1701 |
+
cursor: pointer;
|
1702 |
+
display: none;
|
1703 |
+
right: 30px;
|
1704 |
+
position: absolute;
|
1705 |
+
margin-top: 10px;
|
1706 |
+
padding-bottom: 20px;
|
1707 |
+
}
|
1708 |
+
|
1709 |
+
#picker_container #show_more_loader {
|
1710 |
+
display: none;
|
1711 |
+
right: 150px;
|
1712 |
+
margin-top: 15px;
|
1713 |
+
position: absolute;
|
1714 |
+
}
|
1715 |
+
|
1716 |
+
</style>
|
1717 |
+
</head>
|
1718 |
+
<body>
|
1719 |
+
<div id="picker_container">
|
1720 |
+
<img id="heading_title" src="<?php echo plugins_url('thirstyaffiliates/'); ?>images/thirstylogo.png" alt="<?php _e('Affiliate Link Picker', 'thirstyaffiliates'); ?>" />
|
1721 |
+
|
1722 |
+
<div id="search_box">
|
1723 |
+
<label for="search_input"><?php _e('Search ...', 'thirstyaffiliates'); ?></label>
|
1724 |
+
<input type="text" value="" size="35" id="search_input" name="search_input" />
|
1725 |
+
</div>
|
1726 |
+
<table id="picker_content" cellspacing="0" cellpadding="0">
|
1727 |
+
|
1728 |
+
</table>
|
1729 |
+
<img id="show_more_loader" src="<?php echo plugins_url('thirstyaffiliates/'); ?>images/thirsty-loader.gif" alt="Loading ..." /> <img id="show_more" src="<?php echo plugins_url('thirstyaffiliates/'); ?>images/search-load-more.png" alt="'.__('Load more ...', 'thirstyaffiliates').'" />
|
1730 |
+
</div>
|
1731 |
+
|
1732 |
+
<?php echo '<script type="text/javascript">var thirstyPluginDir = "' .
|
1733 |
+
plugins_url('thirstyaffiliates/') . '";
|
1734 |
+
var thirstyMCE;</script>';?>
|
1735 |
+
|
1736 |
+
<script type="text/javascript" src="<?php echo plugins_url('thirstyaffiliates/'); ?>js/ThirstyLinkPicker.js"></script>
|
1737 |
+
</body>
|
1738 |
+
</html>
|
1739 |
+
|
1740 |
+
<?php
|
1741 |
+
die();
|
1742 |
+
}
|
1743 |
+
|
1744 |
+
/*******************************************************************************
|
1745 |
+
** thirstyGetQuickAddLinkThickboxContent
|
1746 |
+
** Get the quick add link thickbox content
|
1747 |
+
** Contributor: J++
|
1748 |
+
** @since 2.3.1
|
1749 |
+
*******************************************************************************/
|
1750 |
+
function thirstyGetQuickAddLinkThickboxContent() {
|
1751 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
1752 |
+
die('Cheatin\', Huh?');
|
1753 |
+
|
1754 |
+
?>
|
1755 |
+
<html>
|
1756 |
+
<head>
|
1757 |
+
<?php
|
1758 |
+
wp_enqueue_script('editor');
|
1759 |
+
wp_dequeue_script('jquery-ui-sortable');
|
1760 |
+
wp_dequeue_script('admin-scripts');
|
1761 |
+
do_action('admin_print_styles');
|
1762 |
+
do_action('admin_print_scripts');
|
1763 |
+
do_action('admin_head');
|
1764 |
+
?>
|
1765 |
+
<style>
|
1766 |
+
body {
|
1767 |
+
font: 14px/16px sans-serif;
|
1768 |
+
background: #fff;
|
1769 |
+
}
|
1770 |
+
|
1771 |
+
#heading_title {
|
1772 |
+
display: block;
|
1773 |
+
margin: 10px auto 0px auto;
|
1774 |
+
}
|
1775 |
+
|
1776 |
+
#quick-add-link-container {
|
1777 |
+
padding: 1em 3em;
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
#error-bulletin {
|
1781 |
+
padding: .4em .8em;
|
1782 |
+
border: 1px solid #BB0E19 !important;
|
1783 |
+
background-color: #FFEFF0;
|
1784 |
+
font-size: 1em;
|
1785 |
+
/*font-family: arial, sans-serif;*/
|
1786 |
+
font-family: 'Open Sans', sans-serif;
|
1787 |
+
margin: 1em 0;
|
1788 |
+
color: #BB0E19;
|
1789 |
+
display: none;
|
1790 |
+
border-radius: 3px;
|
1791 |
+
}
|
1792 |
+
|
1793 |
+
#quick-add-link-form {
|
1794 |
+
display: block;
|
1795 |
+
}
|
1796 |
+
|
1797 |
+
.field_row {
|
1798 |
+
padding: .2em;
|
1799 |
+
margin-bottom: 1em;
|
1800 |
+
}
|
1801 |
+
.field_row label,
|
1802 |
+
.field_row .desc {
|
1803 |
+
display: block;
|
1804 |
+
font-size: 14px;
|
1805 |
+
color: #444444;
|
1806 |
+
/*font-family: arial, sans-serif;*/
|
1807 |
+
font-family: 'Open Sans', sans-serif;
|
1808 |
+
margin-bottom: .4em;
|
1809 |
+
font-weight: normal;
|
1810 |
+
}
|
1811 |
+
.field_row .errmsg {
|
1812 |
+
display: none;
|
1813 |
+
color: red;
|
1814 |
+
font-size: 12px;
|
1815 |
+
font-weight: bold;
|
1816 |
+
/*font-family: arial, sans-serif;*/
|
1817 |
+
font-family: 'Open Sans', sans-serif;
|
1818 |
+
margin-bottom: .4em;
|
1819 |
+
}
|
1820 |
+
.field_row .desc {
|
1821 |
+
font-size: 12px;
|
1822 |
+
font-style: italic;
|
1823 |
+
}
|
1824 |
+
.field_row input[type="text"] {
|
1825 |
+
display: block;
|
1826 |
+
width: 100%;
|
1827 |
+
border: 1px solid #DDD;
|
1828 |
+
padding: 5px;
|
1829 |
+
margin-bottom: .4em;
|
1830 |
+
height: 31px;
|
1831 |
+
font-size: 14px;
|
1832 |
+
box-shadow: inset 0 1px 2px rgba(0,0,0,.07);
|
1833 |
+
background-color: #fff;
|
1834 |
+
color: #333;
|
1835 |
+
}
|
1836 |
+
.field_row select {
|
1837 |
+
padding: 2px;
|
1838 |
+
line-height: 28px;
|
1839 |
+
height: 28px;
|
1840 |
+
vertical-align: middle;
|
1841 |
+
border-color: #ddd;
|
1842 |
+
box-shadow: inset 0 1px 2px rgba(0,0,0,.07);
|
1843 |
+
background-color: #fff;
|
1844 |
+
color: #333;
|
1845 |
+
font-size: 14px;
|
1846 |
+
}
|
1847 |
+
.field_row select option {
|
1848 |
+
font-weight: normal;
|
1849 |
+
font: inherit;
|
1850 |
+
line-height: 28px;
|
1851 |
+
}
|
1852 |
+
.field_row .err {
|
1853 |
+
border: 1px solid #BB0E19 !important;
|
1854 |
+
background-color: #FFEFF0;
|
1855 |
+
}
|
1856 |
+
.field_row .option label {
|
1857 |
+
cursor: pointer;
|
1858 |
+
}
|
1859 |
+
.field_row .button-primary {
|
1860 |
+
margin-top: 8px;
|
1861 |
+
margin-bottom: 5px;
|
1862 |
+
background: #2ea2cc;
|
1863 |
+
border-color: #0074a2;
|
1864 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);
|
1865 |
+
box-shadow: inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);
|
1866 |
+
color: #fff;
|
1867 |
+
text-decoration: none;
|
1868 |
+
}
|
1869 |
+
.field_row .button-primary:hover {
|
1870 |
+
background: #1e8cbe;
|
1871 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
|
1872 |
+
box-shadow: inset 0 1px 0 rgba(120,200,230,.6);
|
1873 |
+
}
|
1874 |
+
.field_row .button_secondary {
|
1875 |
+
color: #555;
|
1876 |
+
border-color: #ccc;
|
1877 |
+
background: #f7f7f7;
|
1878 |
+
-webkit-box-shadow: inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);
|
1879 |
+
box-shadow: inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);
|
1880 |
+
vertical-align: top;
|
1881 |
+
}
|
1882 |
+
.field_row .button_secondary:hover {
|
1883 |
+
background: #fafafa;
|
1884 |
+
border-color: #999;
|
1885 |
+
color: #222;
|
1886 |
+
}
|
1887 |
+
.field_row .button {
|
1888 |
+
display: inline-block;
|
1889 |
+
line-height: 26px;
|
1890 |
+
height: 28px;
|
1891 |
+
margin: 0;
|
1892 |
+
padding: 0 10px 1px;
|
1893 |
+
cursor: pointer;
|
1894 |
+
border-width: 1px;
|
1895 |
+
border-style: solid;
|
1896 |
+
-webkit-border-radius: 3px;
|
1897 |
+
-webkit-appearance: none;
|
1898 |
+
border-radius: 3px;
|
1899 |
+
white-space: nowrap;
|
1900 |
+
box-sizing: border-box;
|
1901 |
+
margin-left: 5px;
|
1902 |
+
font-size: 14px;
|
1903 |
+
font-family: Arial, sans-serif;
|
1904 |
+
}
|
1905 |
+
.field_row.button-container {
|
1906 |
+
text-align: right;
|
1907 |
+
}
|
1908 |
+
</style>
|
1909 |
+
</head>
|
1910 |
+
<body>
|
1911 |
+
<div id="quick-add-link-container">
|
1912 |
+
|
1913 |
+
<?php
|
1914 |
+
// Create Nonce
|
1915 |
+
wp_nonce_field(plugin_basename(__FILE__), 'quick_add_aff_link_nonce');
|
1916 |
+
|
1917 |
+
// Get Global Options
|
1918 |
+
$thirstyOptions = get_option('thirstyOptions');
|
1919 |
+
?>
|
1920 |
+
|
1921 |
+
<img id="heading_title" src="<?php echo plugins_url('thirstyaffiliates/'); ?>images/thirstylogo.png" alt="<?php _e('Affiliate Link Picker', 'thirstyaffiliates'); ?>" />
|
1922 |
+
|
1923 |
+
<div id="error-bulletin"></div>
|
1924 |
+
|
1925 |
+
<div id="quick-add-link-form">
|
1926 |
+
|
1927 |
+
<div class="field_row">
|
1928 |
+
<label for="qal_link_name"><?php _e('Link Name:', 'thirstyaffiliates'); ?></label>
|
1929 |
+
<input type="text" name="qal_link_name" id="qal_link_name">
|
1930 |
+
<div class="errmsg"></div>
|
1931 |
+
</div>
|
1932 |
+
|
1933 |
+
<div class="field_row">
|
1934 |
+
<label for="qal_destination_url"><?php _e('Destination URL:', 'thirstyaffiliates'); ?></label>
|
1935 |
+
<div class="desc"><?php _e('http:// or https:// is required', 'thirstyaffiliates'); ?></div>
|
1936 |
+
<input type="text" name="qal_destination_url" id="qal_destination_url">
|
1937 |
+
<div class="errmsg"></div>
|
1938 |
+
|
1939 |
+
<?php
|
1940 |
+
|
1941 |
+
/* Only display link nofollow setting if the global nofollow setting is disabled */
|
1942 |
+
if ($thirstyOptions['nofollow'] != 'on') {
|
1943 |
+
?>
|
1944 |
+
<div class="option"><label for="qal_no_follow_link"><input type="checkbox" name="qal_no_follow_link" value="on" id="qal_no_follow_link"><?php _e('No follow this link?', 'thirstyaffiliates'); ?></label></div>
|
1945 |
+
<?php
|
1946 |
+
}
|
1947 |
+
|
1948 |
+
/* Only display link new window setting if the global new window setting is disabled */
|
1949 |
+
if ($thirstyOptions['newwindow'] != 'on') {
|
1950 |
+
?>
|
1951 |
+
<div class="option"><label for="qal_new_window"><input type="checkbox" name="qal_new_window" value="on" id="qal_new_window"><?php _e('Open this link in new window?', 'thirstyaffiliates'); ?></label></div>
|
1952 |
+
<?php
|
1953 |
+
}
|
1954 |
+
|
1955 |
+
?>
|
1956 |
+
</div>
|
1957 |
+
|
1958 |
+
<div class="field_row">
|
1959 |
+
<label><?php _e('Redirect Type', 'thirstyaffiliates'); ?></label>
|
1960 |
+
<span class="desc"><?php _e('Override the default redirection type for this link:', 'thirstyaffiliates'); ?></span>
|
1961 |
+
<?php
|
1962 |
+
foreach (thirstyGetRedirectTypes() as $key => $value) {
|
1963 |
+
?>
|
1964 |
+
<div class="option">
|
1965 |
+
<label>
|
1966 |
+
<input type="radio" name="qal_redirect_type" value="<?php echo $key; ?>" <?php echo (strcasecmp($key, $thirstyOptions['linkredirecttype']) == 0)?"checked":""; ?>>
|
1967 |
+
<?php echo $value; ?>
|
1968 |
+
<?php echo (strcasecmp($key, $thirstyOptions['linkredirecttype']) == 0)? __(" (Default)") : ""; ?>
|
1969 |
+
</label>
|
1970 |
+
</div>
|
1971 |
+
<?php
|
1972 |
+
}
|
1973 |
+
?>
|
1974 |
+
</div>
|
1975 |
+
|
1976 |
+
<?php
|
1977 |
+
/* If we are using categories in slugs force user to select a category */
|
1978 |
+
if (!empty($thirstyOptions['showcatinslug']) && $thirstyOptions['showcatinslug'] == 'on') {
|
1979 |
+
$selectedLinkCats = wp_get_post_terms($post_id, 'thirstylink-category');
|
1980 |
+
|
1981 |
+
if(empty($selectedLinkCats)) {
|
1982 |
+
$defaultCat = 'Uncategorized';
|
1983 |
+
|
1984 |
+
// create the default term if it doesn't exist
|
1985 |
+
if (!term_exists($defaultCat, 'thirstylink-category')) {
|
1986 |
+
wp_insert_term($defaultCat, 'thirstylink-category');
|
1987 |
+
}
|
1988 |
+
|
1989 |
+
// get the default term and set this post to have it
|
1990 |
+
$defaultTerm = get_term_by('name', $defaultCat, 'thirstylink-category');
|
1991 |
+
wp_set_post_terms($post_id, $defaultTerm->term_id, 'thirstylink-category');
|
1992 |
+
}
|
1993 |
+
}
|
1994 |
+
?>
|
1995 |
+
|
1996 |
+
<?php
|
1997 |
+
/* Only show category when the show category in slug setting is turned on */
|
1998 |
+
if(strcasecmp($thirstyOptions['showcatinslug'], "on") == 0){
|
1999 |
+
|
2000 |
+
// Retrieve all link categories
|
2001 |
+
$link_categories = get_terms("thirstylink-category", array('hide_empty' => false));
|
2002 |
+
|
2003 |
+
if(count($link_categories) > 0){
|
2004 |
+
// If no category term is present, create one, coz we really need this for the plugin to work properly
|
2005 |
+
if (!term_exists('Uncategorized', 'thirstylink-category')) {
|
2006 |
+
wp_insert_term('Uncategorized', 'thirstylink-category');
|
2007 |
+
}
|
2008 |
+
|
2009 |
+
// Ok, Retrieve again all link categories
|
2010 |
+
$link_categories = get_terms("thirstylink-category", array('hide_empty' => false));
|
2011 |
+
}
|
2012 |
+
|
2013 |
+
// Only show combo box if there are indeed link categories
|
2014 |
+
if(count($link_categories) > 0){
|
2015 |
+
?>
|
2016 |
+
<div class="field_row">
|
2017 |
+
<label for=""><?php _e('Link Categories', 'thirstyaffiliates'); ?></label>
|
2018 |
+
<span class="desc"><?php _e('You must select a link category as you set the general setting to include category on the link', 'thirstyaffiliates'); ?></span>
|
2019 |
+
<select name="qal_link_categories" id="qal_link_categories" style="width: 300px;" data-placeholder="<?php _e('Select categories...', 'thirstyaffiliates'); ?>" multiple>
|
2020 |
+
<?php
|
2021 |
+
foreach (get_terms("thirstylink-category", array('hide_empty' => false)) as $link_category) {
|
2022 |
+
?>
|
2023 |
+
<option value="<?php echo $link_category->term_id; ?>"><?php echo $link_category->name; ?></option>
|
2024 |
+
<?php
|
2025 |
+
}
|
2026 |
+
?>
|
2027 |
+
</select>
|
2028 |
+
</div>
|
2029 |
+
<?php
|
2030 |
+
}
|
2031 |
+
}
|
2032 |
+
?>
|
2033 |
+
|
2034 |
+
<div class="field_row button-container">
|
2035 |
+
<input type="button" id="add-link" class="button button_secondary" value="<?php _e('Add Link', 'thirstyaffiliates'); ?>">
|
2036 |
+
<input type="button" id="quick-add-link" class="button button-primary" value="<?php _e('Add Link & Insert Into Post', 'thirstyaffiliates'); ?>">
|
2037 |
+
</div>
|
2038 |
+
|
2039 |
+
</div><!-- quick-add-link-form -->
|
2040 |
+
</div><!-- quick-add-link-container -->
|
2041 |
+
|
2042 |
+
|
2043 |
+
<?php echo '<script type="text/javascript">var thirstyPluginDir = "' .
|
2044 |
+
plugins_url('thirstyaffiliates/') . '";
|
2045 |
+
var thirstyMCE;</script>';?>
|
2046 |
+
|
2047 |
+
<link rel="stylesheet" href="<?php echo plugins_url('thirstyaffiliates/'); ?>js/lib/chosen/chosen.min.css"/>
|
2048 |
+
<script type="text/javascript" src="<?php echo plugins_url('thirstyaffiliates/'); ?>js/lib/chosen/chosen.jquery.min.js"></script>
|
2049 |
+
|
2050 |
+
<script type="text/javascript" src="<?php echo plugins_url('thirstyaffiliates/'); ?>js/ThirstyQuickAddLinkPicker.js"></script>
|
2051 |
+
|
2052 |
+
<script type="text/javascript">
|
2053 |
+
jQuery(document).ready(function($){
|
2054 |
+
|
2055 |
+
$("#qal_link_categories").chosen();
|
2056 |
+
|
2057 |
+
});
|
2058 |
+
</script>
|
2059 |
+
</body>
|
2060 |
+
</html>
|
2061 |
+
|
2062 |
+
<?php
|
2063 |
+
die();
|
2064 |
+
}
|
2065 |
+
|
2066 |
+
/*******************************************************************************
|
2067 |
+
** quickCreateAffiliateLink
|
2068 |
+
** Quick create affiliate link
|
2069 |
+
** Contributor: J++
|
2070 |
+
** @since 2.3.1
|
2071 |
+
*******************************************************************************/
|
2072 |
+
function quickCreateAffiliateLink($linkname = '', $linkurl = '', $nofollow = '', $newwindow = '', $linkredirecttype = '', $linkCategory ='', $echo = true) {
|
2073 |
+
if (!current_user_can(apply_filters('thirstyAjaxAccessCapability', 'edit_posts')))
|
2074 |
+
die('Cheatin\', Huh?');
|
2075 |
+
|
2076 |
+
// Validate Nonce
|
2077 |
+
if(!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], plugin_basename(__FILE__))) {
|
2078 |
+
_e("You don't have appropriate permission to perform this action", "thirstyaffiliates");
|
2079 |
+
echo $_POST['nonce'];
|
2080 |
+
die();
|
2081 |
+
}
|
2082 |
+
|
2083 |
+
|
2084 |
+
/*========== Server side validation ==========*/
|
2085 |
+
$linkname = stripslashes(strip_tags(trim($_POST['linkname'])));
|
2086 |
+
$linkurl = stripslashes(strip_tags(trim($_POST['linkurl'])));
|
2087 |
+
$nofollow = stripslashes(strip_tags(trim($_POST['nofollow'])));
|
2088 |
+
$newwindow = stripslashes(strip_tags(trim($_POST['newwindow'])));
|
2089 |
+
$linkredirecttype = stripslashes(strip_tags(trim($_POST['linkredirecttype'])));
|
2090 |
+
$allGood = true;
|
2091 |
+
|
2092 |
+
// Link Name
|
2093 |
+
if(strcasecmp($linkname, "") == 0){
|
2094 |
+
$allGood = false;
|
2095 |
+
}
|
2096 |
+
|
2097 |
+
// Link URL
|
2098 |
+
if(strcasecmp($linkurl, "") == 0){
|
2099 |
+
$allGood = false;
|
2100 |
+
}
|
2101 |
+
|
2102 |
+
// Checkpoint
|
2103 |
+
if(!$allGood){
|
2104 |
+
|
2105 |
+
// Kill the flow
|
2106 |
+
// TODO: Enhance error message
|
2107 |
+
_e("Server Error: Some fields dont have appropriate values", "thirstyaffiliates");
|
2108 |
+
die();
|
2109 |
+
|
2110 |
+
}else{
|
2111 |
+
|
2112 |
+
/*========== Create new affiliate link ==========*/
|
2113 |
+
|
2114 |
+
// Insert new post
|
2115 |
+
$current_user = wp_get_current_user();
|
2116 |
+
|
2117 |
+
$new_post = array(
|
2118 |
+
'post_author' => $current_user->ID,
|
2119 |
+
'post_date' => current_time('mysql'),
|
2120 |
+
'post_date_gmt' => current_time('mysql', true),
|
2121 |
+
'post_title' => $linkname,
|
2122 |
+
'post_status' => 'publish',
|
2123 |
+
'post_type' => 'thirstyLink'
|
2124 |
+
);
|
2125 |
+
|
2126 |
+
$new_post_id = wp_insert_post($new_post);
|
2127 |
+
|
2128 |
+
// Check if inserting new post was succeful
|
2129 |
+
if($new_post_id == 0){
|
2130 |
+
|
2131 |
+
// Kill the flow
|
2132 |
+
// TODO: Enhance error message
|
2133 |
+
_e("Server Error: Failed to dynamically insert new post", "thirstyaffiliates");
|
2134 |
+
die();
|
2135 |
+
|
2136 |
+
}else{
|
2137 |
+
|
2138 |
+
/*========== Update meta data ==========*/
|
2139 |
+
// Update post meta for the newly dynamically created post
|
2140 |
+
$linkData = array(
|
2141 |
+
'linkname' => $linkname,
|
2142 |
+
'linkurl' => $linkurl,
|
2143 |
+
'linkredirecttype' => $linkredirecttype
|
2144 |
+
);
|
2145 |
+
|
2146 |
+
// Check if nofollow meta contains valid data
|
2147 |
+
if(strcasecmp($nofollow, "on") == 0){
|
2148 |
+
$linkData['nofollow'] = $nofollow;
|
2149 |
+
}
|
2150 |
+
|
2151 |
+
// Check if newwindow meta contains valid data
|
2152 |
+
if(strcasecmp($newwindow, "on") == 0){
|
2153 |
+
$linkData['newwindow'] = $newwindow;
|
2154 |
+
}
|
2155 |
+
|
2156 |
+
$meta_update_status = update_post_meta($new_post_id, 'thirstyData', serialize($linkData));
|
2157 |
+
|
2158 |
+
if(!$meta_update_status){
|
2159 |
+
|
2160 |
+
// Kill the flow
|
2161 |
+
// TODO: Enhance error message
|
2162 |
+
_e("Server Error: Failed to update meta data of recently dynamically created post", "thirstyaffiliates");
|
2163 |
+
die();
|
2164 |
+
|
2165 |
+
}
|
2166 |
+
|
2167 |
+
/*========== Set link category if required ==========*/
|
2168 |
+
if ( isset( $_POST[ 'linkCategory' ] ) ) {
|
2169 |
+
|
2170 |
+
$linkCat = $_POST['linkCategory'];
|
2171 |
+
wp_set_post_terms( $new_post_id, $linkCat, 'thirstylink-category' );
|
2172 |
+
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
}// if($new_post_id == 0) else
|
2176 |
+
|
2177 |
+
}// if(!$allGood) else
|
2178 |
+
|
2179 |
+
// Return the newly created post id for use in inserting link to editor
|
2180 |
+
echo $new_post_id;
|
2181 |
+
die();
|
2182 |
+
|
2183 |
+
}
|
2184 |
+
|
2185 |
+
/*******************************************************************************
|
2186 |
+
** thirstyGetRedirectTypes
|
2187 |
+
** Return the redirect types in the system, the default plus anything any
|
2188 |
+
** add-on adds to the list.
|
2189 |
+
** @since 2.3
|
2190 |
+
*******************************************************************************/
|
2191 |
+
function thirstyGetRedirectTypes() {
|
2192 |
+
$redirectTypes = array(
|
2193 |
+
'301' => '301 Permanent',
|
2194 |
+
'302' => '302 Temporary',
|
2195 |
+
'307' => '307 Temporary (alternative)'
|
2196 |
+
);
|
2197 |
+
|
2198 |
+
return apply_filters('thirstyFilterRedirectTypeOptions', $redirectTypes);
|
2199 |
+
}
|
2200 |
+
|
2201 |
+
function thirstyConvertSpecialToChars($redirectUrl) {
|
2202 |
+
return htmlspecialchars_decode($redirectUrl, ENT_COMPAT);
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
/*******************************************************************************
|
2206 |
+
** thirstyAffiliatesActivation
|
2207 |
+
** On activation add flush flag which gets removed after flushing the rules once
|
2208 |
+
** @since 1.3
|
2209 |
+
*******************************************************************************/
|
2210 |
+
function thirstyAffiliatesActivation() {
|
2211 |
+
flush_rewrite_rules();
|
2212 |
+
|
2213 |
+
// Used to help flush rewrite rules on init.
|
2214 |
+
set_transient( 'thirstylink_flush_rewrite_rules', 'true', 5 * 60 );
|
2215 |
+
}
|
2216 |
+
|
2217 |
+
/*******************************************************************************
|
2218 |
+
** thirstyAffiliatesDeactivation
|
2219 |
+
** On deactivation remove flush flag
|
2220 |
+
** @since 1.3
|
2221 |
+
*******************************************************************************/
|
2222 |
+
function thirstyAffiliatesDeactivation() {
|
2223 |
+
flush_rewrite_rules();
|
2224 |
+
}
|
2225 |
+
|
2226 |
+
/**
|
2227 |
+
* Add custom column to thirsty link listings (Link ID).
|
2228 |
+
*
|
2229 |
+
* @param $columns
|
2230 |
+
*
|
2231 |
+
* @return array
|
2232 |
+
* @since 4.5
|
2233 |
+
*/
|
2234 |
+
function thirstyCustomAffiliateListingColumn ( $columns ) {
|
2235 |
+
|
2236 |
+
$arrayKeys = array_keys($columns);
|
2237 |
+
$firstIndex = $arrayKeys[0];
|
2238 |
+
$firstValue = $columns[$firstIndex];
|
2239 |
+
array_shift($columns);
|
2240 |
+
|
2241 |
+
$columns = array( $firstIndex => $firstValue , 'link_id' => __( 'Link ID') ) + $columns;
|
2242 |
+
|
2243 |
+
return $columns;
|
2244 |
+
|
2245 |
+
}
|
2246 |
+
|
2247 |
+
/**
|
2248 |
+
* Add custom column value to thirsty link listings (Link ID).
|
2249 |
+
*
|
2250 |
+
* @param $column
|
2251 |
+
* @param $postId
|
2252 |
+
*
|
2253 |
+
* @since 1.0.0
|
2254 |
+
*/
|
2255 |
+
function thirstyCustomAffiliateListingColumnValue ( $column, $postId ) {
|
2256 |
+
|
2257 |
+
if ( $column == 'link_id' ) {
|
2258 |
+
|
2259 |
+
echo "<span>" . $postId . "</span>";
|
2260 |
+
|
2261 |
+
}
|
2262 |
+
|
2263 |
+
}
|
2264 |
+
|
2265 |
+
/**
|
2266 |
+
* Implement wildcards by filtering the redirectUrl
|
2267 |
+
*
|
2268 |
+
* @param $redirectUrl
|
2269 |
+
* @param $linkData
|
2270 |
+
* @return string
|
2271 |
+
*
|
2272 |
+
* @since 2.7.0
|
2273 |
+
*/
|
2274 |
+
add_filter( 'thirstyFilterRedirectUrl', 'thirstyWildCardRedirectFilter', 10, 3 );
|
2275 |
+
function thirstyWildCardRedirectFilter( $redirectUrl, $linkData, $post ) {
|
2276 |
+
|
2277 |
+
if ( ! isset( $linkData['enablewildcard'] ) || ! $linkData['enablewildcard'] )
|
2278 |
+
return $redirectUrl;
|
2279 |
+
|
2280 |
+
$uri = $_SERVER['REQUEST_URI'];
|
2281 |
+
$newRedirectUrl = $redirectUrl;
|
2282 |
+
$wildcards = array();
|
2283 |
+
|
2284 |
+
// remove the start of the uri until the post_name to only get the wildcards part of the url
|
2285 |
+
$uri_wildcards = preg_replace( '/(.*?)' . $post->post_name . '\//', '', $uri );
|
2286 |
+
$uri_wildcards = explode( '/', $uri_wildcards );
|
2287 |
+
|
2288 |
+
if ( ! empty( $linkData['wildcards'] ) && is_array( $linkData['wildcards'] ) ) {
|
2289 |
+
|
2290 |
+
$n = 0;
|
2291 |
+
|
2292 |
+
foreach( $linkData['wildcards'] as $wc ) {
|
2293 |
+
|
2294 |
+
$variable = isset( $wc['variable'] ) ? $wc['variable'] : '';
|
2295 |
+
$value = isset( $wc['value'] ) ? $wc['value'] : '';
|
2296 |
+
|
2297 |
+
if ( array_key_exists( $variable, $wildcards ) ) {
|
2298 |
+
$wildcards[ $variable ]['values'][] = $value;
|
2299 |
+
} else {
|
2300 |
+
$wildcards[ $variable ]['values'][] = $value;
|
2301 |
+
$wildcards[ $variable ]['key'] = $n;
|
2302 |
+
$n++;
|
2303 |
+
}
|
2304 |
+
}
|
2305 |
+
|
2306 |
+
foreach( $wildcards as $variable => $wildcard ) {
|
2307 |
+
|
2308 |
+
$key = $wildcard['key'];
|
2309 |
+
$random = rand( 0, count( $wildcard['values'] ) - 1);
|
2310 |
+
|
2311 |
+
$value = (isset( $uri_wildcards[ $key ] ) && $uri_wildcards[ $key ] != '' ) ? $uri_wildcards[ $key ] : $wildcard['values'][ $random ];
|
2312 |
+
$newRedirectUrl = str_replace( '%' . $variable . '%', $value, $newRedirectUrl );
|
2313 |
+
}
|
2314 |
+
return $newRedirectUrl;
|
2315 |
+
|
2316 |
+
} else {
|
2317 |
+
return $redirectUrl;
|
2318 |
+
}
|
2319 |
+
}
|
2320 |
+
|
2321 |
+
/**
|
2322 |
+
* Return the "matches" for the add_rewrite_rule function to add 10 (maximum) wildcard arguments
|
2323 |
+
*
|
2324 |
+
* @param $start
|
2325 |
+
* @return string
|
2326 |
+
*
|
2327 |
+
* @since 2.7.0
|
2328 |
+
*/
|
2329 |
+
function thirstyWildcardsRewriteMatches( $start = 1 ) {
|
2330 |
+
|
2331 |
+
$matches = '';
|
2332 |
+
for ( $i = 1; $i <= 10; $i++ ) {
|
2333 |
+
$matches .= '&widcard' . $i . '=$matches[' .$start .']';
|
2334 |
+
$start++;
|
2335 |
+
}
|
2336 |
+
return $matches;
|
2337 |
+
}
|
2338 |
+
|
2339 |
+
/**
|
2340 |
+
* Automatically remove Yoast metabox in the edit thirstylink page
|
2341 |
+
*
|
2342 |
+
* @since 2.7.0
|
2343 |
+
*/
|
2344 |
+
add_action( 'add_meta_boxes', 'thirstyAffiliatesRemoveYoastMetabox',11 );
|
2345 |
+
function thirstyAffiliatesRemoveYoastMetabox(){
|
2346 |
+
remove_meta_box('wpseo_meta', 'thirstylink', 'normal');
|
2347 |
+
}
|
2348 |
+
|
2349 |
+
/*******************************************************************************
|
2350 |
+
** thirstyInit
|
2351 |
+
** Initialize the plugin
|
2352 |
+
** @since 1.0
|
2353 |
+
*******************************************************************************/
|
2354 |
+
function thirstyInit() {
|
2355 |
+
|
2356 |
+
thirstyRegisterPostType();
|
2357 |
+
|
2358 |
+
// Custom Field
|
2359 |
+
add_filter( 'manage_edit-thirstylink_columns', 'thirstyCustomAffiliateListingColumn' );
|
2360 |
+
|
2361 |
+
// Custom Field Value
|
2362 |
+
add_action( 'manage_thirstylink_posts_custom_column', 'thirstyCustomAffiliateListingColumnValue' , 10 , 2 );
|
2363 |
+
|
2364 |
+
/* Add filter to create category links */
|
2365 |
+
add_filter('post_type_link', 'thirstyCatLinks', 10, 2);
|
2366 |
+
|
2367 |
+
/* Add filter to always show the insert into post button for thirstylinks */
|
2368 |
+
add_filter('get_media_item_args', 'thirstyForceSend');
|
2369 |
+
|
2370 |
+
/* Add filter to automatically trim useless words out of slugs */
|
2371 |
+
add_filter('name_save_pre', 'thirstyTrimSlugs', 0);
|
2372 |
+
|
2373 |
+
/* Add meta boxes and saving functions */
|
2374 |
+
add_action('add_meta_boxes', 'thirstySetupPostBoxes');
|
2375 |
+
add_action('save_post', 'thirstySavePost');
|
2376 |
+
add_action('draft_thirstylink', 'thirstyDraftToPublish');
|
2377 |
+
|
2378 |
+
/* Add the shortcode */
|
2379 |
+
require_once("ThirstyShortcode.php");
|
2380 |
+
|
2381 |
+
/* Control redirection */
|
2382 |
+
add_action('template_redirect', 'thirstyRedirectUrl', 1);
|
2383 |
+
|
2384 |
+
/* Filter to convert html special entities back to chars on redirect */
|
2385 |
+
add_filter('thirstyFilterRedirectUrl', 'thirstyConvertSpecialToChars', 1, 1);
|
2386 |
+
|
2387 |
+
if (is_admin()) {
|
2388 |
+
require_once("ThirstyAdminPage.php");
|
2389 |
+
require_once("ThirstyAddonPage.php");
|
2390 |
+
|
2391 |
+
if ((!empty($_GET['post']) && get_post_type($_GET['post']) == 'thirstylink') ||
|
2392 |
+
(!empty($_GET['post_type']) && $_GET['post_type'] == 'thirstylink')) {
|
2393 |
+
wp_enqueue_script(
|
2394 |
+
'thirstyhelper',
|
2395 |
+
plugins_url('thirstyaffiliates/js/thirstyhelper.js'),
|
2396 |
+
array('jquery')
|
2397 |
+
);
|
2398 |
+
} else {
|
2399 |
+
|
2400 |
+
}
|
2401 |
+
wp_enqueue_script(
|
2402 |
+
'thirstyPickerHelper',
|
2403 |
+
plugins_url('thirstyaffiliates/js/thirstyPickerHelper.js'),
|
2404 |
+
array('jquery')
|
2405 |
+
);
|
2406 |
+
}
|
2407 |
+
|
2408 |
+
/* Register ajax calls */
|
2409 |
+
add_action('wp_ajax_thirstyLinkPickerSearch', 'thirstyLinkPickerSearch');
|
2410 |
+
add_action('wp_ajax_thirstyUploadImageFromUrl', 'thirstyUploadImageFromUrl');
|
2411 |
+
add_action('wp_ajax_thirstyAttachImageToLink', 'thirstyAttachImageToLink');
|
2412 |
+
add_action('wp_ajax_thirstyUnattachImageFromLink', 'thirstyUnattachImageFromLink');
|
2413 |
+
add_action('wp_ajax_thirstyGetLinkCode', 'thirstyGetLinkCode');
|
2414 |
+
add_action('wp_ajax_thirstyGetThickboxContent', 'thirstyGetThickboxContent');
|
2415 |
+
add_action('wp_ajax_thirstyGetQuickAddLinkThickboxContent', 'thirstyGetQuickAddLinkThickboxContent');
|
2416 |
+
add_action('wp_ajax_quickCreateAffiliateLink', 'quickCreateAffiliateLink');
|
2417 |
+
}
|
2418 |
+
|
2419 |
+
/* Register Activation/Deactivation hooks */
|
2420 |
+
register_activation_hook(__FILE__, 'thirstyAffiliatesActivation');
|
2421 |
+
register_deactivation_hook(__FILE__, 'thirstyAffiliatesDeactivation');
|
2422 |
+
|
2423 |
+
/* Initialize the plugin */
|
2424 |
+
add_action('init', 'thirstyInit');
|
2425 |
+
|
2426 |
+
/* Add settings link to plugin page */
|
2427 |
+
add_filter('plugin_action_links', 'thirstyAddSettingsLinkToPluginPage', 10, 2 );
|
2428 |
+
|
2429 |
+
/* Add the tinyMCE plugin */
|
2430 |
+
add_action('init', 'thirstyEditorButtons');
|
2431 |
+
|
2432 |
+
/* Add necessary javascript for the admin page */
|
2433 |
+
add_action('admin_head', 'thirstyAdminHeader');
|
2434 |
+
|
2435 |
+
/* Output front end header stuff */
|
2436 |
+
add_action('wp_head', 'thirstyHeader', 10);
|
2437 |
+
|
2438 |
+
/* Load Plug-ins Text Domain*/
|
2439 |
+
add_action( 'plugins_loaded', 'thirstyAffiliatesLoadPluginTextdomain' );
|
2440 |
+
|
2441 |
+
?>
|
thirstymce/editor_plugin.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function(){tinymce.create('tinymce.plugins.thirstyaffiliates',{getInfo:function(){return{longname:'ThirstyAffiliates plugin',author:'Josh Kohlbach',authorurl:'http://www.codemyownroad.com',infourl:'http://www.codemyownroad.com/thirsty-affiliate-wordpress-plugin',version:"1.0"}},init:function(ed,url){ed.addCommand('ThirstyAffiliates',function(){var copiedText=ed.selection.getContent();thirstyOpenLinkPicker(ed,copiedText)});ed.addButton('thirstyaffiliates_button',{title:'Add Affiliate Link',image:url+'/img/aff.gif',cmd:'ThirstyAffiliates'})}});tinymce.PluginManager.add('thirstyaffiliates',tinymce.plugins.thirstyaffiliates)})();
|
thirstymce/editor_plugin_src.js
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function() {
|
2 |
+
|
3 |
+
tinymce.create('tinymce.plugins.thirstyaffiliates', {
|
4 |
+
/**
|
5 |
+
* Returns information about the plugin as a name/value array.
|
6 |
+
* The current keys are longname, author, authorurl, infourl and version.
|
7 |
+
*
|
8 |
+
* @return {Object} Name/value array containing information about the plugin.
|
9 |
+
*/
|
10 |
+
getInfo : function() {
|
11 |
+
return {
|
12 |
+
longname : 'ThirstyAffiliates plugin',
|
13 |
+
author : 'Josh Kohlbach',
|
14 |
+
authorurl : 'http://thirstyaffiliates.com',
|
15 |
+
infourl : 'http://thirstyaffiliates.com',
|
16 |
+
version : "1.0"
|
17 |
+
};
|
18 |
+
},
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Initializes the plugin, this will be executed after the plugin has been created.
|
22 |
+
* This call is done before the editor instance has finished it's initialization so use the onInit event
|
23 |
+
* of the editor instance to intercept that event.
|
24 |
+
*
|
25 |
+
* @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
|
26 |
+
* @param {string} url Absolute URL to where the plugin is located.
|
27 |
+
*/
|
28 |
+
init : function(ed, url) {
|
29 |
+
// Register commands
|
30 |
+
ed.addCommand('ThirstyAffiliates', function() {
|
31 |
+
|
32 |
+
/* Open the link chooser and pass the editor into it for
|
33 |
+
** updating later */
|
34 |
+
|
35 |
+
thirstyOpenLinkPicker(ed);
|
36 |
+
|
37 |
+
});
|
38 |
+
|
39 |
+
ed.addCommand('ThirstyAffiliatesQuickAddLink', function() {
|
40 |
+
|
41 |
+
/* Open the quick add link thick box */
|
42 |
+
|
43 |
+
thirstyOpenQuickAddLinkPicker(ed);
|
44 |
+
|
45 |
+
});
|
46 |
+
|
47 |
+
ed.addButton('thirstyaffiliates_button', {
|
48 |
+
title : 'Add Affiliate Link',
|
49 |
+
image : url + '/img/aff.gif',
|
50 |
+
cmd : 'ThirstyAffiliates'
|
51 |
+
});
|
52 |
+
|
53 |
+
ed.addButton('thirstyaffiliates_quickaddlink_button', {
|
54 |
+
title : 'Quick Add Affiliate Link',
|
55 |
+
image : url + '/img/aff-new.gif',
|
56 |
+
cmd : 'ThirstyAffiliatesQuickAddLink'
|
57 |
+
});
|
58 |
+
}
|
59 |
+
|
60 |
+
});
|
61 |
+
|
62 |
+
// Register plugin
|
63 |
+
tinymce.PluginManager.add('thirstyaffiliates', tinymce.plugins.thirstyaffiliates);
|
64 |
+
})();
|
thirstymce/img/aff-new.gif
ADDED
Binary file
|
thirstymce/img/aff.gif
ADDED
Binary file
|