Git Product home page Git Product logo

asset's Introduction

/*
 * Asset Packer CakePHP Plugin
 * Copyright (c) 2009 Matt Curry
 * www.PseudoCoder.com
 * http://github.com/mcurry/asset
 *
 * @author      Matt Curry <[email protected]>
 * @license     MIT
 *
 */

/* Notes */
    * JavaScript packing only works with PHP5. If you're using PHP4 the scripts will still be merged into one file, but not packed.
    * A sample .htaccess file is included in the zip. Rename it and drop it in output dirs for improved performance.

/* Instructions */
   1. You'll need a working version of CakePHP installed. This is running on 1.2.2.8120 stable.
   2. Download jsmin 1.1.0 or later and put it in vendors/jsmin.
   3. Download CSSTidy 1.3 or later and put the contents in vendors/csstidy.
   4. Download the plugin to /app/plugins/asset.
   5. Include the helper in any controller that will need it. Most likely you will put it in AppController so that it's available to all your controllers:
      var $helpers = array('Asset.asset');

   6. In your layout and views include Javascript files as you normally would when using the $scripts_for_layout approach:
      $javascript->link('jquery', false);

   7. Similarly include your css with the inline option set to false:
      $html->css('style', null, null, false);

   8. Then in your layout file, in the head section, instead of using $scripts_for_layout call the helper:
      echo $asset->scripts_for_layout();

/* Tips */
    * By default the cached files are written to /app/webroot/cjs and /app/webroot/ccss.  You can change that by setting:
      Configure::write('Asset.jsPath', 'some/path');
      Configure::write('Asset.cssPath', 'some/path');
      Don't include slashes at the beginning or end.  Path will be relative to /app/webroot.  So if set:
      Configure::write('Asset.jsPath', 'js/packed');
      The path will be /app/webroot/js/packed
    * Remember to set the inline option to false for JS and CSS in your layout if you want them to be packed with the view scripts.
    * Setting DEBUG on will cause this helper to output the scripts the same way $scripts_for_layout would, effectifly turning it off while testing.
    * If you get a JavaScript error with a packed version of a file it's most likely missing a semi-colon somewhere.
    * Order is important. If you include script1 then script2 on one view and script2 then script1 on another, they will generate separate packed versions and will be treated by the browser as separate scripts.

asset's People

Contributors

mcurry avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.