- Регистрация
- 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?