В общем есть у меня один граббер, но вот после обновления на новую версию двига он перестал работать. Выяснилось что проблема заключается в том что часть полей переехали в отдельную таблицу (_post_extras). Вроди как и не особая проблема создать отдельный запрос для них, но вот дело в том что граббер написан с использованием ООП и как я не пытался это сделать - вылазили одни ошибки.
private final function add_posts( $id, $categ )
{
$insert = array();
$insert['autor'] = 'SHADOW';
$insert['date'] = date( 'Y-m-d H:i:s' );
$insert['short_story'] = '';
$insert['full_story'] = '';
$insert['xfields'] = '';
$insert['title'] = '';
$insert['descr'] = '';
$insert['keywords'] = '';
$insert['category'] = $this->site_category[$categ];
$insert['alt_name'] = '';
$insert['allow_main'] = 0;
$insert['approve'] = 1;
$insert['symbol'] = '';
$insert['tags'] = '';
$insert['metatitle'] = '';
$url = 'http://'.$this->domain.'/'.$categ.'/'.$id.'-google-fuck-you.html';
$page = $this->getpage($url);
$page = preg_replace( '!<script(.*?)script>!is', '', $page );
$page = preg_replace( '!<noscript(.*?)noscript>!is', '', $page );
$page = preg_replace( '!<noindex(.*?)noindex>!is', '', $page );
$page = preg_replace( '!\t!is', '', $page );
$page = preg_replace( '#<\!--(.*?)-->#is', '', $page );
$rtyry = preg_split('!<\/title>!i', $page);
$insert['title'] = reset($rtyry);
$rhrthr = preg_split('!<title>!i',$insert['title']);
$insert['title'] = end($rhrthr);
$insert['title'] = explode('(', $insert['title']);
if( count(count($insert['title'])-1)>1 ){ unset( $insert['title'][(count($insert['title'])-1)] );}
$insert['title'] = implode( '(', $insert['title'] );
$laldhsksd = explode('(', $insert['title']);
$nvnfg = strip_tags(reset($laldhsksd));
$insert['title'] = trim($nvnfg);
$alsafmnbe = explode('-', $insert['title'],2);
$jfddfndj = strip_tags(end($alsafmnbe));
$insert['title'] = trim($jfddfndj);
$insert['alt_name'] = $this->totranslit($insert['title']);
$insert['symbol'] = substr( $insert['alt_name'], 0, 1 );
$insert['metatitle'] = $this->category[$categ].' - '.$insert['title'].' (текст песни)';
$vnsdvsn = preg_split( '!<(.*)id=\"news-id-(.*?)>!i', $page, 2 );
$page = end($vnsdvsn);
$sdsgbsdbdf = preg_split( '!<br(.+?)>!i', $page, 2 );
$page = end($sdsgbsdbdf);
$qfuiwehwefi = preg_split( '!<\/div>!i', $page, 2 );
$page = reset($qfuiwehwefi);
$page = trim(str_replace( "\r", "", $page ));
$page = trim(str_replace( "\n", "", $page ));
$page = trim(str_replace( "<br />", "\n", $page ));
if( strlen(trim(strip_tags($page)))<200 ){ return; }
// filter
$page = explode("\n",$page);
for( $i=0; $i<count($page); $i++ )
{
$page[$i] = trim(strip_tags($page[$i]));
}
$page = implode("\n",$page);
// filter
$page= trim(strip_tags($page));
$page = str_replace( "\n\r", "\n", $page );
$page = str_replace( "\r\n", "\n", $page );
$page = str_replace( "\n", '<br />', $page );
$insert['short_story'] = $insert['full_story'] = trim($page);
$insert['descr'] = 'Текст песни '.$insert['title'].' - '.$this->category[$categ];
unset($page);
$insert['short_story'] = stripslashes( $insert['short_story'] );
//$insert['short_story'] = strip_tags( $insert['short_story'] );
$insert['short_story'] = explode("<br />", $insert['short_story']);
$insert['short_story'] = array_slice( $insert['short_story'], 0, 15 );
$insert['short_story'] = implode("<br />", $insert['short_story']).'<br />Далее в полной новости...';
foreach( $insert as $k=>$v )
{
$insert[$k] = $this->db->safesql( $v );
}
$SQL = 'INSERT INTO '.PREFIX.'_post ('.implode(', ', array_keys($insert)).') VALUES (\''.implode('\', \'', array_values($insert)).'\')';
$this->db->query( $SQL );
echo ".";
flush();
}
В гугл прошу не направлять, я понял что одна переменная не определена, а функция не является обектом, но как это исправить не знаю. Или обясните как передать в переменную айди текущей новости в данной ситуации.