- Регистрация
 - 17 Май 2012
 
- Сообщения
 - 183
 
- Реакции
 - 89
 
- Автор темы
 - Заблокирован
 - #1
 
В общем суть вопроса такова: Поставил сие чудо, установил БД, поставил модуль xPay. Добавил модальные окна по оплате, решил вопрос с конфликтом js в карточке организаций.
И вот тут, вылезла пренеприятнейшая ошибочка.
В модальном окне, где проводится выбор платных услуг каталога организаций, в самом верху присутствует вот такая вот строка ошибки:
Warning: Invalid argument supplied for foreach() in /home/f/fb7913c2/hhhhh/public_html/engine/inc/payments/extension/plagin/tag_hide/api.php on line 34
Вот сам код файла на который ссылается данная строка ошибки и строчка из кода файла foreach( $this->tagDB as $tag => $row ) на которую ссылается строка ошибки:
	
	
		
			
	
	
	
		
		
	
Не пойму в чем конфликт! И насколько это критично. Сам модуль скрытия текста тоже прикручен к xPay.
Может кто то уже решал данную проблему?
Или может знает как скрыть вывод этой ошибки, при условии что ошибка не повлияет на функциональность модуля Tag Hide?
	
		
			
		
		
	
				
			И вот тут, вылезла пренеприятнейшая ошибочка.
В модальном окне, где проводится выбор платных услуг каталога организаций, в самом верху присутствует вот такая вот строка ошибки:
Warning: Invalid argument supplied for foreach() in /home/f/fb7913c2/hhhhh/public_html/engine/inc/payments/extension/plagin/tag_hide/api.php on line 34
Вот сам код файла на который ссылается данная строка ошибки и строчка из кода файла foreach( $this->tagDB as $tag => $row ) на которую ссылается строка ошибки:
		PHP:
	
	<?php
if( !defined( "DATALIFEENGINE" ) ) die( "Hacking attempt!" );
class tag_hideApiPlagin {
    public $PlaginOn = false;
    public $PlaginID = null;
    public $Options = array();
    //------------------------------------------=-=-=-=-=-=-=-=-=
    //    Автоопределение настроек
    //------------------------------------------=-=-=-=-=-=-=-=-=
    public function __construct(){
        global $Payments;
    
        if( !is_object( $Payments ) ) require_once( ENGINE_DIR."/inc/payments/management/init.php" );
        $this->PlaginID = $Payments->Cache->PlaginIndex['tag_hide'];
        $this->Options = $Payments->Cache->Plagin[ $this->PlaginID ]['options'];
        $this->PlaginOn = $Payments->Cache->Plagin[ $this->PlaginID ]['status'] == 1 ? true : false;
        $this->tagDB = unserialize( $this->Options['db'] );
    }
    //------------------------------------------=-=-=-=-=-=-=-=-=
    //    Парсер тегов
    //------------------------------------------=-=-=-=-=-=-=-=-=
    public function ParseTags( $content ){
    
        if( $this->PlaginOn !== true ) return $this->endParse( $content );
        if( count( $this->tagDB ) > 0 )
            {
                foreach( $this->tagDB as $tag => $row )
                    {
                        $content = preg_replace( "#\\[PaymentsTagHide:{$tag}\\](.*?)\\[/PaymentsTagHide:{$tag}\\]#ies", "\$this->ParseTag( '{$tag}', '\\1' )", $content );
                    }
            }
        
        return $this->endParse( $content );
    }
    //------------------------------------------=-=-=-=-=-=-=-=-=
    //    Парсер конкретного тега
    //------------------------------------------=-=-=-=-=-=-=-=-=
    private function ParseTag( $tag, $text ){
        global $member_id, $is_logged, $Payments;
    
        $text = stripslashes( $text );
        if( !is_array( $this->tagDB[ $tag ] ) ) return $text;
    
        if( !$is_logged && $this->tagDB[ $tag ]['allow_guest'] != 1 ) return "<div class=\"quote\">Скрытый текст, необходима авторизация.</div>";
    
        if( $is_logged && $this->tagDB[ $tag ]['pay_type'] == "always" )
            {
                $allowTag = explode( ",", $member_id['payments_tag_hide'] );
            }
                else
            {
                $allowTag = explode( ",", $_SESSION['payments_tag_hide'] );
            }
    
        if( in_array( $tag, $allowTag ) ) return $text;
        if( in_array( $member_id['user_group'], $this->tagDB[ $tag ]['echo_group'] ) ) return $text;
    
        $this->tagDB[ $tag ]['text'] = stripslashes( $this->tagDB[ $tag ]['text'] );
        $this->tagDB[ $tag ]['text'] = str_replace( "{price}", $this->tagDB[ $tag ]['price'].$Payments->Currency( $this->tagDB[ $tag ]['currency'] ), $this->tagDB[ $tag ]['text'] );
        $this->tagDB[ $tag ]['text'] = str_replace( "{pay}", "/payments/service/tag_hide/{$tag}.html", $this->tagDB[ $tag ]['text'] );
    
        return $this->tagDB[ $tag ]['text'];
    }
    //------------------------------------------=-=-=-=-=-=-=-=-=
    //    Окончательная очистка всех тегов
    //------------------------------------------=-=-=-=-=-=-=-=-=
    private function endParse( $content ){
        while( strpos( $content, "[PaymentsTagHide" ) !== false ) $content = preg_replace( "#\\[PaymentsTagHide:(.+?)\\](.*?)\\[/PaymentsTagHide:(.+?)\\]#is", "\\2", $content );
        return $content;
    }
}
?>
	Не пойму в чем конфликт! И насколько это критично. Сам модуль скрытия текста тоже прикручен к xPay.
Может кто то уже решал данную проблему?
Или может знает как скрыть вывод этой ошибки, при условии что ошибка не повлияет на функциональность модуля Tag Hide?
				