Version Description
(14th Dec 2019) = * Fix: Sub Menus -> Text Alignment Option does not work * Fix: Trigger Icon Position * Fix: Trigger Icon Border CSS code * Fix: Menu Text goes under Trigger Icon
Download this release
Release Info
Developer | expresstech |
Plugin | Responsive Menu |
Version | 3.1.25 |
Comparing to | |
See all releases |
Code changes from version 3.1.24 to 3.1.25
- public/css/app.css.twig +48 -4
- public/img/banner.jpg +0 -0
- public/img/banner.png +0 -0
- readme.txt +11 -5
- responsive-menu.php +33 -4
- vendor/composer/autoload_files.php +10 -0
- vendor/symfony/polyfill-ctype/Ctype.php +227 -0
- vendor/symfony/polyfill-ctype/LICENSE +19 -0
- vendor/symfony/polyfill-ctype/README.md +12 -0
- vendor/symfony/polyfill-ctype/bootstrap.php +26 -0
- vendor/symfony/polyfill-ctype/composer.json +34 -0
- vendor/twig/twig/.gitignore +5 -0
- vendor/twig/twig/doc/filters/filter.rst +58 -0
- vendor/twig/twig/doc/filters/map.rst +38 -0
- vendor/twig/twig/doc/filters/reduce.rst +33 -0
- vendor/twig/twig/doc/filters/spaceless.rst +65 -0
- vendor/twig/twig/doc/tags/apply.rst +23 -0
- vendor/twig/twig/doc/tags/deprecated.rst +30 -0
- vendor/twig/twig/drupal_test.sh +51 -0
- vendor/twig/twig/ext/twig/.gitignore +30 -0
- vendor/twig/twig/lib/Twig/Node/Deprecated.php +11 -0
- vendor/twig/twig/lib/Twig/Profiler/Dumper/Base.php +11 -0
- vendor/twig/twig/lib/Twig/TokenParser/Deprecated.php +11 -0
- vendor/twig/twig/src/Cache/CacheInterface.php +60 -0
- vendor/twig/twig/src/Cache/FilesystemCache.php +93 -0
- vendor/twig/twig/src/Cache/NullCache.php +42 -0
- vendor/twig/twig/src/Compiler.php +288 -0
- vendor/twig/twig/src/Environment.php +1638 -0
- vendor/twig/twig/src/Error/Error.php +325 -0
- vendor/twig/twig/src/Error/LoaderError.php +23 -0
- vendor/twig/twig/src/Error/RuntimeError.php +24 -0
- vendor/twig/twig/src/Error/SyntaxError.php +57 -0
- vendor/twig/twig/src/ExpressionParser.php +834 -0
- vendor/twig/twig/src/Extension/AbstractExtension.php +72 -0
- vendor/twig/twig/src/Extension/CoreExtension.php +1724 -0
- vendor/twig/twig/src/Extension/DebugExtension.php +76 -0
- vendor/twig/twig/src/Extension/EscaperExtension.php +120 -0
- vendor/twig/twig/src/Extension/ExtensionInterface.php +101 -0
- vendor/twig/twig/src/Extension/GlobalsInterface.php +26 -0
- vendor/twig/twig/src/Extension/InitRuntimeInterface.php +26 -0
- vendor/twig/twig/src/Extension/OptimizerExtension.php +39 -0
- vendor/twig/twig/src/Extension/ProfilerExtension.php +53 -0
- vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php +19 -0
- vendor/twig/twig/src/Extension/SandboxExtension.php +109 -0
- vendor/twig/twig/src/Extension/StagingExtension.php +117 -0
- vendor/twig/twig/src/Extension/StringLoaderExtension.php +54 -0
- vendor/twig/twig/src/FileExtensionEscapingStrategy.php +62 -0
- vendor/twig/twig/src/Lexer.php +534 -0
- vendor/twig/twig/src/Loader/ArrayLoader.php +102 -0
- vendor/twig/twig/src/Loader/ChainLoader.php +164 -0
- vendor/twig/twig/src/Loader/ExistsLoaderInterface.php +33 -0
- vendor/twig/twig/src/Loader/FilesystemLoader.php +323 -0
- vendor/twig/twig/src/Loader/LoaderInterface.php +61 -0
- vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php +38 -0
- vendor/twig/twig/src/Markup.php +41 -0
- vendor/twig/twig/src/Node/AutoEscapeNode.php +40 -0
- vendor/twig/twig/src/Node/BlockNode.php +45 -0
- vendor/twig/twig/src/Node/BlockReferenceNode.php +38 -0
- vendor/twig/twig/src/Node/BodyNode.php +23 -0
- vendor/twig/twig/src/Node/CheckSecurityNode.php +85 -0
- vendor/twig/twig/src/Node/CheckToStringNode.php +42 -0
- vendor/twig/twig/src/Node/DeprecatedNode.php +55 -0
- vendor/twig/twig/src/Node/DoNode.php +40 -0
- vendor/twig/twig/src/Node/EmbedNode.php +52 -0
- vendor/twig/twig/src/Node/Expression/AbstractExpression.php +26 -0
- vendor/twig/twig/src/Node/Expression/ArrayExpression.php +88 -0
- vendor/twig/twig/src/Node/Expression/ArrowFunctionExpression.php +64 -0
- vendor/twig/twig/src/Node/Expression/AssignNameExpression.php +29 -0
- vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php +43 -0
- vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php +37 -0
- vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php +31 -0
- vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/InBinary.php +35 -0
- vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php +35 -0
- vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php +24 -0
- vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php +35 -0
- vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php +39 -0
- vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php +35 -0
- vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php +37 -0
- vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php +25 -0
- vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php +98 -0
- vendor/twig/twig/src/Node/Expression/CallExpression.php +305 -0
- vendor/twig/twig/src/Node/Expression/ConditionalExpression.php +38 -0
- vendor/twig/twig/src/Node/Expression/ConstantExpression.php +30 -0
- vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php +54 -0
- vendor/twig/twig/src/Node/Expression/FilterExpression.php +47 -0
- vendor/twig/twig/src/Node/Expression/FunctionExpression.php +51 -0
- vendor/twig/twig/src/Node/Expression/GetAttrExpression.php +80 -0
- vendor/twig/twig/src/Node/Expression/InlinePrint.php +35 -0
- vendor/twig/twig/src/Node/Expression/MethodCallExpression.php +48 -0
- vendor/twig/twig/src/Node/Expression/NameExpression.php +119 -0
- vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php +58 -0
- vendor/twig/twig/src/Node/Expression/ParentExpression.php +48 -0
- vendor/twig/twig/src/Node/Expression/TempNameExpression.php +33 -0
- vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php +51 -0
- vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php +71 -0
- vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php +38 -0
- vendor/twig/twig/src/Node/Expression/Test/EvenTest.php +37 -0
- vendor/twig/twig/src/Node/Expression/Test/NullTest.php +36 -0
- vendor/twig/twig/src/Node/Expression/Test/OddTest.php +37 -0
- vendor/twig/twig/src/Node/Expression/Test/SameasTest.php +36 -0
- vendor/twig/twig/src/Node/Expression/TestExpression.php +51 -0
- vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php +35 -0
- vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php +25 -0
- vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php +25 -0
- vendor/twig/twig/src/Node/FlushNode.php +37 -0
- vendor/twig/twig/src/Node/ForLoopNode.php +56 -0
- vendor/twig/twig/src/Node/ForNode.php +119 -0
- vendor/twig/twig/src/Node/IfNode.php +72 -0
- vendor/twig/twig/src/Node/ImportNode.php +57 -0
- vendor/twig/twig/src/Node/IncludeNode.php +108 -0
- vendor/twig/twig/src/Node/MacroNode.php +136 -0
- vendor/twig/twig/src/Node/ModuleNode.php +492 -0
- vendor/twig/twig/src/Node/Node.php +274 -0
- vendor/twig/twig/src/Node/NodeCaptureInterface.php +23 -0
- vendor/twig/twig/src/Node/NodeOutputInterface.php +23 -0
- vendor/twig/twig/src/Node/PrintNode.php +41 -0
- vendor/twig/twig/src/Node/SandboxNode.php +47 -0
- vendor/twig/twig/src/Node/SandboxedPrintNode.php +69 -0
- vendor/twig/twig/src/Node/SetNode.php +107 -0
- vendor/twig/twig/src/Node/SetTempNode.php +44 -0
- vendor/twig/twig/src/Node/SpacelessNode.php +47 -0
- vendor/twig/twig/src/Node/TextNode.php +40 -0
- vendor/twig/twig/src/Node/WithNode.php +72 -0
- vendor/twig/twig/src/NodeTraverser.php +89 -0
- vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php +59 -0
- vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php +209 -0
- vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php +50 -0
- vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php +273 -0
- vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php +164 -0
- vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php +137 -0
- vendor/twig/twig/src/Parser.php +439 -0
- vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php +65 -0
- vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php +76 -0
- vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php +51 -0
- vendor/twig/twig/src/Profiler/Dumper/TextDumper.php +39 -0
- vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php +44 -0
- vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php +38 -0
- vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php +80 -0
- vendor/twig/twig/src/Profiler/Profile.php +188 -0
- vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php +41 -0
- vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php +41 -0
- vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php +31 -0
- vendor/twig/twig/src/Sandbox/SecurityError.php +25 -0
- vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php +35 -0
- vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php +35 -0
- vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php +42 -0
- vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php +42 -0
- vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php +35 -0
- vendor/twig/twig/src/Sandbox/SecurityPolicy.php +129 -0
- vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php +28 -0
- vendor/twig/twig/src/Source.php +55 -0
- vendor/twig/twig/src/Template.php +733 -0
- vendor/twig/twig/src/TemplateWrapper.php +161 -0
- vendor/twig/twig/src/Test/IntegrationTestCase.php +257 -0
- vendor/twig/twig/src/Test/NodeTestCase.php +79 -0
- vendor/twig/twig/src/Token.php +215 -0
- vendor/twig/twig/src/TokenParser/AbstractTokenParser.php +34 -0
- vendor/twig/twig/src/TokenParser/ApplyTokenParser.php +58 -0
- vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php +88 -0
- vendor/twig/twig/src/TokenParser/BlockTokenParser.php +80 -0
- vendor/twig/twig/src/TokenParser/DeprecatedTokenParser.php +44 -0
- vendor/twig/twig/src/TokenParser/DoTokenParser.php +39 -0
- vendor/twig/twig/src/TokenParser/EmbedTokenParser.php +74 -0
- vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php +54 -0
- vendor/twig/twig/src/TokenParser/FilterTokenParser.php +59 -0
- vendor/twig/twig/src/TokenParser/FlushTokenParser.php +39 -0
- vendor/twig/twig/src/TokenParser/ForTokenParser.php +136 -0
- vendor/twig/twig/src/TokenParser/FromTokenParser.php +72 -0
- vendor/twig/twig/src/TokenParser/IfTokenParser.php +91 -0
- vendor/twig/twig/src/TokenParser/ImportTokenParser.php +45 -0
- vendor/twig/twig/src/TokenParser/IncludeTokenParser.php +68 -0
- vendor/twig/twig/src/TokenParser/MacroTokenParser.php +68 -0
- vendor/twig/twig/src/TokenParser/SandboxTokenParser.php +67 -0
- vendor/twig/twig/src/TokenParser/SetTokenParser.php +74 -0
- vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php +53 -0
- vendor/twig/twig/src/TokenParser/TokenParserInterface.php +51 -0
- vendor/twig/twig/src/TokenParser/UseTokenParser.php +75 -0
- vendor/twig/twig/src/TokenParser/WithTokenParser.php +57 -0
- vendor/twig/twig/src/TokenStream.php +201 -0
- vendor/twig/twig/src/TwigFilter.php +128 -0
- vendor/twig/twig/src/TwigFunction.php +118 -0
- vendor/twig/twig/src/TwigTest.php +87 -0
- vendor/twig/twig/src/Util/DeprecationCollector.php +92 -0
- vendor/twig/twig/src/Util/TemplateDirIterator.php +30 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/errors/leak-output.php +31 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_extends.test +12 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/exception_in_extension_include.test +12 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/strict_comparison_operator.test +6 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_argument_defined_twice.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/call_positional_arg_after_named_arg.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/floats.test +16 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/not_arrow_fn.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/string_operator_as_var_assignment.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_more_elements.test +23 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/filter.test +46 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/filter_php_55.test +23 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/filter_php_56.test +27 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/map.test +41 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/reduce.test +14 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/filters/spaceless.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing_exists.test +11 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/include_missing_extends.test +13 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include_template_from_string.test +11 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string_error.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/regression/block_names_unicity.test +19 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/basic.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/json_encode.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/multiple.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/nested.test +16 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/scope.test +15 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/with_for_tag.test +13 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/apply/with_if_tag.test +29 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/deprecated/block.legacy.test +20 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/deprecated/macro.legacy.test +21 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/deprecated/template.legacy.test +12 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/scope.test +11 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing_exists.test +11 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/include_missing_extends.test +13 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_in_block.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_in_macro.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_as_template_wrapper.test +12 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_in_block_is_local.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_local_override.test +28 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_macro_in_a_macro.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_nested_blocks.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_nested_blocks_with_global_macro.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_syntax_error.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_and_blocks.test +36 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_from_string_template.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_in_block_is_local.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_local_override.test +28 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_macro_in_a_macro.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_nested_blocks.legacy.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_nested_blocks_with_global_macro.legacy.test +18 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_self_parent.test +23 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_syntax_error.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_with_reserved_name.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/array.test +16 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture_scope.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance.test +24 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/inheritance_overriding.test +24 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/mutating.test +17 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/use_with_parent.test +24 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/globals.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tags/with/iterable.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined_on_complex_expr.test +8 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/tests/dynamic_test.test +14 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_block.test +68 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_delimiter_as_strings.test +10 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_left.test +32 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_left.test +33 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_line_right.test +32 -0
- vendor/twig/twig/test/Twig/Tests/Fixtures/whitespace/trim_right.test +28 -0
- vendor/twig/twig/test/Twig/Tests/Node/DeprecatedTest.php +80 -0
- vendor/twig/twig/test/Twig/Tests/NodeTraverserTest.php +47 -0
public/css/app.css.twig
CHANGED
@@ -149,10 +149,33 @@ button#responsive-menu-button,
|
|
149 |
width: 100%;
|
150 |
display: block;
|
151 |
text-decoration: none;
|
152 |
-
|
153 |
position: relative;
|
154 |
}
|
155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
#responsive-menu-container li.responsive-menu-item a .fa {
|
157 |
margin-right: 15px;
|
158 |
}
|
@@ -512,7 +535,13 @@ button#responsive-menu-button,
|
|
512 |
line-height: {{ options.submenu_arrow_height }}px;
|
513 |
width: {{ options.submenu_arrow_width }}px;
|
514 |
color: {{ options.menu_sub_arrow_shape_colour }};
|
515 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
516 |
background-color: {{ options.menu_sub_arrow_background_colour }};
|
517 |
}
|
518 |
|
@@ -552,6 +581,7 @@ button#responsive-menu-button,
|
|
552 |
font-family: {{ "'" ~ options.submenu_font ~ "'" }};
|
553 |
{% endif %}
|
554 |
font-size: {{ options.submenu_font_size }}px;
|
|
|
555 |
}
|
556 |
|
557 |
#responsive-menu-container #responsive-menu ul.responsive-menu-submenu li.responsive-menu-item a {
|
@@ -587,12 +617,26 @@ button#responsive-menu-button,
|
|
587 |
}
|
588 |
|
589 |
#responsive-menu-container #responsive-menu ul.responsive-menu-submenu li.responsive-menu-item a .responsive-menu-subarrow {
|
590 |
-
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
height: {{ options.submenu_submenu_arrow_height }}px;
|
592 |
line-height: {{ options.submenu_submenu_arrow_height }}px;
|
593 |
width: {{ options.submenu_submenu_arrow_width }}px;
|
594 |
color: {{ options.submenu_sub_arrow_shape_colour }};
|
595 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
596 |
background-color: {{ options.submenu_sub_arrow_background_colour }};
|
597 |
}
|
598 |
|
149 |
width: 100%;
|
150 |
display: block;
|
151 |
text-decoration: none;
|
152 |
+
|
153 |
position: relative;
|
154 |
}
|
155 |
|
156 |
+
|
157 |
+
#responsive-menu-container #responsive-menu li.responsive-menu-item a {
|
158 |
+
{% if options.menu_text_alignment == 'left' and options.arrow_position == 'left' %}
|
159 |
+
padding-left: {{options.submenu_arrow_width + 5}}px;
|
160 |
+
{% elseif options.menu_text_alignment == 'right' and options.arrow_position == 'right' %}
|
161 |
+
padding-right: {{options.submenu_arrow_width + 5}}px;
|
162 |
+
{% else %}
|
163 |
+
padding: 0 {{ options.menu_depth_0 }}%;
|
164 |
+
{% endif %}
|
165 |
+
}
|
166 |
+
|
167 |
+
#responsive-menu-container .responsive-menu-submenu li.responsive-menu-item a {
|
168 |
+
{% if options.submenu_text_alignment == 'left' and options.submenu_arrow_position == 'left' %}
|
169 |
+
padding-left: {{options.submenu_submenu_arrow_width + 5}}px !important;
|
170 |
+
padding-right:unset !important;
|
171 |
+
{% elseif options.submenu_text_alignment == 'right' and options.submenu_arrow_position == 'right' %}
|
172 |
+
padding-right: {{options.submenu_submenu_arrow_width + 5}}px !important;
|
173 |
+
padding-left:unset !important;
|
174 |
+
{% else %}
|
175 |
+
padding: 0 {{ options.menu_depth_0 }}%;
|
176 |
+
{% endif %}
|
177 |
+
}
|
178 |
+
|
179 |
#responsive-menu-container li.responsive-menu-item a .fa {
|
180 |
margin-right: 15px;
|
181 |
}
|
535 |
line-height: {{ options.submenu_arrow_height }}px;
|
536 |
width: {{ options.submenu_arrow_width }}px;
|
537 |
color: {{ options.menu_sub_arrow_shape_colour }};
|
538 |
+
{% if options.arrow_position == 'left' %}
|
539 |
+
border-right: {{ options.menu_border_width }}px
|
540 |
+
{% endif %}
|
541 |
+
{% if options.arrow_position == 'right' %}
|
542 |
+
border-left: {{ options.menu_border_width }}px
|
543 |
+
{% endif %}
|
544 |
+
solid {{ options.menu_sub_arrow_border_colour }};
|
545 |
background-color: {{ options.menu_sub_arrow_background_colour }};
|
546 |
}
|
547 |
|
581 |
font-family: {{ "'" ~ options.submenu_font ~ "'" }};
|
582 |
{% endif %}
|
583 |
font-size: {{ options.submenu_font_size }}px;
|
584 |
+
text-align: {{ options.submenu_text_alignment }};
|
585 |
}
|
586 |
|
587 |
#responsive-menu-container #responsive-menu ul.responsive-menu-submenu li.responsive-menu-item a {
|
617 |
}
|
618 |
|
619 |
#responsive-menu-container #responsive-menu ul.responsive-menu-submenu li.responsive-menu-item a .responsive-menu-subarrow {
|
620 |
+
{% if options.submenu_arrow_position == 'left' %}
|
621 |
+
left:0;
|
622 |
+
right:unset;
|
623 |
+
{% endif %}
|
624 |
+
{% if options.submenu_arrow_position == 'right' %}
|
625 |
+
left:unset;
|
626 |
+
right:0;
|
627 |
+
{% endif %}
|
628 |
height: {{ options.submenu_submenu_arrow_height }}px;
|
629 |
line-height: {{ options.submenu_submenu_arrow_height }}px;
|
630 |
width: {{ options.submenu_submenu_arrow_width }}px;
|
631 |
color: {{ options.submenu_sub_arrow_shape_colour }};
|
632 |
+
{% if options.submenu_arrow_position == 'left' %}
|
633 |
+
border-right: {{ options.submenu_border_width }}px solid {{ options.submenu_sub_arrow_border_colour }} !important;
|
634 |
+
border-left:unset !important;
|
635 |
+
{% endif %}
|
636 |
+
{% if options.submenu_arrow_position == 'right' %}
|
637 |
+
border-left: {{ options.submenu_border_width }}px solid {{ options.submenu_sub_arrow_border_colour }} !important;
|
638 |
+
border-right:unset !important;
|
639 |
+
{% endif %}
|
640 |
background-color: {{ options.submenu_sub_arrow_background_colour }};
|
641 |
}
|
642 |
|
public/img/banner.jpg
ADDED
Binary file
|
public/img/banner.png
ADDED
Binary file
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
=== Responsive Menu ===
|
2 |
-
Contributors:
|
3 |
-
Tags: responsive, menu, navigation, mobile, hamburger
|
4 |
Requires at least: 3.6
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 3.1.
|
7 |
Requires PHP: 5.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -111,6 +111,12 @@ To view our FAQ, please go to [https://responsive.menu/faq/](https://responsive.
|
|
111 |
|
112 |
== Changelog ==
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
= 3.1.24 (14th Aug 2019) =
|
115 |
* Allow support for PHP 5.5 again.
|
116 |
* Downgrade Twig back to 1.33.0 as it doesn't play nicely with other plugins.
|
1 |
+
=== Responsive Menu - Create Mobile-Friendly Menu ===
|
2 |
+
Contributors: expresstech,responsivemenu
|
3 |
+
Tags: responsive, menu, navigation, mobile, hamburger, mobile menu, responsive menu
|
4 |
Requires at least: 3.6
|
5 |
+
Tested up to: 5.3.2
|
6 |
+
Stable tag: 3.1.25
|
7 |
Requires PHP: 5.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
111 |
|
112 |
== Changelog ==
|
113 |
|
114 |
+
= 3.1.25 (14th Dec 2019) =
|
115 |
+
* Fix: Sub Menus -> Text Alignment Option does not work
|
116 |
+
* Fix: Trigger Icon Position
|
117 |
+
* Fix: Trigger Icon Border CSS code
|
118 |
+
* Fix: Menu Text goes under Trigger Icon
|
119 |
+
|
120 |
= 3.1.24 (14th Aug 2019) =
|
121 |
* Allow support for PHP 5.5 again.
|
122 |
* Downgrade Twig back to 1.33.0 as it doesn't play nicely with other plugins.
|
responsive-menu.php
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
|
3 |
/*
|
4 |
Plugin Name: Responsive Menu
|
5 |
-
Plugin URI: https://
|
6 |
Description: Highly Customisable Responsive Menu Plugin for WordPress
|
7 |
-
Version: 3.1.
|
8 |
-
Author:
|
9 |
Text Domain: responsive-menu
|
10 |
Author URI: https://responsive.menu
|
11 |
License: GPL2
|
12 |
-
Tags: responsive, menu, responsive menu
|
13 |
*/
|
14 |
|
15 |
add_action('admin_init', 'check_responsive_menu_php_version');
|
@@ -32,6 +32,35 @@ function responsive_menu_deactivation_text() {
|
|
32 |
if(version_compare(PHP_VERSION, '5.4', '<'))
|
33 |
return;
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
include dirname(__FILE__) . '/vendor/autoload.php';
|
36 |
include dirname(__FILE__) . '/config/default_options.php';
|
37 |
include dirname(__FILE__) . '/config/services.php';
|
2 |
|
3 |
/*
|
4 |
Plugin Name: Responsive Menu
|
5 |
+
Plugin URI: https://expresstech.io
|
6 |
Description: Highly Customisable Responsive Menu Plugin for WordPress
|
7 |
+
Version: 3.1.25
|
8 |
+
Author: ExpressTech
|
9 |
Text Domain: responsive-menu
|
10 |
Author URI: https://responsive.menu
|
11 |
License: GPL2
|
12 |
+
Tags: responsive, menu, responsive menu, mega menu, max mega menu, max menu
|
13 |
*/
|
14 |
|
15 |
add_action('admin_init', 'check_responsive_menu_php_version');
|
32 |
if(version_compare(PHP_VERSION, '5.4', '<'))
|
33 |
return;
|
34 |
|
35 |
+
add_action( 'admin_notices', 'og_pro_deactivate_pro_version_notice');
|
36 |
+
|
37 |
+
function og_pro_deactivate_pro_version_notice() {
|
38 |
+
if(get_transient('og-admin-notice-activation-pro')) {
|
39 |
+
?>
|
40 |
+
<div class="notice notice-error is-dismissible">
|
41 |
+
<p>Responsive Menu Pro has been deactivated<p/>
|
42 |
+
|
43 |
+
</div>
|
44 |
+
<?php
|
45 |
+
delete_transient('og-admin-notice-activation-pro');
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
function og_deactivate_responsive_menu_pro() {
|
50 |
+
|
51 |
+
$plugin = 'responsive-menu-pro/responsive-menu-pro.php';
|
52 |
+
|
53 |
+
if( is_plugin_active($plugin) ){
|
54 |
+
deactivate_plugins( 'responsive-menu-pro/responsive-menu-pro.php');
|
55 |
+
set_transient( 'og-admin-notice-activation-pro', true, 5 );
|
56 |
+
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
}
|
60 |
+
//to check weather another plugin is acivated or not.
|
61 |
+
register_activation_hook( __FILE__, 'og_deactivate_responsive_menu_pro');
|
62 |
+
|
63 |
+
|
64 |
include dirname(__FILE__) . '/vendor/autoload.php';
|
65 |
include dirname(__FILE__) . '/config/default_options.php';
|
66 |
include dirname(__FILE__) . '/config/services.php';
|
vendor/composer/autoload_files.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_files.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
10 |
+
);
|
vendor/symfony/polyfill-ctype/Ctype.php
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Symfony package.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier <fabien@symfony.com>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Symfony\Polyfill\Ctype;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Ctype implementation through regex.
|
16 |
+
*
|
17 |
+
* @internal
|
18 |
+
*
|
19 |
+
* @author Gert de Pagter <BackEndTea@gmail.com>
|
20 |
+
*/
|
21 |
+
final class Ctype
|
22 |
+
{
|
23 |
+
/**
|
24 |
+
* Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.
|
25 |
+
*
|
26 |
+
* @see https://php.net/ctype-alnum
|
27 |
+
*
|
28 |
+
* @param string|int $text
|
29 |
+
*
|
30 |
+
* @return bool
|
31 |
+
*/
|
32 |
+
public static function ctype_alnum($text)
|
33 |
+
{
|
34 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
35 |
+
|
36 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Returns TRUE if every character in text is a letter, FALSE otherwise.
|
41 |
+
*
|
42 |
+
* @see https://php.net/ctype-alpha
|
43 |
+
*
|
44 |
+
* @param string|int $text
|
45 |
+
*
|
46 |
+
* @return bool
|
47 |
+
*/
|
48 |
+
public static function ctype_alpha($text)
|
49 |
+
{
|
50 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
51 |
+
|
52 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.
|
57 |
+
*
|
58 |
+
* @see https://php.net/ctype-cntrl
|
59 |
+
*
|
60 |
+
* @param string|int $text
|
61 |
+
*
|
62 |
+
* @return bool
|
63 |
+
*/
|
64 |
+
public static function ctype_cntrl($text)
|
65 |
+
{
|
66 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
67 |
+
|
68 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise.
|
73 |
+
*
|
74 |
+
* @see https://php.net/ctype-digit
|
75 |
+
*
|
76 |
+
* @param string|int $text
|
77 |
+
*
|
78 |
+
* @return bool
|
79 |
+
*/
|
80 |
+
public static function ctype_digit($text)
|
81 |
+
{
|
82 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
83 |
+
|
84 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.
|
89 |
+
*
|
90 |
+
* @see https://php.net/ctype-graph
|
91 |
+
*
|
92 |
+
* @param string|int $text
|
93 |
+
*
|
94 |
+
* @return bool
|
95 |
+
*/
|
96 |
+
public static function ctype_graph($text)
|
97 |
+
{
|
98 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
99 |
+
|
100 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Returns TRUE if every character in text is a lowercase letter.
|
105 |
+
*
|
106 |
+
* @see https://php.net/ctype-lower
|
107 |
+
*
|
108 |
+
* @param string|int $text
|
109 |
+
*
|
110 |
+
* @return bool
|
111 |
+
*/
|
112 |
+
public static function ctype_lower($text)
|
113 |
+
{
|
114 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
115 |
+
|
116 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.
|
121 |
+
*
|
122 |
+
* @see https://php.net/ctype-print
|
123 |
+
*
|
124 |
+
* @param string|int $text
|
125 |
+
*
|
126 |
+
* @return bool
|
127 |
+
*/
|
128 |
+
public static function ctype_print($text)
|
129 |
+
{
|
130 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
131 |
+
|
132 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.
|
137 |
+
*
|
138 |
+
* @see https://php.net/ctype-punct
|
139 |
+
*
|
140 |
+
* @param string|int $text
|
141 |
+
*
|
142 |
+
* @return bool
|
143 |
+
*/
|
144 |
+
public static function ctype_punct($text)
|
145 |
+
{
|
146 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
147 |
+
|
148 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.
|
153 |
+
*
|
154 |
+
* @see https://php.net/ctype-space
|
155 |
+
*
|
156 |
+
* @param string|int $text
|
157 |
+
*
|
158 |
+
* @return bool
|
159 |
+
*/
|
160 |
+
public static function ctype_space($text)
|
161 |
+
{
|
162 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
163 |
+
|
164 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Returns TRUE if every character in text is an uppercase letter.
|
169 |
+
*
|
170 |
+
* @see https://php.net/ctype-upper
|
171 |
+
*
|
172 |
+
* @param string|int $text
|
173 |
+
*
|
174 |
+
* @return bool
|
175 |
+
*/
|
176 |
+
public static function ctype_upper($text)
|
177 |
+
{
|
178 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
179 |
+
|
180 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.
|
185 |
+
*
|
186 |
+
* @see https://php.net/ctype-xdigit
|
187 |
+
*
|
188 |
+
* @param string|int $text
|
189 |
+
*
|
190 |
+
* @return bool
|
191 |
+
*/
|
192 |
+
public static function ctype_xdigit($text)
|
193 |
+
{
|
194 |
+
$text = self::convert_int_to_char_for_ctype($text);
|
195 |
+
|
196 |
+
return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Converts integers to their char versions according to normal ctype behaviour, if needed.
|
201 |
+
*
|
202 |
+
* If an integer between -128 and 255 inclusive is provided,
|
203 |
+
* it is interpreted as the ASCII value of a single character
|
204 |
+
* (negative values have 256 added in order to allow characters in the Extended ASCII range).
|
205 |
+
* Any other integer is interpreted as a string containing the decimal digits of the integer.
|
206 |
+
*
|
207 |
+
* @param string|int $int
|
208 |
+
*
|
209 |
+
* @return mixed
|
210 |
+
*/
|
211 |
+
private static function convert_int_to_char_for_ctype($int)
|
212 |
+
{
|
213 |
+
if (!\is_int($int)) {
|
214 |
+
return $int;
|
215 |
+
}
|
216 |
+
|
217 |
+
if ($int < -128 || $int > 255) {
|
218 |
+
return (string) $int;
|
219 |
+
}
|
220 |
+
|
221 |
+
if ($int < 0) {
|
222 |
+
$int += 256;
|
223 |
+
}
|
224 |
+
|
225 |
+
return \chr($int);
|
226 |
+
}
|
227 |
+
}
|
vendor/symfony/polyfill-ctype/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2018-2019 Fabien Potencier
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
+
of this software and associated documentation files (the "Software"), to deal
|
5 |
+
in the Software without restriction, including without limitation the rights
|
6 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
+
copies of the Software, and to permit persons to whom the Software is furnished
|
8 |
+
to do so, subject to the following conditions:
|
9 |
+
|
10 |
+
The above copyright notice and this permission notice shall be included in all
|
11 |
+
copies or substantial portions of the Software.
|
12 |
+
|
13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
+
THE SOFTWARE.
|
vendor/symfony/polyfill-ctype/README.md
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Symfony Polyfill / Ctype
|
2 |
+
========================
|
3 |
+
|
4 |
+
This component provides `ctype_*` functions to users who run php versions without the ctype extension.
|
5 |
+
|
6 |
+
More information can be found in the
|
7 |
+
[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
|
8 |
+
|
9 |
+
License
|
10 |
+
=======
|
11 |
+
|
12 |
+
This library is released under the [MIT license](LICENSE).
|
vendor/symfony/polyfill-ctype/bootstrap.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of the Symfony package.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier <fabien@symfony.com>
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
use Symfony\Polyfill\Ctype as p;
|
13 |
+
|
14 |
+
if (!function_exists('ctype_alnum')) {
|
15 |
+
function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
|
16 |
+
function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
|
17 |
+
function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
|
18 |
+
function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
|
19 |
+
function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
|
20 |
+
function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
|
21 |
+
function ctype_print($text) { return p\Ctype::ctype_print($text); }
|
22 |
+
function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
|
23 |
+
function ctype_space($text) { return p\Ctype::ctype_space($text); }
|
24 |
+
function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
|
25 |
+
function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
|
26 |
+
}
|
vendor/symfony/polyfill-ctype/composer.json
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "symfony/polyfill-ctype",
|
3 |
+
"type": "library",
|
4 |
+
"description": "Symfony polyfill for ctype functions",
|
5 |
+
"keywords": ["polyfill", "compatibility", "portable", "ctype"],
|
6 |
+
"homepage": "https://symfony.com",
|
7 |
+
"license": "MIT",
|
8 |
+
"authors": [
|
9 |
+
{
|
10 |
+
"name": "Gert de Pagter",
|
11 |
+
"email": "BackEndTea@gmail.com"
|
12 |
+
},
|
13 |
+
{
|
14 |
+
"name": "Symfony Community",
|
15 |
+
"homepage": "https://symfony.com/contributors"
|
16 |
+
}
|
17 |
+
],
|
18 |
+
"require": {
|
19 |
+
"php": ">=5.3.3"
|
20 |
+
},
|
21 |
+
"autoload": {
|
22 |
+
"psr-4": { "Symfony\\Polyfill\\Ctype\\": "" },
|
23 |
+
"files": [ "bootstrap.php" ]
|
24 |
+
},
|
25 |
+
"suggest": {
|
26 |
+
"ext-ctype": "For best performance"
|
27 |
+
},
|
28 |
+
"minimum-stability": "dev",
|
29 |
+
"extra": {
|
30 |
+
"branch-alias": {
|
31 |
+
"dev-master": "1.12-dev"
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
vendor/twig/twig/.gitignore
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/build
|
2 |
+
/composer.lock
|
3 |
+
/ext/twig/autom4te.cache/
|
4 |
+
/phpunit.xml
|
5 |
+
/vendor
|
vendor/twig/twig/doc/filters/filter.rst
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``filter``
|
2 |
+
=========
|
3 |
+
|
4 |
+
.. versionadded:: 1.41
|
5 |
+
The ``filter`` filter was added in Twig 1.41 and 2.10.
|
6 |
+
|
7 |
+
The ``filter`` filter filters elements of a sequence or a mapping using an arrow
|
8 |
+
function. The arrow function receives the value of the sequence or mapping:
|
9 |
+
|
10 |
+
.. code-block:: twig
|
11 |
+
|
12 |
+
{% set sizes = [34, 36, 38, 40, 42] %}
|
13 |
+
|
14 |
+
{{ sizes|filter(v => v > 38)|join(', ') }}
|
15 |
+
{# output 40, 42 #}
|
16 |
+
|
17 |
+
Combined with the ``for`` tag, it allows to filter the items to iterate over:
|
18 |
+
|
19 |
+
.. code-block:: twig
|
20 |
+
|
21 |
+
{% for v in sizes|filter(v => v > 38) -%}
|
22 |
+
{{ v }}
|
23 |
+
{% endfor %}
|
24 |
+
{# output 40 42 #}
|
25 |
+
|
26 |
+
It also works with mappings:
|
27 |
+
|
28 |
+
.. code-block:: twig
|
29 |
+
|
30 |
+
{% set sizes = {
|
31 |
+
xs: 34,
|
32 |
+
s: 36,
|
33 |
+
m: 38,
|
34 |
+
l: 40,
|
35 |
+
xl: 42,
|
36 |
+
} %}
|
37 |
+
|
38 |
+
{% for k, v in sizes|filter(v => v > 38) -%}
|
39 |
+
{{ k }} = {{ v }}
|
40 |
+
{% endfor %}
|
41 |
+
{# output l = 40 xl = 42 #}
|
42 |
+
|
43 |
+
The arrow function also receives the key as a second argument:
|
44 |
+
|
45 |
+
.. code-block:: twig
|
46 |
+
|
47 |
+
{% for k, v in sizes|filter((v, k) => v > 38 and k != "xl") -%}
|
48 |
+
{{ k }} = {{ v }}
|
49 |
+
{% endfor %}
|
50 |
+
{# output l = 40 #}
|
51 |
+
|
52 |
+
Note that the arrow function has access to the current context.
|
53 |
+
|
54 |
+
Arguments
|
55 |
+
---------
|
56 |
+
|
57 |
+
* ``array``: The sequence or mapping
|
58 |
+
* ``arrow``: The arrow function
|
vendor/twig/twig/doc/filters/map.rst
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``map``
|
2 |
+
=======
|
3 |
+
|
4 |
+
.. versionadded:: 1.41
|
5 |
+
The ``map`` filter was added in Twig 1.41 and 2.10.
|
6 |
+
|
7 |
+
The ``map`` filter applies an arrow function to the elements of a sequence or a
|
8 |
+
mapping. The arrow function receives the value of the sequence or mapping:
|
9 |
+
|
10 |
+
.. code-block:: twig
|
11 |
+
|
12 |
+
{% set people = [
|
13 |
+
{first: "Bob", last: "Smith"},
|
14 |
+
{first: "Alice", last: "Dupond"},
|
15 |
+
] %}
|
16 |
+
|
17 |
+
{{ people|map(p => "#{p.first} #{p.last}")|join(', ') }}
|
18 |
+
{# outputs Bob Smith, Alice Dupond #}
|
19 |
+
|
20 |
+
The arrow function also receives the key as a second argument:
|
21 |
+
|
22 |
+
.. code-block:: twig
|
23 |
+
|
24 |
+
{% set people = {
|
25 |
+
"Bob": "Smith",
|
26 |
+
"Alice": "Dupond",
|
27 |
+
} %}
|
28 |
+
|
29 |
+
{{ people|map((first, last) => "#{first} #{last}")|join(', ') }}
|
30 |
+
{# outputs Bob Smith, Alice Dupond #}
|
31 |
+
|
32 |
+
Note that the arrow function has access to the current context.
|
33 |
+
|
34 |
+
Arguments
|
35 |
+
---------
|
36 |
+
|
37 |
+
* ``array``: The sequence or mapping
|
38 |
+
* ``arrow``: The arrow function
|
vendor/twig/twig/doc/filters/reduce.rst
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``reduce``
|
2 |
+
=========
|
3 |
+
|
4 |
+
.. versionadded:: 1.41
|
5 |
+
The ``reduce`` filter was added in Twig 1.41 and 2.10.
|
6 |
+
|
7 |
+
The ``reduce`` filter iteratively reduces a sequence or a mapping to a single
|
8 |
+
value using an arrow function, so as to reduce it to a single value. The arrow
|
9 |
+
function receives the return value of the previous iteration and the current
|
10 |
+
value of the sequence or mapping:
|
11 |
+
|
12 |
+
.. code-block:: twig
|
13 |
+
|
14 |
+
{% set numbers = [1, 2, 3] %}
|
15 |
+
|
16 |
+
{{ numbers|reduce((carry, v) => carry + v) }}
|
17 |
+
{# output 6 #}
|
18 |
+
|
19 |
+
The ``reduce`` filter takes an ``initial`` value as a second argument:
|
20 |
+
|
21 |
+
.. code-block:: twig
|
22 |
+
|
23 |
+
{{ numbers|reduce((carry, v) => carry + v, 10) }}
|
24 |
+
{# output 16 #}
|
25 |
+
|
26 |
+
Note that the arrow function has access to the current context.
|
27 |
+
|
28 |
+
Arguments
|
29 |
+
---------
|
30 |
+
|
31 |
+
* ``array``: The sequence or mapping
|
32 |
+
* ``arrow``: The arrow function
|
33 |
+
* ``initial``: The initial value
|
vendor/twig/twig/doc/filters/spaceless.rst
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``spaceless``
|
2 |
+
=============
|
3 |
+
|
4 |
+
.. versionadded:: 1.38
|
5 |
+
|
6 |
+
The ``spaceless`` filter was added in Twig 1.38.
|
7 |
+
|
8 |
+
Use the ``spaceless`` filter to remove whitespace *between HTML tags*, not
|
9 |
+
whitespace within HTML tags or whitespace in plain text:
|
10 |
+
|
11 |
+
.. code-block:: twig
|
12 |
+
|
13 |
+
{{
|
14 |
+
"<div>
|
15 |
+
<strong>foo</strong>
|
16 |
+
</div>
|
17 |
+
"|spaceless }}
|
18 |
+
|
19 |
+
{# output will be <div><strong>foo</strong></div> #}
|
20 |
+
|
21 |
+
You can combine ``spaceless`` with the ``apply`` tag to apply the transformation
|
22 |
+
on large amounts of HTML:
|
23 |
+
|
24 |
+
.. code-block:: twig
|
25 |
+
|
26 |
+
{% apply spaceless %}
|
27 |
+
<div>
|
28 |
+
<strong>foo</strong>
|
29 |
+
</div>
|
30 |
+
{% endapply %}
|
31 |
+
|
32 |
+
{# output will be <div><strong>foo</strong></div> #}
|
33 |
+
|
34 |
+
.. note::
|
35 |
+
|
36 |
+
The ``apply`` tag was introduced in Twig 1.40; use the ``filter`` tag with
|
37 |
+
previous versions.
|
38 |
+
|
39 |
+
This tag is not meant to "optimize" the size of the generated HTML content but
|
40 |
+
merely to avoid extra whitespace between HTML tags to avoid browser rendering
|
41 |
+
quirks under some circumstances.
|
42 |
+
|
43 |
+
.. caution::
|
44 |
+
|
45 |
+
As the filter uses a regular expression behind the scenes, its performance
|
46 |
+
is directly related to the text size you are working on (remember that
|
47 |
+
filters are executed at runtime).
|
48 |
+
|
49 |
+
.. tip::
|
50 |
+
|
51 |
+
If you want to optimize the size of the generated HTML content, gzip
|
52 |
+
compress the output instead.
|
53 |
+
|
54 |
+
.. tip::
|
55 |
+
|
56 |
+
If you want to create a tag that actually removes all extra whitespace in
|
57 |
+
an HTML string, be warned that this is not as easy as it seems to be
|
58 |
+
(think of ``textarea`` or ``pre`` tags for instance). Using a third-party
|
59 |
+
library like Tidy is probably a better idea.
|
60 |
+
|
61 |
+
.. tip::
|
62 |
+
|
63 |
+
For more information on whitespace control, read the
|
64 |
+
:ref:`dedicated section <templates-whitespace-control>` of the documentation and learn how
|
65 |
+
you can also use the whitespace control modifier on your tags.
|
vendor/twig/twig/doc/tags/apply.rst
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``apply``
|
2 |
+
=========
|
3 |
+
|
4 |
+
.. versionadded:: 1.40
|
5 |
+
The ``apply`` tag was added in Twig 1.40.
|
6 |
+
|
7 |
+
The ``apply`` tag allows you to apply Twig filters on a block of template data:
|
8 |
+
|
9 |
+
.. code-block:: twig
|
10 |
+
|
11 |
+
{% apply upper %}
|
12 |
+
This text becomes uppercase
|
13 |
+
{% endapply %}
|
14 |
+
|
15 |
+
You can also chain filters and pass arguments to them:
|
16 |
+
|
17 |
+
.. code-block:: twig
|
18 |
+
|
19 |
+
{% apply lower|escape('html') %}
|
20 |
+
<strong>SOME TEXT</strong>
|
21 |
+
{% endapply %}
|
22 |
+
|
23 |
+
{# outputs "<strong>some text</strong>" #}
|
vendor/twig/twig/doc/tags/deprecated.rst
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
``deprecated``
|
2 |
+
==============
|
3 |
+
|
4 |
+
.. versionadded:: 1.36 and 2.6
|
5 |
+
The ``deprecated`` tag was added in Twig 1.36 and 2.6.
|
6 |
+
|
7 |
+
Twig generates a deprecation notice (via a call to the ``trigger_error()``
|
8 |
+
PHP function) where the ``deprecated`` tag is used in a template:
|
9 |
+
|
10 |
+
.. code-block:: twig
|
11 |
+
|
12 |
+
{# base.twig #}
|
13 |
+
{% deprecated 'The "base.twig" template is deprecated, use "layout.twig" instead.' %}
|
14 |
+
{% extends 'layout.twig' %}
|
15 |
+
|
16 |
+
Also you can deprecate a block in the following way:
|
17 |
+
|
18 |
+
.. code-block:: twig
|
19 |
+
|
20 |
+
{% block hey %}
|
21 |
+
{% deprecated 'The "hey" block is deprecated, use "greet" instead.' %}
|
22 |
+
{{ block('greet') }}
|
23 |
+
{% endblock %}
|
24 |
+
|
25 |
+
{% block greet %}
|
26 |
+
Hey you!
|
27 |
+
{% endblock %}
|
28 |
+
|
29 |
+
Note that by default, the deprecation notices are silenced and never displayed nor logged.
|
30 |
+
See :ref:`deprecation-notices` to learn how to handle them.
|
vendor/twig/twig/drupal_test.sh
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
set -x
|
4 |
+
set -e
|
5 |
+
|
6 |
+
REPO=`pwd`
|
7 |
+
cd /tmp
|
8 |
+
rm -rf drupal-twig-test
|
9 |
+
composer create-project --no-interaction drupal-composer/drupal-project:8.x-dev drupal-twig-test
|
10 |
+
cd drupal-twig-test
|
11 |
+
(cd vendor/twig && rm -rf twig && ln -sf $REPO twig)
|
12 |
+
echo '$config["system.logging"]["error_level"] = "verbose";' >> web/sites/default/settings.php
|
13 |
+
php ./web/core/scripts/drupal install --no-interaction demo_umami > output
|
14 |
+
perl -p -i -e 's/^([A-Za-z]+)\: (.+)$/export DRUPAL_\1=\2/' output
|
15 |
+
source output
|
16 |
+
|
17 |
+
wget https://get.symfony.com/cli/installer -O - | bash
|
18 |
+
export PATH="$HOME/.symfony/bin:$PATH"
|
19 |
+
symfony server:start -d --no-tls
|
20 |
+
ENDPOINT=`symfony server:status -no-ansi | sed -E 's/^.+ http/http/'`
|
21 |
+
|
22 |
+
curl -OLsS https://get.blackfire.io/blackfire-player.phar
|
23 |
+
chmod +x blackfire-player.phar
|
24 |
+
cat > drupal-tests.bkf <<EOF
|
25 |
+
name "Drupal tests"
|
26 |
+
|
27 |
+
scenario
|
28 |
+
name "homepage"
|
29 |
+
set name "admin"
|
30 |
+
set pass "pass"
|
31 |
+
|
32 |
+
visit url('/')
|
33 |
+
expect status_code() == 200
|
34 |
+
click link('Articles')
|
35 |
+
expect status_code() == 200
|
36 |
+
click link('Dairy-free and delicious milk chocolate')
|
37 |
+
expect body() matches "/Dairy\-free milk chocolate is made in largely the same way as regular chocolate/"
|
38 |
+
expect status_code() == 200
|
39 |
+
click link('Log in')
|
40 |
+
expect status_code() == 200
|
41 |
+
submit button("Log in")
|
42 |
+
param name name
|
43 |
+
param pass pass
|
44 |
+
expect status_code() == 303
|
45 |
+
follow
|
46 |
+
expect status_code() == 200
|
47 |
+
click link('Structure')
|
48 |
+
expect status_code() == 200
|
49 |
+
EOF
|
50 |
+
./blackfire-player.phar run drupal-tests.bkf --endpoint=$ENDPOINT --variable name=$DRUPAL_Username --variable pass=$DRUPAL_Password
|
51 |
+
symfony server:stop
|
vendor/twig/twig/ext/twig/.gitignore
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.sw*
|
2 |
+
.deps
|
3 |
+
Makefile
|
4 |
+
Makefile.fragments
|
5 |
+
Makefile.global
|
6 |
+
Makefile.objects
|
7 |
+
acinclude.m4
|
8 |
+
aclocal.m4
|
9 |
+
build/
|
10 |
+
config.cache
|
11 |
+
config.guess
|
12 |
+
config.h
|
13 |
+
config.h.in
|
14 |
+
config.log
|
15 |
+
config.nice
|
16 |
+
config.status
|
17 |
+
config.sub
|
18 |
+
configure
|
19 |
+
configure.in
|
20 |
+
install-sh
|
21 |
+
libtool
|
22 |
+
ltmain.sh
|
23 |
+
missing
|
24 |
+
mkinstalldirs
|
25 |
+
run-tests.php
|
26 |
+
twig.loT
|
27 |
+
.libs/
|
28 |
+
modules/
|
29 |
+
twig.la
|
30 |
+
twig.lo
|
vendor/twig/twig/lib/Twig/Node/Deprecated.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use Twig\Node\DeprecatedNode;
|
4 |
+
|
5 |
+
class_exists('Twig\Node\DeprecatedNode');
|
6 |
+
|
7 |
+
if (\false) {
|
8 |
+
class Twig_Node_Deprecated extends DeprecatedNode
|
9 |
+
{
|
10 |
+
}
|
11 |
+
}
|
vendor/twig/twig/lib/Twig/Profiler/Dumper/Base.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use Twig\Profiler\Dumper\BaseDumper;
|
4 |
+
|
5 |
+
class_exists('Twig\Profiler\Dumper\BaseDumper');
|
6 |
+
|
7 |
+
if (\false) {
|
8 |
+
class Twig_Profiler_Dumper_Base extends BaseDumper
|
9 |
+
{
|
10 |
+
}
|
11 |
+
}
|
vendor/twig/twig/lib/Twig/TokenParser/Deprecated.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use Twig\TokenParser\DeprecatedTokenParser;
|
4 |
+
|
5 |
+
class_exists('Twig\TokenParser\DeprecatedTokenParser');
|
6 |
+
|
7 |
+
if (\false) {
|
8 |
+
class Twig_TokenParser_Deprecated extends DeprecatedTokenParser
|
9 |
+
{
|
10 |
+
}
|
11 |
+
}
|
vendor/twig/twig/src/Cache/CacheInterface.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Twig.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Twig\Cache;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Interface implemented by cache classes.
|
16 |
+
*
|
17 |
+
* It is highly recommended to always store templates on the filesystem to
|
18 |
+
* benefit from the PHP opcode cache. This interface is mostly useful if you
|
19 |
+
* need to implement a custom strategy for storing templates on the filesystem.
|
20 |
+
*
|
21 |
+
* @author Andrew Tch <andrew@noop.lv>
|
22 |
+
*/
|
23 |
+
interface CacheInterface
|
24 |
+
{
|
25 |
+
/**
|
26 |
+
* Generates a cache key for the given template class name.
|
27 |
+
*
|
28 |
+
* @param string $name The template name
|
29 |
+
* @param string $className The template class name
|
30 |
+
*
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
public function generateKey($name, $className);
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Writes the compiled template to cache.
|
37 |
+
*
|
38 |
+
* @param string $key The cache key
|
39 |
+
* @param string $content The template representation as a PHP class
|
40 |
+
*/
|
41 |
+
public function write($key, $content);
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Loads a template from the cache.
|
45 |
+
*
|
46 |
+
* @param string $key The cache key
|
47 |
+
*/
|
48 |
+
public function load($key);
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Returns the modification timestamp of a key.
|
52 |
+
*
|
53 |
+
* @param string $key The cache key
|
54 |
+
*
|
55 |
+
* @return int
|
56 |
+
*/
|
57 |
+
public function getTimestamp($key);
|
58 |
+
}
|
59 |
+
|
60 |
+
class_alias('Twig\Cache\CacheInterface', 'Twig_CacheInterface');
|
vendor/twig/twig/src/Cache/FilesystemCache.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Twig.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Twig\Cache;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Implements a cache on the filesystem.
|
16 |
+
*
|
17 |
+
* @author Andrew Tch <andrew@noop.lv>
|
18 |
+
*/
|
19 |
+
class FilesystemCache implements CacheInterface
|
20 |
+
{
|
21 |
+
const FORCE_BYTECODE_INVALIDATION = 1;
|
22 |
+
|
23 |
+
private $directory;
|
24 |
+
private $options;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @param string $directory The root cache directory
|
28 |
+
* @param int $options A set of options
|
29 |
+
*/
|
30 |
+
public function __construct($directory, $options = 0)
|
31 |
+
{
|
32 |
+
$this->directory = rtrim($directory, '\/').'/';
|
33 |
+
$this->options = $options;
|
34 |
+
}
|
35 |
+
|
36 |
+
public function generateKey($name, $className)
|
37 |
+
{
|
38 |
+
$hash = hash('sha256', $className);
|
39 |
+
|
40 |
+
return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php';
|
41 |
+
}
|
42 |
+
|
43 |
+
public function load($key)
|
44 |
+
{
|
45 |
+
if (file_exists($key)) {
|
46 |
+
@include_once $key;
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
public function write($key, $content)
|
51 |
+
{
|
52 |
+
$dir = \dirname($key);
|
53 |
+
if (!is_dir($dir)) {
|
54 |
+
if (false === @mkdir($dir, 0777, true)) {
|
55 |
+
clearstatcache(true, $dir);
|
56 |
+
if (!is_dir($dir)) {
|
57 |
+
throw new \RuntimeException(sprintf('Unable to create the cache directory (%s).', $dir));
|
58 |
+
}
|
59 |
+
}
|
60 |
+
} elseif (!is_writable($dir)) {
|
61 |
+
throw new \RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir));
|
62 |
+
}
|
63 |
+
|
64 |
+
$tmpFile = tempnam($dir, basename($key));
|
65 |
+
if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $key)) {
|
66 |
+
@chmod($key, 0666 & ~umask());
|
67 |
+
|
68 |
+
if (self::FORCE_BYTECODE_INVALIDATION == ($this->options & self::FORCE_BYTECODE_INVALIDATION)) {
|
69 |
+
// Compile cached file into bytecode cache
|
70 |
+
if (\function_exists('opcache_invalidate')) {
|
71 |
+
opcache_invalidate($key, true);
|
72 |
+
} elseif (\function_exists('apc_compile_file')) {
|
73 |
+
apc_compile_file($key);
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
return;
|
78 |
+
}
|
79 |
+
|
80 |
+
throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $key));
|
81 |
+
}
|
82 |
+
|
83 |
+
public function getTimestamp($key)
|
84 |
+
{
|
85 |
+
if (!file_exists($key)) {
|
86 |
+
return 0;
|
87 |
+
}
|
88 |
+
|
89 |
+
return (int) @filemtime($key);
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
class_alias('Twig\Cache\FilesystemCache', 'Twig_Cache_Filesystem');
|
vendor/twig/twig/src/Cache/NullCache.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Twig.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
namespace Twig\Cache;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Implements a no-cache strategy.
|
16 |
+
*
|
17 |
+
* @final
|
18 |
+
*
|
19 |
+
* @author Fabien Potencier <fabien@symfony.com>
|
20 |
+
*/
|
21 |
+
class NullCache implements CacheInterface
|
22 |
+
{
|
23 |
+
public function generateKey($name, $className)
|
24 |
+
{
|
25 |
+
return '';
|
26 |
+
}
|
27 |
+
|
28 |
+
public function write($key, $content)
|
29 |
+
{
|
30 |
+
}
|
31 |
+
|
32 |
+
public function load($key)
|
33 |
+
{
|
34 |
+
}
|
35 |
+
|
36 |
+
public function getTimestamp($key)
|
37 |
+
{
|
38 |
+
return 0;
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
class_alias('Twig\Cache\NullCache', 'Twig_Cache_Null');
|
vendor/twig/twig/src/Compiler.php
ADDED
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|