Плагин для Sape.ru
Поставил плагин ram108-sape, для установки саповской рекламы. Сначала он поработал, но не долго. Начало выдавать ошибку Fatal error: Class ‘ram108_sape’ not found in
www/sait/wp-content/plugins/ram108-sape/include/ram108_sape.php
on line 3. Я перенес строчку 3 в самый конец. Вроди заработало. Но не на долго.
Теперь в админке постоянно вылетает ошибка Fatal error: Class ‘ram108_sape_admin’ not found in /home/host1350908/dizmir.com/htdocs/www/wp-content/plugins/ram108-sape/include/plugin_admin.php on line 5
Иногда открывается нормально, но редко… Посоветуйте, как исправить. Ссылки выводятся виджетом .
Вывел с горем пополам )) Может кому пригодится..
<?php global $sape; if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'бла бла бла'); } require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php')); $sape = new SAPE_client(); ?> <?php if ( ( is_home() && ( ot_get_option('layout-home') != 'col-1c' ) ) || ( is_single() && ( ot_get_option('layout-single') != 'col-1c' ) ) || ( is_archive() && ( ot_get_option('layout-archive') != 'col-1c' ) ) || ( is_search() && ( ot_get_option('layout-search') != 'col-1c' ) ) || ( is_404() && ( ot_get_option('layout-404') != 'col-1c' ) ) || ( is_page() && ( ot_get_option('layout-page') != 'col-1c' ) ) ): ?> <?php $sidebar = alx_sidebar_primary(); ?> <div class="sidebar s1"> <a class="sidebar-toggle" title="<?php _e('Expand Sidebar','hueman'); ?>"><i class="fa icon-sidebar-toggle"></i></a> <div class="sidebar-content"> <div class="sidebar-top group"> <p><?php _e('Follow:','hueman'); ?></p> <?php alx_social_links() ; ?> </div> <?php if ( ot_get_option( 'post-nav' ) == 's1') { get_template_part('inc/post-nav'); } ?> <?php if( is_page_template('page-templates/child-menu.php') ): ?> <ul class="child-menu group"> <?php wp_list_pages('title_li=&sort_column=menu_order&depth=3'); ?> </ul> <?php endif; ?> <?php dynamic_sidebar($sidebar); ?> <?php global $sape; echo iconv( "windows-1251", "UTF-8", $sape->return_links() ); ?> </div><!--/.sidebar-content--> </div><!--/.sidebar--> <?php alx_sidebar_dual(); ?> <?php endif; ?>
Ваш плагин вызывает класс которого — нет.
За комментируйте строчку: ram108_sape_admin (возможно после этого уже все заработет)
И проверьте наличие данного класса в коде, возможно просто ошибка в имени.
Если закомментить в обоих файлах, то сапа не фурычит. Если закомментить только в plugin_admin.php, то сапа фурычит, но в админку я зайти не могу. После логина просто белый экран.
Вот код этих двух файлов, которые выдавали ошибку:
ram108_sape.php (проблемный код уже вынесен в самый низ)
<?php class ram108_sape extends ram108_sape_plugin { function _init(){ if ( !$this->settings->sape_ready || !$this->settings->user ) return; $this->_sape_init(); $this->_sape_context(); $this->_sape_shortcode(); } // SAPE INIT function _sape_init(){ global $sape, $sape_context; if ( !defined('_SAPE_USER') ) { define( '_SAPE_USER', $this->settings->user ); require_once( realpath ( $_SERVER['DOCUMENT_ROOT'] ).'/'._SAPE_USER.'/sape.php'); } $options = array( 'charset' => get_bloginfo('charset'), ); $sape = new SAPE_client( $options ); $sape_context = new SAPE_context( $options ); // SETTINGS if ( $this->settings->disable_texturize ) { remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); } } // SAPE CONTEXT function _sape_context(){ if ( $this->settings->context ) { add_filter('the_content', array( $this, 'ram108_sape_context'), 100 ); } if ( $this->settings->context_excerpt ) { add_filter('the_excerpt', array( $this, 'ram108_sape_context'), 100 ); } } function ram108_sape_context( $text ){ global $sape_context; return $sape_context->replace_in_text_segment( $text ); } // SAPE SHORTCODE function _sape_shortcode(){ add_filter( 'widget_text', 'do_shortcode' ); add_filter( 'the_excerpt', 'do_shortcode' ); add_shortcode('sape', array( $this, 'ram108_sape_shortcode') ); } function ram108_sape_shortcode( $args ){ global $sape; extract( shortcode_atts(array('count' => 0), $args) ); $text = $count ? $sape->return_links( $count ) : $sape->return_links(); return $text ? '<div class="ram108-slink">'.$text.'</div>' : ''; } // OTHER function _register_scripts(){ wp_enqueue_style( $this->id, plugins_url('style.css', _RAM108_SAPE ) ); } } $ram108_sape = new ram108_sape;
plugin_admin.php
(тут тоже проблемная строчка в самом низу)
<?php if ( !is_admin() ) return; class ram108_sape_admin extends ram108_sape_plugin { function _init(){ $this->_check_settings(); add_filter( 'plugin_action_links_' . plugin_basename( _RAM108_SAPE ), array( $this, '_admin_link' ) ); add_action( 'admin_init', array( $this, '_admin_init' ) ); add_action( 'admin_menu', array( $this, '_admin_menu' ) ); } function _admin_page() { ?> <div class="wrap"> <?php screen_icon(); ?><h2>[ram108] SAPE Links</h2> <div style="width: 65%; float: left;"> <form method="post" action="options.php"> <?php settings_fields( $this->id ); ?><?php do_settings_sections( $this->id ); ?> <input type="hidden" name="<?php echo $this->id?>[ver]" value="<?php echo $this->settings->ver?>" /> <table class="form-table"> <tr valign="top"><th scope="row">Идентификатор _SAPE_USER<br/></th><td> <input class="regular-text" type="text" name="<?php echo $this->id?>[user]" value="<?php echo $this->settings->user; ?>" /> <br/><small><a href="http://www.ram108.ru/post/78" title="Перейти на страницу помощи" target="_blank">где взять идентификатор</a></small> </td></tr> <tr valign="top"><th scope="row">Контекстные ссылки</th><td> <fieldset> <label> <input type="checkbox" name="<?php echo $this->id?>[context]" value="1"<?php checked( $this->settings->context );?> /> <span title="Размещает контекстные ссылки в тексте сайта."> Ссылки в тексте записей и страниц сайта </span> </label> <br/> <label> <input type="checkbox" name="<?php echo $this->id?>[context_except]" value="1"<?php checked( $this->settings->context_except );?> /> <span title="Цитаты выводятся на страницах архивов, которые обновляются во время новой публикации. Размещение ссылок на страницах с часто меняющимся содержимом приводит к ошибкам SAPE."> Ссылки в цитате <i>(не рекомендуется)</i> </span> </label> <br/> <label> <input type="checkbox" name="<?php echo $this->id?>[disable_texturize]" value="1"<?php checked( $this->settings->disable_texturize );?> /> <span title="Фильтр wptexturize обрабатывает исходный текст сайта, добавляя спецсимволы. В резльтате некоторые ссылки могут выпасть в ERROR. Более подробно читайте в FAQ."> Отключить wptexturize <i>(только, если появились ERROR)</i> </span> </label> </fieldset> </td></tr> <tr valign="top"><th scope="row">Виджет</th><td> Используйте виджет <a href="<?php echo admin_url('widgets.php');?>">[ram108] SAPE Links</a> для размещения ссылок в области виджетов сайта. </td></tr> </table> <?php submit_button(); ?> </form> </div> <?php $this->_widget_area(); ?> </div> <?php } function _widget_area(){ ?> <div style="width: 30%; float: right"> <h3>Использование плагина</h3> <p><a href="http://www.ram108.ru/post/78" target="_blank">Посетите страницу плагина</a>, чтобы получить информацию по активации, настройке и использованию плагина.</p> <h3>Ждем ваших отзывов</h3> <p>Понравился плагин? <a href="http://wordpress.org/support/view/plugin-reviews/ram108-sape" target="_blank">Оцените его в каталоге плагинов WordPress</a> или напишите обзор на своем сайте.</p> <?php $this->_news_widget(); ?> </div> <?php } function _news_widget(){ ?> <h3>Новости плагина</h3> <div class="news_widget"> <?php wp_widget_rss_output( array( 'link' => 'http://www.ram108.ru', 'url' => 'http://www.ram108.ru/plugins/ram108-sape/feed/', 'title' => 'Plugin News', 'items' => 4, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 ) ); ?> </div> <style type="text/css"> .news_widget a{ font-size: 100%; line-height: 1.2; font-family: inherit; } </style> <?php } // CHECK SETTINGS function _check_settings(){ add_action( 'admin_notices', array( $this, 'ram108_admin_notice') ); if ( !$this->settings->user ) { $this->_error( '<div class="updated"><p><b>[ram108] SAPE Links</b>: Необходима активация плагина. Посетите <a href="'.admin_url('options-general.php?page='.$this->id).'">страницу настроек</a>.</p></div>' ); return; } if ( !file_exists( $file = realpath( $_SERVER['DOCUMENT_ROOT'] ).'/'.$this->settings->user.'/sape.php' ) ) { $this->_error( '<div class="error"><p><b>[ram108] SAPE Links</b>: Файл не найден <b>'.$file.'</b>. Посетите <a href="'.admin_url('options-general.php?page='.$this->id).'">страницу настроек</a>.</p></div>' ); return; } // SAPE READY FLAG if ( !$this->settings->sape_ready ) $this->settings->save(array('sape_ready' => 1)); } function ram108_admin_notice() { if ( $this->error ) foreach( $this->error as $message ) echo $message; } // OTHER function _admin_link( $links ){ return array_merge( array('<a href="'.admin_url('options-general.php?page='.$this->id).'">Настройки</a>'), $links ); } function _admin_init(){ register_setting( $this->id, $this->id ); } function _admin_menu(){ add_options_page('Настройки [ram108] SAPE Links', '[ram108] SAPE Links', 'manage_options', $this->id, array( $this, '_admin_page' ) ); } } // $ram108_sape_admin = new ram108_sape_admin;

когда белый экран, включите в файле wp-config.php вывод ошибок:
define(‘WP_DEBUG’, false); замените на
define(‘WP_DEBUG’, true);
уведите где еще ошибка.
Уфф, вообщем этот плагин мне мозг вынес. Баганый какой-то. Подскажите, как проще вывести в отдельный виджет саповские ссылки. Может есть какой-то плагин, который поможет это сделать.. В php я не силен )

На данном сайте вы можете найти как создать собственный виджет. Добавите в него код от сапы и все.
Либо просто пропишите код сапы в sidebar.php в вашей теме вордпресс.
Вписал в header.php с самого низа код
<?php if (!defined('_SAPE_USER')){ define('_SAPE_USER', 'блаблабла'); } require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php')); $sape = new SAPE_client(); ?>
а вот правый сайд бар, вписал, но видать криво )) После этой строчки весь сайд бар пропадает
<?php $sidebar = alx_sidebar_secondary(); ?> <div class="sidebar s2"> <a class="sidebar-toggle" title="<?php _e('Expand Sidebar','hueman'); ?>"><i class="fa icon-sidebar-toggle"></i></a> <div class="sidebar-content"> <div class="sidebar-top group"> <p><?php _e('More','hueman'); ?></p> </div> <?php if ( ot_get_option( 'post-nav' ) == 's2') { get_template_part('inc/post-nav'); } ?> <?php dynamic_sidebar($sidebar); ?> <? echo $sape->return_links($4); ?> </div><!--/.sidebar-content--> </div><!--/.sidebar-->