Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/Tools/seoFiles.php
Строк: 114
#!/usr/local/bin/php
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Main public executable wrapper.
* Set-up and load module to run
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 10721 $
*
*/
define( 'IPS_IS_SHELL', TRUE );
define( 'IPB_THIS_SCRIPT', 'public' );
if ( is_file( './initdata.php' ) )
{
require_once( './initdata.php' );/*noLibHook*/
}
else
{
require_once( '../initdata.php' );/*noLibHook*/
}
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );/*noLibHook*/
$reg = ipsRegistry::instance();
$reg->init();
$moo = new moo( $reg );
class moo
{
function __construct( ipsRegistry $registry )
{
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->stdin = fopen('php://stdin', 'r');
$this->_print( "--------------------------------------------nWelcome to the IP.Board IP.Downloads SEO Fixern--------------------------------------------n" );
$this->_print( "Start from row?nEnter: " );
$start = intval( $this->_fetchOption() );
$this->_print( "Do X rowsnEnter: " );
$end = intval( $this->_fetchOption() );
$this->_doCats();
$this->_doFiles( $start, $end );
}
/**
* Rebuild categories
*/
protected function _doCats()
{
/* INIT */
$start = time();
$done = 0;
$this->DB->build( array( 'select' => '*',
'from' => 'downloads_categories',
//'limit' => array( $_start, $end ) //those variables are always null
) );
$t = $this->DB->execute();
while( $row = $this->DB->fetch( $t ) )
{
$title_seo = IPSText::makeSeoTitle( $row['cname'] );
$this->DB->update( 'downloads_categories', array( 'cname_furl' => $title_seo ), 'cid=' . $row['cid'] );
/* Clear cached queries */
$this->DB->obj['cached_queries'] = array();
}
$end = time();
$tkn = ( $end - $start) / 60;
$this->_print( "FINISHED CATEGORIES. Took " . $tkn . "mn" );
}
/**
* Rebuild langs
*/
protected function _doFiles( $_start, $end )
{
/* INIT */
$start = time();
$done = 0;
$this->DB->build( array( 'select' => '*',
'from' => 'downloads_files',
'order' => 'file_id ASC',
'limit' => array( $_start, $end ) ) );
$t = $this->DB->execute();
while( $row = $this->DB->fetch( $t ) )
{
$title_seo = IPSText::makeSeoTitle( $row['file_name'] );
$this->DB->update( 'downloads_files', array( 'file_name_furl' => $title_seo ), 'file_id=' . $row['file_id'] );
$done++;
if ( $done % 250 == 0 )
{
$this->_print( "Completed... " . $done . " (File ID=" . $row['file_id'] . " total=" . ( $_start + $done ) . ")" );
}
/* Clear cached queries */
$this->DB->obj['cached_queries'] = array();
}
$end = time();
$tkn = ( $end - $start) / 60;
$this->_print( "FINISHED FILES. Took " . $tkn . "mn" );
}
/**
* Out to stdout
*/
protected function _print( $message, $newline="n" )
{
$stdout = fopen('php://stdout', 'w');
fwrite( $stdout, $message . $newline );
fclose( $stdout );
}
/* Fetch option
*
*/
protected function _fetchOption()
{
return trim( fgets( $this->stdin ) );
}
}
exit();
?>