/** * Compiles the CSS using the engine and caches the result * @access public * @param $source Scaffold_Source * @return array */ public function compile(Scaffold_Source $source) { $id = $source->id(); $modified = $source->last_modified(); $expired = $this->cache->expired($id, $modified); if ($this->production === false or $expired === true) { $this->cache->set($id, $this->parse($source)); } $result = array(); $result['string'] = $this->cache->get($id); $result['last_modified'] = $this->cache->modified($id); return $result; }
public static function create_gradient($direction, $size, $from, $to, $stops = false) { if (!class_exists('GradientGD')) { include dirname(__FILE__) . '/libraries/gradientgd.php'; } $file = "{$direction}_{$size}_" . str_replace('#', '', $from) . "_" . str_replace('#', '', $to) . ".png"; if ($direction == 'horizontal') { $height = 50; $width = $size; $repeat = 'y'; } else { $height = $size; $width = 50; $repeat = 'x'; } if (!Scaffold_Cache::exists('gradients/' . $file)) { Scaffold_Cache::create('gradients'); $file = Scaffold_Cache::find('gradients') . '/' . $file; $gradient = new GradientGD($width, $height, $direction, $from, $to, $stops); $gradient->save($file); } $file = Scaffold_Cache::find('gradients') . '/' . $file; self::$gradients[] = array($direction, $size, $from, $to, $file); $properties = "\n\t\t\tbackground-position: top left;\n\t\t background-repeat: repeat-{$repeat};\n\t\t background-image: url(" . Scaffold::url_path($file) . ");\n\t\t"; return $properties; }
public static function create_rgba($r, $g, $b, $a) { if (!class_exists('RgbaGd')) { include dirname(__FILE__) . '/libraries/rgbagd.php'; } $file = "color_r{$r}_g{$g}_b{$b}_a{$a}.png"; $alpha = intval(127 - 127 * $a); if (!Scaffold_Cache::exists('rgba/' . $file)) { Scaffold_Cache::create('rgba'); $file = Scaffold_Cache::find('rgba') . '/' . $file; $rgba = new RgbaGd($r, $g, $b, $alpha); $rgba->save($file); } $file = Scaffold_Cache::find('rgba') . '/' . $file; self::$rgba[] = array($r, $g, $b, $alpha); $properties = "\n\t\t\tbackground-position: top left;\n\t\t background-repeat: repeat;\n\t\t background-image: url(" . Scaffold::url_path($file) . ") !important;\n\t\t background-image:none;\n\t\t background: rgba({$r},{$g},{$b},{$a});\n\t\t filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" . Scaffold::url_path($file) . ", sizingMethod=scale);\n\t\t"; return $properties; }
/** * Sets the initial variables, checks if we need to process the css * and then sends whichever file to the browser. * * @return void */ public static function setup($config) { /** * Choose whether to show or hide errors */ if (SCAFFOLD_PRODUCTION === false) { ini_set('display_errors', true); error_reporting(E_ALL & ~E_STRICT); } else { ini_set('display_errors', false); error_reporting(0); } /** * Define contstants for system paths for easier access. */ if (!defined('SCAFFOLD_SYSPATH') && !defined('SCAFFOLD_DOCROOT')) { define('SCAFFOLD_SYSPATH', self::fix_path($config['system'])); define('SCAFFOLD_DOCROOT', $config['document_root']); define('SCAFFOLD_URLPATH', str_replace(SCAFFOLD_DOCROOT, '', SCAFFOLD_SYSPATH)); } /** * Add include paths for finding files */ Scaffold::add_include_path(SCAFFOLD_SYSPATH, SCAFFOLD_DOCROOT); /** * Tell the cache where to save files and for how long to keep them for */ Scaffold_Cache::setup(Scaffold::fix_path($config['cache']), $config['cache_lifetime']); /** * The level at which logged messages will halt processing and be thrown as errors */ self::$error_threshold = $config['error_threshold']; /** * Disabling flags allows for quicker processing */ if ($config['disable_flags'] === true) { self::$flags = false; } /** * Tell the log where to save it's files. Set it to automatically save the log on exit */ if ($config['enable_log'] === true) { // START - Modified by Webligo Developments if ($config['log_path']) { Scaffold_Log::log_directory($config['log_path']); } else { Scaffold_Log::log_directory(SCAFFOLD_SYSPATH . 'logs'); } // END - Modified by Webligo Developments //Scaffold_Log::log_directory(SCAFFOLD_SYSPATH.'logs'); Scaffold_Event::add('system.shutdown', array('Scaffold_Log', 'save')); } /** * Load each of the modules */ foreach (Scaffold::list_files(SCAFFOLD_SYSPATH . 'modules') as $module) { $name = basename($module); $module_config = SCAFFOLD_SYSPATH . 'config/' . $name . '.php'; if (file_exists($module_config)) { unset($config); include $module_config; self::$config[$name] = $config; } self::add_include_path($module); if ($controller = Scaffold::find_file($name . '.php', false, true)) { require_once $controller; self::$modules[$name] = new $name(); } } /** * Module Initialization Hook * This hook allows modules to load libraries and create events * before any processing is done at all. */ self::hook('initialize'); /** * Create the shutdown event */ Scaffold_Event::add('system.shutdown', array('Scaffold', 'shutdown')); }
/** * Saves the contents of the source object * @access public * @param $source Scaffold_Source * @return void */ public function save(Scaffold_Source $source) { $this->cache->set($source->id, $source->contents, $source->last_modified); }
/** * Generates the background grid.png * * @author Anthony Short * @param $cl Column width * @param $bl Baseline * @param $gw Gutter Width * @return null */ private static function create_grid_image($cw, $bl, $lgw, $rgw) { # Path to the image $file = "{$lgw}_{$cw}_{$rgw}_{$bl}_grid.png"; if (($cache = Scaffold_Cache::find('Layout/' . $file)) === false) { Scaffold_Cache::create('Layout'); $image = ImageCreate($cw + $lgw + $rgw, $bl); $colorWhite = ImageColorAllocate($image, 255, 255, 255); $colorGrey = ImageColorAllocate($image, 200, 200, 200); $colorBlue = ImageColorAllocate($image, 240, 240, 255); # Draw left gutter Imagefilledrectangle($image, 0, 0, $lgw - 1, $bl, $colorWhite); # Draw column Imagefilledrectangle($image, $lgw, 0, $cw + $lgw - 1, $bl, $colorBlue); # Draw right gutter Imagefilledrectangle($image, $lgw + $cw + 1, 0, $lgw + $cw + $rgw, $bl, $colorWhite); # Draw baseline imageline($image, 0, $bl - 1, $lgw + $cw + $rgw, $bl - 1, $colorGrey); $cache = Scaffold_Cache::find('Layout') . '/' . $file; ImagePNG($image, $cache); # Kill it ImageDestroy($image); } return Scaffold::url_path($cache); }
/** * Sets the lifetime of the cache * * @param $time * @return void */ public function lifetime($time) { self::$lifetime = $time; }