diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000000..107785fb3e --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "core/vendor" +} diff --git a/bower.json b/bower.json new file mode 100644 index 0000000000..3a6d8d7366 --- /dev/null +++ b/bower.json @@ -0,0 +1,17 @@ +{ + "name": "ownCloud", + "version": "8.0 pre alpha", + "homepage": "http://www.owncloud.org", + "license": "AGPL", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "core/vendor", + "test", + "tests" + ], + "dependencies": { + } +} diff --git a/lib/private/template/functions.php b/lib/private/template/functions.php index dede604c01..0e2c5775c4 100644 --- a/lib/private/template/functions.php +++ b/lib/private/template/functions.php @@ -39,6 +39,22 @@ function script($app, $file) { } } +/** + * Shortcut for adding vendor scripts to a page + * @param string $app the appname + * @param string|string[] $file the filename, + * if an array is given it will add all scripts + */ +function vendorScript($app, $file) { + if(is_array($file)) { + foreach($file as $f) { + OC_Util::addVendorScript($app, $f); + } + } else { + OC_Util::addVendorScript($app, $file); + } +} + /** * Shortcut for adding styles to a page * @param string $app the appname @@ -55,6 +71,22 @@ function style($app, $file) { } } +/** + * Shortcut for adding vendor styles to a page + * @param string $app the appname + * @param string|string[] $file the filename, + * if an array is given it will add all styles + */ +function vendorStyle($app, $file) { + if(is_array($file)) { + foreach($file as $f) { + OC_Util::addVendorStyle($app, $f); + } + } else { + OC_Util::addVendorStyle($app, $file); + } +} + /** * Shortcut for adding translations to a page * @param string $app the appname diff --git a/lib/private/util.php b/lib/private/util.php index de4bef4cb8..bee0a57919 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -330,6 +330,26 @@ class OC_Util { } } + /** + * generates a path for JS/CSS files. If no application is provided it will create the path for core. + * + * @param $application application to get the files from + * @param $directory directory withing this application (css, js, vendor, etc) + * @param $file the file inside of the above folder + * @return string the path + */ + private static function generatePath($application, $directory, $file) { + if (is_null($file)) { + $file = $application; + $application = ""; + } + if (!empty($application)) { + return "$application/$directory/$file"; + } else { + return "$directory/$file"; + } + } + /** * add a javascript file * @@ -338,15 +358,18 @@ class OC_Util { * @return void */ public static function addScript($application, $file = null) { - if (is_null($file)) { - $file = $application; - $application = ""; - } - if (!empty($application)) { - self::$scripts[] = "$application/js/$file"; - } else { - self::$scripts[] = "js/$file"; - } + self::$scripts[] = OC_Util::generatePath($application, 'js', $file); + } + + /** + * add a javascript file from the vendor sub folder + * + * @param string $application application id + * @param string|null $file filename + * @return void + */ + public static function addVendorScript($application, $file = null) { + self::$scripts[] = OC_Util::generatePath($application, 'vendor', $file); } /** @@ -375,15 +398,18 @@ class OC_Util { * @return void */ public static function addStyle($application, $file = null) { - if (is_null($file)) { - $file = $application; - $application = ""; - } - if (!empty($application)) { - self::$styles[] = "$application/css/$file"; - } else { - self::$styles[] = "css/$file"; - } + self::$styles[] = OC_Util::generatePath($application, 'css', $file); + } + + /** + * add a css file from the vendor sub folder + * + * @param string $application application id + * @param string|null $file filename + * @return void + */ + public static function addVendorStyle($application, $file = null) { + self::$styles[] = OC_Util::generatePath($application, 'vendor', $file); } /**