You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(226) |
Nov
(90) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(29) |
Jun
(22) |
Jul
(13) |
Aug
(6) |
Sep
(21) |
Oct
(4) |
Nov
(160) |
Dec
|
2006 |
Jan
|
Feb
(79) |
Mar
(11) |
Apr
(1) |
May
|
Jun
(73) |
Jul
(261) |
Aug
(83) |
Sep
(50) |
Oct
(52) |
Nov
|
Dec
(67) |
2007 |
Jan
(87) |
Feb
(36) |
Mar
(31) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2008 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2011 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jaben C. <ja...@us...> - 2007-02-08 00:49:44
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Configuration In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25871/yafsrc/URLRewriter.NET/Configuration Added Files: Tag: v1_0_2_NETv2 ActionParserFactory.cs ConditionParserPipeline.cs RewriterConfiguration.cs RewriterConfigurationReader.cs RewriterConfigurationSectionHandler.cs TransformFactory.cs Log Message: URL Rewriter class --- NEW FILE: ActionParserFactory.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Collections; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Factory for creating the action parsers. /// </summary> public class ActionParserFactory { /// <summary> /// Adds a parser. /// </summary> /// <param name="parserType">The parser type.</param> public void AddParser(string parserType) { AddParser((IRewriteActionParser)TypeHelper.Activate(parserType, null)); } /// <summary> /// Adds a parser. /// </summary> /// <param name="parser">The parser.</param> public void AddParser(IRewriteActionParser parser) { ArrayList list; if (_parsers.ContainsKey(parser.Name)) { list = (ArrayList)_parsers[parser.Name]; } else { list = new ArrayList(); _parsers.Add(parser.Name, list); } list.Add(parser); } /// <summary> /// Returns a list of parsers for the given verb. /// </summary> /// <param name="verb">The verb.</param> /// <returns>A list of parsers</returns> public IList GetParsers(string verb) { if (_parsers.ContainsKey(verb)) { return (ArrayList)_parsers[verb]; } else { return null; } } private Hashtable _parsers = new Hashtable(); } } --- NEW FILE: RewriterConfiguration.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.IO; using System.Xml; using System.Web; using System.Web.Caching; using System.Text.RegularExpressions; using System.Collections; using System.Configuration; using System.Reflection; using Intelligencia.UrlRewriter.Parsers; using Intelligencia.UrlRewriter.Transforms; using Intelligencia.UrlRewriter.Utilities; using Intelligencia.UrlRewriter.Logging; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Configuration for the URL rewriter. /// </summary> public class RewriterConfiguration { /// <summary> /// Default constructor. /// </summary> internal RewriterConfiguration() { _xPoweredBy = MessageProvider.FormatString(Message.ProductName, Assembly.GetExecutingAssembly().GetName().Version.ToString(3)); _actionParserFactory = new ActionParserFactory(); _actionParserFactory.AddParser(new ConditionActionParser()); _actionParserFactory.AddParser(new AddHeaderActionParser()); _actionParserFactory.AddParser(new SetCookieActionParser()); _actionParserFactory.AddParser(new SetPropertyActionParser()); _actionParserFactory.AddParser(new RewriteActionParser()); _actionParserFactory.AddParser(new IfRewriteActionParser()); _actionParserFactory.AddParser(new RedirectActionParser()); _actionParserFactory.AddParser(new IfRedirectActionParser()); _actionParserFactory.AddParser(new SetStatusActionParser()); _actionParserFactory.AddParser(new ForbiddenActionParser()); _actionParserFactory.AddParser(new GoneActionParser()); _actionParserFactory.AddParser(new NotAllowedActionParser()); _actionParserFactory.AddParser(new NotFoundActionParser()); _actionParserFactory.AddParser(new NotImplementedActionParser()); _conditionParserPipeline = new ConditionParserPipeline(); _conditionParserPipeline.AddParser(new AddressConditionParser()); _conditionParserPipeline.AddParser(new HeaderMatchConditionParser()); _conditionParserPipeline.AddParser(new MethodConditionParser()); _conditionParserPipeline.AddParser(new PropertyMatchConditionParser()); _conditionParserPipeline.AddParser(new ExistsConditionParser()); _conditionParserPipeline.AddParser(new UrlMatchConditionParser()); _transformFactory = new TransformFactory(); _transformFactory.AddTransform(new DecodeTransform()); _transformFactory.AddTransform(new EncodeTransform()); _transformFactory.AddTransform(new LowerTransform()); _transformFactory.AddTransform(new UpperTransform()); _transformFactory.AddTransform(new Base64Transform()); _transformFactory.AddTransform(new Base64DecodeTransform()); } /// <summary> /// The rules. /// </summary> public IList Rules { get { return _rules; } } /// <summary> /// The action parser factory. /// </summary> public ActionParserFactory ActionParserFactory { get { return _actionParserFactory; } } /// <summary> /// The transform factory. /// </summary> public TransformFactory TransformFactory { get { return _transformFactory; } } /// <summary> /// The condition parser pipeline. /// </summary> public ConditionParserPipeline ConditionParserPipeline { get { return _conditionParserPipeline; } } /// <summary> /// Dictionary of error handlers. /// </summary> public IDictionary ErrorHandlers { get { return _errorHandlers; } } /// <summary> /// Logger to use for logging information. /// </summary> public IRewriteLogger Logger { get { return _logger; } set { _logger = value; } } internal string XPoweredBy { get { return _xPoweredBy; } } /// <summary> /// Creates a new configuration with only the default entries. /// </summary> /// <returns></returns> public static RewriterConfiguration Create() { return new RewriterConfiguration(); } /// <summary> /// The current configuration. /// </summary> public static RewriterConfiguration Current { get { RewriterConfiguration configuration = HttpRuntime.Cache.Get(typeof(RewriterConfiguration).AssemblyQualifiedName) as RewriterConfiguration; if (configuration == null) { configuration = Load(); } return configuration; } } /// <summary> /// Loads the configuration from the .config file, with caching. /// </summary> /// <returns>The configuration.</returns> public static RewriterConfiguration Load() { XmlNode section = ConfigurationSettings.GetConfig(Constants.RewriterNode) as XmlNode; RewriterConfiguration config = null; XmlNode filenameNode = section.Attributes.GetNamedItem(Constants.AttrFile); if (filenameNode != null) { string filename = HttpContext.Current.Server.MapPath(filenameNode.Value); config = LoadFromFile(filename); if (config != null) { CacheDependency fileDependency = new CacheDependency(filename); HttpRuntime.Cache.Add(typeof(RewriterConfiguration).AssemblyQualifiedName, config, fileDependency, DateTime.Now.AddHours(1.0), TimeSpan.Zero, CacheItemPriority.Default, null); } } if (config == null) { config = LoadFromNode(section); HttpRuntime.Cache.Add(typeof(RewriterConfiguration).AssemblyQualifiedName, config, null, DateTime.Now.AddHours(1.0), TimeSpan.Zero, CacheItemPriority.Default, null); } return config; } /// <summary> /// Loads the configuration from an external XML file. /// </summary> /// <param name="filename">The filename of the file to load configuration from.</param> /// <returns>The configuration.</returns> public static RewriterConfiguration LoadFromFile(string filename) { if (File.Exists(filename)) { XmlDocument document = new XmlDocument(); document.Load(filename); return LoadFromNode(document.DocumentElement); } return null; } /// <summary> /// Loads the configuration from an XML node. /// </summary> /// <param name="node">The XML node to load configuration from.</param> /// <returns>The configuration.</returns> public static RewriterConfiguration LoadFromNode(XmlNode node) { RewriterConfigurationReader reader = new RewriterConfigurationReader(); return (RewriterConfiguration)reader.Read(node); } private IRewriteLogger _logger = new NullLogger(); private Hashtable _errorHandlers = new Hashtable(); private ArrayList _rules = new ArrayList(); private ActionParserFactory _actionParserFactory; private ConditionParserPipeline _conditionParserPipeline; private TransformFactory _transformFactory; private string _xPoweredBy; } } --- NEW FILE: RewriterConfigurationReader.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Net; using System.Web; using System.Xml; using System.Text; using System.Configuration; using System.Reflection; using System.Collections; using System.Collections.Specialized; using System.Text.RegularExpressions; using Intelligencia.UrlRewriter.Conditions; using Intelligencia.UrlRewriter.Actions; using Intelligencia.UrlRewriter.Utilities; using Intelligencia.UrlRewriter.Parsers; using Intelligencia.UrlRewriter.Errors; using Intelligencia.UrlRewriter.Transforms; using Intelligencia.UrlRewriter.Logging; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Reads configuration from an XML Node. /// </summary> public class RewriterConfigurationReader { /// <summary> /// Default constructor. /// </summary> public RewriterConfigurationReader() { } /// <summary> /// Reads configuration information from the given XML Node. /// </summary> /// <param name="section">The XML node to read configuration from.</param> /// <returns>The configuration information.</returns> public object Read(XmlNode section) { RewriterConfiguration config = new RewriterConfiguration(); foreach (XmlNode node in section.ChildNodes) { if (node.NodeType == XmlNodeType.Element) { if (node.LocalName == Constants.ElementErrorHandler) { ReadErrorHandler(node, config); } else if (node.LocalName == Constants.ElementRegister) { if (node.Attributes[Constants.AttrParser] != null) { ReadRegisterParser(node, config); } else if (node.Attributes[Constants.AttrTransform] != null) { ReadRegisterTransform(node, config); } else if (node.Attributes[Constants.AttrLogger] != null) { ReadRegisterLogger(node, config); } } else if (node.LocalName == Constants.ElementMapping) { ReadMapping(node, config); } else { ReadRule(node, config); } } } return config; } private void ReadRegisterTransform(XmlNode node, RewriterConfiguration config) { // Type attribute. XmlNode typeNode = node.Attributes[Constants.AttrTransform]; if (typeNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrTransform), node); } if (node.ChildNodes.Count > 0) { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNoElements, Constants.ElementRegister), node); } // Transform type specified. Create an instance and add it // as the mapper handler for this map. IRewriteTransform handler = TypeHelper.Activate(typeNode.Value, null) as IRewriteTransform; if (handler != null) { config.TransformFactory.AddTransform(handler); } else { // TODO: Error due to type. } } private void ReadRegisterLogger(XmlNode node, RewriterConfiguration config) { // Type attribute. XmlNode typeNode = node.Attributes[Constants.AttrLogger]; if (typeNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrLogger), node); } if (node.ChildNodes.Count > 0) { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNoElements, Constants.ElementRegister), node); } // Logger type specified. Create an instance and add it // as the mapper handler for this map. IRewriteLogger logger = TypeHelper.Activate(typeNode.Value, null) as IRewriteLogger; if (logger != null) { config.Logger = logger; } } private void ReadRegisterParser(XmlNode node, RewriterConfiguration config) { XmlNode typeNode = node.Attributes[Constants.AttrParser]; if (typeNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrParser), node); } if (node.ChildNodes.Count > 0) { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNoElements, Constants.ElementRegister), node); } object parser = TypeHelper.Activate(typeNode.Value, null); if (parser is IRewriteActionParser) { config.ActionParserFactory.AddParser(parser as IRewriteActionParser); } if (parser is IRewriteConditionParser) { config.ConditionParserPipeline.AddParser(parser as IRewriteConditionParser); } } private void ReadErrorHandler(XmlNode node, RewriterConfiguration config) { XmlNode codeNode = node.Attributes[Constants.AttrCode]; if (codeNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrCode), node); } XmlNode typeNode = node.Attributes[Constants.AttrType]; XmlNode urlNode = node.Attributes[Constants.AttrUrl]; if (typeNode == null && urlNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrUrl), node); } IRewriteErrorHandler handler = null; if (typeNode != null) { // <error-handler code="500" url="/oops.aspx" /> handler = TypeHelper.Activate(typeNode.Value, null) as IRewriteErrorHandler; if (handler == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.InvalidTypeSpecified)); } } else { handler = new DefaultErrorHandler(urlNode.Value); } config.ErrorHandlers.Add(Convert.ToInt32(codeNode.Value), handler); } private void ReadMapping(XmlNode node, RewriterConfiguration config) { // Name attribute. XmlNode nameNode = node.Attributes[Constants.AttrName]; // Mapper type not specified. Load in the hash map. StringDictionary map = new StringDictionary(); foreach (XmlNode mapNode in node.ChildNodes) { if (mapNode.LocalName == Constants.ElementMap) { XmlNode fromValueNode = mapNode.Attributes[Constants.AttrFrom]; if (fromValueNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrFrom), node); } XmlNode toValueNode = mapNode.Attributes[Constants.AttrTo]; if (toValueNode == null) { throw new ConfigurationException(MessageProvider.FormatString(Message.AttributeRequired, Constants.AttrTo), node); } map.Add(fromValueNode.Value, toValueNode.Value); } else { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNotAllowed, mapNode.LocalName), node); } } config.TransformFactory.AddTransform(new StaticMappingTransform(nameNode.Value, map)); } private void ReadRule(XmlNode node, RewriterConfiguration config) { bool parsed = false; IList parsers = config.ActionParserFactory.GetParsers(node.LocalName); if (parsers != null) { foreach (IRewriteActionParser parser in parsers) { if (!parser.AllowsNestedActions && node.ChildNodes.Count > 0) { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNoElements, parser.Name), node); } if (!parser.AllowsAttributes && node.Attributes.Count > 0) { throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNoAttributes, parser.Name), node); } IRewriteAction rule = parser.Parse(node, config); if (rule != null) { config.Rules.Add(rule); parsed = true; break; } } } if (!parsed) { // No parsers recognised to handle this node. throw new ConfigurationException(MessageProvider.FormatString(Message.ElementNotAllowed, node.LocalName), node); } } } } --- NEW FILE: TransformFactory.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Collections; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Factory for creating transforms. /// </summary> public class TransformFactory { /// <summary> /// Adds a transform. /// </summary> /// <param name="transformType">The type of the transform.</param> public void AddTransform(string transformType) { AddTransform((IRewriteTransform)TypeHelper.Activate(transformType, null)); } /// <summary> /// Adds a transform. /// </summary> /// <param name="transform">The transform object.</param> public void AddTransform(IRewriteTransform transform) { _transforms.Add(transform.Name, transform); } /// <summary> /// Gets a transform by name. /// </summary> /// <param name="name">The transform name.</param> /// <returns>The transform object.</returns> public IRewriteTransform GetTransform(string name) { return _transforms[name] as IRewriteTransform; } private Hashtable _transforms = new Hashtable(); } } --- NEW FILE: RewriterConfigurationSectionHandler.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Xml; using System.Configuration; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Configuration section handler for the rewriter section. /// </summary> public sealed class RewriterConfigurationSectionHandler : IConfigurationSectionHandler { /// <summary> /// Creates the settings object. /// </summary> /// <param name="parent">The parent node.</param> /// <param name="configContext">The configuration context.</param> /// <param name="section">The section.</param> /// <returns>The settings object.</returns> object IConfigurationSectionHandler.Create(object parent, object configContext, XmlNode section) { return section; } } } --- NEW FILE: ConditionParserPipeline.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Collections; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter.Configuration { /// <summary> /// Pipeline for creating the Condition parsers. /// </summary> public class ConditionParserPipeline : CollectionBase { /// <summary> /// Adds a parser. /// </summary> /// <param name="parserType">The parser type.</param> public void AddParser(string parserType) { AddParser((IRewriteConditionParser)TypeHelper.Activate(parserType, null)); } /// <summary> /// Adds a parser. /// </summary> /// <param name="parser">The parser.</param> public void AddParser(IRewriteConditionParser parser) { InnerList.Add(parser); } } } |
From: Jaben C. <ja...@us...> - 2007-02-08 00:49:44
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25871/yafsrc/URLRewriter.NET Added Files: Tag: v1_0_2_NETv2 AssemblyInfo.cs Form.cs Intelligencia.UrlRewriter.csproj Intelligencia.UrlRewriter.xml Messages.resx RewriteContext.cs RewriteProcessing.cs RewriterEngine.cs RewriterHttpModule.cs Log Message: URL Rewriter class --- NEW FILE: Intelligencia.UrlRewriter.xml --- <?xml version="1.0"?> <doc> <assembly> <name>Intelligencia.UrlRewriter</name> </assembly> <members> <member name="T:Intelligencia.UrlRewriter.Utilities.IContextFacade"> <summary> Interface for a facade to the context. Useful for plugging out the HttpContext object in unit tests. </summary> </member> <member name="M:Intelligencia.UrlRewriter.Utilities.IContextFacade.GetApplicationPath"> <summary> Retrieves the application path. </summary> <returns>The application path.</returns> </member> <member name="M:Intelligencia.UrlRewriter.Utilities.IContextFacade.GetRawUrl"> [...2073 lines suppressed...] <param name="url">Url of the error page.</param> </member> <member name="M:Intelligencia.UrlRewriter.Errors.DefaultErrorHandler.HandleError(System.Web.HttpContext)"> <summary> Handles the error by rewriting to the error page url. </summary> <param name="context">The context.</param> </member> <member name="T:Intelligencia.UrlRewriter.Actions.ForbiddenAction"> <summary> Returns a 403 Forbidden HTTP status code. </summary> </member> <member name="M:Intelligencia.UrlRewriter.Actions.ForbiddenAction.#ctor"> <summary> Default constructor. </summary> </member> </members> </doc> --- NEW FILE: RewriterHttpModule.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.IO; using System.Net; using System.Web; using System.Resources; using System.Reflection; using Intelligencia.UrlRewriter.Configuration; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter { /// <summary> /// Rewrites urls based on patterns and conditions specified in the configuration file. /// This class cannot be inherited. /// </summary> public sealed class RewriterHttpModule : IHttpModule { /// <summary> /// Initialises the module. /// </summary> /// <param name="context">The application context.</param> void IHttpModule.Init(HttpApplication context) { context.BeginRequest += new EventHandler(BeginRequest); } /// <summary> /// Disposes of the module. /// </summary> void IHttpModule.Dispose() { } /// <summary> /// Configuration of the rewriter. /// </summary> public static RewriterConfiguration Configuration { get { return RewriterConfiguration.Current; } } /// <summary> /// Resolves an Application-path relative location /// </summary> /// <param name="location">The location</param> /// <returns>The absolute location.</returns> public static string ResolveLocation(string location) { return _rewriter.ResolveLocation(location); } /// <summary> /// The original query string. /// </summary> public static string OriginalQueryString { get { return _rewriter.OriginalQueryString; } set { _rewriter.OriginalQueryString = value; } } /// <summary> /// The final querystring, after rewriting. /// </summary> public static string QueryString { get { return _rewriter.QueryString; } set { _rewriter.QueryString = value; } } private void BeginRequest(object sender, EventArgs e) { // Add our PoweredBy header HttpContext.Current.Response.AddHeader(Constants.HeaderXPoweredBy, Configuration.XPoweredBy); _rewriter.Rewrite(); } private static RewriterEngine _rewriter = new RewriterEngine(new HttpContextFacade(), RewriterConfiguration.Current); } } --- NEW FILE: Form.cs --- using System; using System.Collections; using System.Collections.Specialized; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter { /// <summary> /// Replacement for <asp:form> to handle rewritten form postback. /// </summary> /// <remarks> /// <p>This form should be used for pages that use the url rewriter and have /// forms that are posted back. If you use the normal ASP.NET <see cref="System.Web.UI.HtmlControls.HtmlForm">HtmlForm</see>, /// then the postback will not be able to correctly resolve the postback data to the form data. /// </p> /// <p>This form is a direct replacement for the <asp:form> tag. /// </p> /// <p>The following code demonstrates the usage of this control.</p> /// <code> /// <%@ Page language="c#" Codebehind="MyPage.aspx.cs" AutoEventWireup="false" Inherits="MyPage" %> /// <%@ Register TagPrefix="url" Namespace="Intelligencia.UrlRewriter" Assembly="Intelligencia.UrlRewriter" %> /// <html> /// ... /// <body> /// <url:form id="MyForm" runat="server"> /// ... /// </url:form> /// </body> /// </html> /// </code> /// </remarks> [ToolboxData("<{0}:Form runat=server></{0}:RewrittenForm>")] public class Form : HtmlForm { /// <summary> /// Renders children of the form control. /// </summary> /// <param name="writer">The output writer.</param> /// <exclude /> protected override void RenderChildren(HtmlTextWriter writer) { writer.RenderBeginTag(HtmlTextWriterTag.Div); base.RenderChildren(writer); writer.RenderEndTag(); } /// <summary> /// Renders attributes. /// </summary> /// <param name="writer">The output writer.</param> /// <exclude /> protected override void RenderAttributes(HtmlTextWriter writer) { writer.WriteAttribute(Constants.AttrName, GetName()); Attributes.Remove(Constants.AttrName); writer.WriteAttribute(Constants.AttrMethod, GetMethod()); Attributes.Remove(Constants.AttrMethod); writer.WriteAttribute(Constants.AttrAction, GetAction(), true); Attributes.Remove(Constants.AttrAction); Attributes.Render(writer); if (ID != null) { writer.WriteAttribute(Constants.AttrID, GetID()); } } private string GetID() { return ClientID; } private string GetName() { return Name; } private string GetMethod() { return Method; } private string GetAction() { return Page.Request.RawUrl; } } } --- NEW FILE: RewriteProcessing.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; namespace Intelligencia.UrlRewriter { /// <summary> /// Processing flag. Tells the rewriter how to continue processing (or not). /// </summary> public enum RewriteProcessing { /// <summary> /// Continue processing at the next rule. /// </summary> ContinueProcessing, /// <summary> /// Halt processing. /// </summary> StopProcessing, /// <summary> /// Restart processing at the first rule. /// </summary> RestartProcessing } } --- NEW FILE: AssemblyInfo.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System.Reflection; using System.Runtime.CompilerServices; [assembly: AssemblyTitle("UrlRewriter")] [assembly: AssemblyDescription("An extendible, rule-based URL Rewriter for .NET")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Intelligencia")] [assembly: AssemblyProduct("UrlRewriter")] [assembly: AssemblyCopyright("(C) 2006 Intelligencia, (C) 2006 Seth Yates")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: AssemblyVersion("1.7.0.0")] [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] --- NEW FILE: RewriterEngine.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.IO; using System.Xml; using System.Net; using System.Web; using System.Web.Caching; using System.Configuration; using System.Collections; using System.Collections.Specialized; using System.Text.RegularExpressions; using Intelligencia.UrlRewriter.Configuration; using Intelligencia.UrlRewriter.Actions; using Intelligencia.UrlRewriter.Errors; using Intelligencia.UrlRewriter.Conditions; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter { /// <summary> /// The core RewriterEngine class. /// </summary> public class RewriterEngine { /// <summary> /// Constructor. /// </summary> /// <param name="contextFacade">The context facade to use.</param> /// <param name="configuration">The configuration to use.</param> public RewriterEngine(IContextFacade contextFacade, RewriterConfiguration configuration) { ContextFacade = contextFacade; _configuration = configuration; } /// <summary> /// Resolves an Application-path relative location /// </summary> /// <param name="location">The location</param> /// <returns>The absolute location.</returns> public string ResolveLocation(string location) { string appPath = ContextFacade.GetApplicationPath(); if (appPath.Length > 1) { appPath += "/"; } return location.Replace("~/", appPath); } /// <summary> /// Performs the rewriting. /// </summary> public void Rewrite() { string originalUrl = ContextFacade.GetRawUrl(); // Create the context RewriteContext context = new RewriteContext(this, originalUrl, ContextFacade.GetHttpMethod(), new RewriteContext.MapPathDelegate(ContextFacade.MapPath), ContextFacade.GetServerVariables(), ContextFacade.GetHeaders(), ContextFacade.GetCookies()); // Process each rule. ProcessRules(context); // Append any headers defined. AppendHeaders(context); // Append any cookies defined. AppendCookies(context); // Rewrite the path if the location has changed. ContextFacade.SetStatusCode((int)context.StatusCode); if ((context.Location != originalUrl) && ((int)context.StatusCode < 400)) { if ((int)context.StatusCode < 300) { // Successful status if less than 300 _configuration.Logger.Info(MessageProvider.FormatString(Message.RewritingXtoY, ContextFacade.GetRawUrl(), context.Location)); // Verify that the url exists on this server. VerifyResultExists(context); ContextFacade.RewritePath(context.Location); } else { // Redirection _configuration.Logger.Info(MessageProvider.FormatString(Message.RedirectingXtoY, ContextFacade.GetRawUrl(), context.Location)); ContextFacade.SetRedirectLocation(context.Location); } } else if ((int)context.StatusCode >= 400) { HandleError(context); } // Sets the context items. SetContextItems(context); } /// <summary> /// Expands the given input based on the current context. /// </summary> /// <param name="context">The current context</param> /// <param name="input">The input to expand.</param> /// <returns>The expanded input</returns> public string Expand(RewriteContext context, string input) { /* replacement :- $n * | ${[a-zA-Z0-9\-]+} * | ${fn( <replacement> )} * | ${<replacement-or-id>:<replacement-or-value>:<replacement-or-value>} * * replacement-or-id :- <replacement> | <id> * replacement-or-value :- <replacement> | <value> */ /* $1 - regex replacement * ${propertyname} * ${map-name:value} map-name is replacement, value is replacement * ${map-name:value|default-value} map-name is replacement, value is replacement, default-value is replacement * ${fn(value)} value is replacement */ StringReader reader = new StringReader(input); StringWriter writer = new StringWriter(); char ch = (char)reader.Read(); while (ch != (char)65535) { if ((char)ch == '$') { writer.Write(Reduce(context, reader)); } else { writer.Write((char)ch); } ch = (char)reader.Read(); } return writer.GetStringBuilder().ToString(); } private void ProcessRules(RewriteContext context) { const int MaxRestart = 10; // Controls the number of restarts so we don't get into an infinite loop IList rewriteRules = _configuration.Rules; int restarts = 0; for (int i = 0; i < rewriteRules.Count; i++) { // If the rule is conditional, ensure the conditions are met. IRewriteCondition condition = rewriteRules[i] as IRewriteCondition; if (condition == null || condition.IsMatch(context)) { // Execute the action. IRewriteAction action = rewriteRules[i] as IRewriteAction; action.Execute(context); // If the action is Stop, then break out of the processing loop if (action.Processing == RewriteProcessing.StopProcessing) { _configuration.Logger.Debug(MessageProvider.FormatString(Message.StoppingBecauseOfRule)); break; } else if (action.Processing == RewriteProcessing.RestartProcessing) { _configuration.Logger.Debug(MessageProvider.FormatString(Message.RestartingBecauseOfRule)); // Restart from the first rule. i = 0; if (++restarts > MaxRestart) { throw new InvalidOperationException(MessageProvider.FormatString(Message.TooManyRestarts)); } } } } } private void VerifyResultExists(RewriteContext context) { if ((String.Compare(context.Location, ContextFacade.GetRawUrl()) != 0) && ((int)context.StatusCode < 300)) { Uri uri = new Uri(ContextFacade.GetRequestUrl(), context.Location); if (uri.Host == ContextFacade.GetRequestUrl().Host) { string filename = ContextFacade.MapPath(uri.AbsolutePath); if (!File.Exists(filename)) { _configuration.Logger.Debug(MessageProvider.FormatString(Message.ResultNotFound, filename)); context.StatusCode = HttpStatusCode.NotFound; } } } } private void HandleError(RewriteContext context) { // Return the status code. ContextFacade.SetStatusCode((int)context.StatusCode); // Get the error handler if there is one. IRewriteErrorHandler handler = _configuration.ErrorHandlers[(int)context.StatusCode] as IRewriteErrorHandler; if (handler != null) { try { _configuration.Logger.Debug(MessageProvider.FormatString(Message.CallingErrorHandler)); // Execute the error handler. ContextFacade.HandleError(handler); } catch (HttpException) { throw; } catch (Exception exc) { _configuration.Logger.Fatal(exc.Message, exc); throw new HttpException((int)HttpStatusCode.InternalServerError, HttpStatusCode.InternalServerError.ToString()); } } else { throw new HttpException((int)context.StatusCode, context.StatusCode.ToString()); } } private void AppendHeaders(RewriteContext context) { foreach (string headerKey in context.Headers) { ContextFacade.AppendHeader(headerKey, context.Headers[headerKey]); } } private void AppendCookies(RewriteContext context) { for (int i = 0; i < context.Cookies.Count; i++) { HttpCookie cookie = context.Cookies[i]; ContextFacade.AppendCookie(cookie); } } private void SetContextItems(RewriteContext context) { OriginalQueryString = new Uri(ContextFacade.GetRequestUrl(), ContextFacade.GetRawUrl()).Query.Replace("?", ""); QueryString = new Uri(ContextFacade.GetRequestUrl(), context.Location).Query.Replace("?", ""); } /// <summary> /// The original query string. /// </summary> public string OriginalQueryString { get { return (string)ContextFacade.GetItem(ContextOriginalQueryString); } set { ContextFacade.SetItem(ContextOriginalQueryString, value); } } /// <summary> /// The final querystring, after rewriting. /// </summary> public string QueryString { get { return (string)ContextFacade.GetItem(ContextQueryString); } set { ContextFacade.SetItem(ContextQueryString, value); } } private string Reduce(RewriteContext context, StringReader reader) { string result; char ch = (char)reader.Read(); if (Char.IsDigit(ch)) { string num = ch.ToString(); if (Char.IsDigit((char)reader.Peek())) { ch = (char)reader.Read(); num += ch.ToString(); } if (context.LastMatch != null) { Group group = context.LastMatch.Groups[Convert.ToInt32(num)]; if (group != null) { result = group.Value; } else { result = String.Empty; } } else { result = String.Empty; } } else if (ch == '<') { StringWriter writer = new StringWriter(); ch = (char)reader.Read(); while (ch != '>' && ch != (char)65535) { if (ch == '$') { writer.Write(Reduce(context, reader)); } else { writer.Write(ch); } ch = (char)reader.Read(); } string expr = writer.GetStringBuilder().ToString(); if (context.LastMatch != null) { Group group = context.LastMatch.Groups[expr]; if (group != null) { result = group.Value; } else { result = String.Empty; } } else { result = String.Empty; } } else if (ch == '{') { StringWriter writer = new StringWriter(); bool isMap = false; bool isFunction = false; ch = (char)reader.Read(); while (ch != '}' && ch != (char)65535) { if (ch == '$') { writer.Write(Reduce(context, reader)); } else { if (ch == ':') isMap = true; else if (ch == '(') isFunction = true; writer.Write(ch); } ch = (char)reader.Read(); } string expr = writer.GetStringBuilder().ToString(); if (isMap) { Match match = Regex.Match(expr, @"^([^\:]+)\:([^\|]+)(\|(.+))?$"); string mapName = match.Groups[1].Value; string mapArgument = match.Groups[2].Value; string mapDefault = match.Groups[4].Value; result = _configuration.TransformFactory.GetTransform(mapName).ApplyTransform(mapArgument); if (result == null) { result = mapDefault; } } else if (isFunction) { Match match = Regex.Match(expr, @"^([^\(]+)\(([^\)]+)\)$"); string functionName = match.Groups[1].Value; string functionArgument = match.Groups[2].Value; result = _configuration.TransformFactory.GetTransform(functionName).ApplyTransform(functionArgument); } else { result = context.Properties[expr]; } } else { result = ch.ToString(); } return result; } private const string ContextQueryString = "UrlRewriter.NET.QueryString"; private const string ContextOriginalQueryString = "UrlRewriter.NET.OriginalQueryString"; private RewriterConfiguration _configuration; private IContextFacade ContextFacade; } } --- NEW FILE: Intelligencia.UrlRewriter.csproj --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Messages.resx --- <?xml version="1.0" encoding="utf-8" ?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="ResMimeType"> <value>text/microsoft-resx</value> </resheader> <resheader name="Version"> <value>1.0.0.0</value> </resheader> <resheader name="Reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="Writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="MappedValuesNotAllowed"> <value>Mapped values are not allowed if a mapper type is specified.</value> </data> <data name="ElementNotAllowed"> <value>The element '{0}' is not allowed.</value> </data> <data name="ValueOfProcessingAttribute"> <value>The value '{0}' of the processing attribute is invalid. It must be either '{1}', '{2}' or '{3}'.</value> </data> <data name="AttributeNotAllowed"> <value>The attribute '{0}' is not allowed.</value> </data> <data name="ElementNoAttributes"> <value>The '{0}' element does not allow attributes.</value> </data> <data name="ElementNoElements"> <value>The '{0}' element does not allow nested elements.</value> </data> <data name="AttributeRequired"> <value>The attribute '{0}' is required.</value> </data> <data name="TypeNameRequired"> <value>Type name is required.</value> </data> <data name="InvalidTypeSpecified"> <value>Type is specified does not support the required interface.</value> </data> <data name="AssemblyNameRequired"> <value>Assembly name is required.</value> </data> <data name="FullTypeNameRequiresAssemblyName"> <value>Full type name must include assembly name.</value> </data> <data name="MapAlreadyDefined"> <value>Map '{0}' has already been defined.</value> </data> <data name="InputIsNotHex"> <value>The input is not hex.</value> </data> <data name="AddressesNotOfSameType"> <value>Addresses are not of the same type.</value> </data> <data name="ProductName"> <value>UrlRewriter.NET {0}</value> </data> <data name="StoppingBecauseOfRule"> <value>Stopping because of rule.</value> </data> <data name="RestartingBecauseOfRule"> <value>Restarting because of rule.</value> </data> <data name="ResultNotFound"> <value>Result '{0}' not found.</value> </data> <data name="CallingErrorHandler"> <value>Calling error handler.</value> </data> <data name="RewritingXtoY"> <value>Rewriting '{0}' to '{1}'.</value> </data> <data name="RedirectingXtoY"> <value>Redirecting '{0}' to '{1}'.</value> </data> <data name="TooManyRestarts"> <value>As configured, the rules caused too many restarts. Please review your rewriting rules and ensure there are no infinite loops.</value> </data> </root> --- NEW FILE: RewriteContext.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.IO; using System.Net; using System.Xml; using System.Web; using System.Web.Caching; using System.Configuration; using System.Text.RegularExpressions; using System.Collections.Specialized; using Intelligencia.UrlRewriter.Configuration; namespace Intelligencia.UrlRewriter { /// <summary> /// Encapsulates all rewriting information about an individual rewrite request. This class cannot be inherited. /// </summary> /// <remarks> /// This class cannot be created directly. It will be provided to actions and conditions /// by the framework. /// </remarks> public sealed class RewriteContext { internal delegate string MapPathDelegate(string url); /// <summary> /// Default constructor. /// </summary> /// <param name="engine">The rewriting engine.</param> /// <param name="rawUrl">The initial, raw URL.</param> /// <param name="httpMethod">The HTTP method used (GET, POST, ...)</param> /// <param name="mapPath">The method to use for mapping paths.</param> /// <param name="serverVariables">Collection of server variables.</param> /// <param name="headers">Collection of headers.</param> /// <param name="cookies">Collection of cookies.</param> internal RewriteContext(RewriterEngine engine, string rawUrl, string httpMethod, MapPathDelegate mapPath, NameValueCollection serverVariables, NameValueCollection headers, HttpCookieCollection cookies) { _engine = engine; _location = rawUrl; _method = httpMethod; _mapPath = mapPath; foreach (string key in serverVariables) { _properties.Add(key, serverVariables[key]); } foreach (string key in headers) { _properties.Add(key, headers[key]); } foreach (string key in cookies) { _properties.Add(key, cookies[key].Value); } } /// <summary> /// Maps the given URL to the absolute local path. /// </summary> /// <param name="url">The URL to map.</param> /// <returns>The absolute local file path relating to the url.</returns> public string MapPath(string url) { return _mapPath(url); } /// <summary> /// The current location being rewritten. /// </summary> /// <remarks> /// This property starts out as Request.RawUrl and is altered by various /// rewrite actions. /// </remarks> public string Location { get { return _location; } set { _location = value; } } /// <summary> /// The request method (GET, PUT, POST, HEAD, DELETE). /// </summary> public string Method { get { return _method; } } /// <summary> /// The Processing flag. /// </summary> private RewriteProcessing Processing { get { return _processing; } set { _processing = value; } } /// <summary> /// The properties for the context, including headers and cookie values. /// </summary> public NameValueCollection Properties { get { return _properties; } } /// <summary> /// Output headers. /// </summary> /// <remarks> /// This collection is the collection of headers to add to the response. /// For the headers sent in the request, use the <see cref="RewriteContext.Properties">Properties</see> property. /// </remarks> public NameValueCollection Headers { get { return _headers; } } /// <summary> /// The status code to send in the response. /// </summary> public HttpStatusCode StatusCode { get { return _statusCode; } set { _statusCode = value; } } /// <summary> /// Collection of output cookies. /// </summary> /// <remarks> /// This is the collection of cookies to send in the response. For the cookies /// received in the request, use the <see cref="RewriteContext.Properties">Properties</see> property. /// </remarks> public HttpCookieCollection Cookies { get { return _cookies; } } /// <summary> /// Last matching pattern from a match (if any). /// </summary> public Match LastMatch { get { return _lastMatch; } set { _lastMatch = value; } } /// <summary> /// Expands the given input using the last match, properties, maps and transforms. /// </summary> /// <param name="input">The input to expand.</param> /// <returns>The expanded form of the input.</returns> public string Expand(string input) { return _engine.Expand(this, input); } /// <summary> /// Resolves the location to an absolute reference. /// </summary> /// <param name="location">The application-referenced location.</param> /// <returns>The absolute location.</returns> public string ResolveLocation(string location) { return _engine.ResolveLocation(location); } private RewriterEngine _engine; private string _method = String.Empty; private HttpStatusCode _statusCode = HttpStatusCode.OK; private RewriteProcessing _processing = RewriteProcessing.ContinueProcessing; private string _location; private NameValueCollection _properties = new NameValueCollection(); private NameValueCollection _headers = new NameValueCollection(); private HttpCookieCollection _cookies = new HttpCookieCollection(); private Match _lastMatch = null; private MapPathDelegate _mapPath; } } |
From: Jaben C. <ja...@us...> - 2007-02-08 00:49:44
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Errors In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25871/yafsrc/URLRewriter.NET/Errors Added Files: Tag: v1_0_2_NETv2 DefaultErrorHandler.cs IRewriteErrorHandler.cs Log Message: URL Rewriter class --- NEW FILE: IRewriteErrorHandler.cs --- using System; using System.Web; namespace Intelligencia.UrlRewriter { /// <summary> /// Interface for rewriter error handlers. /// </summary> public interface IRewriteErrorHandler { /// <summary> /// Handles the error. /// </summary> /// <param name="context">The HTTP context.</param> void HandleError(HttpContext context); } } --- NEW FILE: DefaultErrorHandler.cs --- using System; using System.Web; namespace Intelligencia.UrlRewriter.Errors { /// <summary> /// Summary description for DefaultErrorHandler. /// </summary> public class DefaultErrorHandler : IRewriteErrorHandler { /// <summary> /// Constructor. /// </summary> /// <param name="url">Url of the error page.</param> public DefaultErrorHandler(string url) { _url = url; } /// <summary> /// Handles the error by rewriting to the error page url. /// </summary> /// <param name="context">The context.</param> public void HandleError(HttpContext context) { context.Server.Execute(_url); } private string _url; } } |
From: Jaben C. <ja...@us...> - 2007-02-08 00:49:44
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Conditions In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25871/yafsrc/URLRewriter.NET/Conditions Added Files: Tag: v1_0_2_NETv2 AddressCondition.cs ExistsCondition.cs IRewriteCondition.cs MatchCondition.cs MethodCondition.cs PropertyMatchCondition.cs UrlMatchCondition.cs Log Message: URL Rewriter class --- NEW FILE: ExistsCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.IO; using System.Net; using System.Web; using System.Text.RegularExpressions; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Condition that tests the existence of a file. /// </summary> public class ExistsCondition : IRewriteCondition { /// <summary> /// Constructor. /// </summary> /// <param name="location"></param> public ExistsCondition(string location) { _location = location; } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public bool IsMatch(RewriteContext context) { string filename = context.MapPath(context.Expand(_location)); return File.Exists(filename) || Directory.Exists(filename); } private string _location; } } --- NEW FILE: UrlMatchCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Web; using System.Text.RegularExpressions; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Matches on the current URL. /// </summary> public sealed class UrlMatchCondition : IRewriteCondition { /// <summary> /// Default constructor. /// </summary> /// <param name="pattern"></param> public UrlMatchCondition(string pattern) { _pattern = pattern; } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public bool IsMatch(RewriteContext context) { if (_regex == null) { _regex = new Regex(context.ResolveLocation(Pattern), RegexOptions.IgnoreCase); } Match match = _regex.Match(context.Location); if (match.Success) { context.LastMatch = match; return true; } else { return false; } } /// <summary> /// The pattern to match. /// </summary> public string Pattern { get { return _pattern; } set { _pattern = value; } } private Regex _regex; private string _pattern; } } --- NEW FILE: IRewriteCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; namespace Intelligencia.UrlRewriter { /// <summary> /// Interface for conditions. /// </summary> public interface IRewriteCondition { /// <summary> /// Determines if the condition matches. /// </summary> /// <param name="context">The rewrite context.</param> /// <returns>True if the condition is met.</returns> bool IsMatch(RewriteContext context); } } --- NEW FILE: PropertyMatchCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Text.RegularExpressions; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Performs a property match. /// </summary> public sealed class PropertyMatchCondition : MatchCondition { /// <summary> /// Default constructor. /// </summary> /// <param name="propertyName"></param> /// <param name="pattern"></param> public PropertyMatchCondition(string propertyName, string pattern) : base(pattern) { _propertyName = propertyName; } /// <summary> /// The property name. /// </summary> public string PropertyName { get { return _propertyName; } set { _propertyName = value; } } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public override bool IsMatch(RewriteContext context) { string property = context.Properties[PropertyName]; if (property != null) { Match match = Pattern.Match(property); if (match.Success) { context.LastMatch = match; return true; } else { return false; } } else { return false; } } private string _propertyName = String.Empty; } } --- NEW FILE: MethodCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Text.RegularExpressions; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Matches on the current method. /// </summary> public sealed class MethodCondition : MatchCondition { /// <summary> /// Default constructor. /// </summary> /// <param name="pattern"></param> public MethodCondition(string pattern) : base(GetMethodPattern(pattern)) { } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public override bool IsMatch(RewriteContext context) { return Pattern.IsMatch(context.Method); } private static string GetMethodPattern(string method) { // Convert the GET, POST, * to ^GET|POST|.+$ return String.Format("^{0}$", Regex.Replace(method, @"[^a-zA-Z,\*]+", "").Replace(",", "|").Replace("*", ".+")); } } } --- NEW FILE: AddressCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Net; using System.Text.RegularExpressions; using Intelligencia.UrlRewriter.Utilities; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Matches on the current remote IP address. /// </summary> public sealed class AddressCondition : IRewriteCondition { /// <summary> /// Default constructor. /// </summary> /// <param name="pattern"></param> public AddressCondition(string pattern) { _range = IPRange.Parse(pattern); } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public bool IsMatch(RewriteContext context) { string ipAddress = context.Properties[Constants.RemoteAddressHeader]; if (ipAddress != null) { return _range.InRange(IPAddress.Parse(ipAddress)); } else { return false; } } private IPRange _range; } } --- NEW FILE: MatchCondition.cs --- // UrlRewriter - A .NET URL Rewriter module // Version 1.7 // // Copyright 2006 Intelligencia // Copyright 2006 Seth Yates // using System; using System.Text.RegularExpressions; namespace Intelligencia.UrlRewriter.Conditions { /// <summary> /// Base class for MatchConditions. /// </summary> public abstract class MatchCondition : IRewriteCondition { /// <summary> /// Default constructor. /// </summary> /// <param name="pattern">Pattern to match.</param> public MatchCondition(string pattern) { _pattern = new Regex(pattern, RegexOptions.IgnoreCase); } /// <summary> /// Whether the MatchCondition is to be negated. /// </summary> public bool Negative { get { return _negative; } set { _negative = value; } } /// <summary> /// The pattern to match. /// </summary> public Regex Pattern { get { return _pattern; } set { _pattern = value; } } /// <summary> /// Determines if the condition is matched. /// </summary> /// <param name="context">The rewriting context.</param> /// <returns>True if the condition is met.</returns> public abstract bool IsMatch(RewriteContext context); private bool _negative = false; private Regex _pattern; } } |
From: Jaben C. <ja...@us...> - 2007-02-08 00:49:12
|
Update of /cvsroot/yafdotnet/yafsrc/classes In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25495/yafsrc/classes Modified Files: Tag: v1_0_2_NETv2 Config.cs Data.cs Added Files: Tag: v1_0_2_NETv2 URLBuilderRewrite.cs Log Message: updates versions and added new URL Rewriter builder class --- NEW FILE: URLBuilderRewrite.cs --- using System; using System.Data; using System.Collections.Specialized; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace yaf { public class SimpleURLParameterParser { private string _urlParameters = ""; private string _urlAnchor = ""; private NameValueCollection _nameValues = new NameValueCollection(); public SimpleURLParameterParser( string urlParameters ) { _urlParameters = urlParameters; ParseURLParameters(); } private void ParseURLParameters() { string urlTemp = _urlParameters; int index; // get the url end anchor (#blah) if there is one... _urlAnchor = ""; index = urlTemp.LastIndexOf( '#' ); if ( index > 0 ) { // there's an anchor _urlAnchor = urlTemp.Substring( index+1 ); // remove the anchor from the url... urlTemp = urlTemp.Remove( index ); } _nameValues.Clear(); string [] arrayPairs = urlTemp.Split( new char [] { '&' } ); foreach ( string tValue in arrayPairs ) { if ( tValue.Trim().Length > 0 ) { // parse... string [] nvalue = tValue.Trim().Split( new char [] { '=' } ); _nameValues.Add( nvalue [0], nvalue [1] ); } } } public string Anchor { get { return _urlAnchor; } } public bool HasAnchor { get { return ( _urlAnchor != "" ); } } public NameValueCollection Parameters { get { return _nameValues; } } public int Count { get { return _nameValues.Count; } } public string this[string name] { get { return _nameValues[name]; } } public string this [int index] { get { return _nameValues [index]; } } } public class RewriteUrlBuilder : yaf.IUrlBuilder { public string BuildUrl( string url ) { string scriptname = HttpContext.Current.Request.ServerVariables ["SCRIPT_NAME"].ToLower(); string newURL = string.Format( "{0}?{1}", scriptname, url ); if ( scriptname.EndsWith("default.aspx") ) { string before = scriptname.Remove( scriptname.LastIndexOf( "default.aspx" ) ); SimpleURLParameterParser parser = new SimpleURLParameterParser( url ); // create "rewritten" url... newURL = before; string useKey = ""; string pageName = parser ["g"]; bool showKey = false; switch (parser["g"]) { case "topics": useKey = "f"; break; case "posts": if ( parser ["t"] != null ) { useKey = "t"; pageName += "bytopic"; } else if ( parser ["m"] != null ) { useKey = "m"; pageName += "bymessage"; } break; case "profile": useKey = "u"; break; case "forum": if ( parser ["c"] != null ) useKey = "c"; break; } newURL += pageName; if (useKey.Length > 0) { if ( !showKey ) newURL += parser [useKey]; else newURL += useKey + parser [useKey]; } newURL += ".aspx"; string restURL = ""; bool bFirst = true; // create url parameters... for ( int i = 0; i < parser.Count; i++ ) { string key = parser.Parameters.Keys [i].ToLower(); string value = parser[i]; if ( key != "g" && key != useKey ) { if (bFirst) bFirst = false; else restURL += "&"; restURL += key + "=" + value; } } // append to the url if there are additional (unsupported) parameters if ( restURL.Length > 0 ) { newURL += "?" + restURL; } // add anchor if ( parser.HasAnchor ) newURL += "#" + parser.Anchor; } return newURL; } } } Index: Config.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/classes/Attic/Config.cs,v retrieving revision 1.8.2.3 retrieving revision 1.8.2.4 diff -C2 -d -r1.8.2.3 -r1.8.2.4 *** Config.cs 24 Sep 2006 13:09:14 -0000 1.8.2.3 --- Config.cs 8 Feb 2007 00:49:08 -0000 1.8.2.4 *************** *** 67,70 **** --- 67,78 ---- } + static public string EnableURLRewriting + { + get + { + return configSection ["enableurlrewriting"]; + } + } + static public string UploadDir { *************** *** 145,148 **** --- 153,160 ---- urlAssembly = "Portal.UrlBuilder,Portal"; } + else if ( EnableURLRewriting == "true" ) + { + urlAssembly = "yaf.RewriteUrlBuilder,yaf"; + } else { Index: Data.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/classes/Attic/Data.cs,v retrieving revision 1.80.2.13 retrieving revision 1.80.2.14 diff -C2 -d -r1.80.2.13 -r1.80.2.14 *** Data.cs 10 Oct 2006 13:06:26 -0000 1.80.2.13 --- Data.cs 8 Feb 2007 00:49:08 -0000 1.80.2.14 *************** *** 343,347 **** get { ! return 21; } } --- 343,347 ---- get { ! return 22; } } *************** *** 350,354 **** get { ! return 0x01090000; } } --- 350,354 ---- get { ! return 0x01090100; } } *************** *** 357,361 **** get { ! return new DateTime( 2006, 10, 10 ); } } --- 357,361 ---- get { ! return new DateTime( 2007, 02, 07 ); } } |
From: Jaben C. <ja...@us...> - 2007-02-08 00:48:44
|
Update of /cvsroot/yafdotnet/yafsrc/pages In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25386/yafsrc/pages Modified Files: Tag: v1_0_2_NETv2 cp_inbox.ascx cp_inbox.ascx.cs cp_inbox.ascx.designer.cs postmessage.ascx.cs Log Message: v1.9.1 updates and fixes... very minor stuff Index: postmessage.ascx.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/postmessage.ascx.cs,v retrieving revision 1.38.2.6 retrieving revision 1.38.2.7 diff -C2 -d -r1.38.2.6 -r1.38.2.7 *** postmessage.ascx.cs 13 Sep 2006 11:04:52 -0000 1.38.2.6 --- postmessage.ascx.cs 8 Feb 2007 00:48:42 -0000 1.38.2.7 *************** *** 80,84 **** if ( PageForumID == 0 ) Data.AccessDenied(); ! if ( Request ["t"] != null && !ForumPostAccess ) Data.AccessDenied(); if ( Request ["t"] != null && !ForumReplyAccess ) --- 80,84 ---- if ( PageForumID == 0 ) Data.AccessDenied(); ! if ( Request ["t"] == null && !ForumPostAccess ) Data.AccessDenied(); if ( Request ["t"] != null && !ForumReplyAccess ) Index: cp_inbox.ascx.designer.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/cp_inbox.ascx.designer.cs,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** cp_inbox.ascx.designer.cs 28 Jun 2006 11:42:46 -0000 1.1.2.2 --- cp_inbox.ascx.designer.cs 8 Feb 2007 00:48:42 -0000 1.1.2.3 *************** *** 2,6 **** // <auto-generated> // This code was generated by a tool. ! // Runtime Version:2.0.50727.42 // // Changes to this file may cause incorrect behavior and will be lost if --- 2,6 ---- // <auto-generated> // This code was generated by a tool. ! // Runtime Version:2.0.50727.91 // // Changes to this file may cause incorrect behavior and will be lost if Index: cp_inbox.ascx =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/cp_inbox.ascx,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -C2 -d -r1.7.2.1 -r1.7.2.2 *** cp_inbox.ascx 28 Jun 2006 11:42:46 -0000 1.7.2.1 --- cp_inbox.ascx 8 Feb 2007 00:48:42 -0000 1.7.2.2 *************** *** 1,37 **** ! <%@ Control language="c#" Codebehind="cp_inbox.ascx.cs" AutoEventWireup="True" Inherits="yaf.pages.cp_inbox" %> <%@ Register TagPrefix="yaf" Namespace="yaf.controls" Assembly="yaf" %> ! ! <yaf:PageLinks runat="server" id="PageLinks"/> ! ! <table class=content cellspacing=1 cellpadding=0 width=100%> ! <tr> ! <td class=header1 colspan=6><%# GetText(IsSentItems ? "sentitems" : "title") %></td> ! </tr> ! <tr class=header2> ! <td> </td> ! <td><img runat="server" id="SortSubject" align="absmiddle"/> <asp:linkbutton runat="server" id="SubjectLink"/></td> ! <td><img runat="server" id="SortFrom" align="absmiddle"/> <asp:linkbutton runat="server" id="FromLink"/></td> ! <td><img runat="server" id="SortDate" align="absmiddle"/> <asp:linkbutton runat="server" id="DateLink"/></td> ! <td> </td> ! </tr> ! ! <asp:repeater id=Inbox runat=server> ! <FooterTemplate> ! <tr class=footer1> ! <td colspan="6" align="right"><asp:button runat="server" onload="DeleteSelected_Load" commandname="delete" text='<%# GetText("deleteselected") %>'/></td> ! </tr> ! </table> ! </FooterTemplate> ! <ItemTemplate> ! <tr class=post> ! <td align="center"><img src='<%# GetImage(Container.DataItem) %>'/></td> ! <td><a href='<%# yaf.Forum.GetLink(yaf.Pages.cp_message,"pm={0}",DataBinder.Eval(Container.DataItem,"UserPMessageID")) %>'><%# HtmlEncode(DataBinder.Eval(Container.DataItem,"Subject")) %></a></td> ! <td><%# DataBinder.Eval(Container.DataItem,IsSentItems ? "ToUser" : "FromUser") %></td> ! <td><%# FormatDateTime((System.DateTime)((System.Data.DataRowView)Container.DataItem)["Created"]) %></td> ! <td align="center"><asp:checkbox runat="server" id="ItemCheck" /></td> ! <asp:label runat="server" id="UserPMessageID" visible="false" text='<%# DataBinder.Eval(Container.DataItem,"UserPMessageID") %>'/> ! </tr> ! </ItemTemplate> ! </asp:repeater> ! ! <yaf:SmartScroller id="SmartScroller1" runat = "server" /> --- 1,54 ---- ! <%@ Control Language="c#" Codebehind="cp_inbox.ascx.cs" AutoEventWireup="True" Inherits="yaf.pages.cp_inbox" %> <%@ Register TagPrefix="yaf" Namespace="yaf.controls" Assembly="yaf" %> ! <yaf:PageLinks runat="server" ID="PageLinks" /> ! <table class="content" cellspacing="1" cellpadding="0" width="100%"> ! <tr> ! <td class="header1" colspan="6"> ! <%# GetText(IsSentItems ? "sentitems" : "title") %> ! </td> ! </tr> ! <tr class="header2"> ! <td> ! </td> ! <td> ! <img runat="server" id="SortSubject" align="absmiddle" /> ! <asp:LinkButton runat="server" ID="SubjectLink" /></td> ! <td> ! <img runat="server" id="SortFrom" align="absmiddle" /> ! <asp:LinkButton runat="server" ID="FromLink" /></td> ! <td> ! <img runat="server" id="SortDate" align="absmiddle" /> ! <asp:LinkButton runat="server" ID="DateLink" /></td> ! <td> ! </td> ! </tr> ! <asp:Repeater ID="Inbox" runat="server"> ! <FooterTemplate> ! <tr class="footer1"> ! <td colspan="6" align="right"> ! <asp:Button runat="server" OnLoad="DeleteSelected_Load" CommandName="delete" Text='<%# GetText("deleteselected") %>' /></td> ! </tr> ! </table> ! </FooterTemplate> ! <ItemTemplate> ! <tr class="post"> ! <td align="center"> ! <img src="<%# GetImage(Container.DataItem) %>" /></td> ! <td> ! <a href='<%# yaf.Forum.GetLink(yaf.Pages.cp_message,"pm={0}",DataBinder.Eval(Container.DataItem,"UserPMessageID")) %>'> ! <%# HtmlEncode(DataBinder.Eval(Container.DataItem,"Subject")) %> ! </a> ! </td> ! <td> ! <%# DataBinder.Eval(Container.DataItem,IsSentItems ? "ToUser" : "FromUser") %> ! </td> ! <td> ! <%# FormatDateTime((System.DateTime)((System.Data.DataRowView)Container.DataItem)["Created"]) %> ! </td> ! <td align="center"> ! <asp:CheckBox runat="server" ID="ItemCheck" /></td> ! <asp:Label runat="server" ID="UserPMessageID" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem,"UserPMessageID") %>' /> ! </tr> ! </ItemTemplate> ! </asp:Repeater> ! <yaf:SmartScroller ID="SmartScroller1" runat="server" /> Index: cp_inbox.ascx.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/cp_inbox.ascx.cs,v retrieving revision 1.14.2.1 retrieving revision 1.14.2.2 diff -C2 -d -r1.14.2.1 -r1.14.2.2 *** cp_inbox.ascx.cs 28 Jun 2006 11:42:46 -0000 1.14.2.1 --- cp_inbox.ascx.cs 8 Feb 2007 00:48:42 -0000 1.14.2.2 *************** *** 36,157 **** { ! public cp_inbox() : base("CP_INBOX") { } ! private void SetSort(string field,bool asc) { ! if(ViewState["SortField"]!=null && (string)ViewState["SortField"]==field) { ! ViewState["SortAsc"] = !(bool)ViewState["SortAsc"]; ! } ! else { ! ViewState["SortField"] = field; ! ViewState["SortAsc"] = asc; } } ! private void SubjectLink_Click(object sender, System.EventArgs e) { ! SetSort("Subject",true); BindData(); } ! private void FromLink_Click(object sender, System.EventArgs e) { ! if(IsSentItems) ! SetSort("ToUser",true); else ! SetSort("FromUser",true); BindData(); } ! private void DateLink_Click(object sender, System.EventArgs e) { ! SetSort("Created",false); BindData(); } ! protected void DeleteSelected_Load(object sender, System.EventArgs e) { ! ((Button)sender).Attributes["onclick"] = String.Format("return confirm('{0}')",GetText("confirm_delete")); } ! protected void Page_Load(object sender, System.EventArgs e) { ! if(!User.IsAuthenticated) { ! if(User.CanLogin) ! Forum.Redirect(Pages.login,"ReturnUrl={0}",Utils.GetSafeRawUrl()); else ! Forum.Redirect(Pages.forum); } ! ! if(!IsPostBack) { ! SetSort("Created",false); ! IsSentItems = Request.QueryString["sent"]!=null; BindData(); ! PageLinks.AddLink(BoardSettings.Name,Forum.GetLink(Pages.forum)); ! PageLinks.AddLink(PageUserName,Forum.GetLink(Pages.cp_profile)); ! PageLinks.AddLink(GetText(IsSentItems ? "sentitems" : "title"),""); ! SubjectLink.Text = Server.HtmlEncode(GetText("subject")); ! FromLink.Text = GetText(IsSentItems ? "to" : "from"); ! DateLink.Text = GetText("date"); } } ! protected bool IsSentItems { ! get { ! return (bool)ViewState["IsSentItems"]; } ! set { ! ViewState["IsSentItems"] = value; } } ! private void BindData() { object toUserID = null; object fromUserID = null; ! if(IsSentItems) fromUserID = PageUserID; else toUserID = PageUserID; ! using(DataView dv = DB.pmessage_list(toUserID,fromUserID,null).DefaultView) { ! dv.Sort = String.Format("{0} {1}",ViewState["SortField"],(bool)ViewState["SortAsc"] ? "asc" : "desc"); Inbox.DataSource = dv; DataBind(); } ! if(IsSentItems) ! SortFrom.Visible = (string)ViewState["SortField"] == "ToUser"; else ! SortFrom.Visible = (string)ViewState["SortField"] == "FromUser"; ! SortFrom.Src = GetThemeContents("SORT",(bool)ViewState["SortAsc"] ? "ASCENDING" : "DESCENDING"); ! SortSubject.Visible = (string)ViewState["SortField"] == "Subject"; ! SortSubject.Src = GetThemeContents("SORT",(bool)ViewState["SortAsc"] ? "ASCENDING" : "DESCENDING"); ! SortDate.Visible = (string)ViewState["SortField"] == "Created"; ! SortDate.Src = GetThemeContents("SORT",(bool)ViewState["SortAsc"] ? "ASCENDING" : "DESCENDING"); } ! protected string FormatBody(object o) { ! DataRowView row = (DataRowView)o; ! return FormatMsg.ForumCodeToHtml(this,(string)row["Body"]); } ! private void Inbox_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e) { ! if(e.CommandName == "delete") { long nItemCount = 0; ! foreach(RepeaterItem item in Inbox.Items) { ! if(((CheckBox)item.FindControl("ItemCheck")).Checked) { ! DB.userpmessage_delete(((Label)item.FindControl("UserPMessageID")).Text); nItemCount++; } --- 36,162 ---- { ! public cp_inbox() ! : base( "CP_INBOX" ) { } ! private void SetSort( string field, bool asc ) { ! if ( ViewState ["SortField"] != null && ( string ) ViewState ["SortField"] == field ) { ! ViewState ["SortAsc"] = !( bool ) ViewState ["SortAsc"]; ! } ! else { ! ViewState ["SortField"] = field; ! ViewState ["SortAsc"] = asc; } } ! private void SubjectLink_Click( object sender, System.EventArgs e ) { ! SetSort( "Subject", true ); BindData(); } ! private void FromLink_Click( object sender, System.EventArgs e ) { ! if ( IsSentItems ) ! SetSort( "ToUser", true ); else ! SetSort( "FromUser", true ); BindData(); } ! private void DateLink_Click( object sender, System.EventArgs e ) { ! SetSort( "Created", false ); BindData(); } ! protected void DeleteSelected_Load( object sender, System.EventArgs e ) { ! ( ( Button ) sender ).Attributes ["onclick"] = String.Format( "return confirm('{0}')", GetText( "confirm_delete" ) ); } ! protected void Page_Load( object sender, System.EventArgs e ) { ! if ( !User.IsAuthenticated ) { ! if ( User.CanLogin ) ! Forum.Redirect( Pages.login, "ReturnUrl={0}", Utils.GetSafeRawUrl() ); else ! Forum.Redirect( Pages.forum ); } ! ! if ( !IsPostBack ) { ! SetSort( "Created", false ); ! IsSentItems = Request.QueryString ["sent"] != null; BindData(); ! PageLinks.AddLink( BoardSettings.Name, Forum.GetLink( Pages.forum ) ); ! PageLinks.AddLink( PageUserName, Forum.GetLink( Pages.cp_profile ) ); ! PageLinks.AddLink( GetText( IsSentItems ? "sentitems" : "title" ), "" ); ! SubjectLink.Text = Server.HtmlEncode( GetText( "subject" ) ); ! FromLink.Text = GetText( IsSentItems ? "to" : "from" ); ! DateLink.Text = GetText( "date" ); } } ! protected bool IsSentItems { ! get { ! return ( bool ) ViewState ["IsSentItems"]; } ! set { ! ViewState ["IsSentItems"] = value; } } ! private void BindData() ! { object toUserID = null; object fromUserID = null; ! if ( IsSentItems ) fromUserID = PageUserID; else toUserID = PageUserID; ! using ( DataView dv = DB.pmessage_list( toUserID, fromUserID, null ).DefaultView ) { ! dv.Sort = String.Format( "{0} {1}", ViewState ["SortField"], ( bool ) ViewState ["SortAsc"] ? "asc" : "desc" ); Inbox.DataSource = dv; DataBind(); } ! if ( IsSentItems ) ! SortFrom.Visible = ( string ) ViewState ["SortField"] == "ToUser"; else ! SortFrom.Visible = ( string ) ViewState ["SortField"] == "FromUser"; ! SortFrom.Src = GetThemeContents( "SORT", ( bool ) ViewState ["SortAsc"] ? "ASCENDING" : "DESCENDING" ); ! SortSubject.Visible = ( string ) ViewState ["SortField"] == "Subject"; ! SortSubject.Src = GetThemeContents( "SORT", ( bool ) ViewState ["SortAsc"] ? "ASCENDING" : "DESCENDING" ); ! SortDate.Visible = ( string ) ViewState ["SortField"] == "Created"; ! SortDate.Src = GetThemeContents( "SORT", ( bool ) ViewState ["SortAsc"] ? "ASCENDING" : "DESCENDING" ); } ! protected string FormatBody( object o ) ! { ! DataRowView row = ( DataRowView ) o; ! return FormatMsg.ForumCodeToHtml( this, ( string ) row ["Body"] ); } ! private void Inbox_ItemCommand( object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e ) ! { ! if ( e.CommandName == "delete" ) ! { long nItemCount = 0; ! foreach ( RepeaterItem item in Inbox.Items ) { ! if ( ( ( CheckBox ) item.FindControl( "ItemCheck" ) ).Checked ) { ! DB.userpmessage_delete( ( ( Label ) item.FindControl( "UserPMessageID" ) ).Text ); nItemCount++; } *************** *** 160,191 **** //TODO DB.pmessage_delete(e.CommandArgument); BindData(); ! if(nItemCount==1) ! AddLoadMessage(GetText("msgdeleted1")); else ! AddLoadMessage(String.Format(GetText("msgdeleted2"),nItemCount)); } } ! protected string GetImage(object o) { ! if((bool)((DataRowView)o)["IsRead"]) ! return GetThemeContents("ICONS","TOPIC"); else ! return GetThemeContents("ICONS","TOPIC_NEW"); } #region Web Form Designer generated code ! override protected void OnInit(EventArgs e) { ! SubjectLink.Click += new EventHandler(SubjectLink_Click); ! FromLink.Click += new EventHandler(FromLink_Click); ! DateLink.Click += new EventHandler(DateLink_Click); // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); ! base.OnInit(e); } ! /// <summary> /// Required method for Designer support - do not modify --- 165,196 ---- //TODO DB.pmessage_delete(e.CommandArgument); BindData(); ! if ( nItemCount == 1 ) ! AddLoadMessage( GetText( "msgdeleted1" ) ); else ! AddLoadMessage( String.Format( GetText( "msgdeleted2" ), nItemCount ) ); } } ! protected string GetImage( object o ) { ! if ( ( bool ) ( ( DataRowView ) o ) ["IsRead"] ) ! return GetThemeContents( "ICONS", "TOPIC" ); else ! return GetThemeContents( "ICONS", "TOPIC_NEW" ); } #region Web Form Designer generated code ! override protected void OnInit( EventArgs e ) { ! SubjectLink.Click += new EventHandler( SubjectLink_Click ); ! FromLink.Click += new EventHandler( FromLink_Click ); ! DateLink.Click += new EventHandler( DateLink_Click ); // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); ! base.OnInit( e ); } ! /// <summary> /// Required method for Designer support - do not modify *************** *** 193,198 **** /// </summary> private void InitializeComponent() ! { ! this.Inbox.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.Inbox_ItemCommand); } #endregion --- 198,203 ---- /// </summary> private void InitializeComponent() ! { ! this.Inbox.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler( this.Inbox_ItemCommand ); } #endregion |
From: Jaben C. <ja...@us...> - 2007-02-08 00:48:44
|
Update of /cvsroot/yafdotnet/yafsrc/pages/admin In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25386/yafsrc/pages/admin Modified Files: Tag: v1_0_2_NETv2 hostsettings.ascx hostsettings.ascx.designer.cs Log Message: v1.9.1 updates and fixes... very minor stuff Index: hostsettings.ascx =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/admin/hostsettings.ascx,v retrieving revision 1.21.2.8 retrieving revision 1.21.2.9 diff -C2 -d -r1.21.2.8 -r1.21.2.9 *** hostsettings.ascx 13 Sep 2006 11:04:53 -0000 1.21.2.8 --- hostsettings.ascx 8 Feb 2007 00:48:42 -0000 1.21.2.9 *************** *** 1,301 **** <%@ Register TagPrefix="yaf" Namespace="yaf.controls" Assembly="yaf" %> ! <%@ Control language="c#" Codebehind="hostsettings.ascx.cs" AutoEventWireup="True" Inherits="yaf.pages.admin.hostsettings" %> ! <yaf:PageLinks runat="server" id="PageLinks" /> ! <yaf:adminmenu runat="server" id="Adminmenu1"> ! <table class="content" cellSpacing="1" cellPadding="0" align="center"> ! <tr> ! <td class="header1" colSpan="2">Forum Settings</td> ! </tr> ! <tr> ! <td class="header2" align="center" colSpan="2">Forum Setup</td> ! </tr> ! <tr> ! <td class="postheader" width="50%"><B>MS SQL Server Version:</B><BR> ! What version of MS SQL Server is running.</td> ! <td class="post" width="50%"> ! <asp:label id="SQLVersion" runat="server" cssclass="smallfont"></asp:label></td> ! </tr> ! <tr> ! <td class="postheader"><B>Time Zone:</B><BR> ! The time zone of the web server.</td> ! <td class="post"> ! <asp:dropdownlist id="TimeZones" runat="server" DataValueField="Value" DataTextField="Name"></asp:dropdownlist></td> ! </tr> ! <tr> ! <td class="postheader"><B>Forum Email:</B><BR> ! The from address when sending emails to users.</td> ! <td class="post"> ! <asp:TextBox id="ForumEmailEdit" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Require Email Verification:</B><BR> ! If unchecked users will not need to verify their email address.</td> ! <td class="post"> ! <asp:checkbox id="EmailVerification" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show Moved Topics:</B><BR> ! If this is checked, topics that are moved will leave behind a pointer to the ! new topic.</td> ! <td class="post"> ! <asp:checkbox id="ShowMoved" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Links in New Window:</B><BR> ! If this is checked, links in messages will open in a new window.</td> ! <td class="post"> ! <asp:checkbox id="BlankLinks" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show Groups:</B><BR> ! Should the groups a user is part of be visible on the posts page.</td> ! <td class="post"> ! <asp:checkbox id="ShowGroupsX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show Groups in profile:</B><BR> ! Should the groups a user is part of be visible on the users profile page.</td> ! <td class="post"> ! <asp:checkbox id="ShowGroupsProfile" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Use File Table:</B><BR> ! Uploaded files will be saved in the database instead of the file system.</td> ! <td class="post"> ! <asp:checkbox id="UseFileTableX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show RSS Links:</B><BR> ! Enable or disable display of RSS links throughout the forum.</td> ! <td class="post"> ! <asp:checkbox id="ShowRSSLinkX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show Page Generated Time:</B><BR> ! Enable or disable display of page generation text at the bottom of the page.</td> ! <td class="post"> ! <asp:checkbox id="ShowPageGenerationTime" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Show Forum Jump Box:</B><BR> ! Enable or disable display of the Forum Jump Box throughout the forum.</td> ! <td class="post"> ! <asp:checkbox id="ShowForumJumpX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Display Points System:</B><BR> ! If checked, points for posting will be displayed for each user.</td> ! <td class="post"> ! <asp:checkbox id="DisplayPoints" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Remove Nested Quotes:</B><BR> ! Automatically remove nested [quote] tags from replies.</td> ! <td class="post"> ! <asp:checkbox id="RemoveNestedQuotesX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Poll Votes Dependant on IP:</B><BR> ! By default, poll voting is tracked via username and client-side cookie. (One vote per username. Cookies are used if guest voting is allowed.) ! If this option is enabled, votes also use IP as a reference providing the most security against voter fraud. ! </td> ! <td class="post"> ! <asp:checkbox id="PollVoteTiedToIPX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Max File Size:</B><BR> ! Maximum size of uploaded files. Leave empty for no limit.</td> ! <td class="post"> ! <asp:TextBox id="MaxFileSize" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Smilies Display Grid Size:</B><BR> ! Number of smilies to show by number of rows and columns.</td> ! <td class="post"> ! <asp:TextBox id="SmiliesPerRow" runat="server"></asp:TextBox><B>x</B> ! <asp:TextBox id="SmiliesColumns" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Posts Per Page:</B><BR> ! Number of posts to show per page.</td> ! <td class="post"> ! <asp:TextBox id="PostsPerPage" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Topics Per Page:</B><BR> ! Number of topics to show per page.</td> ! <td class="post"> ! <asp:TextBox id="TopicsPerPage" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Days before posts are locked:</B><BR> ! Number of days until posts are locked and not possible to edit or delete. Set ! to 0 for no limit.</td> ! <td class="post"> ! <asp:textbox id="LockPosts" runat="server"></asp:textbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Post Flood Delay:</B><BR> ! Number of seconds before another post can be entered. (Does not apply to admins or mods.)</td> ! <td class="post"> ! <asp:TextBox id="PostFloodDelay" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Date and time format from language file:</B><BR> ! If this is checked, the date and time format will use settings from the ! language file. Otherwise the browser settings will be used.</td> ! <td class="post"> ! <asp:checkbox id="DateFormatFromLanguage" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Create NNTP user names:</B><BR> ! Check to allow users to automatically be created when downloading usenet ! messages. Only enable this in a test environment, and <EM>NEVER</EM> in a ! production environment. The main purpose of this option is for performance ! testing.</td> ! <td class="post"> ! <asp:checkbox id="CreateNntpUsers" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Forum Ads</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>2nd post ad:</b><br /> ! Place the code that you wish to be displayed in each thread after the 1st post. ! If you do not want an ad to be displayed, don't put anything in the box. ! </td> ! <td class="post"> ! <asp:TextBox TextMode="MultiLine" runat="server" ID="AdPost" /> ! </td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show ad from above to signed in users:</b><br /> ! If checked, signed in users will see ads. ! </td> ! <td class="post"> ! <asp:CheckBox runat="server" ID="ShowAdsToSignedInUsers" /> ! </td> ! </tr> ! <tr> ! <td class="header2" align="center" colSpan="2">Editing/Formatting Settings</td> ! </tr> ! <tr> ! <td class="postheader"><B>Forum Editor:</B><BR> ! Select global editor type for your forum. To use the HTML editors (FCK and ! FreeTextBox) the .bin file must be in the \bin directory and the proper support ! files must be put in \editors. ! </td> ! <td class="post"> ! <asp:dropdownlist id="ForumEditorList" runat="server" DataValueField="Value" DataTextField="Name"></asp:dropdownlist></td> ! </tr> ! <tr> ! <td class="postheader"><B>Accepted HTML Tags:</B><BR> ! Comma seperated list (no spaces) of HTML tags that are allowed in posts using ! HTML editors.</td> ! <td class="post"> ! <asp:TextBox id="AcceptedHTML" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colSpan="2">Permissions Settings</td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow User Change Theme:</B><BR> ! Should users be able to choose what theme they want to use?</td> ! <td class="post"> ! <asp:checkbox id="AllowUserThemeX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow User Change Language:</B><BR> ! Should users be able to choose what language they want to use?</td> ! <td class="post"> ! <asp:checkbox id="AllowUserLanguageX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow Private Messages:</B><BR> ! Allow users to access and send private messages.</td> ! <td class="post"> ! <asp:checkbox id="AllowPrivateMessagesX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow Private Message Notifications:</B><BR> ! Allow users email notifications when new private messages arrive.</td> ! <td class="post"> ! <asp:checkbox id="AllowPMNotifications" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow Email Sending:</B><BR> ! Allow users to send emails to each other.</td> ! <td class="post"> ! <asp:checkbox id="AllowEmailSendingX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow Signatures:</B><BR> ! Allow users to create signatures.</td> ! <td class="post"> ! <asp:checkbox id="AllowSignaturesX" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Disable New Registrations:</B><BR> ! New users won't be able to register.</td> ! <td class="post"> ! <asp:checkbox id="DisableRegistrations" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colSpan="2">SMTP Server Settings</td> ! </tr> ! <tr> ! <td class="postheader"><B>SMTP Server:</B><BR> ! To be able to send posts you need to enter the name of a valid smtp server.</td> ! <td class="post"> ! <asp:TextBox id="ForumSmtpServer" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>SMTP User Name:</B><BR> ! If you need to be authorized to send email.</td> ! <td class="post"> ! <asp:TextBox id="ForumSmtpUserName" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"><B>SMTP Password:</B><BR> ! If you need to be authorized to send email.</td> ! <td class="post"> ! <asp:TextBox id="ForumSmtpUserPass" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colSpan="2">Avatar Settings</td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow remote avatars:</B><BR> ! Can users use avatars from other websites.</td> ! <td class="post"> ! <asp:checkbox id="AvatarRemote" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Allow avatar uploading:</B><BR> ! Can users upload avatars to their profile.</td> ! <td class="post"> ! <asp:checkbox id="AvatarUpload" runat="server"></asp:checkbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Avatar Width:</B><BR> ! Maximum width for avatars.</td> ! <td class="post"> ! <asp:textbox id="AvatarWidth" runat="server"></asp:textbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Avatar Height:</B><BR> ! Maximum height for avatars.</td> ! <td class="post"> ! <asp:textbox id="AvatarHeight" runat="server"></asp:textbox></td> ! </tr> ! <tr> ! <td class="postheader"><B>Avatar Size:</B><BR> ! Maximum size for avatars in bytes.</td> ! <td class="post"> ! <asp:textbox id="AvatarSize" runat="server"></asp:textbox></td> ! </tr> <!--tr> <td class="header2" colspan="2">Forum Moderator Access</td> </tr> --- 1,344 ---- <%@ Register TagPrefix="yaf" Namespace="yaf.controls" Assembly="yaf" %> ! <%@ Control Language="c#" Codebehind="hostsettings.ascx.cs" AutoEventWireup="True" Inherits="yaf.pages.admin.hostsettings" %> ! <yaf:PageLinks runat="server" ID="PageLinks" /> ! <yaf:AdminMenu runat="server" ID="Adminmenu1"> ! <table class="content" cellspacing="1" cellpadding="0" align="center"> ! <tr> ! <td class="header1" colspan="2"> ! Forum Settings</td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Forum Setup</td> ! </tr> ! <tr> ! <td class="postheader" width="50%"> ! <b>MS SQL Server Version:</b><br> ! What version of MS SQL Server is running.</td> ! <td class="post" width="50%"> ! <asp:Label ID="SQLVersion" runat="server" CssClass="smallfont"></asp:Label></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Time Zone:</b><br> ! The time zone of the web server.</td> ! <td class="post"> ! <asp:DropDownList ID="TimeZones" runat="server" DataValueField="Value" DataTextField="Name"> ! </asp:DropDownList></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Forum Email:</b><br> ! The from address when sending emails to users.</td> ! <td class="post"> ! <asp:TextBox ID="ForumEmailEdit" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Require Email Verification:</b><br> ! If unchecked users will not need to verify their email address.</td> ! <td class="post"> ! <asp:CheckBox ID="EmailVerification" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show Moved Topics:</b><br> ! If this is checked, topics that are moved will leave behind a pointer to the new topic.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowMoved" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Links in New Window:</b><br> ! If this is checked, links in messages will open in a new window.</td> ! <td class="post"> ! <asp:CheckBox ID="BlankLinks" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show Groups:</b><br> ! Should the groups a user is part of be visible on the posts page.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowGroupsX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show Groups in profile:</b><br> ! Should the groups a user is part of be visible on the users profile page.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowGroupsProfile" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Use File Table:</b><br> ! Uploaded files will be saved in the database instead of the file system.</td> ! <td class="post"> ! <asp:CheckBox ID="UseFileTableX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show RSS Links:</b><br> ! Enable or disable display of RSS links throughout the forum.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowRSSLinkX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show Page Generated Time:</b><br> ! Enable or disable display of page generation text at the bottom of the page.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowPageGenerationTime" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show Forum Jump Box:</b><br> ! Enable or disable display of the Forum Jump Box throughout the forum.</td> ! <td class="post"> ! <asp:CheckBox ID="ShowForumJumpX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Display Points System:</b><br> ! If checked, points for posting will be displayed for each user.</td> ! <td class="post"> ! <asp:CheckBox ID="DisplayPoints" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Remove Nested Quotes:</b><br> ! Automatically remove nested [quote] tags from replies.</td> ! <td class="post"> ! <asp:CheckBox ID="RemoveNestedQuotesX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Poll Votes Dependant on IP:</b><br> ! By default, poll voting is tracked via username and client-side cookie. (One vote per username. Cookies are used if guest voting ! is allowed.) If this option is enabled, votes also use IP as a reference providing the most security against voter fraud. ! </td> ! <td class="post"> ! <asp:CheckBox ID="PollVoteTiedToIPX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Max File Size:</b><br> ! Maximum size of uploaded files. Leave empty for no limit.</td> ! <td class="post"> ! <asp:TextBox ID="MaxFileSize" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Smilies Display Grid Size:</b><br> ! Number of smilies to show by number of rows and columns.</td> ! <td class="post"> ! <asp:TextBox ID="SmiliesPerRow" runat="server"></asp:TextBox><b>x</b> ! <asp:TextBox ID="SmiliesColumns" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Posts Per Page:</b><br> ! Number of posts to show per page.</td> ! <td class="post"> ! <asp:TextBox ID="PostsPerPage" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Topics Per Page:</b><br> ! Number of topics to show per page.</td> ! <td class="post"> ! <asp:TextBox ID="TopicsPerPage" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Days before posts are locked:</b><br> ! Number of days until posts are locked and not possible to edit or delete. Set to 0 for no limit.</td> ! <td class="post"> ! <asp:TextBox ID="LockPosts" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Post Flood Delay:</b><br> ! Number of seconds before another post can be entered. (Does not apply to admins or mods.)</td> ! <td class="post"> ! <asp:TextBox ID="PostFloodDelay" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Date and time format from language file:</b><br> ! If this is checked, the date and time format will use settings from the language file. Otherwise the browser settings will be ! used.</td> ! <td class="post"> ! <asp:CheckBox ID="DateFormatFromLanguage" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Create NNTP user names:</b><br> ! Check to allow users to automatically be created when downloading usenet messages. Only enable this in a test environment, and ! <em>NEVER</em> in a production environment. The main purpose of this option is for performance testing.</td> ! <td class="post"> ! <asp:CheckBox ID="CreateNntpUsers" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Forum Ads</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>2nd post ad:</b><br /> ! Place the code that you wish to be displayed in each thread after the 1st post. If you do not want an ad to be displayed, don't ! put anything in the box. ! </td> ! <td class="post"> ! <asp:TextBox TextMode="MultiLine" runat="server" ID="AdPost" Columns="75" Rows="10"/> ! </td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Show ad from above to signed in users:</b><br /> ! If checked, signed in users will see ads. ! </td> ! <td class="post"> ! <asp:CheckBox runat="server" ID="ShowAdsToSignedInUsers" /> ! </td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Editing/Formatting Settings</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Forum Editor:</b><br> ! Select global editor type for your forum. To use the HTML editors (FCK and FreeTextBox) the .bin file must be in the \bin directory ! and the proper support files must be put in \editors. ! </td> ! <td class="post"> ! <asp:DropDownList ID="ForumEditorList" runat="server" DataValueField="Value" DataTextField="Name"> ! </asp:DropDownList></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Accepted HTML Tags:</b><br> ! Comma seperated list (no spaces) of HTML tags that are allowed in posts using HTML editors.</td> ! <td class="post"> ! <asp:TextBox ID="AcceptedHTML" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Permissions Settings</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow User Change Theme:</b><br> ! Should users be able to choose what theme they want to use?</td> ! <td class="post"> ! <asp:CheckBox ID="AllowUserThemeX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow User Change Language:</b><br> ! Should users be able to choose what language they want to use?</td> ! <td class="post"> ! <asp:CheckBox ID="AllowUserLanguageX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow Private Messages:</b><br> ! Allow users to access and send private messages.</td> ! <td class="post"> ! <asp:CheckBox ID="AllowPrivateMessagesX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow Private Message Notifications:</b><br> ! Allow users email notifications when new private messages arrive.</td> ! <td class="post"> ! <asp:CheckBox ID="AllowPMNotifications" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow Email Sending:</b><br> ! Allow users to send emails to each other.</td> ! <td class="post"> ! <asp:CheckBox ID="AllowEmailSendingX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow Signatures:</b><br> ! Allow users to create signatures.</td> ! <td class="post"> ! <asp:CheckBox ID="AllowSignaturesX" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Disable New Registrations:</b><br> ! New users won't be able to register.</td> ! <td class="post"> ! <asp:CheckBox ID="DisableRegistrations" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! SMTP Server Settings</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>SMTP Server:</b><br> ! To be able to send posts you need to enter the name of a valid smtp server.</td> ! <td class="post"> ! <asp:TextBox ID="ForumSmtpServer" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>SMTP User Name:</b><br> ! If you need to be authorized to send email.</td> ! <td class="post"> ! <asp:TextBox ID="ForumSmtpUserName" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>SMTP Password:</b><br> ! If you need to be authorized to send email.</td> ! <td class="post"> ! <asp:TextBox ID="ForumSmtpUserPass" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="header2" align="center" colspan="2"> ! Avatar Settings</td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow remote avatars:</b><br> ! Can users use avatars from other websites.</td> ! <td class="post"> ! <asp:CheckBox ID="AvatarRemote" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Allow avatar uploading:</b><br> ! Can users upload avatars to their profile.</td> ! <td class="post"> ! <asp:CheckBox ID="AvatarUpload" runat="server"></asp:CheckBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Avatar Width:</b><br> ! Maximum width for avatars.</td> ! <td class="post"> ! <asp:TextBox ID="AvatarWidth" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Avatar Height:</b><br> ! Maximum height for avatars.</td> ! <td class="post"> ! <asp:TextBox ID="AvatarHeight" runat="server"></asp:TextBox></td> ! </tr> ! <tr> ! <td class="postheader"> ! <b>Avatar Size:</b><br> ! Maximum size for avatars in bytes.</td> ! <td class="post"> ! <asp:TextBox ID="AvatarSize" runat="server"></asp:TextBox></td> ! </tr> ! <!--tr> <td class="header2" colspan="2">Forum Moderator Access</td> </tr> *************** *** 312,320 **** <td class="post">...</td> </tr--> ! <tr> ! <td class="postfooter" align="center" colSpan="2"> ! <asp:Button id="Save" runat="server" Text="Save" onclick="Save_Click"></asp:Button></td> ! </tr> ! </table> ! </yaf:adminmenu> ! <yaf:SmartScroller id="SmartScroller1" runat="server" /> --- 355,363 ---- <td class="post">...</td> </tr--> ! <tr> ! <td class="postfooter" align="center" colspan="2"> ! <asp:Button ID="Save" runat="server" Text="Save" OnClick="Save_Click"></asp:Button></td> ! </tr> ! </table> ! </yaf:AdminMenu> ! <yaf:SmartScroller ID="SmartScroller1" runat="server" /> Index: hostsettings.ascx.designer.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/pages/admin/hostsettings.ascx.designer.cs,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -C2 -d -r1.1.2.6 -r1.1.2.7 *** hostsettings.ascx.designer.cs 13 Sep 2006 11:04:53 -0000 1.1.2.6 --- hostsettings.ascx.designer.cs 8 Feb 2007 00:48:42 -0000 1.1.2.7 *************** *** 2,6 **** // <auto-generated> // This code was generated by a tool. ! // Runtime Version:2.0.50727.42 // // Changes to this file may cause incorrect behavior and will be lost if --- 2,6 ---- // <auto-generated> // This code was generated by a tool. ! // Runtime Version:2.0.50727.91 // // Changes to this file may cause incorrect behavior and will be lost if |
From: Jaben C. <ja...@us...> - 2007-02-08 00:48:16
|
Update of /cvsroot/yafdotnet/yafsrc/install In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25282/yafsrc/install Modified Files: Tag: v1_0_2_NETv2 procedures.sql tables.sql Log Message: updates and fixes! Index: tables.sql =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/install/tables.sql,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -C2 -d -r1.2.2.2 -r1.2.2.3 *** tables.sql 13 Sep 2006 11:03:26 -0000 1.2.2.2 --- tables.sql 8 Feb 2007 00:48:14 -0000 1.2.2.3 *************** *** 354,358 **** RegistryID int IDENTITY(1, 1) NOT NULL, Name nvarchar(50) NOT NULL, ! Value nvarchar(400), BoardID int, CONSTRAINT PK_Registry PRIMARY KEY (RegistryID) --- 354,358 ---- RegistryID int IDENTITY(1, 1) NOT NULL, Name nvarchar(50) NOT NULL, ! Value ntext, BoardID int, CONSTRAINT PK_Registry PRIMARY KEY (RegistryID) *************** *** 605,608 **** --- 605,612 ---- GO + if not exists(select 1 from syscolumns where id=object_id(N'yaf_Registry') and name=N'Value' and xtype<>99) + alter table yaf_Registry alter column Value ntext null + GO + if not exists(select 1 from syscolumns where id=object_id('yaf_PMessage') and name='Flags') begin Index: procedures.sql =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/install/procedures.sql,v retrieving revision 1.3.2.9 retrieving revision 1.3.2.10 diff -C2 -d -r1.3.2.9 -r1.3.2.10 *** procedures.sql 7 Feb 2007 23:42:09 -0000 1.3.2.9 --- procedures.sql 8 Feb 2007 00:48:14 -0000 1.3.2.10 *************** *** 2841,2845 **** create procedure [dbo].[yaf_registry_save]( @Name nvarchar(50), ! @Value nvarchar(400) = NULL, @BoardID int = null ) AS --- 2841,2845 ---- create procedure [dbo].[yaf_registry_save]( @Name nvarchar(50), ! @Value ntext = NULL, @BoardID int = null ) AS |
From: Jaben C. <ja...@us...> - 2007-02-07 23:52:15
|
Update of /cvsroot/yafdotnet/yafsrc In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1317/yafsrc Modified Files: Tag: v1_0_2_NETv2 default.aspx default.config yetanotherforum.net.csproj yetanotherforum.net.sln Log Message: fixes and updates for v1.9.1 Index: yetanotherforum.net.csproj =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/yetanotherforum.net.csproj,v retrieving revision 1.117.2.19 retrieving revision 1.117.2.20 diff -C2 -d -r1.117.2.19 -r1.117.2.20 *** yetanotherforum.net.csproj 10 Oct 2006 13:08:45 -0000 1.117.2.19 --- yetanotherforum.net.csproj 7 Feb 2007 23:52:10 -0000 1.117.2.20 *************** *** 846,849 **** --- 846,850 ---- <SubType>Code</SubType> </Compile> + <Compile Include="classes\URLBuilderRewrite.cs" /> <Compile Include="classes\Utils.cs" /> <Compile Include="controls\AdminMenu.cs"> *************** *** 1794,1797 **** --- 1795,1804 ---- </ItemGroup> <ItemGroup> + <ProjectReference Include="URLRewriter.NET\Intelligencia.UrlRewriter.csproj"> + <Project>{F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}</Project> + <Name>Intelligencia.UrlRewriter</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> <Folder Include="bin\" /> <Folder Include="images\avatars\" /> Index: yetanotherforum.net.sln =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/yetanotherforum.net.sln,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** yetanotherforum.net.sln 15 Jul 2006 01:49:04 -0000 1.1.2.1 --- yetanotherforum.net.sln 7 Feb 2007 23:52:10 -0000 1.1.2.2 *************** *** 4,7 **** --- 4,9 ---- Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "yetanotherforum.net", "yetanotherforum.net.csproj", "{555357E5-A150-4C4D-BC81-97F4AE19086A}" EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Intelligencia.UrlRewriter", "URLRewriter.NET\Intelligencia.UrlRewriter.csproj", "{F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}" + EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution *************** *** 14,17 **** --- 16,23 ---- {555357E5-A150-4C4D-BC81-97F4AE19086A}.Release|Any CPU.ActiveCfg = Release|Any CPU {555357E5-A150-4C4D-BC81-97F4AE19086A}.Release|Any CPU.Build.0 = Release|Any CPU + {F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8516C67-92BE-43FF-A8A9-B71A3EA4BE0D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution Index: default.aspx =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/default.aspx,v retrieving revision 1.32.2.2 retrieving revision 1.32.2.3 diff -C2 -d -r1.32.2.2 -r1.32.2.3 *** default.aspx 25 Jul 2006 19:42:32 -0000 1.32.2.2 --- default.aspx 7 Feb 2007 23:52:10 -0000 1.32.2.3 *************** *** 2,5 **** --- 2,6 ---- <%@ Register TagPrefix="yaf" Namespace="yaf" Assembly="yaf" %> <%@ Register TagPrefix="yc" Namespace="yaf.controls" Assembly="yaf" %> + <%@ Register TagPrefix="url" Namespace="Intelligencia.UrlRewriter" Assembly="Intelligencia.UrlRewriter" %> <script runat="server"> *************** *** 24,30 **** <br /> ! <form runat="server" enctype="multipart/form-data"> <yaf:forum runat="server" id="forum" /> ! </form> </body> --- 25,31 ---- <br /> ! <url:form runat="server" enctype="multipart/form-data"> <yaf:forum runat="server" id="forum" /> ! </url:form> </body> Index: default.config =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/default.config,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -C2 -d -r1.1.2.6 -r1.1.2.7 *** default.config 9 Oct 2006 12:41:29 -0000 1.1.2.6 --- default.config 7 Feb 2007 23:52:10 -0000 1.1.2.7 *************** *** 3,6 **** --- 3,7 ---- <configSections> <section name="yafnet" type="yaf.SectionHandler,yaf"/> + <section name="rewriter" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" /> </configSections> <yafnet> *************** *** 11,15 **** --- 12,30 ---- <!--categoryid>1</categoryid--> </yafnet> + <rewriter> + <rewrite url="^~/Default.aspx\?(.+)$" to="~/Default.aspx?$1" processing="stop" /> + <rewrite url="^~/framehelper.aspx\?(.+)$" to="~/framehelper.aspx?$1" processing="stop" /> + <rewrite url="^~/topics([0-9]+)\.aspx(\?(.+))?$" to="~/Default.aspx?g=topics&f=$1&$2" processing="stop" /> + <rewrite url="^~/forum([0-9]+)\.aspx(\?(.+))?$" to="~/Default.aspx?g=forum&c=$1&$2" processing="stop" /> + <rewrite url="^~/postsbytopic([0-9]+)\.aspx(\?(.+))?$" to="~/Default.aspx?g=posts&t=$1&$2" processing="stop" /> + <rewrite url="^~/postsbymessage([0-9]+)\.aspx(\?(.+))?$" to="~/Default.aspx?g=posts&m=$1&$2" processing="stop" /> + <rewrite url="^~/profile([0-9]+)\.aspx(\?(.+))?$" to="~/Default.aspx?g=profile&u=$1&$2" processing="stop" /> + <rewrite url="^~/(.+)\.aspx\?(.+)$" to="~/Default.aspx?g=$1&$2" processing="stop" /> + <rewrite url="^~/(.+)\.aspx$" to="~/Default.aspx?g=$1" processing="stop" /> + </rewriter> <system.web> + <httpModules> + <add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" /> + </httpModules> <globalization requestEncoding="utf-8" responseEncoding="utf-8"/> <compilation defaultLanguage="c#" debug="true"/> |
From: Jaben C. <ja...@us...> - 2007-02-07 23:42:13
|
Update of /cvsroot/yafdotnet/yafsrc/install In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv29204/yafsrc/install Modified Files: Tag: v1_0_2_NETv2 procedures.sql Log Message: very minor bug fix (avatar resetting on profile saves) Index: procedures.sql =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/install/procedures.sql,v retrieving revision 1.3.2.8 retrieving revision 1.3.2.9 diff -C2 -d -r1.3.2.8 -r1.3.2.9 *** procedures.sql 10 Oct 2006 22:58:40 -0000 1.3.2.8 --- procedures.sql 7 Feb 2007 23:42:09 -0000 1.3.2.9 *************** *** 1950,1954 **** go ! create procedure [dbo].[yaf_message_save]( @TopicID int, @UserID int, --- 1950,1954 ---- go ! CREATE procedure [dbo].[yaf_message_save]( @TopicID int, @UserID int, *************** *** 3838,3842 **** HomePage = @HomePage, TimeZone = @TimeZone, - Avatar = @Avatar, LanguageFile = @LanguageFile, ThemeFile = @ThemeFile, --- 3838,3841 ---- |
From: Jaben C. <ja...@us...> - 2007-02-07 23:41:19
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Debug/TempPE In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28527/TempPE Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Debug/TempPE added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:41:09
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Debug In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28462/Debug Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Debug added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:41:09
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Release In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28462/Release Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Release added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:56
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Release/TempPE In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28602/TempPE Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj/Release/TempPE added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Transforms In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Transforms Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Transforms added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Logging In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Logging Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Logging added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Utilities In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Utilities Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Utilities added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Errors In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Errors Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Errors added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Parsers In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Parsers Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Parsers added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:40
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/obj Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/obj added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:39
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Configuration In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Configuration Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Configuration added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:39
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Actions In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Actions Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Actions added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:39
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Conditions In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28011/Conditions Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET/Conditions added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-07 23:40:37
|
Update of /cvsroot/yafdotnet/yafsrc/URLRewriter.NET In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27989/URLRewriter.NET Log Message: Directory /cvsroot/yafdotnet/yafsrc/URLRewriter.NET added to the repository --> Using per-directory sticky tag `v1_0_2_NETv2' |
From: Jaben C. <ja...@us...> - 2007-02-01 10:42:07
|
Update of /cvsroot/yafdotnet/yafsrc/YAF.Classes/YAF.Classes.Base In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv21269/YAF.Classes/YAF.Classes.Base Modified Files: YAF.Classes.Base.csproj Log Message: Removed need for BaseUserControls.cs -- it got moved to YAF.Controls. Index: YAF.Classes.Base.csproj =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/YAF.Classes/YAF.Classes.Base/YAF.Classes.Base.csproj,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** YAF.Classes.Base.csproj 31 Jan 2007 13:38:31 -0000 1.4 --- YAF.Classes.Base.csproj 1 Feb 2007 10:42:05 -0000 1.5 *************** *** 38,44 **** <SubType>ASPXCodeBehind</SubType> </Compile> - <Compile Include="BaseUserControl.cs"> - <SubType>ASPXCodeBehind</SubType> - </Compile> <Compile Include="ForumPage.cs"> <SubType>ASPXCodeBehind</SubType> --- 38,41 ---- |