All pastes #637092 Raw Edit

Something

public text v1 · immutable
#637092 ·published 2007-07-28 15:07 UTC
rendered paste body
	// Update database from cache
	function update_db( $skin_id )
	{
		// Setup debugging
		$debug = '';
		// Check if cache directory exists
		if ( !is_dir ( SITE_ROOT . 'templates/' . $skin_id . '/cache/' ) )
		{
			// Check for debug mode
			if ( $this->conf['debug'] == 1 )
			{
				// No template directory, trigger error
				trigger_error( 'The template directory ' . SITE_ROOT . 'templates/' . $skin_id . '/cache/ does not exist.', E_USER_ERROR );
				// Return false
				return false;
			}
			else
			{
				// Return false
				return false;
			}
		}
		// Open directory
		if ( $handle = opendir ( SITE_ROOT . 'templates/' . $skin_id . '/cache/' ) )
		{
			// Clear template tables
			$empty = $this->system->DB->empty_table( 'template_bits' );
			$empty = $this->system->DB->empty_table( 'template_sets' ); 
			// Loop through files in directory
			while ( false !== ( $file = readdir ( $handle ) ) ) 
			{
				// Check if filename contains skin_ and .php
				if ( ( strpos ( $file, 'skin_' ) !== false ) and ( strpos ( $file, '.php' ) !== false ) )
				{
					// Include file
					if ( include_once ( SITE_ROOT . 'templates/' . $skin_id . '/cache/' . $file ) )
					{
						// Get class name
						$classname = str_replace( 'skin_', '', $file );
						$classname = str_replace( '.php', '', $classname );
						// Setup class
						if ( ! $this->$classname = new $classname() )
						{
							// Check debug status
							if ( $this->conf['debug'] == 1 ) {
								// Show error
								trigger_error( 'The class ' . $classname . ' could not be created.', E_USER_ERROR );
								// Return false
								return false;
							} 
							else
							{
								// Return false
								return false;
							}
						}
						// Setup human readable name
						$hr_name = str_replace( '_', ' ', $classname );
						$hr_name = ucwords( $hr_name );
						$hr_name = str_replace( 'Acp', 'ACP', $hr_name );
						// Create template set
						$this->create_template_set( $skin_id, $classname, $hr_name );
						// Get ID of last created template set
						$sql = $this->system->DB->build_select_query( 
													array ( 'id' ),
													array ( 'template_sets' ),
													array ( ),
													1,
													array ( 'id' => 'DESC' )
												  );
						// Query database
						$query = $this->system->DB->query( $sql );
						// Get data
						$data = $this->system->DB->return_data( $query );
						// Setup ID
						$set_id = $data['id'];
						// Setup array of template bits
						$bits = $this->$classname->bits;
						// Loop through array of template bits
						foreach ( $bits as $name => $hr_name )
						{
							// Get content
							$content = $this->$classname->$name();
							// Trim content
							$content = trim( $content );
							// Create template bit
							if ( ! $this->create_template_bit( '', $set_id, $name, $hr_name, $content ) )
							{
								//print 'Error setting up ' . $name . '<br />';
							}							
						}
					}
					else
					{	
						// Show error
						if ( $this->conf['debug'] == '1' )
						{
							// Trigger error
							trigger_error( 'There was an error including the template file ' . SITE_ROOT . 'templates/' . $skin_id . '/cache/' . $file, E_USER_WARNING );
							// Return false
							return false;
						}
						else
						{
							// Return false
							return false;
						}
					}
				}
			}
		}
		else
		{
			// Check for debug mode
			if ( $this->conf['debug'] == 1 )
			{
				// Show error message
				trigger_error( 'Opening the directory ' . SITE_ROOT . 'templates/' . $skin_id . '/cache/ failed. Please check you have the correct permissions.', E_USER_NOTICE );
				// Return false
				return false;
			}
			else
			{
				// Return false
				return false;
			}
		}
		// Return true
		return true;
	}