Browse Source

ability to add bower resources

* add addVendorScript & addVendorStyle
* refactoring of addScript and addStyle
* add shortcuts vendorScript and vendorStyle
Morris Jobke 9 years ago
parent
commit
d763b32048
4 changed files with 94 additions and 16 deletions
  1. 3 0
      .bowerrc
  2. 17 0
      bower.json
  3. 32 0
      lib/private/template/functions.php
  4. 42 16
      lib/private/util.php

+ 3 - 0
.bowerrc

@@ -0,0 +1,3 @@
+{
+	"directory": "core/vendor"
+}

+ 17 - 0
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": {
+	}
+}

+ 32 - 0
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

+ 42 - 16
lib/private/util.php

@@ -331,24 +331,47 @@ class OC_Util {
 	}
 
 	/**
-	 * add a javascript file
+	 * generates a path for JS/CSS files. If no application is provided it will create the path for core.
 	 *
-	 * @param string $application application id
-	 * @param string|null $file filename
-	 * @return void
+	 * @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
 	 */
-	public static function addScript($application, $file = null) {
+	private static function generatePath($application, $directory, $file) {
 		if (is_null($file)) {
 			$file = $application;
 			$application = "";
 		}
 		if (!empty($application)) {
-			self::$scripts[] = "$application/js/$file";
+			return "$application/$directory/$file";
 		} else {
-			self::$scripts[] = "js/$file";
+			return "$directory/$file";
 		}
 	}
 
+	/**
+	 * add a javascript file
+	 *
+	 * @param string $application application id
+	 * @param string|null $file filename
+	 * @return void
+	 */
+	public static function addScript($application, $file = null) {
+		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);
+	}
+
 	/**
 	 * add a translation JS 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);
 	}
 
 	/**