[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [11094] Merge 11089:11093 from trunk
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [11094] Merge 11089:11093 from trunk |
Date: |
Tue, 07 May 2013 08:14:01 +0000 |
Revision: 11094
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=11094
Author: sigurdne
Date: 2013-05-07 08:14:01 +0000 (Tue, 07 May 2013)
Log Message:
-----------
Merge 11089:11093 from trunk
Modified Paths:
--------------
branches/Version-1_0-branch/controller/inc/class.menu.inc.php
branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Integer.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Lang.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Text.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Border.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Length.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Name.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTypes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrValidator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Bootstrap.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/CSSDefinition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Custom.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Empty.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Optional.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Required.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Table.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Config.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ContentSets.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Context.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Definition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Null.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Doctype.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DoctypeRegistry.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ElementDef.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Encoder.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityLookup.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityParser.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ErrorCollector.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Exception.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter/YouTube.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Generator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLDefinition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Image.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/List.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Object.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Target.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Text.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModuleManager.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/IDAccumulator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/Linkify.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/PurifierLinkify.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/classes/en-x-test.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en-x-test.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en-x-testmini.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/LanguageFactory.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/DOMLex.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/DirectLex.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/PH5P.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PercentEncoder.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/CSSDefinition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.css
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.js
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/HTMLDefinition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/Composite.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/Core.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/FixNesting.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/MakeWellFormed.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/RemoveForeignElements.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/ValidateAttributes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/StringHash.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/StringHashParser.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform/Font.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform/Simple.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Comment.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Empty.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/End.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Start.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Tag.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Text.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TokenFactory.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URI.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIDefinition.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableExternal.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableExternalResources.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/HostBlacklist.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/MakeAbsolute.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIParser.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/ftp.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/http.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/https.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/mailto.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/news.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/nntp.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URISchemeRegistry.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser/Flexible.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser/Native.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParserException.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.auto.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.autoload.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.func.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.includes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.kses.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.path.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.safe-includes.php
branches/Version-1_0-branch/property/inc/class.soagreement.inc.php
branches/Version-1_0-branch/property/inc/import/default/Import_fra_Kemner_xml
Added Paths:
-----------
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Switch.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Background.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Input.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeObject.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/TargetBlank.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/List.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ErrorStruct.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Iframe.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Name.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeScripting.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/TargetBlank.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/DisplayLinkURI.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/RemoveEmpty.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/SafeObject.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Length.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PropertyList.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PropertyListIterator.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableResources.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/Munge.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/SafeIframe.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/data.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/file.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/UnitConverter.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.composer.php
Removed Paths:
-------------
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/Directive.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/PEARSax3.php
Property Changed:
----------------
branches/Version-1_0-branch/
Property changes on: branches/Version-1_0-branch
___________________________________________________________________
Modified: svn:mergeinfo
-
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579,8581-8587,8589,8591-8592,8594-8595,8597-8601,8603-8610,8612-8613,8615,8617,8619-8645,8647-8650,8652-8661,8663-8666,8668-8669,8671-8683,8685-8691,8693-8730,8732-8737,8739,8741-8767,8769,8771-8772,8774,8776-8797,8799-8812,8814-8819,8821,8823-8833,8835-8837,8839,8841,8843-8849,8852-8858,8860-8867,8869-8870,8872,8874-8877,8879,8881,8883-8888,8890,8892-8901,8903-8911,8913-8917,8920-8923,8925-8933,8935-8938,8940-8943,8945,8947-8948,8950,8952-8953,8955-8962,8964,8966,8968-8970,8972-8975,8977-8983,8985-8993,8995-9001,9003,9005,9007,9009,9011-9019,9021-9023,9025,9027-9028,9030-9044,9046-9047,9049-9050,9052-9056,9058-9059,9061,9063-9064,9066-9068,9071-9092,9094-9112,9114-9117,9119,9121-9160,9162-9166,9169-9207,9209-9211,9213-9215,9217,9219,9221-9253,9255,9257,9259-9260,9262,9264-9269,9271-9273,9275,9277-9278,9280,9282-9283,9285-9289,9291-9299,9301-9310,9312-9313,9315-9320,9322-9324,9326-9338,9340-9342,9344,9346-9348,9350-9358,9360-9362,9364-9366,9368-9374,9376-9382,9384,9386,9388-9390,9392-9396,9398-9402,9404-9410,9412,9414,9416-9417,9419-9425,9427,9429-9430,9432,9434-9463,9465-9502,9504-9506,9508-9521,9523-9526,9528,9530-9537,9539,9541-9551,9553,9555-9556,9558-9578,9580-9581,9583,9585,9587,9589,9591-9624,9626-9655,9657-9700,9702-9726,9728-9729,9731-9749,9751,9753-9754,9756-9832,9834-9836,9838-9839,9841-9846,9848-9850,9852-9858,9860-9863,9865,9867,9869-9871,9873-9893,9895,9897-9912,9914-9919,9921-9928,9930-9952,9954,9956,9958-9963,9965-9993,9995-9997,9999-10001,10003-10004,10006-10007,10009-10012,10014-10031,10033-10073,10075-10107,10109-10165,10167-10210,10222-10226,10228-10311,10313-10378,10380,10382,10384-10393,10395-10478,10480-10482,10484-10494,10496-10503,10505,10507,10509-10521,10523,10525-10528,10530-10540,10542-10543,10545-10568,10570-10584,10586-10590,10592-10594,10596,10598-10599,10601-10611,10613,10615,10617-10626,10628-10636,10638,10640-10654,10656-10658,10660,10662-10672,10674,10676-10682,10684,10686,10688-10690,10692-10694,10696-10697,10699-10701,10703,10705-10706,10708-10724,10726-10731,10734,10736-10748,10750-10796,10798-10939,10941,10943,10945,10947-10953,10955,10957-10961,10963,10965-10966,10968-11001,11003-11030,11032-11034,11036,11038,11040,11042-11053,11055-11059,11061-11062,11064-11068,11070-11073,11075-11077,11079-11083,11085,11087-11088
+
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579,8581-8587,8589,8591-8592,8594-8595,8597-8601,8603-8610,8612-8613,8615,8617,8619-8645,8647-8650,8652-8661,8663-8666,8668-8669,8671-8683,8685-8691,8693-8730,8732-8737,8739,8741-8767,8769,8771-8772,8774,8776-8797,8799-8812,8814-8819,8821,8823-8833,8835-8837,8839,8841,8843-8849,8852-8858,8860-8867,8869-8870,8872,8874-8877,8879,8881,8883-8888,8890,8892-8901,8903-8911,8913-8917,8920-8923,8925-8933,8935-8938,8940-8943,8945,8947-8948,8950,8952-8953,8955-8962,8964,8966,8968-8970,8972-8975,8977-8983,8985-8993,8995-9001,9003,9005,9007,9009,9011-9019,9021-9023,9025,9027-9028,9030-9044,9046-9047,9049-9050,9052-9056,9058-9059,9061,9063-9064,9066-9068,9071-9092,9094-9112,9114-9117,9119,9121-9160,9162-9166,9169-9207,9209-9211,9213-9215,9217,9219,9221-9253,9255,9257,9259-9260,9262,9264-9269,9271-9273,9275,9277-9278,9280,9282-9283,9285-9289,9291-9299,9301-9310,9312-9313,9315-9320,9322-9324,9326-9338,9340-9342,9344,9346-9348,9350-9358,9360-9362,9364-9366,9368-9374,9376-9382,9384,9386,9388-9390,9392-9396,9398-9402,9404-9410,9412,9414,9416-9417,9419-9425,9427,9429-9430,9432,9434-9463,9465-9502,9504-9506,9508-9521,9523-9526,9528,9530-9537,9539,9541-9551,9553,9555-9556,9558-9578,9580-9581,9583,9585,9587,9589,9591-9624,9626-9655,9657-9700,9702-9726,9728-9729,9731-9749,9751,9753-9754,9756-9832,9834-9836,9838-9839,9841-9846,9848-9850,9852-9858,9860-9863,9865,9867,9869-9871,9873-9893,9895,9897-9912,9914-9919,9921-9928,9930-9952,9954,9956,9958-9963,9965-9993,9995-9997,9999-10001,10003-10004,10006-10007,10009-10012,10014-10031,10033-10073,10075-10107,10109-10165,10167-10210,10222-10226,10228-10311,10313-10378,10380,10382,10384-10393,10395-10478,10480-10482,10484-10494,10496-10503,10505,10507,10509-10521,10523,10525-10528,10530-10540,10542-10543,10545-10568,10570-10584,10586-10590,10592-10594,10596,10598-10599,10601-10611,10613,10615,10617-10626,10628-10636,10638,10640-10654,10656-10658,10660,10662-10672,10674,10676-10682,10684,10686,10688-10690,10692-10694,10696-10697,10699-10701,10703,10705-10706,10708-10724,10726-10731,10734,10736-10748,10750-10796,10798-10939,10941,10943,10945,10947-10953,10955,10957-10961,10963,10965-10966,10968-11001,11003-11030,11032-11034,11036,11038,11040,11042-11053,11055-11059,11061-11062,11064-11068,11070-11073,11075-11077,11079-11083,11085,11087-11088,11090-11093
Modified: branches/Version-1_0-branch/controller/inc/class.menu.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.menu.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.menu.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -83,6 +83,7 @@
'text' =>
lang('Control_group'),
'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=>
'controller.uicontrol_group.index') ),
'image' => array('property',
'location_1'),
+ /*
'children' => array(
'component_for_control_group' => array
(
@@ -91,6 +92,7 @@
'image' => array('property', 'entity_1')
)
)
+ */
),
'procedure' => array
(
Modified: branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -61,7 +61,12 @@
private $so_check_list;
private $location_finder;
-
+
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
var $public_functions = array(
'add_case' => true,
'save_case' => true,
@@ -92,7 +97,12 @@
$this->so_check_list =
CreateObject('controller.socheck_list');
$this->location_finder = new location_finder();
- }
+
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
+ }
function add_case()
{
@@ -178,7 +188,13 @@
'check_list/fragments/select_buildings_on_property'), $data);
}
- function save_case_ajax(){
+ function save_case_ajax()
+ {
+ if(!$this->add && !$this->edit)
+ {
+ return json_encode( array( "status" =>
"not_saved" ) );
+ }
+
$check_list_id = phpgw::get_var('check_list_id');
$control_item_id = phpgw::get_var('control_item_id');
$case_descr = phpgw::get_var('case_descr');
@@ -194,7 +210,8 @@
$check_item =
$this->so_check_item->get_check_item_by_check_list_and_control_item($check_list_id,
$control_item_id);
// Makes a check item if there isn't already made one
- if($check_item == null){
+ if($check_item == null)
+ {
$new_check_item = new controller_check_item();
$new_check_item->set_check_list_id(
$check_list_id );
$new_check_item->set_control_item_id(
$control_item_id );
@@ -219,31 +236,44 @@
$case->set_location_code( $location_code );
// Saves selected value from or measurement
- if($type == 'control_item_type_2'){
+ if($type == 'control_item_type_2')
+ {
$measurement = phpgw::get_var('measurement');
$case->set_measurement( $measurement );
- }else if($type == 'control_item_type_3'){
+ }
+ else if($type == 'control_item_type_3')
+ {
$option_value = phpgw::get_var('option_value');
$case->set_measurement( $option_value );
- }else if($type == 'control_item_type_4'){
+ }
+ else if($type == 'control_item_type_4')
+ {
$option_value = phpgw::get_var('option_value');
$case->set_measurement( $option_value );
}
$case_id = $this->so->store($case);
- if($case_id > 0){
+ if($case_id > 0)
+ {
$cl_status_updater = new
check_list_status_updater();
$cl_status_updater->update_check_list_status(
$check_list_id );
return json_encode( array( "status" => "saved"
) );
}
- else{
+ else
+ {
return json_encode( array( "status" =>
"not_saved" ) );
}
}
- function save_case(){
+ function save_case()
+ {
+ if(!$this->add && !$this->edit)
+ {
+ return json_encode( array( "status" =>
"not_saved" ) );
+ }
+
$case_id = phpgw::get_var('case_id');
$case_descr = phpgw::get_var('case_descr');
$case_status = phpgw::get_var('case_status');
@@ -258,33 +288,36 @@
$case->set_measurement($measurement);
$case->set_status($case_status);
- if($case->validate())
- {
- $case_id = $this->so->store($case);
- $case = $this->so->get_single($case_id);
+ if($case->validate())
+ {
+ $case_id = $this->so->store($case);
+ $case = $this->so->get_single($case_id);
- if($case_id > 0){
- $cl_status_updater = new check_list_status_updater();
- $cl_status_updater->update_check_list_status( $check_list_id );
+ if($case_id > 0)
+ {
+ $cl_status_updater = new
check_list_status_updater();
+
$cl_status_updater->update_check_list_status( $check_list_id );
- $check_item =
$this->so_check_item->get_single($case->get_check_item_id());
- $control_item =
$this->so_control_item->get_single($check_item->get_control_item_id());
+ $check_item =
$this->so_check_item->get_single($case->get_check_item_id());
+ $control_item =
$this->so_control_item->get_single($check_item->get_control_item_id());
- $type = $control_item->get_type();
+ $type = $control_item->get_type();
- return json_encode( array( "status" => "saved", "type" => $type,
"caseObj" => $case->toArray() ) );
- }
- else{
- return json_encode( array( "status" => "not_saved" ) );
- }
- }
- else
- {
- return json_encode( array( "status" => "error" ) );
- }
+ return json_encode( array( "status" =>
"saved", "type" => $type, "caseObj" => $case->toArray() ) );
+ }
+ else
+ {
+ return json_encode( array( "status" =>
"not_saved" ) );
+ }
+ }
+ else
+ {
+ return json_encode( array( "status" => "error"
) );
+ }
}
- function create_case_message(){
+ function create_case_message()
+ {
$check_list_id = phpgw::get_var('check_list_id');
$check_list =
$this->so_check_list->get_single($check_list_id);
@@ -360,13 +393,20 @@
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'case/create_case_message'), $data);
}
- function send_case_message(){
+ function send_case_message()
+ {
$check_list_id = phpgw::get_var('check_list_id');
$location_code = phpgw::get_var('location_code');
$message_title = phpgw::get_var('message_title');
$message_cat_id = phpgw::get_var('message_cat_id');
$case_ids = phpgw::get_var('case_ids');
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No access',
'error');
+ $this->redirect(array('menuaction' =>
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+ }
+
$check_list =
$this->so_check_list->get_single($check_list_id);
$control_id = $check_list->get_control_id();
@@ -388,7 +428,8 @@
// Generates message details from comment field in
check item
$counter = 1;
- foreach($case_ids as $case_id){
+ foreach($case_ids as $case_id)
+ {
$case = $this->so->get_single($case_id);
$message_details .= "Gjøremål $counter: ";
$message_details .= $case->get_descr() .
"<br>";
@@ -443,7 +484,8 @@
// Registers message and updates check items with
message ticket id
- foreach($case_ids as $case_id){
+ foreach($case_ids as $case_id)
+ {
$case = $this->so->get_single($case_id);
$case->set_location_id($location_id_ticket);
$case->set_location_item_id($message_ticket_id);
@@ -527,11 +569,17 @@
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'case/view_case_message'), $data);
}
- public function updateStatusForCases($location_id,
$location_item_id, $updateStatus = 0){
-
+ public function updateStatusForCases($location_id,
$location_item_id, $updateStatus = 0)
+ {
+ if(!$this->add && !$this->edit)
+ {
+ return;
+ }
+
$cases_array = $this->so->get_cases_by_message(
$location_id, $location_item_id );
- if(!empty ( $cases_array ) ){
+ if(!empty ( $cases_array ) )
+ {
// Updates status for cases related to message
foreach($cases_array as $case){
$case->set_status( $updateStatus );
@@ -556,24 +604,36 @@
public function delete_case()
{
+ if(!$this->delete)
+ {
+ return json_encode( array( "status" =>
"not_deleted" ) );
+ }
+
$case_id = phpgw::get_var('case_id');
$check_list_id = phpgw::get_var('check_list_id');
$status = $this->so->delete($case_id);
- if($status){
+ if($status)
+ {
$cl_status_updater = new
check_list_status_updater();
$cl_status_updater->update_check_list_status(
$check_list_id );
return json_encode( array( "status" =>
"deleted" ) );
}
- else{
+ else
+ {
return json_encode( array( "status" =>
"not_deleted" ) );
}
}
public function close_case()
{
+ if(!$this->add && !$this->edit)
+ {
+ return json_encode( array( "status" => "false"
) );
+ }
+
$case_id = phpgw::get_var('case_id');
$check_list_id = phpgw::get_var('check_list_id');
@@ -588,13 +648,19 @@
return json_encode( array( "status" => "true" )
);
}
- else{
+ else
+ {
return json_encode( array( "status" => "false"
) );
}
}
public function open_case()
{
+ if(!$this->add && !$this->edit)
+ {
+ return json_encode( array( "status" => "false"
) );
+ }
+
$case_id = phpgw::get_var('case_id');
$check_list_id = phpgw::get_var('check_list_id');
@@ -603,13 +669,15 @@
$case_id = $this->so->store($case);
- if($case_id > 0){
+ if($case_id > 0)
+ {
$cl_status_updater = new
check_list_status_updater();
$cl_status_updater->update_check_list_status(
$check_list_id );
return json_encode( array( "status" => "true" )
);
}
- else{
+ else
+ {
return json_encode( array( "status" => "false"
) );
}
}
Modified: branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -1,618 +1,650 @@
<?php
- /**
- * phpGroupWare - controller: a part of a Facilities Management System.
- *
- * @author Erik Holm-Larsen <address@hidden>
- * @author Torstein Vadla <address@hidden>
- * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
- * This file is part of phpGroupWare.
- *
- * phpGroupWare is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * phpGroupWare is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpGroupWare; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
- *
- * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
- * @internal Development of this application was funded by
http://www.bergen.kommune.no/
- * @package property
- * @subpackage controller
- * @version $Id$
- */
- /**
- * Import the jQuery class
- */
- phpgw::import_class('phpgwapi.jquery');
+ /**
+ * phpGroupWare - controller: a part of a Facilities Management System.
+ *
+ * @author Erik Holm-Larsen <address@hidden>
+ * @author Torstein Vadla <address@hidden>
+ * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc.
http://www.fsf.org/
+ * This file is part of phpGroupWare.
+ *
+ * phpGroupWare is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * phpGroupWare is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpGroupWare; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
+ *
+ * @license http://www.gnu.org/licenses/gpl.html GNU General Public
License
+ * @internal Development of this application was funded by
http://www.bergen.kommune.no/
+ * @package property
+ * @subpackage controller
+ * @version $Id$
+ */
+ /**
+ * Import the jQuery class
+ */
+ phpgw::import_class('phpgwapi.jquery');
- /**
- * Import the yui class
- */
- phpgw::import_class('phpgwapi.yui');
- phpgw::import_class('phpgwapi.uicommon');
- phpgw::import_class('controller.socheck_list');
- phpgw::import_class('phpgwapi.datetime');
+ /**
+ * Import the yui class
+ */
+ phpgw::import_class('phpgwapi.yui');
+ phpgw::import_class('phpgwapi.uicommon');
+ phpgw::import_class('controller.socheck_list');
+ phpgw::import_class('phpgwapi.datetime');
- include_class('controller', 'check_list', 'inc/model/');
- include_class('controller', 'check_item', 'inc/model/');
- include_class('controller', 'date_generator', 'inc/component/');
- include_class('controller', 'check_list_status_updater', 'inc/helper/');
- include_class('controller', 'date_converter', 'inc/helper/');
- include_class('controller', 'location_finder', 'inc/helper/');
+ include_class('controller', 'check_list', 'inc/model/');
+ include_class('controller', 'check_item', 'inc/model/');
+ include_class('controller', 'date_generator', 'inc/component/');
+ include_class('controller', 'check_list_status_updater', 'inc/helper/');
+ include_class('controller', 'date_converter', 'inc/helper/');
+ include_class('controller', 'location_finder', 'inc/helper/');
- class controller_uicheck_list extends phpgwapi_uicommon
- {
- protected $so;
- protected $so_control;
- protected $so_control_item;
- protected $so_check_item;
- protected $so_procedure;
- protected $so_control_group_list;
- protected $so_control_group;
- protected $so_control_item_list;
- protected $location_finder;
- var $public_functions = array(
- 'index' => true,
- 'add_check_list' => true,
- 'save_check_list' => true,
- 'edit_check_list' => true,
- 'print_check_list' => true,
- 'view_control_info' => true,
- 'view_control_details' => true,
- 'view_control_items' => true,
- 'get_check_list_info' => true,
- 'get_cases_for_check_list' => true,
- 'update_status' => true
- );
+ class controller_uicheck_list extends phpgwapi_uicommon
+ {
+ protected $so;
+ protected $so_control;
+ protected $so_control_item;
+ protected $so_check_item;
+ protected $so_procedure;
+ protected $so_control_group_list;
+ protected $so_control_group;
+ protected $so_control_item_list;
+ protected $location_finder;
- function __construct()
- {
- parent::__construct();
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
- $this->so_control = CreateObject('controller.socontrol');
- $this->so = CreateObject('controller.socheck_list');
- $this->so_control_item = CreateObject('controller.socontrol_item');
- $this->so_check_item = CreateObject('controller.socheck_item');
- $this->so_procedure = CreateObject('controller.soprocedure');
- $this->so_control_group_list =
CreateObject('controller.socontrol_group_list');
- $this->so_control_group =
CreateObject('controller.socontrol_group');
- $this->so_control_item_list =
CreateObject('controller.socontrol_item_list');
+ var $public_functions = array(
+ 'index' => true,
+ 'add_check_list' => true,
+ 'save_check_list' => true,
+ 'edit_check_list' => true,
+ 'print_check_list' => true,
+ 'view_control_info' => true,
+ 'view_control_details' => true,
+ 'view_control_items' => true,
+ 'get_check_list_info' => true,
+ 'get_cases_for_check_list' => true,
+ 'update_status' => true
+ );
- $this->location_finder = new location_finder();
+ function __construct()
+ {
+ parent::__construct();
- self::set_active_menu('controller::control::check_list');
- }
+ $this->so_control =
CreateObject('controller.socontrol');
+ $this->so = CreateObject('controller.socheck_list');
+ $this->so_control_item =
CreateObject('controller.socontrol_item');
+ $this->so_check_item =
CreateObject('controller.socheck_item');
+ $this->so_procedure =
CreateObject('controller.soprocedure');
+ $this->so_control_group_list =
CreateObject('controller.socontrol_group_list');
+ $this->so_control_group =
CreateObject('controller.socontrol_group');
+ $this->so_control_item_list =
CreateObject('controller.socontrol_item_list');
- /**
- * Public function for displaying checklists
- *
- * @param HTTP:: phpgw_return_as
- * @return data array
- */
- public function index()
- {
- if(phpgw::get_var('phpgw_return_as') == 'json')
- {
- return $this->query();
- }
- self::add_javascript('phpgwapi', 'yahoo', 'datatable.js');
- phpgwapi_yui::load_widget('datatable');
- phpgwapi_yui::load_widget('paginator');
+ $this->location_finder = new location_finder();
- $data = array(
- 'datatable_name' => 'Sjekkliste (Ikke i bruk)',
- 'form' => array(
- 'toolbar' => array(
- 'item' => array(
- array('type' => 'filter',
- 'name' => 'status',
- 'text' => lang('Status'),
- 'list' => array(
- array(
- 'id' => 'none',
- 'name' => lang('Not selected')
- ),
- array(
- 'id' => 'NEW',
- 'name' => lang('NEW')
- ),
- array(
- 'id' => 'PENDING',
- 'name' => lang('PENDING')
- ),
- array(
- 'id' => 'REJECTED',
- 'name' => lang('REJECTED')
- ),
- array(
- 'id' => 'ACCEPTED',
- 'name' => lang('ACCEPTED')
- )
- )
- ),
- array('type' => 'text',
- 'text' => lang('searchfield'),
- 'name' => 'query'
- ),
- array(
- 'type' => 'submit',
- 'name' => 'search',
- 'value' => lang('Search')
- ),
- ),
- ),
- ),
- 'datatable' => array(
- 'source' => self::link(array('menuaction' =>
'controller.uicheck_list.index', 'phpgw_return_as' => 'json')),
- 'field' => array(
- array(
- 'key' => 'id',
- 'label' => lang('ID'),
- 'sortable' => true,
- 'formatter' => 'YAHOO.portico.formatLink'
- ),
- array(
- 'key' => 'title',
- 'label' => lang('Control title'),
- 'sortable' => false
- ),
- array(
- 'key' => 'start_date',
- 'label' => lang('start_date'),
- 'sortable' => false
- ),
- array(
- 'key' => 'planned_date',
- 'label' => lang('planned_date'),
- 'sortable' => false
- ),
- array(
- 'key' => 'end_date',
- 'label' => lang('end_date'),
- 'sortable' => false
- ),
- array(
- 'key' => 'link',
- 'hidden' => true
- )
- )
- ),
- );
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
- self::render_template_xsl('datatable_common', $data);
- }
+
self::set_active_menu('controller::control::check_list');
+ }
- /**
- * Public function for displaying the add check list form
- *
- * @param HTTP:: location code, control id, date
- * @return data array
- */
- function add_check_list($check_list = null)
- {
- if($check_list == null)
- {
- $type = phpgw::get_var('type');
- $control_id = phpgw::get_var('control_id');
- $deadline_ts = phpgw::get_var('deadline_ts');
+ /**
+ * Public function for displaying checklists
+ *
+ * @param HTTP:: phpgw_return_as
+ * @return data array
+ */
+ public function index()
+ {
+ if(phpgw::get_var('phpgw_return_as') == 'json')
+ {
+ return $this->query();
+ }
+ self::add_javascript('phpgwapi', 'yahoo',
'datatable.js');
+ phpgwapi_yui::load_widget('datatable');
+ phpgwapi_yui::load_widget('paginator');
- $check_list = new controller_check_list();
- $check_list->set_control_id($control_id);
- $check_list->set_deadline($deadline_ts);
- } else
- {
- if($check_list->get_component_id() > 0)
- {
- $type = "component";
- } else
- {
- $type = "location";
- }
- }
+ $data = array(
+ 'datatable_name' => 'Sjekkliste (Ikke i bruk)',
+ 'form' => array(
+ 'toolbar' => array(
+ 'item' => array(
+ array('type' =>
'filter',
+ 'name' =>
'status',
+ 'text' =>
lang('Status'),
+ 'list' => array(
+ array(
+
'id' => 'none',
+
'name' => lang('Not selected')
+ ),
+ array(
+
'id' => 'NEW',
+
'name' => lang('NEW')
+ ),
+ array(
+
'id' => 'PENDING',
+
'name' => lang('PENDING')
+ ),
+ array(
+
'id' => 'REJECTED',
+
'name' => lang('REJECTED')
+ ),
+ array(
+
'id' => 'ACCEPTED',
+
'name' => lang('ACCEPTED')
+ )
+ )
+ ),
+ array('type' => 'text',
+ 'text' =>
lang('searchfield'),
+ 'name' =>
'query'
+ ),
+ array(
+ 'type' =>
'submit',
+ 'name' =>
'search',
+ 'value' =>
lang('Search')
+ ),
+ ),
+ ),
+ ),
+ 'datatable' => array(
+ 'source' =>
self::link(array('menuaction' => 'controller.uicheck_list.index',
'phpgw_return_as' => 'json')),
+ 'field' => array(
+ array(
+ 'key' => 'id',
+ 'label' => lang('ID'),
+ 'sortable' => true,
+ 'formatter' =>
'YAHOO.portico.formatLink'
+ ),
+ array(
+ 'key' => 'title',
+ 'label' =>
lang('Control title'),
+ 'sortable' => false
+ ),
+ array(
+ 'key' => 'start_date',
+ 'label' =>
lang('start_date'),
+ 'sortable' => false
+ ),
+ array(
+ 'key' => 'planned_date',
+ 'label' =>
lang('planned_date'),
+ 'sortable' => false
+ ),
+ array(
+ 'key' => 'end_date',
+ 'label' =>
lang('end_date'),
+ 'sortable' => false
+ ),
+ array(
+ 'key' => 'link',
+ 'hidden' => true
+ )
+ )
+ ),
+ );
- if(!$location_code = $check_list->get_location_code())
- {
- $location_code = phpgw::get_var('location_code');
- $check_list->set_location_code($location_code);
- $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$check_list->get_location_code()));
- $level =
$this->location_finder->get_location_level($location_code);
- }
+ self::render_template_xsl('datatable_common', $data);
+ }
- if($type == "component")
- {
- if($check_list != null)
- {
- $location_id = phpgw::get_var('location_id');
- $check_list->set_location_id($location_id);
- $component_id = phpgw::get_var('component_id');
- $check_list->set_component_id($component_id);
- }
+ /**
+ * Public function for displaying the add check list form
+ *
+ * @param HTTP:: location code, control id, date
+ * @return data array
+ */
+ function add_check_list($check_list = null)
+ {
+ if($check_list == null)
+ {
+ $type = phpgw::get_var('type');
+ $control_id = phpgw::get_var('control_id');
+ $deadline_ts = phpgw::get_var('deadline_ts');
- $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
- $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
+ $check_list = new controller_check_list();
+ $check_list->set_control_id($control_id);
+ $check_list->set_deadline($deadline_ts);
+ }
+ else
+ {
+ if($check_list->get_component_id() > 0)
+ {
+ $type = "component";
+ }
+ else
+ {
+ $type = "location";
+ }
+ }
- $component = new controller_component();
- $component->set_location_code($component_arr['location_code']);
- $component->set_xml_short_desc($short_desc);
+ if(!$location_code = $check_list->get_location_code())
+ {
+ $location_code =
phpgw::get_var('location_code');
+ $check_list->set_location_code($location_code);
+ $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$check_list->get_location_code()));
+ $level =
$this->location_finder->get_location_level($location_code);
+ }
- $component_array = $component->toArray();
- $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
- $type = "component";
- } else
- {
- $type = "location";
- }
+ if($type == "component")
+ {
+ if($check_list != null)
+ {
+ $location_id =
phpgw::get_var('location_id');
+
$check_list->set_location_id($location_id);
+ $component_id =
phpgw::get_var('component_id');
+
$check_list->set_component_id($component_id);
+ }
- $control =
$this->so_control->get_single($check_list->get_control_id());
+ $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
+ $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
- $year = date("Y", $deadline_ts);
- $month_nr = date("n", $deadline_ts);
+ $component = new controller_component();
+
$component->set_location_code($component_arr['location_code']);
+ $component->set_xml_short_desc($short_desc);
- $level =
$this->location_finder->get_location_level($location_code);
- $user_role = true;
+ $component_array = $component->toArray();
+ $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
+ $type = "component";
+ }
+ else
+ {
+ $type = "location";
+ }
- // Fetches buildings on property
- $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
+ $control =
$this->so_control->get_single($check_list->get_control_id());
- $data = array
- (
- 'location_array' => $location_array,
- 'component_array' => $component_array,
- 'control' => $control,
- 'check_list' => $check_list,
- 'buildings_on_property' => $buildings_on_property,
- 'type' => $type,
- 'current_year' => $year,
- 'current_month_nr' => $month_nr,
- 'building_location_code' => $building_location_code,
- 'location_level' => $level,
- 'check_list_type' => 'add_check_list'
- );
+ $year = date("Y", $deadline_ts);
+ $month_nr = date("n", $deadline_ts);
- $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
- $GLOBALS['phpgw']->jqcal->add_listener('completed_date');
+ $level =
$this->location_finder->get_location_level($location_code);
+ $user_role = true;
- self::add_javascript('controller', 'controller', 'custom_ui.js');
- self::add_javascript('controller', 'controller', 'ajax.js');
- self::add_javascript('controller', 'controller', 'check_list.js');
+ // Fetches buildings on property
+ $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
- self::render_template_xsl(array('check_list/add_check_list',
'check_list/fragments/nav_control_plan',
- 'check_list/fragments/check_list_top_section',
'check_list/fragments/add_check_list_menu',
- 'check_list/fragments/select_buildings_on_property'), $data);
- }
+ $data = array
+ (
+ 'location_array' => $location_array,
+ 'component_array' => $component_array,
+ 'control' => $control,
+ 'check_list' => $check_list,
+ 'buildings_on_property' =>
$buildings_on_property,
+ 'type' => $type,
+ 'current_year' => $year,
+ 'current_month_nr' => $month_nr,
+ 'building_location_code' =>
$building_location_code,
+ 'location_level' => $level,
+ 'check_list_type' => 'add_check_list'
+ );
- /**
- * Public function for displaying the edit check list form
- *
- * @param HTTP:: check list id
- * @return data array
- */
- function edit_check_list($check_list = null)
- {
- if($check_list == null)
- {
- $check_list_id = phpgw::get_var('check_list_id');
- $check_list = $this->so->get_single($check_list_id);
- }
+ $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
+
$GLOBALS['phpgw']->jqcal->add_listener('completed_date');
- $control =
$this->so_control->get_single($check_list->get_control_id());
+ self::add_javascript('controller', 'controller',
'custom_ui.js');
+ self::add_javascript('controller', 'controller',
'ajax.js');
+ self::add_javascript('controller', 'controller',
'check_list.js');
- $component_id = $check_list->get_component_id();
+
self::render_template_xsl(array('check_list/add_check_list',
'check_list/fragments/nav_control_plan',
+ 'check_list/fragments/check_list_top_section',
'check_list/fragments/add_check_list_menu',
+
'check_list/fragments/select_buildings_on_property'), $data);
+ }
- if($component_id > 0)
- {
- $location_id = $check_list->get_location_id();
- $component_id = $check_list->get_component_id();
+ /**
+ * Public function for displaying the edit check list form
+ *
+ * @param HTTP:: check list id
+ * @return data array
+ */
+ function edit_check_list($check_list = null)
+ {
+ if($check_list == null)
+ {
+ $check_list_id =
phpgw::get_var('check_list_id');
+ $check_list =
$this->so->get_single($check_list_id);
+ }
- $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
- $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
+ $control =
$this->so_control->get_single($check_list->get_control_id());
- $component = new controller_component();
- $component->set_location_code($component_arr['location_code']);
- $component->set_xml_short_desc($short_desc);
- $component_array = $component->toArray();
+ $component_id = $check_list->get_component_id();
- $type = 'component';
- $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
- } else
- {
- $location_code = $check_list->get_location_code();
- $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$location_code));
- $type = 'location';
- $level =
$this->location_finder->get_location_level($location_code);
- }
+ if($component_id > 0)
+ {
+ $location_id = $check_list->get_location_id();
+ $component_id = $check_list->get_component_id();
- $year = date("Y", $check_list->get_deadline());
- $month = date("n", $check_list->get_deadline());
+ $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
+ $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
- $level =
$this->location_finder->get_location_level($location_code);
- $user_role = true;
+ $component = new controller_component();
+
$component->set_location_code($component_arr['location_code']);
+ $component->set_xml_short_desc($short_desc);
+ $component_array = $component->toArray();
- // Fetches buildings on property
- $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
+ $type = 'component';
+ $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
+ }
+ else
+ {
+ $location_code =
$check_list->get_location_code();
+ $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$location_code));
+ $type = 'location';
+ $level =
$this->location_finder->get_location_level($location_code);
+ }
- $data = array
- (
- 'control' => $control,
- 'check_list' => $check_list,
- '$buildings_on_property' => $buildings_on_property,
- 'location_array' => $location_array,
- 'component_array' => $component_array,
- 'type' => $type,
- 'current_year' => $year,
- 'current_month_nr' => $month,
- 'building_location_code' => $building_location_code,
- 'location_level' => $level
- );
+ $year = date("Y", $check_list->get_deadline());
+ $month = date("n", $check_list->get_deadline());
- $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
- $GLOBALS['phpgw']->jqcal->add_listener('completed_date');
- $GLOBALS['phpgw']->jqcal->add_listener('deadline_date');
+ $level =
$this->location_finder->get_location_level($location_code);
+ $user_role = true;
- self::add_javascript('controller', 'controller', 'custom_ui.js');
- self::add_javascript('controller', 'controller', 'ajax.js');
- self::add_javascript('controller', 'controller', 'check_list.js');
+ // Fetches buildings on property
+ $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
-
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'check_list/fragments/nav_control_plan',
- 'check_list/fragments/check_list_top_section',
'check_list/edit_check_list',
- 'check_list/fragments/select_buildings_on_property'), $data);
- }
+ $data = array
+ (
+ 'control' => $control,
+ 'check_list' => $check_list,
+ '$buildings_on_property' =>
$buildings_on_property,
+ 'location_array' => $location_array,
+ 'component_array' => $component_array,
+ 'type' => $type,
+ 'current_year' => $year,
+ 'current_month_nr' => $month,
+ 'building_location_code' =>
$building_location_code,
+ 'location_level' => $level
+ );
- /**
- * Public function for saving a check list
- *
- * @param HTTP:: location code, control id, status etc.. (check list
details)
- * @return data array
- */
- function save_check_list()
- {
- $check_list_id = phpgw::get_var('check_list_id');
- $control_id = phpgw::get_var('control_id');
- $status = (int) phpgw::get_var('status');
- $type = phpgw::get_var('type');
- $deadline_date = phpgw::get_var('deadline_date', 'string');
- $planned_date = phpgw::get_var('planned_date', 'string');
- $completed_date = phpgw::get_var('completed_date', 'string');
- $comment = phpgw::get_var('comment', 'string');
+ $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
+
$GLOBALS['phpgw']->jqcal->add_listener('completed_date');
+ $GLOBALS['phpgw']->jqcal->add_listener('deadline_date');
- $deadline_date_ts =
date_converter::date_to_timestamp($deadline_date);
+ self::add_javascript('controller', 'controller',
'custom_ui.js');
+ self::add_javascript('controller', 'controller',
'ajax.js');
+ self::add_javascript('controller', 'controller',
'check_list.js');
- if($planned_date != '')
- {
- $planned_date_ts =
date_converter::date_to_timestamp($planned_date);
- } else
- {
- $planned_date_ts = 0;
- }
+
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'check_list/fragments/nav_control_plan',
+ 'check_list/fragments/check_list_top_section',
'check_list/edit_check_list',
+
'check_list/fragments/select_buildings_on_property'), $data);
+ }
- if($completed_date != '')
- {
- $completed_date_ts =
phpgwapi_datetime::date_to_timestamp($completed_date);
- $status = controller_check_list::STATUS_DONE;
- } else
- {
- $completed_date_ts = 0;
- }
+ /**
+ * Public function for saving a check list
+ *
+ * @param HTTP:: location code, control id, status etc.. (check
list details)
+ * @return data array
+ */
+ function save_check_list()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No access',
'error');
+ $this->redirect(array('menuaction' =>
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+ }
- if($check_list_id > 0)
- {
- $check_list = $this->so->get_single($check_list_id);
- } else
- {
- $check_list = new controller_check_list();
- $check_list->set_control_id($control_id);
- $location_code = phpgw::get_var('location_code');
- $check_list->set_location_code($location_code);
+ $control_id = phpgw::get_var('control_id');
+ $status = (int) phpgw::get_var('status');
+ $type = phpgw::get_var('type');
+ $deadline_date = phpgw::get_var('deadline_date',
'string');
+ $planned_date = phpgw::get_var('planned_date',
'string');
+ $completed_date = phpgw::get_var('completed_date',
'string');
+ $comment = phpgw::get_var('comment', 'string');
- if($type == "component")
- {
- $location_id = phpgw::get_var('location_id');
- $component_id = phpgw::get_var('component_id');
- $check_list->set_location_id($location_id);
- $check_list->set_component_id($component_id);
- }
- }
+ $deadline_date_ts =
date_converter::date_to_timestamp($deadline_date);
- $check_list->set_status($status);
- $check_list->set_comment($comment);
- $check_list->set_deadline($deadline_date_ts);
- $check_list->set_planned_date($planned_date_ts);
- $check_list->set_completed_date($completed_date_ts);
+ if($planned_date != '')
+ {
+ $planned_date_ts =
date_converter::date_to_timestamp($planned_date);
+ }
+ else
+ {
+ $planned_date_ts = 0;
+ }
- if($check_list->validate())
- {
- $check_list_id = $this->so->store($check_list);
+ if($completed_date != '')
+ {
+ $completed_date_ts =
phpgwapi_datetime::date_to_timestamp($completed_date);
+ $status = controller_check_list::STATUS_DONE;
+ }
+ else
+ {
+ $completed_date_ts = 0;
+ }
- $cl_status_updater = new check_list_status_updater();
- $cl_status_updater->update_check_list_status($check_list_id);
+ if($check_list_id > 0)
+ {
+ $check_list =
$this->so->get_single($check_list_id);
+ }
+ else
+ {
+ $check_list = new controller_check_list();
+ $check_list->set_control_id($control_id);
+ $location_code =
phpgw::get_var('location_code');
+ $check_list->set_location_code($location_code);
- if($check_list_id > 0)
- {
- $this->redirect(array('menuaction' =>
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
- } else
- {
- $this->edit_check_list($check_list);
- }
- } else
- {
- if($check_list->get_id() > 0)
- {
- $this->edit_check_list($check_list);
- } else
- {
- $this->add_check_list($check_list);
- }
- }
- }
+ if($type == "component")
+ {
+ $location_id =
phpgw::get_var('location_id');
+ $component_id =
phpgw::get_var('component_id');
+
$check_list->set_location_id($location_id);
+
$check_list->set_component_id($component_id);
+ }
+ }
- function view_control_info()
- {
- $check_list_id = phpgw::get_var('check_list_id');
+ $check_list->set_status($status);
+ $check_list->set_comment($comment);
+ $check_list->set_deadline($deadline_date_ts);
+ $check_list->set_planned_date($planned_date_ts);
+ $check_list->set_completed_date($completed_date_ts);
- $check_list = $this->so->get_single($check_list_id);
- $control =
$this->so_control->get_single($check_list->get_control_id());
+ if($check_list->validate())
+ {
+ $check_list_id = $this->so->store($check_list);
- $component_id = $check_list->get_component_id();
+ $cl_status_updater = new
check_list_status_updater();
+
$cl_status_updater->update_check_list_status($check_list_id);
- if($component_id > 0)
- {
- $location_id = $check_list->get_location_id();
- $component_id = $check_list->get_component_id();
+ if($check_list_id > 0)
+ {
+ $this->redirect(array('menuaction' =>
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+ }
+ else
+ {
+ $this->edit_check_list($check_list);
+ }
+ }
+ else
+ {
+ if($check_list->get_id() > 0)
+ {
+ $this->edit_check_list($check_list);
+ } else
+ {
+ $this->add_check_list($check_list);
+ }
+ }
+ }
- $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
- $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
+ function view_control_info()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
- $component = new controller_component();
- $component->set_location_code($component_arr['location_code']);
- $component->set_xml_short_desc($short_desc);
- $component_array = $component->toArray();
+ $check_list = $this->so->get_single($check_list_id);
+ $control =
$this->so_control->get_single($check_list->get_control_id());
- $type = 'component';
- $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
- } else
- {
- $location_code = $check_list->get_location_code();
- $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$location_code));
- $type = 'location';
- $level =
$this->location_finder->get_location_level($location_code);
- }
+ $component_id = $check_list->get_component_id();
- $year = date("Y", $check_list->get_deadline());
- $month = date("n", $check_list->get_deadline());
+ if($component_id > 0)
+ {
+ $location_id = $check_list->get_location_id();
+ $component_id = $check_list->get_component_id();
- $level =
$this->location_finder->get_location_level($location_code);
- $user_role = true;
+ $component_arr =
execMethod('property.soentity.read_single_eav', array('location_id' =>
$location_id, 'id' => $component_id));
+ $short_desc =
execMethod('property.soentity.get_short_description', array('location_id' =>
$location_id, 'id' => $component_id));
- // Fetches buildings on property
- $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
+ $component = new controller_component();
+
$component->set_location_code($component_arr['location_code']);
+ $component->set_xml_short_desc($short_desc);
+ $component_array = $component->toArray();
- $data = array
- (
- 'control' => $control,
- 'check_list' => $check_list,
- 'buildings_on_property' => $buildings_on_property,
- 'location_array' => $location_array,
- 'component_array' => $component_array,
- 'type' => $type,
- 'current_year' => $year,
- 'current_month_nr' => $month,
- 'building_location_code' => $building_location_code,
- 'location_level' => $level
- );
+ $type = 'component';
+ $building_location_code =
$this->location_finder->get_building_location_code($component_arr['location_code']);
+ }
+ else
+ {
+ $location_code =
$check_list->get_location_code();
+ $location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$location_code));
+ $type = 'location';
+ $level =
$this->location_finder->get_location_level($location_code);
+ }
- phpgwapi_jquery::load_widget('core');
+ $year = date("Y", $check_list->get_deadline());
+ $month = date("n", $check_list->get_deadline());
-
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'check_list/fragments/check_list_top_section',
- 'check_list/fragments/nav_control_plan',
'check_list/view_control_info',
- 'check_list/fragments/select_buildings_on_property'), $data);
- }
+ $level =
$this->location_finder->get_location_level($location_code);
+ $user_role = true;
- function view_control_details()
- {
- $control_id = phpgw::get_var('control_id');
+ // Fetches buildings on property
+ $buildings_on_property =
$this->location_finder->get_buildings_on_property($user_role, $location_code,
$level);
- $control = $this->so_control->get_single($control_id);
+ $data = array
+ (
+ 'control' => $control,
+ 'check_list' => $check_list,
+ 'buildings_on_property' =>
$buildings_on_property,
+ 'location_array' => $location_array,
+ 'component_array' => $component_array,
+ 'type' => $type,
+ 'current_year' => $year,
+ 'current_month_nr' => $month,
+ 'building_location_code' =>
$building_location_code,
+ 'location_level' => $level
+ );
- $data = array
- (
- 'control' => $control,
- );
+ phpgwapi_jquery::load_widget('core');
- self::render_template_xsl('check_list/view_control_details',
$data);
- }
+
self::render_template_xsl(array('check_list/fragments/check_list_menu',
'check_list/fragments/check_list_top_section',
+ 'check_list/fragments/nav_control_plan',
'check_list/view_control_info',
+
'check_list/fragments/select_buildings_on_property'), $data);
+ }
- function view_control_items()
- {
- $check_list_id = phpgw::get_var('check_list_id');
- $check_list = $this->so->get_single($check_list_id);
+ function view_control_details()
+ {
+ $control_id = phpgw::get_var('control_id');
- $control =
$this->so_control->get_single($check_list->get_control_id());
- $control_groups =
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
+ $control = $this->so_control->get_single($control_id);
- $saved_groups_with_items_array = array();
+ $data = array
+ (
+ 'control' => $control,
+ );
- //Populating array with saved control items for each group
- foreach($control_groups as $control_group)
- {
- $saved_control_items =
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
$control_group->get_id());
+
self::render_template_xsl('check_list/view_control_details', $data);
+ }
- $control_item =
$this->so_control_item->get_single($control_item_id);
+ function view_control_items()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
+ $check_list = $this->so->get_single($check_list_id);
- $saved_groups_with_items_array[] = array("control_group" =>
$control_group->toArray(), "control_items" => $saved_control_items);
- }
+ $control =
$this->so_control->get_single($check_list->get_control_id());
+ $control_groups =
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
- $data = array
- (
- 'saved_groups_with_items_array' =>
$saved_groups_with_items_array,
- 'check_list' => $check_list
- );
+ $saved_groups_with_items_array = array();
- self::render_template_xsl('check_list/view_control_items', $data);
- }
+ //Populating array with saved control items for each
group
+ foreach($control_groups as $control_group)
+ {
+ $saved_control_items =
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
$control_group->get_id());
- public function print_check_list()
- {
- $check_list_id = phpgw::get_var('check_list_id');
- $check_list = $this->so->get_single($check_list_id);
+ $control_item =
$this->so_control_item->get_single($control_item_id);
- $control =
$this->so_control->get_single($check_list->get_control_id());
- $control_groups =
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
+ $saved_groups_with_items_array[] =
array("control_group" => $control_group->toArray(), "control_items" =>
$saved_control_items);
+ }
- $saved_groups_with_items_array = array();
+ $data = array
+ (
+ 'saved_groups_with_items_array' =>
$saved_groups_with_items_array,
+ 'check_list' => $check_list
+ );
- //Populating array with saved control items for each group
- foreach($control_groups as $control_group)
- {
- $saved_control_items =
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
$control_group->get_id());
+
self::render_template_xsl('check_list/view_control_items', $data);
+ }
- $control_item =
$this->so_control_item->get_single($control_item_id);
+ public function print_check_list()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
+ $check_list = $this->so->get_single($check_list_id);
- $saved_groups_with_items_array[] = array("control_group" =>
$control_group->toArray(), "control_items" => $saved_control_items);
- }
+ $control =
$this->so_control->get_single($check_list->get_control_id());
+ $control_groups =
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
- $data = array
- (
- 'saved_groups_with_items_array' =>
$saved_groups_with_items_array,
- 'check_list' => $check_list
- );
+ $saved_groups_with_items_array = array();
- self::render_template_xsl('check_list/print_check_list', $data);
- }
+ //Populating array with saved control items for each
group
+ foreach($control_groups as $control_group)
+ {
+ $saved_control_items =
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
$control_group->get_id());
- // Returns check list info as JSON
- public function get_check_list_info()
- {
- $check_list_id = phpgw::get_var('check_list_id');
- $check_list =
$this->so_check_list->get_single_with_check_items($check_list_id, "open");
+ $control_item =
$this->so_control_item->get_single($control_item_id);
- return json_encode($check_list);
- }
+ $saved_groups_with_items_array[] =
array("control_group" => $control_group->toArray(), "control_items" =>
$saved_control_items);
+ }
- // Returns open cases for a check list as JSON
- public function get_cases_for_check_list()
- {
- $check_list_id = phpgw::get_var('check_list_id');
+ $data = array
+ (
+ 'saved_groups_with_items_array' =>
$saved_groups_with_items_array,
+ 'check_list' => $check_list
+ );
- $check_items_with_cases =
$this->so_check_item->get_check_items_with_cases($check_list_id, null, "open",
null);
+
self::render_template_xsl('check_list/print_check_list', $data);
+ }
- return json_encode($check_items_with_cases);
- }
+ // Returns check list info as JSON
+ public function get_check_list_info()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
+ $check_list =
$this->so_check_list->get_single_with_check_items($check_list_id, "open");
- /**
- * Public function for updateing status for a check list
- *
- * @return json encoded array with status saved or not saved
- */
+ return json_encode($check_list);
+ }
+
+ // Returns open cases for a check list as JSON
+ public function get_cases_for_check_list()
+ {
+ $check_list_id = phpgw::get_var('check_list_id');
+
+ $check_items_with_cases =
$this->so_check_item->get_check_items_with_cases($check_list_id, null, "open",
null);
+
+ return json_encode($check_items_with_cases);
+ }
+
+ /**
+ * Public function for updateing status for a check list
+ *
+ * @return json encoded array with status saved or not saved
+ */
public function update_status()
{
+ if(!$this->add && !$this->edit)
+ {
+ return json_encode( array( "status" =>
'not_saved') );
+ }
+
$check_list_id = phpgw::get_var('check_list_id');
$check_list_status = phpgw::get_var('status');
@@ -622,7 +654,7 @@
if($this->so->store($check_list))
{
- return json_encode( array( 'status' =>
$check_list_status) );
+ return json_encode( array( 'status' =>
$check_list_status) );
}
else
{
@@ -630,9 +662,9 @@
}
}
- public function query()
- {
-
- }
+ public function query()
+ {
+
+ }
- }
+ }
Modified: branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -60,6 +60,11 @@
private $so_check_item;
private $_category_acl;
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
public $public_functions = array
(
'index'
=> true,
@@ -80,12 +85,12 @@
{
parent::__construct('controller');
- $read = $GLOBALS['phpgw']->acl->check('.control',
PHPGW_ACL_READ, 'controller');//1
- $add = $GLOBALS['phpgw']->acl->check('.control',
PHPGW_ACL_ADD, 'controller');//2
- $edit = $GLOBALS['phpgw']->acl->check('.control',
PHPGW_ACL_EDIT, 'controller');//4
- $delete = $GLOBALS['phpgw']->acl->check('.control',
PHPGW_ACL_DELETE, 'controller');//8
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
- $manage = $GLOBALS['phpgw']->acl->check('.control',
16, 'controller');//16
+ $this->manage =
$GLOBALS['phpgw']->acl->check('.control', 16, 'controller');//16
//if(!$manage)
@@ -323,7 +328,13 @@
* @param HTTP:: control id, control details fields
* @return redirect to function view_control_groups
*/
- public function save_control_details(){
+ public function save_control_details()
+ {
+ if(!$this->add && !$this->edit)
+ {
+
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=>
'controller.uicontrol.index'));
+ }
+
$control_id = phpgw::get_var('control_id');
// Update existing control details
@@ -366,7 +377,8 @@
$control_id = $this->so->store($control);
$this->redirect(array('menuaction' =>
'controller.uicontrol.view_control_groups', 'control_id' => $control_id));
- }else
+ }
+ else
{
$this->view_control_details($control);
}
@@ -439,6 +451,11 @@
*/
public function save_control_groups()
{
+ if(!$this->add && !$this->edit)
+ {
+
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=>
'controller.uicontrol.index'));
+ }
+
$control_id = phpgw::get_var('control_id');
$control_group_ids =
phpgw::get_var('control_group_ids');
Modified:
branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -51,6 +51,11 @@
private $so_control_item_list;
private $so_control_group_list;
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
public $public_functions = array
(
'index'
=>
true,
@@ -71,11 +76,17 @@
$this->so_control_item_list =
CreateObject('controller.socontrol_item_list');
$this->so_control_group_list =
CreateObject('controller.socontrol_group_list');
$GLOBALS['phpgw_info']['flags']['menu_selection'] =
"controller::control_group";
+
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
}
public function index()
{
- if(phpgw::get_var('phpgw_return_as') == 'json') {
+ if(phpgw::get_var('phpgw_return_as') == 'json')
+ {
return $this->query();
}
@@ -204,6 +215,12 @@
if(isset($_POST['save_control_group'])) // The user has
pressed the save button
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uicontrol_group.index'));
+ }
+
if(isset($control_group)) // Add new values to
the control item
{
$control_group->set_group_name(phpgw::get_var('group_name'));
@@ -260,6 +277,12 @@
}
else if(isset($_POST['remove_control_group_items']))
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uicontrol_group.index'));
+ }
+
$control_item_ids = array();
// Fetching selected control items
$control_tag_ids =
phpgw::get_var('item_remove_ids');
@@ -388,6 +411,12 @@
}
else if(isset($_POST['save_control_group_items']))
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uicontrol_group.index'));
+ }
+
$tab_to_display = 'control_group_items';
//update control items with control group id
//$control_group_id =
phpgw::get_var('control_group_id');
@@ -534,6 +563,12 @@
public function save_group_and_item_order()
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No access',
'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=>
'controller.uicontrol_group.index'));
+ }
+
$control_id = phpgw::get_var('control_id');
$item_order_str = phpgw::get_var('item_order');
$group_order_str = phpgw::get_var('group_order');
@@ -644,7 +679,8 @@
{
$user_rows_per_page =
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
}
- else {
+ else
+ {
$user_rows_per_page = 10;
}
@@ -767,12 +803,18 @@
$control_groups_array =
$this->so->get_all_control_groups_array();
}
else
+ {
$control_groups_array =
$this->so->get_control_groups_by_control_area($control_area_id);
+ }
if(count($control_groups_array)>0)
+ {
return json_encode( $control_groups_array );
+ }
else
+ {
return null;
+ }
}
public function get_control_area_by_control_group()
@@ -798,9 +840,13 @@
}
if(count($control_areas_array)>0)
+ {
return json_encode( $control_areas_array );
+ }
else
+ {
return null;
+ }
}
}
Modified:
branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -47,8 +47,12 @@
private $so;
private $so_control_group;
private $so_control_item_option;
-
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
public $public_functions = array
(
'index'
=> true,
@@ -68,8 +72,14 @@
$this->so_control_item_list =
CreateObject('controller.socontrol_item_list');
$this->so_control_group =
CreateObject('controller.socontrol_group');
$this->so_control_item_option =
CreateObject('controller.socontrol_item_option');
-
+
$GLOBALS['phpgw_info']['flags']['menu_selection'] =
"controller::control_item";
+
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
+
}
public function index()
@@ -99,7 +109,7 @@
(
'id' => $cat_list['cat_id'],
'name' => $cat_list['name'],
- );
+ );
}
// END categories
@@ -118,7 +128,7 @@
'text' =>
lang('Control_area'),
'list' =>
$control_areas_array2,
),
- array('type' => 'text',
+ array('type' => 'text',
'text' =>
lang('searchfield'),
'name' =>
'query'
),
@@ -172,11 +182,11 @@
)
),
);
-
+
phpgwapi_yui::load_widget('paginator');
phpgwapi_yui::load_widget('datatable');
self::add_javascript('phpgwapi', 'yahoo',
'datatable.js');
-
+
self::render_template_xsl( array( 'datatable_common' ),
$data);
}
@@ -203,35 +213,35 @@
if($control_item == null)
{
$control_item_id = phpgw::get_var('id');
-
+
// Edit control item
if($control_item_id > 0)
{
- $control_item =
$this->so->get_single_with_options($control_item_id);
+ $control_item =
$this->so->get_single_with_options($control_item_id);
}
// New control item
else
{
$control_item = new
controller_control_item();
- }
+ }
}
-
+
// Sigurd: START as categories
$cats = CreateObject('phpgwapi.categories', -1,
'controller', '.control');
$cats->supress_info = true;
-
+
$control_areas =
$cats->formatted_xslt_list(array('format'=>'filter','globals' => true,'use_acl'
=> $this->_category_acl));
$control_areas_array = $control_areas['cat_list'];
$control_groups_array =
$this->so_control_group->get_control_group_array();
// Hack to fix display of char
- $what_to_do_fixed = str_replace( " ", "
",$control_item->get_what_to_do() );
- $control_item->set_what_to_do( $what_to_do_fixed );
-
- $how_to_do_fixed = str_replace( " ", "
",$control_item->get_how_to_do() );
- $control_item->set_how_to_do( $how_to_do_fixed );
-
+ $what_to_do_fixed = str_replace( " ", "
",$control_item->get_what_to_do() );
+ $control_item->set_what_to_do( $what_to_do_fixed );
+
+ $how_to_do_fixed = str_replace( " ", "
",$control_item->get_how_to_do() );
+ $control_item->set_how_to_do( $how_to_do_fixed );
+
$data = array
(
'editable' => true,
@@ -241,15 +251,20 @@
);
$this->use_yui_editor(array('what_to_do','how_to_do'));
-
+
phpgwapi_jquery::load_widget('core');
self::add_javascript('controller', 'controller',
'ajax.js');
self::render_template_xsl('control_item/control_item',
$data);
}
-
+
public function save()
{
+ if(!$this->add && !$this->edit)
+ {
+
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=>
'controller.uicontrol_item.index'));
+ }
+
$control_item_id = phpgw::get_var('id');
$title = phpgw::get_var('title');
$required = phpgw::get_var('required') == 'on' ? true :
false;
@@ -269,8 +284,8 @@
else
{
$control_item = new controller_control_item();
- }
-
+ }
+
$control_item->set_title($title);
$control_item->set_required($required);
$control_item->set_control_group_id($control_group_id);
@@ -278,61 +293,64 @@
$control_item->set_type($type);
$control_item->set_what_to_do($what_to_do_txt);
$control_item->set_how_to_do($how_to_do_txt);
-
+
if( $control_item->validate() )
{
- $transaction_status = true;
-
- $db_control_item = $this->so->get_db();
- $db_control_item->transaction_begin();
-
+ $transaction_status = true;
+
+ $db_control_item = $this->so->get_db();
+ $db_control_item->transaction_begin();
+
$saved_control_item_id =
$this->so->store($control_item);
-
- if($saved_control_item_id == 0)
- {
- $transaction_status = false;
- }
-
- // Delete item option values
+
+ if($saved_control_item_id == 0)
+ {
+ $transaction_status = false;
+ }
+
+ // Delete item option values
$delete_status =
$this->so->delete_option_values( $saved_control_item_id );
-
- if($delete_status == 0)
- {
- $transaction_status = false;
- }
-
- if( $transaction_status == true)
- {
- $db_control_item->transaction_commit();
- }
- else
- {
- $db_control_item->transaction_abort();
- }
-
- $option_values = array();
- $option_values = phpgw::get_var('option_values');
-
- $option_values_array = array();
- foreach($option_values as $option_value){
- $control_item_option = new
controller_control_item_option($option_value, $saved_control_item_id);
- $option_values_array[] = $control_item_option;
- }
-
- $control_item->set_options_array($option_values_array);
-
- // Add new control item option values
+
+ if($delete_status == 0)
+ {
+ $transaction_status = false;
+ }
+
+ if( $transaction_status == true)
+ {
+ $db_control_item->transaction_commit();
+ }
+ else
+ {
+ $db_control_item->transaction_abort();
+ }
+
+ $option_values = array();
+ $option_values =
phpgw::get_var('option_values');
+
+ $option_values_array = array();
+ foreach($option_values as $option_value)
+ {
+ $control_item_option = new
controller_control_item_option($option_value, $saved_control_item_id);
+ $option_values_array[] =
$control_item_option;
+ }
+
+
$control_item->set_options_array($option_values_array);
+
+ // Add new control item option values
if( ($transaction_status) &
($saved_control_item_id > 0) & ($control_item->get_type() ==
'control_item_type_3' | $control_item->get_type() == 'control_item_type_4'))
{
$control_item_options_array =
$control_item->get_options_array();
-
- foreach($control_item_options_array as
$control_item_option){
+
+ foreach($control_item_options_array as
$control_item_option)
+ {
$control_item_option_id =
$this->so_control_item_option->store( $control_item_option );
}
}
-
+
$GLOBALS['phpgw']->redirect_link('/index.php',
array('menuaction' => 'controller.uicontrol_item.view', 'id' =>
$saved_control_item_id));
- }else
+ }
+ else
{
$this->edit($control_item);
}
@@ -346,7 +364,7 @@
{
//Retrieve the control_item object
$control_item_id = (int)phpgw::get_var('id');
-
+
if(isset($control_item_id) && $control_item_id > 0)
{
$control_item =
$this->so->get_single_with_options($control_item_id);
@@ -356,26 +374,26 @@
$this->render('permission_denied.php',array('error' =>
lang('invalid_request')));
return;
}
-
+
$category =
execMethod('phpgwapi.categories.return_single',
$control_item->get_control_area_id());
$control_item->set_control_area_name(
$category[0]['name'] );
-
- // Hack to fix display of char
- $what_to_do_fixed = str_replace( " ", "
",$control_item->get_what_to_do() );
- $control_item->set_what_to_do( $what_to_do_fixed );
-
- $how_to_do_fixed = str_replace( " ", "
",$control_item->get_how_to_do() );
- $control_item->set_how_to_do( $how_to_do_fixed );
-
+
+ // Hack to fix display of char
+ $what_to_do_fixed = str_replace( " ", "
",$control_item->get_what_to_do() );
+ $control_item->set_what_to_do( $what_to_do_fixed );
+
+ $how_to_do_fixed = str_replace( " ", "
",$control_item->get_how_to_do() );
+ $control_item->set_how_to_do( $how_to_do_fixed );
+
$data = array
(
'control_item' => $control_item,
- 'view' => true
+ 'view' => true
);
-
+
self::render_template_xsl('control_item/control_item',
$data);
}
-
+
public function query()
{
$params = array(
@@ -385,7 +403,7 @@
'sort' => phpgw::get_var('sort'),
'filters' => $filters
);
-
+
if(phpgw::get_var('sort_dir'))
{
$params['dir'] = phpgw::get_var('sort_dir');
@@ -398,13 +416,13 @@
$ctrl_area = phpgw::get_var('control_areas');
if(isset($ctrl_area) && $ctrl_area > 0)
{
- $filters['control_areas'] = $ctrl_area;
+ $filters['control_areas'] = $ctrl_area;
}
-
+
$ctrl_group = phpgw::get_var('control_groups');
if(isset($ctrl_group) && $ctrl_group > 0)
{
- $filters['control_groups'] = $ctrl_group;
+ $filters['control_groups'] = $ctrl_group;
}
Modified: branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -38,6 +38,12 @@
private $so;
private $so_procedure;
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
+
public $public_functions = array
(
'query'
=> true,
@@ -53,6 +59,10 @@
parent::__construct();
$this->so = controller_sodocument::get_instance();
$this->so_procedure = controller_soprocedure::get_instance();
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
}
public function query()
@@ -96,7 +106,8 @@
//Serialize the documents found
$rows = array();
- foreach ($result_objects as $result) {
+ foreach ($result_objects as $result)
+ {
if(isset($result))
{
$rows[] = $result->serialize();
@@ -206,6 +217,14 @@
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+ $GLOBALS['phpgw']->redirect_link('/index.php',
array('menuaction' => 'controller.uidocument.show',
+
'procedure_id' => $procedure->get_id(),
+
'tab' => 'documents'));
+
+ }
//Create a document object
$document = new controller_document();
$document->set_title(phpgw::get_var('document_title'));
@@ -291,6 +310,15 @@
$document = $this->so->get_single($document_id);
$procedure_id = intval(phpgw::get_var('procedure_id'));
+
+ if(!$this->delete)
+ {
+ phpgwapi_cache::message_set('No access',
'error');
+ $GLOBALS['phpgw']->redirect_link('/index.php',
array('menuaction' => 'controller.uidocument.show',
+
'procedure_id' =>
$procedure_id,
+
'tab' => 'documents'));
+ }
+
$procedure = $this->so_procedure->get_single($procedure_id);
$document_properties = $this->get_type_and_id($document);
Modified: branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -42,6 +42,11 @@
private $so_control_group_list;
private $so_control_group;
+ private $read;
+ private $add;
+ private $edit;
+ private $delete;
+
public $public_functions = array
(
'index'
=> true,
@@ -65,6 +70,11 @@
$GLOBALS['phpgw_info']['flags']['menu_selection'] =
"controller::procedure";
+ $this->read =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1
+ $this->add =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2
+ $this->edit =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4
+ $this->delete =
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8
+
$config = CreateObject('phpgwapi.config','controller');
$config->read();
$this->_category_acl =
isset($config->config_data['acl_at_control_area']) &&
$config->config_data['acl_at_control_area'] == 1 ? true : false;
@@ -180,6 +190,12 @@
if(isset($_POST['save_procedure'])) // The user has
pressed the save button
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.view', 'id' => $procedure_id));
+ }
+
if(isset($procedure)) // Edit procedure
{
$description_txt =
phpgw::get_var('description','html');
@@ -238,6 +254,12 @@
}
else if(isset($_POST['revisit_procedure'])) // The user
has pressed the revisit button
{
+ if(!$this->add && !$this->edit)
+ {
+ phpgwapi_cache::message_set('No
access', 'error');
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.view', 'id' => $procedure_id));
+ }
+
$old_procedure =
$this->so->get_single($procedure_id);
if(isset($procedure)) // Edit procedure
{
@@ -533,7 +555,8 @@
}
}
- public function view_procedures_for_control(){
+ public function view_procedures_for_control()
+ {
$control_id = phpgw::get_var('control_id');
$location_code = phpgw::get_var('location_code');
@@ -567,7 +590,8 @@
self::render_template_xsl('procedure/view_procedures_for_control', $data);
}
- public function print_procedure(){
+ public function print_procedure()
+ {
$procedure_id = phpgw::get_var('procedure_id');
$location_code = phpgw::get_var('location_code');
$control_id = phpgw::get_var('control_id');
@@ -590,7 +614,8 @@
'dateformat' =>
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']
);
- if( !empty($control_group_id) ){
+ if( !empty($control_group_id) )
+ {
$control_group =
$this->so_control_group->get_single($control_group_id);
$data['control_group'] =
$control_group->toArray();
}
@@ -693,7 +718,7 @@
}
- public function add_actions(&$value, $key, $params)
+ public function add_actions(&$value, $key, $params)
{
//Defining new columns
$value['ajax'] = array();
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,12 +6,12 @@
class HTMLPurifier_AttrCollections
{
-
+
/**
* Associative array of attribute collections, indexed by name
*/
public $info = array();
-
+
/**
* Performs all expansions on internal data for use by other inclusions
* It also collects all attribute collection extensions from
@@ -45,7 +45,7 @@
$this->expandIdentifiers($this->info[$name], $attr_types);
}
}
-
+
/**
* Takes a reference to an attribute associative array and performs
* all inclusions specified by the zero index.
@@ -72,7 +72,7 @@
}
unset($attr[0]);
}
-
+
/**
* Expands all string identifiers in an attribute array by replacing
* them with the appropriate values inside HTMLPurifier_AttrTypes
@@ -80,17 +80,17 @@
* @param $attr_types HTMLPurifier_AttrTypes instance
*/
public function expandIdentifiers(&$attr, $attr_types) {
-
+
// because foreach will process new elements we add, make sure we
// skip duplicates
$processed = array();
-
+
foreach ($attr as $def_i => $def) {
// skip inclusions
if ($def_i === 0) continue;
-
+
if (isset($processed[$def_i])) continue;
-
+
// determine whether or not attribute is required
if ($required = (strpos($def_i, '*') !== false)) {
// rename the definition
@@ -98,21 +98,21 @@
$def_i = trim($def_i, '*');
$attr[$def_i] = $def;
}
-
+
$processed[$def_i] = true;
-
+
// if we've already got a literal object, move on
if (is_object($def)) {
// preserve previous required
$attr[$def_i]->required = ($required ||
$attr[$def_i]->required);
continue;
}
-
+
if ($def === false) {
unset($attr[$def_i]);
continue;
}
-
+
if ($t = $attr_types->get($def)) {
$attr[$def_i] = $t;
$attr[$def_i]->required = $required;
@@ -120,8 +120,9 @@
unset($attr[$def_i]);
}
}
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,11 +2,11 @@
class HTMLPurifier_AttrDef_CSS_AlphaValue extends
HTMLPurifier_AttrDef_CSS_Number
{
-
+
public function __construct() {
parent::__construct(false); // opacity is non-negative, but we will
clamp it
}
-
+
public function validate($number, $config, $context) {
$result = parent::validate($number, $config, $context);
if ($result === false) return $result;
@@ -15,5 +15,7 @@
if ($float > 1.0) $result = '1';
return $result;
}
-
+
}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,13 +6,13 @@
*/
class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
{
-
+
/**
* Local copy of component validators.
* @note See HTMLPurifier_AttrDef_Font::$info for a similar impl.
*/
protected $info;
-
+
public function __construct($config) {
$def = $config->getCSSDefinition();
$this->info['background-color'] = $def->info['background-color'];
@@ -21,29 +21,29 @@
$this->info['background-attachment'] =
$def->info['background-attachment'];
$this->info['background-position'] = $def->info['background-position'];
}
-
+
public function validate($string, $config, $context) {
-
+
// regular pre-processing
$string = $this->parseCDATA($string);
if ($string === '') return false;
-
+
// munge rgb() decl if necessary
$string = $this->mungeRgb($string);
-
+
// assumes URI doesn't have spaces in it
- $bits = explode(' ', strtolower($string)); // bits to process
-
+ $bits = explode(' ', $string); // bits to process
+
$caught = array();
$caught['color'] = false;
$caught['image'] = false;
$caught['repeat'] = false;
$caught['attachment'] = false;
$caught['position'] = false;
-
+
$i = 0; // number of catches
$none = false;
-
+
foreach ($bits as $bit) {
if ($bit === '') continue;
foreach ($caught as $key => $status) {
@@ -64,23 +64,24 @@
break;
}
}
-
+
if (!$i) return false;
if ($caught['position'] !== false) {
$caught['position'] = $this->info['background-position']->
validate($caught['position'], $config, $context);
}
-
+
$ret = array();
foreach ($caught as $value) {
if ($value === false) continue;
$ret[] = $value;
}
-
+
if (empty($ret)) return false;
return implode(' ', $ret);
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,7 +7,7 @@
[
<percentage> | <length> | left | center | right
]
- [
+ [
<percentage> | <length> | top | center | bottom
]?
] |
@@ -28,10 +28,10 @@
/* QuirksMode says:
keyword + length/percentage must be ordered correctly, as per W3C
-
+
Internet Explorer and Opera, however, support arbitrary ordering. We
should fix it up.
-
+
Minor issue though, not strictly necessary.
*/
@@ -43,27 +43,28 @@
*/
class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef
{
-
+
protected $length;
protected $percentage;
-
+
public function __construct() {
$this->length = new HTMLPurifier_AttrDef_CSS_Length();
$this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage();
}
-
+
public function validate($string, $config, $context) {
$string = $this->parseCDATA($string);
$bits = explode(' ', $string);
-
+
$keywords = array();
$keywords['h'] = false; // left, right
$keywords['v'] = false; // top, bottom
- $keywords['c'] = false; // center
+ $keywords['ch'] = false; // center (first word)
+ $keywords['cv'] = false; // center (second word)
$measures = array();
-
+
$i = 0;
-
+
$lookup = array(
'top' => 'v',
'bottom' => 'v',
@@ -71,55 +72,62 @@
'right' => 'h',
'center' => 'c'
);
-
+
foreach ($bits as $bit) {
if ($bit === '') continue;
-
+
// test for keyword
$lbit = ctype_lower($bit) ? $bit : strtolower($bit);
if (isset($lookup[$lbit])) {
$status = $lookup[$lbit];
+ if ($status == 'c') {
+ if ($i == 0) {
+ $status = 'ch';
+ } else {
+ $status = 'cv';
+ }
+ }
$keywords[$status] = $lbit;
$i++;
}
-
+
// test for length
$r = $this->length->validate($bit, $config, $context);
if ($r !== false) {
$measures[] = $r;
$i++;
}
-
+
// test for percentage
$r = $this->percentage->validate($bit, $config, $context);
if ($r !== false) {
$measures[] = $r;
$i++;
}
-
+
}
-
+
if (!$i) return false; // no valid values were caught
-
-
+
$ret = array();
-
+
// first keyword
if ($keywords['h']) $ret[] = $keywords['h'];
+ elseif ($keywords['ch']) {
+ $ret[] = $keywords['ch'];
+ $keywords['cv'] = false; // prevent re-use: center = center center
+ }
elseif (count($measures)) $ret[] = array_shift($measures);
- elseif ($keywords['c']) {
- $ret[] = $keywords['c'];
- $keywords['c'] = false; // prevent re-use: center = center center
- }
-
+
if ($keywords['v']) $ret[] = $keywords['v'];
+ elseif ($keywords['cv']) $ret[] = $keywords['cv'];
elseif (count($measures)) $ret[] = array_shift($measures);
- elseif ($keywords['c']) $ret[] = $keywords['c'];
-
+
if (empty($ret)) return false;
return implode(' ', $ret);
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,19 +5,19 @@
*/
class HTMLPurifier_AttrDef_CSS_Border extends HTMLPurifier_AttrDef
{
-
+
/**
* Local copy of properties this property is shorthand for.
*/
protected $info = array();
-
+
public function __construct($config) {
$def = $config->getCSSDefinition();
$this->info['border-width'] = $def->info['border-width'];
$this->info['border-style'] = $def->info['border-style'];
$this->info['border-top-color'] = $def->info['border-top-color'];
}
-
+
public function validate($string, $config, $context) {
$string = $this->parseCDATA($string);
$string = $this->mungeRgb($string);
@@ -37,6 +37,7 @@
}
return rtrim($ret);
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,18 +5,18 @@
*/
class HTMLPurifier_AttrDef_CSS_Color extends HTMLPurifier_AttrDef
{
-
+
public function validate($color, $config, $context) {
-
+
static $colors = null;
- if ($colors === null) $colors = $config->get('Core', 'ColorKeywords');
-
+ if ($colors === null) $colors = $config->get('Core.ColorKeywords');
+
$color = trim($color);
if ($color === '') return false;
-
+
$lower = strtolower($color);
if (isset($colors[$lower])) return $colors[$lower];
-
+
if (strpos($color, 'rgb(') !== false) {
// rgb literal handling
$length = strlen($color);
@@ -68,10 +68,11 @@
if ($length !== 3 && $length !== 6) return false;
if (!ctype_xdigit($hex)) return false;
}
-
+
return $color;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,7 +2,7 @@
/**
* Allows multiple validators to attempt to validate attribute.
- *
+ *
* Composite is just what it sounds like: a composite of many validators.
* This means that multiple HTMLPurifier_AttrDef objects will have a whack
* at the string. If one of them passes, that's what is returned. This is
@@ -11,20 +11,20 @@
*/
class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef
{
-
+
/**
* List of HTMLPurifier_AttrDef objects that may process strings
* @todo Make protected
*/
public $defs;
-
+
/**
* @param $defs List of HTMLPurifier_AttrDef objects
*/
public function __construct($defs) {
$this->defs = $defs;
}
-
+
public function validate($string, $config, $context) {
foreach ($this->defs as $i => $def) {
$result = $this->defs[$i]->validate($string, $config, $context);
@@ -32,6 +32,7 @@
}
return false;
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,8 +5,8 @@
*/
class HTMLPurifier_AttrDef_CSS_DenyElementDecorator extends
HTMLPurifier_AttrDef
{
- protected $def, $element;
-
+ public $def, $element;
+
/**
* @param $def Definition to wrap
* @param $element Element to deny
@@ -24,3 +24,5 @@
return $this->def->validate($string, $config, $context);
}
}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,13 +7,13 @@
*/
class HTMLPurifier_AttrDef_CSS_Filter extends HTMLPurifier_AttrDef
{
-
+
protected $intValidator;
-
+
public function __construct() {
$this->intValidator = new HTMLPurifier_AttrDef_Integer();
}
-
+
public function validate($value, $config, $context) {
$value = $this->parseCDATA($value);
if ($value === 'none') return $value;
@@ -48,5 +48,7 @@
$ret_function = "$function($ret_parameters)";
return $ret_function;
}
-
+
}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,17 +5,17 @@
*/
class HTMLPurifier_AttrDef_CSS_Font extends HTMLPurifier_AttrDef
{
-
+
/**
* Local copy of component validators.
- *
+ *
* @note If we moved specific CSS property definitions to their own
* classes instead of having them be assembled at run time by
* CSSDefinition, this wouldn't be necessary. We'd instantiate
* our own copies.
*/
protected $info = array();
-
+
public function __construct($config) {
$def = $config->getCSSDefinition();
$this->info['font-style'] = $def->info['font-style'];
@@ -25,9 +25,9 @@
$this->info['line-height'] = $def->info['line-height'];
$this->info['font-family'] = $def->info['font-family'];
}
-
+
public function validate($string, $config, $context) {
-
+
static $system_fonts = array(
'caption' => true,
'icon' => true,
@@ -36,27 +36,27 @@
'small-caption' => true,
'status-bar' => true
);
-
+
// regular pre-processing
$string = $this->parseCDATA($string);
if ($string === '') return false;
-
+
// check if it's one of the keywords
$lowercase_string = strtolower($string);
if (isset($system_fonts[$lowercase_string])) {
return $lowercase_string;
}
-
+
$bits = explode(' ', $string); // bits to process
$stage = 0; // this indicates what we're looking for
$caught = array(); // which stage 0 properties have we caught?
$stage_1 = array('font-style', 'font-variant', 'font-weight');
$final = ''; // output
-
+
for ($i = 0, $size = count($bits); $i < $size; $i++) {
if ($bits[$i] === '') continue;
switch ($stage) {
-
+
// attempting to catch font-style, font-variant or font-weight
case 0:
foreach ($stage_1 as $validator_name) {
@@ -72,7 +72,7 @@
// all three caught, continue on
if (count($caught) >= 3) $stage = 1;
if ($r !== false) break;
-
+
// attempting to catch font-size and perhaps line-height
case 1:
$found_slash = false;
@@ -126,7 +126,7 @@
break;
}
return false;
-
+
// attempting to catch font-family
case 2:
$font_family =
@@ -143,6 +143,7 @@
}
return false;
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,11 +2,43 @@
/**
* Validates a font family list according to CSS spec
- * @todo whitelisting allowed fonts would be nice
*/
class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
{
-
+
+ protected $mask = null;
+
+ public function __construct() {
+ $this->mask = '_- ';
+ for ($c = 'a'; $c <= 'z'; $c++) $this->mask .= $c;
+ for ($c = 'A'; $c <= 'Z'; $c++) $this->mask .= $c;
+ for ($c = '0'; $c <= '9'; $c++) $this->mask .= $c; // cast-y, but
should be fine
+ // special bytes used by UTF-8
+ for ($i = 0x80; $i <= 0xFF; $i++) {
+ // We don't bother excluding invalid bytes in this range,
+ // because the our restriction of well-formed UTF-8 will
+ // prevent these from ever occurring.
+ $this->mask .= chr($i);
+ }
+
+ /*
+ PHP's internal strcspn implementation is
+ O(length of string * length of mask), making it inefficient
+ for large masks. However, it's still faster than
+ preg_match 8)
+ for (p = s1;;) {
+ spanp = s2;
+ do {
+ if (*spanp == c || p == s1_end) {
+ return p - s1;
+ }
+ } while (spanp++ < (s2_end - 1));
+ c = *++p;
+ }
+ */
+ // possible optimization: invert the mask.
+ }
+
public function validate($string, $config, $context) {
static $generic_names = array(
'serif' => true,
@@ -15,8 +47,8 @@
'fantasy' => true,
'cursive' => true
);
-
- $string = $this->parseCDATA($string);
+ $allowed_fonts = $config->get('CSS.AllowedFonts');
+
// assume that no font names contain commas in them
$fonts = explode(',', $string);
$final = '';
@@ -25,7 +57,9 @@
if ($font === '') continue;
// match a generic name
if (isset($generic_names[$font])) {
- $final .= $font . ', ';
+ if ($allowed_fonts === null || isset($allowed_fonts[$font])) {
+ $final .= $font . ', ';
+ }
continue;
}
// match a quoted name
@@ -35,29 +69,129 @@
$quote = $font[0];
if ($font[$length - 1] !== $quote) continue;
$font = substr($font, 1, $length - 2);
- // double-backslash processing is buggy
- $font = str_replace("\\$quote", $quote, $font); // de-escape
quote
- $font = str_replace("\\\n", "\n", $font); // de-escape
newlines
}
+
+ $font = $this->expandCSSEscape($font);
+
// $font is a pure representation of the font name
-
- if (ctype_alnum($font)) {
+
+ if ($allowed_fonts !== null && !isset($allowed_fonts[$font])) {
+ continue;
+ }
+
+ if (ctype_alnum($font) && $font !== '') {
// very simple font, allow it in unharmed
$final .= $font . ', ';
continue;
}
-
- // complicated font, requires quoting
-
- // armor single quotes and new lines
- $font = str_replace("'", "\\'", $font);
- $font = str_replace("\n", "\\\n", $font);
+
+ // bugger out on whitespace. form feed (0C) really
+ // shouldn't show up regardless
+ $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font);
+
+ // Here, there are various classes of characters which need
+ // to be treated differently:
+ // - Alphanumeric characters are essentially safe. We
+ // handled these above.
+ // - Spaces require quoting, though most parsers will do
+ // the right thing if there aren't any characters that
+ // can be misinterpreted
+ // - Dashes rarely occur, but they fairly unproblematic
+ // for parsing/rendering purposes.
+ // The above characters cover the majority of Western font
+ // names.
+ // - Arbitrary Unicode characters not in ASCII. Because
+ // most parsers give little thought to Unicode, treatment
+ // of these codepoints is basically uniform, even for
+ // punctuation-like codepoints. These characters can
+ // show up in non-Western pages and are supported by most
+ // major browsers, for example: "MS 明朝" is a
+ // legitimate font-name
+ // <http://ja.wikipedia.org/wiki/MS_明朝>. See
+ // the CSS3 spec for more examples:
+ //
<http://www.w3.org/TR/2011/WD-css3-fonts-20110324/localizedfamilynames.png>
+ // You can see live samples of these on the Internet:
+ // <http://www.google.co.jp/search?q=font-family+MS+明朝|ゴシック>
+ // However, most of these fonts have ASCII equivalents:
+ // for example, 'MS Mincho', and it's considered
+ // professional to use ASCII font names instead of
+ // Unicode font names. Thanks Takeshi Terada for
+ // providing this information.
+ // The following characters, to my knowledge, have not been
+ // used to name font names.
+ // - Single quote. While theoretically you might find a
+ // font name that has a single quote in its name (serving
+ // as an apostrophe, e.g. Dave's Scribble), I haven't
+ // been able to find any actual examples of this.
+ // Internet Explorer's cssText translation (which I
+ // believe is invoked by innerHTML) normalizes any
+ // quoting to single quotes, and fails to escape single
+ // quotes. (Note that this is not IE's behavior for all
+ // CSS properties, just some sort of special casing for
+ // font-family). So a single quote *cannot* be used
+ // safely in the font-family context if there will be an
+ // innerHTML/cssText translation. Note that Firefox 3.x
+ // does this too.
+ // - Double quote. In IE, these get normalized to
+ // single-quotes, no matter what the encoding. (Fun
+ // fact, in IE8, the 'content' CSS property gained
+ // support, where they special cased to preserve encoded
+ // double quotes, but still translate unadorned double
+ // quotes into single quotes.) So, because their
+ // fixpoint behavior is identical to single quotes, they
+ // cannot be allowed either. Firefox 3.x displays
+ // single-quote style behavior.
+ // - Backslashes are reduced by one (so \\ -> \) every
+ // iteration, so they cannot be used safely. This shows
+ // up in IE7, IE8 and FF3
+ // - Semicolons, commas and backticks are handled properly.
+ // - The rest of the ASCII punctuation is handled properly.
+ // We haven't checked what browsers do to unadorned
+ // versions, but this is not important as long as the
+ // browser doesn't /remove/ surrounding quotes (as IE does
+ // for HTML).
+ //
+ // With these results in hand, we conclude that there are
+ // various levels of safety:
+ // - Paranoid: alphanumeric, spaces and dashes(?)
+ // - International: Paranoid + non-ASCII Unicode
+ // - Edgy: Everything except quotes, backslashes
+ // - NoJS: Standards compliance, e.g. sod IE. Note that
+ // with some judicious character escaping (since certain
+ // types of escaping doesn't work) this is theoretically
+ // OK as long as innerHTML/cssText is not called.
+ // We believe that international is a reasonable default
+ // (that we will implement now), and once we do more
+ // extensive research, we may feel comfortable with dropping
+ // it down to edgy.
+
+ // Edgy: alphanumeric, spaces, dashes, underscores and Unicode.
Use of
+ // str(c)spn assumes that the string was already well formed
+ // Unicode (which of course it is).
+ if (strspn($font, $this->mask) !== strlen($font)) {
+ continue;
+ }
+
+ // Historical:
+ // In the absence of innerHTML/cssText, these ugly
+ // transforms don't pose a security risk (as \\ and \"
+ // might--these escapes are not supported by most browsers).
+ // We could try to be clever and use single-quote wrapping
+ // when there is a double quote present, but I have choosen
+ // not to implement that. (NOTE: you can reduce the amount
+ // of escapes by one depending on what quoting style you use)
+ // $font = str_replace('\\', '\\5C ', $font);
+ // $font = str_replace('"', '\\22 ', $font);
+ // $font = str_replace("'", '\\27 ', $font);
+
+ // font possibly with spaces, requires quoting
$final .= "'$font', ";
}
$final = rtrim($final, ', ');
if ($final === '') return false;
return $final;
}
-
+
}
+// vim: et sw=4 sts=4
Copied:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
(from rev 11093,
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php)
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
(rev 0)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Validates based on {ident} CSS grammar production
+ */
+class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef
+{
+
+ public function validate($string, $config, $context) {
+
+ $string = trim($string);
+
+ // early abort: '' and '0' (strings that convert to false) are invalid
+ if (!$string) return false;
+
+ $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/';
+ if (!preg_match($pattern, $string)) return false;
+ return $string;
+
+ }
+
+}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,8 +5,8 @@
*/
class HTMLPurifier_AttrDef_CSS_ImportantDecorator extends HTMLPurifier_AttrDef
{
- protected $def, $allow;
-
+ public $def, $allow;
+
/**
* @param $def Definition to wrap
* @param $allow Whether or not to allow !important
@@ -36,3 +36,5 @@
return $string;
}
}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,48 +5,43 @@
*/
class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
{
-
+
+ protected $min, $max;
+
/**
- * Valid unit lookup table.
- * @warning The code assumes all units are two characters long. Be careful
- * if we have to change this behavior!
+ * @param HTMLPurifier_Length $max Minimum length, or null for no bound.
String is also acceptable.
+ * @param HTMLPurifier_Length $max Maximum length, or null for no bound.
String is also acceptable.
*/
- protected $units = array('em' => true, 'ex' => true, 'px' => true, 'in' =>
true,
- 'cm' => true, 'mm' => true, 'pt' => true, 'pc' => true);
- /**
- * Instance of HTMLPurifier_AttrDef_Number to defer number validation to
- */
- protected $number_def;
-
- /**
- * @param $non_negative Bool indication whether or not negative values are
- * allowed.
- */
- public function __construct($non_negative = false) {
- $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
+ public function __construct($min = null, $max = null) {
+ $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
+ $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
}
-
- public function validate($length, $config, $context) {
-
- $length = $this->parseCDATA($length);
- if ($length === '') return false;
- if ($length === '0') return '0';
- $strlen = strlen($length);
- if ($strlen === 1) return false; // impossible!
-
- // we assume all units are two characters
- $unit = substr($length, $strlen - 2);
- if (!ctype_lower($unit)) $unit = strtolower($unit);
- $number = substr($length, 0, $strlen - 2);
-
- if (!isset($this->units[$unit])) return false;
-
- $number = $this->number_def->validate($number, $config, $context);
- if ($number === false) return false;
-
- return $number . $unit;
-
+
+ public function validate($string, $config, $context) {
+ $string = $this->parseCDATA($string);
+
+ // Optimizations
+ if ($string === '') return false;
+ if ($string === '0') return '0';
+ if (strlen($string) === 1) return false;
+
+ $length = HTMLPurifier_Length::make($string);
+ if (!$length->isValid()) return false;
+
+ if ($this->min) {
+ $c = $length->compareTo($this->min);
+ if ($c === false) return false;
+ if ($c < 0) return false;
+ }
+ if ($this->max) {
+ $c = $length->compareTo($this->max);
+ if ($c === false) return false;
+ if ($c > 0) return false;
+ }
+
+ return $length->toString();
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,37 +6,37 @@
*/
class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef
{
-
+
/**
* Local copy of component validators.
* @note See HTMLPurifier_AttrDef_CSS_Font::$info for a similar impl.
*/
protected $info;
-
+
public function __construct($config) {
$def = $config->getCSSDefinition();
$this->info['list-style-type'] = $def->info['list-style-type'];
$this->info['list-style-position'] = $def->info['list-style-position'];
$this->info['list-style-image'] = $def->info['list-style-image'];
}
-
+
public function validate($string, $config, $context) {
-
+
// regular pre-processing
$string = $this->parseCDATA($string);
if ($string === '') return false;
-
+
// assumes URI doesn't have spaces in it
$bits = explode(' ', strtolower($string)); // bits to process
-
+
$caught = array();
$caught['type'] = false;
$caught['position'] = false;
$caught['image'] = false;
-
+
$i = 0; // number of catches
$none = false;
-
+
foreach ($bits as $bit) {
if ($i >= 3) return; // optimization bit
if ($bit === '') continue;
@@ -54,24 +54,25 @@
break;
}
}
-
+
if (!$i) return false;
-
+
$ret = array();
-
+
// construct type
if ($caught['type']) $ret[] = $caught['type'];
-
+
// construct image
if ($caught['image']) $ret[] = $caught['image'];
-
+
// construct position
if ($caught['position']) $ret[] = $caught['position'];
-
+
if (empty($ret)) return false;
return implode(' ', $ret);
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,30 +2,30 @@
/**
* Framework class for strings that involve multiple values.
- *
+ *
* Certain CSS properties such as border-width and margin allow multiple
* lengths to be specified. This class can take a vanilla border-width
* definition and multiply it, usually into a max of four.
- *
+ *
* @note Even though the CSS specification isn't clear about it, inherit
* can only be used alone: it will never manifest as part of a multi
* shorthand declaration. Thus, this class does not allow inherit.
*/
class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef
{
-
+
/**
* Instance of component definition to defer validation to.
* @todo Make protected
*/
public $single;
-
+
/**
* Max number of values allowed.
* @todo Make protected
*/
public $max;
-
+
/**
* @param $single HTMLPurifier_AttrDef to multiply
* @param $max Max number of values allowed (usually four)
@@ -34,7 +34,7 @@
$this->single = $single;
$this->max = $max;
}
-
+
public function validate($string, $config, $context) {
$string = $this->parseCDATA($string);
if ($string === '') return false;
@@ -52,6 +52,7 @@
if ($final === '') return false;
return rtrim($final);
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,26 +5,30 @@
*/
class HTMLPurifier_AttrDef_CSS_Number extends HTMLPurifier_AttrDef
{
-
+
/**
* Bool indicating whether or not only positive values allowed.
*/
protected $non_negative = false;
-
+
/**
* @param $non_negative Bool indicating whether negatives are forbidden
*/
public function __construct($non_negative = false) {
$this->non_negative = $non_negative;
}
-
+
+ /**
+ * @warning Some contexts do not pass $config, $context. These
+ * variables should not be used without checking
HTMLPurifier_Length
+ */
public function validate($number, $config, $context) {
-
+
$number = $this->parseCDATA($number);
-
+
if ($number === '') return false;
if ($number === '0') return '0';
-
+
$sign = '';
switch ($number[0]) {
case '-':
@@ -33,32 +37,33 @@
case '+':
$number = substr($number, 1);
}
-
+
if (ctype_digit($number)) {
$number = ltrim($number, '0');
return $number ? $sign . $number : '0';
}
-
+
// Period is the only non-numeric character allowed
if (strpos($number, '.') === false) return false;
-
+
list($left, $right) = explode('.', $number, 2);
-
+
if ($left === '' && $right === '') return false;
if ($left !== '' && !ctype_digit($left)) return false;
-
+
$left = ltrim($left, '0');
$right = rtrim($right, '0');
-
+
if ($right === '') {
return $left ? $sign . $left : '0';
} elseif (!ctype_digit($right)) {
return false;
}
-
+
return $sign . $left . '.' . $right;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,35 +5,36 @@
*/
class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
{
-
+
/**
* Instance of HTMLPurifier_AttrDef_CSS_Number to defer number validation
*/
protected $number_def;
-
+
/**
* @param Bool indicating whether to forbid negative values
*/
public function __construct($non_negative = false) {
$this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
}
-
+
public function validate($string, $config, $context) {
-
+
$string = $this->parseCDATA($string);
-
+
if ($string === '') return false;
$length = strlen($string);
if ($length === 1) return false;
if ($string[$length - 1] !== '%') return false;
-
+
$number = substr($string, 0, $length - 1);
$number = $this->number_def->validate($number, $config, $context);
-
+
if ($number === false) return false;
return "$number%";
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,16 +7,19 @@
*/
class HTMLPurifier_AttrDef_CSS_TextDecoration extends HTMLPurifier_AttrDef
{
-
+
public function validate($string, $config, $context) {
-
+
static $allowed_values = array(
'line-through' => true,
'overline' => true,
- 'underline' => true
+ 'underline' => true,
);
-
+
$string = strtolower($this->parseCDATA($string));
+
+ if ($string === 'none') return $string;
+
$parts = explode(' ', $string);
$final = '';
foreach ($parts as $part) {
@@ -27,8 +30,9 @@
$final = rtrim($final);
if ($final === '') return false;
return $final;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -11,45 +11,51 @@
*/
class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI
{
-
+
public function __construct() {
parent::__construct(true); // always embedded
}
-
+
public function validate($uri_string, $config, $context) {
// parse the URI out of the string and then pass it onto
// the parent object
-
+
$uri_string = $this->parseCDATA($uri_string);
if (strpos($uri_string, 'url(') !== 0) return false;
$uri_string = substr($uri_string, 4);
$new_length = strlen($uri_string) - 1;
if ($uri_string[$new_length] != ')') return false;
$uri = trim(substr($uri_string, 0, $new_length));
-
+
if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) {
$quote = $uri[0];
$new_length = strlen($uri) - 1;
if ($uri[$new_length] !== $quote) return false;
$uri = substr($uri, 1, $new_length - 1);
}
-
- $keys = array( '(', ')', ',', ' ', '"', "'");
- $values = array('\\(', '\\)', '\\,', '\\ ', '\\"', "\\'");
- $uri = str_replace($values, $keys, $uri);
-
+
+ $uri = $this->expandCSSEscape($uri);
+
$result = parent::validate($uri, $config, $context);
-
+
if ($result === false) return false;
-
- // escape necessary characters according to CSS spec
- // except for the comma, none of these should appear in the
- // URI at all
- $result = str_replace($keys, $values, $result);
-
- return "url($result)";
-
+
+ // extra sanity check; should have been done by URI
+ $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "",
$result);
+
+ // suspicious characters are ()'; we're going to percent encode
+ // them for safety.
+ $result = str_replace(array('(', ')', "'"), array('%28', '%29',
'%27'), $result);
+
+ // there's an extra bug where ampersands lose their escaping on
+ // an innerHTML cycle, so a very unlucky query parameter could
+ // then change the meaning of the URL. Unfortunately, there's
+ // not much we can do about that...
+
+ return "url(\"$result\")";
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -13,22 +13,28 @@
*/
class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef
{
-
+
public function validate($css, $config, $context) {
-
+
$css = $this->parseCDATA($css);
-
+
$definition = $config->getCSSDefinition();
-
+
// we're going to break the spec and explode by semicolons.
// This is because semicolon rarely appears in escaped form
// Doing this is generally flaky but fast
// IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI
// for details
-
+
$declarations = explode(';', $css);
$propvalues = array();
-
+
+ /**
+ * Name of the current CSS property being validated.
+ */
+ $property = false;
+ $context->register('CurrentCSSProperty', $property);
+
foreach ($declarations as $declaration) {
if (!$declaration) continue;
if (!strpos($declaration, ':')) continue;
@@ -60,19 +66,22 @@
if ($result === false) continue;
$propvalues[$property] = $result;
}
-
+
+ $context->destroy('CurrentCSSProperty');
+
// procedure does not write the new CSS simultaneously, so it's
// slightly inefficient, but it's the only way of getting rid of
// duplicates. Perhaps config to optimize it, but not now.
-
+
$new_declarations = '';
foreach ($propvalues as $prop => $value) {
$new_declarations .= "$prop:$value;";
}
-
+
return $new_declarations ? $new_declarations : false;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Copied:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
(from rev 11093,
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php)
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
(rev 0)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Dummy AttrDef that mimics another AttrDef, BUT it generates clones
+ * with make.
+ */
+class HTMLPurifier_AttrDef_Clone extends HTMLPurifier_AttrDef
+{
+ /**
+ * What we're cloning
+ */
+ protected $clone;
+
+ public function __construct($clone) {
+ $this->clone = $clone;
+ }
+
+ public function validate($v, $config, $context) {
+ return $this->clone->validate($v, $config, $context);
+ }
+
+ public function make($string) {
+ return clone $this->clone;
+ }
+
+}
+
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -9,19 +9,19 @@
*/
class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef
{
-
+
/**
* Lookup table of valid values.
* @todo Make protected
*/
public $valid_values = array();
-
+
/**
* Bool indicating whether or not enumeration is case sensitive.
* @note In general this is always case insensitive.
*/
protected $case_sensitive = false; // values according to W3C spec
-
+
/**
* @param $valid_values List of valid values
* @param $case_sensitive Bool indicating whether or not case sensitive
@@ -32,7 +32,7 @@
$this->valid_values = array_flip($valid_values);
$this->case_sensitive = $case_sensitive;
}
-
+
public function validate($string, $config, $context) {
$string = trim($string);
if (!$this->case_sensitive) {
@@ -40,10 +40,10 @@
$string = ctype_lower($string) ? $string : strtolower($string);
}
$result = isset($this->valid_values[$string]);
-
+
return $result ? $string : false;
}
-
+
/**
* @param $string In form of comma-delimited list of case-insensitive
* valid values. Example: "foo,bar,baz". Prepend "s:" to make
@@ -59,6 +59,7 @@
$values = explode(',', $string);
return new HTMLPurifier_AttrDef_Enum($values, $sensitive);
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,23 +5,24 @@
*/
class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
{
-
+
protected $name;
public $minimized = true;
-
+
public function __construct($name = false) {$this->name = $name;}
-
+
public function validate($string, $config, $context) {
if (empty($string)) return false;
return $this->name;
}
-
+
/**
* @param $string Name of attribute
*/
public function make($string) {
return new HTMLPurifier_AttrDef_HTML_Bool($string);
}
-
+
}
+// vim: et sw=4 sts=4
Copied:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
(from rev 11093,
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php)
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
(rev 0)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * Implements special behavior for class attribute (normally NMTOKENS)
+ */
+class HTMLPurifier_AttrDef_HTML_Class extends
HTMLPurifier_AttrDef_HTML_Nmtokens
+{
+ protected function split($string, $config, $context) {
+ // really, this twiddle should be lazy loaded
+ $name = $config->getDefinition('HTML')->doctype->name;
+ if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {
+ return parent::split($string, $config, $context);
+ } else {
+ return preg_split('/\s+/', $string);
+ }
+ }
+ protected function filter($tokens, $config, $context) {
+ $allowed = $config->get('Attr.AllowedClasses');
+ $forbidden = $config->get('Attr.ForbiddenClasses');
+ $ret = array();
+ foreach ($tokens as $token) {
+ if (
+ ($allowed === null || isset($allowed[$token])) &&
+ !isset($forbidden[$token]) &&
+ // We need this O(n) check because of PHP's array
+ // implementation that casts -0 to 0.
+ !in_array($token, $ret, true)
+ ) {
+ $ret[] = $token;
+ }
+ }
+ return $ret;
+ }
+}
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,27 +5,29 @@
*/
class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef
{
-
+
public function validate($string, $config, $context) {
-
+
static $colors = null;
- if ($colors === null) $colors = $config->get('Core', 'ColorKeywords');
-
+ if ($colors === null) $colors = $config->get('Core.ColorKeywords');
+
$string = trim($string);
-
+
if (empty($string)) return false;
- if (isset($colors[$string])) return $colors[$string];
+ $lower = strtolower($string);
+ if (isset($colors[$lower])) return $colors[$lower];
if ($string[0] === '#') $hex = substr($string, 1);
else $hex = $string;
-
+
$length = strlen($hex);
if ($length !== 3 && $length !== 6) return false;
if (!ctype_xdigit($hex)) return false;
if ($length === 3) $hex =
$hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2];
-
+
return "#$hex";
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,16 +5,17 @@
*/
class HTMLPurifier_AttrDef_HTML_FrameTarget extends HTMLPurifier_AttrDef_Enum
{
-
+
public $valid_values = false; // uninitialized value
protected $case_sensitive = false;
-
+
public function __construct() {}
-
+
public function validate($string, $config, $context) {
- if ($this->valid_values === false) $this->valid_values =
$config->get('Attr', 'AllowedFrameTargets');
+ if ($this->valid_values === false) $this->valid_values =
$config->get('Attr.AllowedFrameTargets');
return parent::validate($string, $config, $context);
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -11,35 +11,45 @@
class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef
{
-
- // ref functionality disabled, since we also have to verify
- // whether or not the ID it refers to exists
-
+
+ // selector is NOT a valid thing to use for IDREFs, because IDREFs
+ // *must* target IDs that exist, whereas selector #ids do not.
+
+ /**
+ * Determines whether or not we're validating an ID in a CSS
+ * selector context.
+ */
+ protected $selector;
+
+ public function __construct($selector = false) {
+ $this->selector = $selector;
+ }
+
public function validate($id, $config, $context) {
-
- if (!$config->get('Attr', 'EnableID')) return false;
-
+
+ if (!$this->selector && !$config->get('Attr.EnableID')) return false;
+
$id = trim($id); // trim it first
-
+
if ($id === '') return false;
-
- $prefix = $config->get('Attr', 'IDPrefix');
+
+ $prefix = $config->get('Attr.IDPrefix');
if ($prefix !== '') {
- $prefix .= $config->get('Attr', 'IDPrefixLocal');
+ $prefix .= $config->get('Attr.IDPrefixLocal');
// prevent re-appending the prefix
if (strpos($id, $prefix) !== 0) $id = $prefix . $id;
- } elseif ($config->get('Attr', 'IDPrefixLocal') !== '') {
+ } elseif ($config->get('Attr.IDPrefixLocal') !== '') {
trigger_error('%Attr.IDPrefixLocal cannot be used unless '.
'%Attr.IDPrefix is set', E_USER_WARNING);
}
-
- //if (!$this->ref) {
+
+ if (!$this->selector) {
$id_accumulator =& $context->get('IDAccumulator');
if (isset($id_accumulator->ids[$id])) return false;
- //}
-
+ }
+
// we purposely avoid using regex, hopefully this is faster
-
+
if (ctype_alpha($id)) {
$result = true;
} else {
@@ -50,20 +60,21 @@
);
$result = ($trim === '');
}
-
- $regexp = $config->get('Attr', 'IDBlacklistRegexp');
+
+ $regexp = $config->get('Attr.IDBlacklistRegexp');
if ($regexp && preg_match($regexp, $id)) {
return false;
}
-
- if (/*!$this->ref && */$result) $id_accumulator->add($id);
-
+
+ if (!$this->selector && $result) $id_accumulator->add($id);
+
// if no change was made to the ID, return the result
// else, return the new id if stripping whitespace made it
// valid, or return false.
return $result ? $id : false;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,39 +2,40 @@
/**
* Validates the HTML type length (not to be confused with CSS's length).
- *
+ *
* This accepts integer pixels or percentages as lengths for certain
* HTML attributes.
*/
class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels
{
-
+
public function validate($string, $config, $context) {
-
+
$string = trim($string);
if ($string === '') return false;
-
+
$parent_result = parent::validate($string, $config, $context);
if ($parent_result !== false) return $parent_result;
-
+
$length = strlen($string);
$last_char = $string[$length - 1];
-
+
if ($last_char !== '%') return false;
-
+
$points = substr($string, 0, $length - 1);
-
+
if (!is_numeric($points)) return false;
-
+
$points = (int) $points;
-
+
if ($points < 0) return '0%';
if ($points > 100) return '100%';
-
+
return ((string) $points) . '%';
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -8,10 +8,10 @@
*/
class HTMLPurifier_AttrDef_HTML_LinkTypes extends HTMLPurifier_AttrDef
{
-
+
/** Name config attribute to pull. */
protected $name;
-
+
public function __construct($name) {
$configLookup = array(
'rel' => 'AllowedRel',
@@ -24,15 +24,15 @@
}
$this->name = $configLookup[$name];
}
-
+
public function validate($string, $config, $context) {
-
- $allowed = $config->get('Attr', $this->name);
+
+ $allowed = $config->get('Attr.' . $this->name);
if (empty($allowed)) return false;
-
+
$string = $this->parseCDATA($string);
$parts = explode(' ', $string);
-
+
// lookup to prevent duplicates
$ret_lookup = array();
foreach ($parts as $part) {
@@ -40,16 +40,14 @@
if (!isset($allowed[$part])) continue;
$ret_lookup[$part] = true;
}
-
+
if (empty($ret_lookup)) return false;
-
- $ret_array = array();
- foreach ($ret_lookup as $part => $bool) $ret_array[] = $part;
- $string = implode(' ', $ret_array);
-
+ $string = implode(' ', array_keys($ret_lookup));
+
return $string;
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,39 +2,40 @@
/**
* Validates a MultiLength as defined by the HTML spec.
- *
+ *
* A multilength is either a integer (pixel count), a percentage, or
* a relative number.
*/
class HTMLPurifier_AttrDef_HTML_MultiLength extends
HTMLPurifier_AttrDef_HTML_Length
{
-
+
public function validate($string, $config, $context) {
-
+
$string = trim($string);
if ($string === '') return false;
-
+
$parent_result = parent::validate($string, $config, $context);
if ($parent_result !== false) return $parent_result;
-
+
$length = strlen($string);
$last_char = $string[$length - 1];
-
+
if ($last_char !== '*') return false;
-
+
$int = substr($string, 0, $length - 1);
-
+
if ($int == '') return '*';
if (!is_numeric($int)) return false;
-
+
$int = (int) $int;
-
+
if ($int < 0) return false;
if ($int == 0) return '0';
if ($int == 1) return '*';
return ((string) $int) . '*';
-
+
}
-
+
}
+// vim: et sw=4 sts=4
Modified:
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
===================================================================
---
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
2013-05-07 08:11:24 UTC (rev 11093)
+++
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,46 +2,51 @@
/**
* Validates contents based on NMTOKENS attribute type.
- * @note The only current use for this is the class attribute in HTML
- * @note Could have some functionality factored out into Nmtoken class
- * @warning We cannot assume this class will be used only for 'class'
- * attributes. Not sure how to hook in magic behavior, then.
*/
class HTMLPurifier_AttrDef_HTML_Nmtokens extends HTMLPurifier_AttrDef
{
-
+
public function validate($string, $config, $context) {
-
+
$string = trim($string);
-
+
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [11094] Merge 11089:11093 from trunk,
Sigurd Nes <=