/// <summary> /// Sets value for a parameter. /// </summary> /// <param name="ns">The namespace URI of the XSLT parameter.</param> /// <param name="name">The local name of the XSLT parameter or an array of name => option pairs.</param> /// <param name="value">The new value of the XSLT parameter.</param> /// <returns><B>True</B> or <B>false</B>.</returns> public bool setParameter(string ns, PhpArray name, string value = null) { // set all name => value pairs contained in the array foreach (var pair in name) { if (!pair.Key.IsString) { PhpException.Throw(PhpError.Warning, Resources.InvalidParameterKey); return(false); } if (xsltArgumentList.GetParam(pair.Key.String, ns) != null) { xsltArgumentList.RemoveParam(pair.Key.String, ns); } xsltArgumentList.AddParam(pair.Key.String, ns, XsltConvertor.PhpToDotNet(_ctx, pair.Value)); } return(true); }
private PhpValue InvokeFunctionCore(string name, params object[] args) { // check whether this function is allowed to be called PhpCallback callback; if (allFunctionsRegistered) { registeredFunctions.TryGetValue(name, out callback); } else { if (registeredFunctions.TryGetValue(name, out callback)) { PhpException.Throw(PhpError.Warning, String.Format(Resources.HandlerNotAllowed, name)); return(PhpValue.Null); } } // if the callback does not already exist, create it if (callback == null) { callback = PhpCallback.Create(name, default(RuntimeTypeHandle)); registeredFunctions[name] = callback; } // convert arguments var phpArgs = new PhpValue[args.Length]; for (int i = 0; i < args.Length; i++) { phpArgs[i] = XsltConvertor.DotNetToPhp(args[i]); } // invoke! return(callback.Invoke(_ctx, phpArgs)); }
private string InvokeFunctionString(string name, params object[] args) { return(XsltConvertor.PhpToString(_ctx, InvokeFunctionCore(name, args))); }
private object InvokeFunction(string name, params object[] args) { return(XsltConvertor.PhpToDotNet(_ctx, InvokeFunctionCore(name, args))); }